Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Теория / мт__МТ__лаб04

.pdf
Скачиваний:
0
Добавлен:
25.04.2024
Размер:
520.36 Кб
Скачать

Лабораторная работа №4.

Применение формирующих фильтров для создания шумоподобных аудиосигналов

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

Краткие теоретические сведения

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

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

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

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

Изменение интенсивности можно производить не только по случайному закону, но и по детерминированному, создавая либо периодически повторяющиеся, либо апериодические изменения интенсивности исходного аудиосигнала. Для этого в программе, текст которой приведен на листинге 1, нужно внести изменения в область, ограниченную комментариями из последовательности символов “звездочка”.

1

© Жаринов О.О. Учебно-методические материалы к выполнению лабораторной работы №4 по дисциплине “Мультимедиа-технологии”, гр.4016,4017. ГУАП, 2024. – 7 с.

Листинг 1 – MATLAB-программа формирования шумоподобного сигнала с динамическим изменением интенсивности звука

clc, clear, close all

Fd = 44100; % задаем стандартную частоту дискретизации в Гц Td = 1./Fd; % период дискретизации – обратный частоте

Ts = 10; % задаем длительность формируемого сигнала в секундах N = Fd*Ts; %количество дискретных отсчетов

x1 = randn(N,2); % создаем первый источник белого шума

%параметры основного шума - граничные частоты в Гц: f1_low = 700; f1_up = 1300;

%от этих параметров очень сильно зависит характер звука!!

%применяем полосовой фильтр для создания первого аудиосигнала: y1 = bandpass(x1, [f1_low, f1_up], Fd);

x2 = randn(N,2); % создаем второй источник белого шума

%параметр низкочастотного процесса, для последующего

%использования при изменении интенсивности звука, в Гц

f2_low = 0.05; % в среднем период колебаний составит 20 сек

%в качестве второго формирующего фильтра задаем ФНЧ: [b a] = butter(2, 2*f2_low./Fd, 'low');

%создаем второй процесс:

y2 = filter(b, a, x2);

%*********************************************************

%изменяем интенсивность первого процесса, используя второй: y12 = y1 .* y2;

%*********************************************************

%нормировка по амплитуде:

Am = 8192; % константа, задающая максимум громкости

%

(Am

не должна

превышать 32767)

maxy12 = max(y12(:,:)); miny12 = min(y12(:,:));

norm1 = abs(miny12(1)); norm2

= abs(miny12(2));

if (maxy12(1)>abs(miny12(1)))

norm1

= maxy12(1); end

if (maxy12(2)>abs(miny12(2)))

norm2

= maxy12(2); end

y(:,1) = Am.*(y12(:,1) ./

norm1);

 

y(:,2) = Am.*(y12(:,2) ./

norm2);

 

output_signal = int16(y);

 

 

 

% записываем новый аудиофайл:

 

 

audiowrite('D:/output_audio_2.wav',

output_signal, Fd);

% построение графиков сигналов start=1; stop=N;

figure(1)

subplot(2,1,1); plot(y(start:stop,1)); subplot(2,1,2); plot(y(start:stop,2));

2

© Жаринов О.О. Учебно-методические материалы к выполнению лабораторной работы №4 по дисциплине “Мультимедиа-технологии”, гр.4016,4017. ГУАП, 2024. – 7 с.

На листинге 2 показан возможный вариант такого изменения. В данном случае громкость в левом канале будет убывать по экспоненциальному закону, а во втором канале – нарастать. Возможно также осуществить в левом канале изменение интенсивности звука по синусоидальному закону, а в правом – по косинусоидальному, в этом случае будет создаваться интересный эффект “перетекания” звука из одного уха в другое.

Листинг 2 – Фрагмент программы, реализующий детерминированный закон изменения интенсивности звука

clc, clear, close all

Fd = 44100; % задаем стандартную частоту дискретизации в Гц

%*********************************************************

%изменяем интенсивность первого процесса,

%используя детерминированную функцию:

%реализуем плавное убывание громкости со временем

for k=1:N y2(k,1)=exp(-6*(k)/N);

% y2(k,2)=y2(k,1); % такой же закон для второго канала

end

%для второго канала сделаем противоположный эффект:

%громкость будет нарастать:

y2(:,2)= (fliplr(y2(:,1)'))'; % “отзеркалили” массив

%символ ‘ означает транспонирование матрицы (здесь - вектора)

%*********************************************************

После того, как желаемый процесс полностью сформирован, в программе осуществляется его формировка по амплитуде, для того, чтобы обеспечить заданную громкость созданной звуковой дорожки: в данном случае максимальные значения созданных массивов аудиоданных (для левого и правого канала стереозвука) не превышают заданной величины Am=8192. Чтобы избежать эффекта клиппирования звука, величина данной константы в программе не должна превышать 32767.

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

3

© Жаринов О.О. Учебно-методические материалы к выполнению лабораторной работы №4 по дисциплине “Мультимедиа-технологии”, гр.4016,4017. ГУАП, 2024. – 7 с.

Листинг 3 – Фрагмент программы, реализующий детерминированный закон изменения интенсивности звука

clc, clear, close all

Fd = 44100; % задаем стандартную частоту дискретизации в Гц Td = 1./Fd; % период дискретизации – обратный частоте

Ts = 10; % задаем длительность формируемого сигнала в секундах N = Fd*Ts; %количество дискретных отсчетов

x = rand(N,2)*2 - 0.5; % создаем источник белого шума

eps1 = 0.01; % параметр, отвечающий за полосу каждого форм. фильтра

dn1 = 1-eps1; up1 = 1+eps1;

f1 = 880; % центральная частота первого ФФ

%применяем первый фф (в данном случае - полосовой): y1 = bandpass(x, [dn1*f1, up1*f1], Fd);

%применяем второй ФФ:

eps2 = 0.1; % меняем полосу форм. фильтра dn2 = 1-eps2; up2 = 1+eps2;

f2 = 7*f1; % меняем частоту настройки % применяем три полосовых фильтра:

y2 = bandpass(x, [dn2*f2, up2*f2], Fd);

y12 = zeros(N,2);

%смешиваем процессы, меняя их интенсивности во времени:

%*********************************************************

for k=1:N

%для смешивания применим сигмоидную функцию,

%она меняется от почти 0 в начале до почти 1 в конце: alfa = 1/(1 + exp(-10*(2*(k-N/2)/N)));

%собственно смешивание с переменными коэфф-ми: y12(k,:)= y1(k,:) * (1- alfa) + y2(k,:) * alfa;

%и дополнительно периодическое изменение громкости: y12(k,:) = y12(k,:) * (0.5*(1-cos(2*pi*k*2/Fd)))^2;

end

%*********************************************************

%нормировка по амплитуде:

Am = 8192; % константа, задающая максимум громкости

%

(Am

не должна

превышать 32767)

maxy12 = max(y12(:,:)); miny12 = min(y12(:,:));

norm1 = abs(miny12(1)); norm2

= abs(miny12(2));

if (maxy12(1)>abs(miny12(1)))

norm1

= maxy12(1); end

if (maxy12(2)>abs(miny12(2)))

norm2

= maxy12(2); end

y(:,1) = Am.*(y12(:,1) ./

norm1);

 

y(:,2) = Am.*(y12(:,2) ./

norm2);

 

output_signal = int16(y);

% записываем новый аудиофайл: audiowrite('D:/output_audio.wav', output_signal, Fd);

4

© Жаринов О.О. Учебно-методические материалы к выполнению лабораторной работы №4 по дисциплине “Мультимедиа-технологии”, гр.4016,4017. ГУАП, 2024. – 7 с.

это переменная alfa, величина которой зависит от параметра цикла): в начале записи функция практически равна нулю, в конце записи – почти равна единице.

Соответственно, анализ строки

y12(k,:)= y1(k,:) * (1- alfa) + y2(k,:) * alfa;

позволяет понять, что в начале записи доминирует процесс, сгенерированный первым источником, в конце – вторым.

И, наконец, в-третьих, в программе дополнительно осуществлено периодическое изменение интенсивности формируемого звука по гармоническому закону, реализованное посредством строки:

y12(k,:) = y12(k,:) * (0.5*(1-cos(2*pi*k*2/Fd)))^2;

выполнение которой приводит к тому, что интенсивность звука относительно плавно изменяется от 0 до максимума с частотой 2 Гц. Дополнительно очень рекомендуется попробовать изменить значение данной частоты. Например,

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

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

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

Варианты заданий

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

5

© Жаринов О.О. Учебно-методические материалы к выполнению лабораторной работы №4 по дисциплине “Мультимедиа-технологии”, гр.4016,4017. ГУАП, 2024. – 7 с.

выполнения работы рекомендуется отказаться от каких-либо методов управления интенсивностью или микширования сигналов от нескольких источников, а проанализировать характер звучания получающегося аудиосигнала при использовании в качестве формирующего фильтра разных типов фильтров: ФНЧ, ФВЧ, ПФ и РФ.

Нужно также заметить, что в качестве формирующего фильтра можно использовать не только рекурсивный фильтр, но и фурье-фильтр.

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

Порядок выполнения работы

1.Согласовать с преподавателем вариант задания во время занятия по расписанию, удостовериться в правильном понимании задания и критериев его оценки.

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

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

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

Содержание отчета

1.Цель работы.

2.Краткие теоретические сведения о методе формирующего фильтра и классификации “окрашенных” шумов.

3.Описание результатов слухового восприятия звуковых дорожек, полученных посредством формирующих фильтров различных типов и с различными параметрами (привести как минимум 3 существенно разных варианта).

6

© Жаринов О.О. Учебно-методические материалы к выполнению лабораторной работы №4 по дисциплине “Мультимедиа-технологии”, гр.4016,4017. ГУАП, 2024. – 7 с.

4.Текст программы, формирующей шумоподобный сигнал на основе формирующего фильтра, с индивидуально заданными акустическими свойствами.

5.Описание результатов слухового восприятия сформированного шумоподобного сигнала. При наличии возможности рекомендуется разместить сформированный аудиофайл на каком-либо ресурсе и привести в отчете ссылку для возможности прослушивания.

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

7.Список используемых источников, желательно не только из списка рекомендуемой литературы, приветствуется использование Интернетресурсов; на все источники в тексте отчета должны быть ссылки.

Контрольные вопросы

1.В чем главная идея метода формирующего фильтра?

2.Как программно реализуется изменение интенсивности звука с течением времени?

3.Как на слух различаются шумоподобные процессы, сформированные посредством ФНЧ и узкополосного полосового фильтра?

Рекомендуемая литература

1.Цвета шума. Википедия.

//URL: https://ru.wikipedia.org/wiki/Цвета_шума

2.Морфинг (звуковой эффект).

URL: // https://ru.wikipedia.org/wiki/Морфинг_(звуковой_эффект)

3.Алгоритм цифровой фильтрации в частотной и временной областях.

//URL: http://stu.sernam.ru/book_g_rts.php?id=137

7

© Жаринов О.О. Учебно-методические материалы к выполнению лабораторной работы №4 по дисциплине “Мультимедиа-технологии”, гр.4016,4017. ГУАП, 2024. – 7 с.

Соседние файлы в папке Теория