Главная » Все файлы » Просмотр файлов из архивов » Документы » Отчет по лабораторной работе №3

Отчет по лабораторной работе №3

2017-08-25СтудИзба

Описание файла

Документ из архива "Отчет по лабораторной работе №3", который расположен в категории "". Всё это находится в предмете "микропроцессорные устройства" из 7 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "лабораторные работы", в предмете "микропроцессорные устройства обработки сигналов" в общих файлах.

Онлайн просмотр документа "Отчет по лабораторной работе №3"

Текст из документа "Отчет по лабораторной работе №3"

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

«Московский государственный технический университет имени Н.Э. Баумана»

Факультет ИУ – «Информатика и управление»

Кафедра ИУ-3 – «Информационные системы и телекоммуникации»

Отчет по лабораторной работе №3

по дисциплине «Микропроцессорные устройства обработки сигналов»

на тему ««Звуковой эффект»

Студент группы ИУ3-72 Г.О.Курганов

Преподаватель кафедры ИУ-3 В.С.Выхованец

Москва 2013



Содержание

1 Постановка задачи 3

2 Описание эффекта частотное вибрато (Bending) 3

3 Алгоритм частотного вибрато 5

3.1 Основной цикл 6

3.2. Функция Bending 6

4 Практическая часть 8

5 Список использованной литературы 12



1 Постановка задачи

Целью выполнения домашнего задания является изучение звукового эффекта, заданного в теме домашнего задания, и описание алгоритма, его реализующего.

Для выполнения домашнего задания необходимо найти, изучить и описать заданный звуковой эффект, используя источник [1], а также другие доступные источники. На следующем этапе разрабатывается алгоритм цифровой обработки сигнала, реализующего звуковой эффект. При разработке алгоритма учесть, что исходный звуковой сигнал поступает на обработку от звукового кодека по одному отсчету, получаемому при вызове функции sam = GetSample(), где sam – текущий отсчет звукового сигнала. Обработанные отсчеты передаются звуковому кодеку обратно путем вызова функции PutSample(sam).

2 Описание эффекта частотное вибрато (Bending)

В современной музыкальной индустрии повсеместно используются различные звуковые эффекты, обогащающие палитру музыкальных произведений и добавляющие к ним дополнительные краски. Эффекты могут использоваться не только при обработке музыкаль­ных произведений, но и при воспроизведении речевого материала для сни­жения монотонности при прослушивании длительных фрагментов.

Частотные преобразования могут проводиться над спектром сигнала или над частотой воспроизведения сигнала. На основе частотных преобразований спектра реализуются различные фильтры и эквалайзеры. В радиотехнике при частотной модуляции несущая частота является гармоническим колебанием, а модулируется сложным сигналом (см. Рисунок 2.1). В аудиотехнике при формировании звуковых эффектов – несущей является широкополосный звуковой сигнал, который модулируется периодическим сигналом не обязательно синусоидальной формы.

Рисунок 2.1 Частотная модуляция гармонического колебания



В самом общем смысле суть эффекта вибрато заключается в периодическом изменении одного из параметров звукового колебания: амплитуды, частоты или фазы. Изменение (колебание) параметра происходит с очень малой частотой — единицы герц. Различают амплитудное, частотное и фазовое вибрато. В любом случае результатом является обогащение спектра исходного колебания, происходит модуляция звукового колебания низкочастотным сигналом. Законы физики неумолимы — спектр сигнала при этом действительно расширяется.

Vibrato (от англ. "vibrate" - вибрация). Частотное вибрато достигается путем частотной модуляции сигнала с небольшой частотой и малой глубиной модуляции (до 10 Гц). Воспринимается как завывание звука.

Реализация частотного вибрато в электромузыкальных инструментах и синтезаторах проста и естественна. Работу всех узлов электронных музыкальных синтезаторов как аппаратных, так и реализованных программным путем, синхронизирует опорный генератор. Если изменять его частоту, то будут изменяться частоты и всех синтезируемых колебаний. В радиотехнике этот процесс называется частотной модуляцией. Если изменение частоты производится по периодическому закону, то в результате получается частотное вибрато. По существу, при частотном вибрато также расширяется спектр исходного сигнала, причем тембр периодически изменяется во времени.

Частотное вибрато используется и само по себе, и входит в качестве составной части в более сложные звуковые эффекты.

Эффект вибрато имитирует вибрато человеческих голосов, определяющий их тембр, теплоту и выразительность, и соответствующий прием исполнения на струнных музыкальных инструментах, периодически изменяющий в небольших пределах высоту звуков. Эффект вибрато может быть получен в устройствах, реализующих эффекты детонации и хора при полном удалении входного сигнала из выходного. Этот эффект часто путают с эффектом тремоло, где сигнал подвергается не частотной, а амплитудной модуляции.

3 Алгоритм частотного вибрато

Перед непосредственной реализацией эффекта частотного вибрато необходимо поставить некоторые ограничения. Наиболее естественная музыкальная частота модуляции составляет 4—8 Гц (частота вибрато музыкальных звуков). При таких частотах вибрато приобретает своеобразную тембровую окраску, украшающую и оживляющую звук. Красивое звучание получается только в том случае, когда глубина частотного вибрато (относительное изменение частоты звука) невелика. Как известно, единица музыкальных интервалов, в 1200 раз меньшая, чем октава, называется центом. Интервал между соседними полутонами в темперированной гамме равен в точности 100 центам. Колебание высоты тона при частотном вибрато не должно превышать нескольких десятков центов. В противном случае создается впечатление нарушения строя инструмента.

Таким образом, условимся, что модулирующий сигнал представляет собой синусоиду с частотой 6 Гц, а максимальное колебание высоты тона широкополосного модулируемого сигнала составляет 60 центов, что в среднем соответствует 20 Гц.

Также частота входного сигнала должна составлять не менее 4 кГц для узнаваемости человеческого голоса. Следовательно, минимальная частота дискретизации сигнала допускается равной 8 кГц. При заданной частоте дискретизации в 8 кГц промежуток времени между двумя отсчётами составляет 1/8000 с. Длительность массива отсчётов, состоящего из 1024 элементов равна 1024 * 1/8000 = 0,128 c. Следовательно, на один отсчёт приходится 7,8 Гц. Максимально колебание высоты тона равна 20 Гц, т.е. 2,56 отсчёта для нашего случая. Округлим до 3. Получаем, что смещение спектра в 3 отсчётов составляет 3 * 7,8 = 23,4 Гц. Величина 23,4 Гц близка к 20 Гц, что позволит нам почувствовать разницу между входным и выходным звуком как эффект вибрато Таким образом, считаем величину выборки в 1024 отсчётов окончательно утвержденной.

Далее выполняем прямое преобразования Фурье с 1024 звуковыми отсчётами. После преобразования Фурье необходимо осуществить само смещение. Очевидное решение ситуации – заполнить первые V элементов массива смещенного спектра отсчётов нулями и начать запись первых 512–V элементов исходного спектра сразу с V+1 элемента или записать в массив смещенного спектра последние 512–V элемента исходного, а оставшиеся V элементов заполнить нулями. Значение V и выбор того или иного направления смещения определяется значением модулирующего синусоидального сигнала, которое будем получать для определенности в момент взятия последнего отсчета каждой выборки. После смещения проделываем операцию обратного преобразования Фурье для перевода полученного массива смещенных отсчётов во временную область. После прохождения ЦАП и вывода на звуковое устройство получаем звук, отличающийся от входа на 23,4 Гц в предельном случае, смещенный в сторону верхних или нижних частот.

3.1 Основной цикл

Основной цикл алгоритма состоит из следующих шагов:

Шаг 1. Обнуление входных буферов x[N] выходного буфера y[N], счётчика i, счетчика k.

Шаг 2. Инициализация кодека.

Шаг 3. Увеличение счетчика k на единицу.

Шаг 4. Чтение из кодека текущего отсчета сигнала и запись в буфер, х[i] = GetSample().

Шаг 5. Увеличение счетчика i на единицу.

Шаг 6. Проверка значения i: если i < N, то переход на Шаг 3, если i = 1024 – на следующий шаг.

Шаг 7. Выполнение функции Bending над N отсчётами текущего входного массива x[].

Шаг 8. Запись выходного отсчета сигнала в кодек, PutSample(y[N-i]).

Шаг 9. Уменьшение счетчика i на единицу.

Шаг 10. Проверка значения i: если i > 0, то переход на Шаг 7, если i = 0 – на Шаг 3.

3.2 Алгоритм работы функции Bending()

Шаг 1. Определение значения переменной с помощью заданной таблицы синусов, val = sinTab[k%12].

Шаг 2. Выполнение прямого преобразования Фурье над входным массивом x[N].

Шаг 3. Анализ знака val: если значение val ≥ 0, переходим на Шаг 4, если val < 0, переходим на Шаг 6.

Шаг 4. Заполнение первых val элементов выходного массива y[] нулями.

Шаг 5. Заполнение оставшихся элементов массива y[] первыми N/2 – val элементами массива x[]. Переход на Шаг 8.

Шаг 6. Заполнение первых N/2 – val элементов выходного массива y[] последними N/2 – val элементами массива x[].

Шаг 7. Заполнение оставшихся val элементов массива y[] нулями.

Шаг 8. Выполнение обратного преобразования Фурье над выходным массивом y[].



4 Практическая часть

Программа имеет вхождение в главной функции main.c, где вызывается функция aic3204_loop_stereo_in1.c. Эта функция настраивает AIC3204 и, получая отсчеты в канале stereo_in1 подает их на канал headphone.

Код программы:

#include "stdio.h"

#include "evm5515.h"

#include "Dsplib.h"

#include "math.h"

#define Rcv 0x08

#define Xmit 0x20

#define NX 1024 // number of points to FFT

/* Extern functions of DSPLib – needed for FFT and IFFT */

extern void rfft(DATA* , ushort, type);

extern void rifft(DATA* , ushort, type);

extern Int16 AIC3204_rset( Uint16 regnum, Uint16 regval);

void Bending(DATA *in, DATA *out, Int16 sin*, Int16 N, Int16 k);

/* Arrays for input, output channels and table of sines. */

DATA in1[NX];

DATA in2[NX];

DATA out1[NX];

DATA out2[NX];

Int16 sinTab[12] = {1, 2, 3, 2, 1, 0, -1, -2, -3, -2, -1, 0 };

/* Output input from STEREO IN 1 through the HEADPHONE jack */

Int16 aic3204_loop_stereo_in1( )

{

/* Pre-generated sine wave data, 16-bit signed samples */

Int16 data1, data2;

/* -----------------------------------------------------------*

* * * Configure AIC3204 ** CODEC_CLKIN = PLL CLK * * CODEC_CLKIN = NADC * MADC * AOSR * ADCFS *

* PLL_CLK = PLL_CLKIN * R * J.D / P *

* PLL_CLKIN = BCLK = 1.536MHz *

* ADCFS = 48KHz *

* ---------------------------------------------------------------------------------------- */

AIC3204_rset( 0, 0x00 ); // Select page 0

AIC3204_rset( 1, 0x01 ); // Reset codec

AIC3204_rset( 0, 0x01 ); // Select page 1

AIC3204_rset( 0, 0x08 ); // Disable crude AVDD generation from DVDD

AIC3204_rset( 2, 0x00 ); // Enable Analog Blocks

// PLL and Clocks config and Power Up

AIC3204_rset( 0, 0x00 ); // Select page 0

AIC3204_rset( 27, 0x00 ); // BCLK and WCLK is set as i/p to AIC3204(Slave)

AIC3204_rset( 4, 0x07 ); // PLL setting: PLLCLK <- BCLK and CODEC_CLKIN <-PLL CLK

AIC3204_rset( 6, 0x20 ); // PLL setting: J = 32

AIC3204_rset( 7, 0 ); // PLL setting: HI_BYTE(D)

AIC3204_rset( 8, 0 ); // PLL setting: LO_BYTE(D)

// For 8 KHz sampling

AIC3204_rset( 5, 0x92 ); // PLL setting: Power up PLL, P=1 and R=2

AIC3204_rset( 13, 0x00 ); // Hi_Byte(DOSR) for DOSR = 128 decimal or //0x0080 DAC oversamppling

AIC3204_rset( 14, 0x80 ); // Lo_Byte(DOSR) for DOSR = 128 decimal or 0x0080

AIC3204_rset( 20, 0x80 ); // AOSR for AOSR = 128 decimal or 0x0080 for decimation filters 1 to 6

AIC3204_rset( 11, 0x84 ); // Power up NDAC and set NDAC value to 4

AIC3204_rset( 12, 0x82 ); // Power up MDAC and set MDAC value to 2

AIC3204_rset( 18, 0x84 ); // Power up NADC and set NADC value to 4

AIC3204_rset( 19, 0x82 ); // Power up MADC and set MADC value to 2

// DAC ROUTING and Power Up

AIC3204_rset( 0, 0x01 ); // Select page 1

AIC3204_rset( 12, 0x08 ); // LDAC AFIR routed to HPL

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5167
Авторов
на СтудИзбе
437
Средний доход
с одного платного файла
Обучение Подробнее