Смекни!
smekni.com

Реализация звуковых эффектов (стр. 3 из 4)

Блок-схема устройства, реализующего эффект вибрато, приведена на рисунке 3.5.1:

Рисунок 3.5.1 - Блок-схема устройства, реализующего эффект вибрато

Устройство, блок-схема которого приведена на рисунке 3.1.2.3.1, может использоваться также и для изменения основного тона диктора (например, чтобы сделать голос говорящего неузнаваемым). В этом случае величина задержки изменяется от нуля до некоторой предельной величины по линейному закону. По достижении задержки своей предельной величины она сбрасывается в ноль, и процесс возобновляется. Изменение задержки по такому закону позволяет обеспечить работу устройства в реальном времени, но в момент обнуления величины задержки слышен щелчок. Дело в том, что как раз в данный момент происходит разрыв воспроизводимого сигнала при переходе к повторному воспроизведению некоторого его участка.

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

Более простым способом устранения щелчков является использование двух подобных устройств, фазы пилообразных модулирующих сигналов которых сдвинуты на половину периода. При этом необходимо задать весовое окно (например, окно Ханна) на периоде модулирующего сигнала. Выходные сигналы каждого устройства умножаются на отсчет весовой функции, соответствующий текущей длине линии задержки, и складываются друг с другом, что обеспечивает устранение щелчков при переходах. Если обозначить период модулирующего сигнала как N, отсчет модулирующего сигнала как fт(п), а отсчет весовой функции как W(п), то, с использованием функции получения остатка от целочисленного деления числа M на число N, обозначаемой как modN(М), процедура преобразования основного тона может быть записана в форме следующего разностного уравнения:

(3.5.1)

3.6 Изменение динамического диапазона: компрессоры и экспандеры

Компрессоры и экспандеры используются для изменения динамического диапазона сигнала, т. е. для уменьшения различия уровней самого тихого и самого громкого сигналов. Для этого при превышении текущим значением сигнала некоторого порога устанавливается коэффициент передачи, меньший, чем используемый до превышения порога. Отношение старого коэффициента передачи к новому называется ослаблением. Все коэффициенты передачи задаются в логарифмической шкале. То есть при ослаблении 2:1 приращению входного сигнала на 20 дБ будет соответствовать приращение выходного сигнала на 10 дБ. Подобный компрессор, изменяющий свою пе­редаточную характеристику в точке а, может быть реализован по следующей формуле:

(3.6.1)

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

Другой областью применения компрессоров является звукозаписывающая индустрия и радиовещание. Дело в том, что при записи музыкальных произведений для более точной передачи звучания всех групп инструментов оркестра устанавливается несколько микрофонов. Звуковое давление создает на выходе микрофона электрический сигнал, имеющий динамической диапазон 60—70 дБ. Однако большинство каналов неспособно передать весь диапазон изменения сигнала вследствие ограничений, накладываемых помехами в канале и его нелинейностями. Поэтому возникает задача сжать исходный динамический диапазон сигнала до динамического диапазона канала, обычно составляющего порядка 40 дБ.

При уровне ослабления выше, чем 10:1, компрессор превращается в ограничи­тель. Его основное отличие заключается в том, что применение компрессора предполагает последующее использование экспандера, а после ограничителя какие-либо разговоры о восстановлении сигнала, как правило, бессмысленны. Поэтому наиболее часто используются ограничители с уровнем ослабления ¥ : 1, что соответствует ограничению сигнала на уровне порога.

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


4 Разработка программной модели на MATLAB

Обработать звук на высоком уровне можно программным способом. Существует множество различных звуковых редакторов, позволяющих делать со звуком значительно более сложные вещи, чем это позволяют делать даже самые сложные эффект-процессоры. Кроме того, эффект-процессоры часто эмулируются в виртуальных WT-синтезаторах, а также находят программную реализацию в специальных программах для обработки звука в режиме реального времени.

В данной работе использовалась программная среда MatLab, в которой и были реализованы необходимые звуковые эффекты. Для синтеза звуковых эффектов использовались разностные уравнения фильтров, приведенные в предыдущем разделе.

Программная реализация обработки звуковых сигналов приведена в приложении А.


5 Разработка программного обеспечения системы на языке Си

Аппаратную реализацию звуковые эффекты находят в цифровых сигнальных процессорах (DSP). Любой MIDI-синтезатор имеет встроенный эффект-процессор той или иной сложности (эффект-процессор представляет собой один или несколько DSP). Сложные эффект-процессоры "умеют" накладывать на звуковой сигнал сразу несколько различных эффектов, причем, отдельно для каждого канала, позволяя регулировать параметры эффектов в режиме реального времени. Однако стоимость таких эффект-процессоров чрезвычайно высока (как и стоимость любого другого высокопроизводительного микропроцессора), поэтому профессиональные DSP устанавливаются только на качественной музыкальной аппаратуре. На более или менее дешевых звуковых платах часто устанавливается DSP с упрощенным набором возможностей: наложение одного или нескольких эффектов на все каналы одновременно.

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

Программа реализации приведена в приложении Б.


6 Результаты реализации звуковых эффектов в среде MatLab и на сигнальном процессоре DSP

Результаты приведены в приложении В, а также представлены в презентации к данной курсовой работе.


7 Краткое руководство пользователя

Для удобства представления результатов работы программ, они были оформлены в презентацию, которая разработана в среде MSPowerPoint. Презентация имеет удобный и интуитивно понятный интерфейс. В неё вынесены методы наложения звуковых эффектов, использованных в курсовой работе, а также результаты – wav-файлы, которые можно прослушать, нажав кнопку

. Смена слайдов осуществляется при нажатии кнопок вперед или назад, размещенных в правом нижнем углу.

Заключение

В данной курсовой работе необходимо была разработана в MatLab и CCS система, реализующая звуковые музыкальные эффекты в реальном времени.

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