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

МТ_ЛР4_Иванова_4117

.docx
Скачиваний:
0
Добавлен:
29.04.2025
Размер:
647.41 Кб
Скачать

ГУАП

КАФЕДРА № 41

ОТЧЕТ ЗАЩИЩЕН С ОЦЕНКОЙ

ПРЕПОДАВАТЕЛЬ

доц., к.т.н., доц.

О.О. Жаринов

должность, уч. степень, звание

подпись, дата

инициалы, фамилия

ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ № 4

ПРИМЕНЕНИЕ ШУМОПОДОБНЫХ ФИЛЬТРОВ ДЛЯ СОЗДАНИЯ АУДИОСИГНАЛОВ.

по курсу: МУЛЬТИМЕДИА-ТЕХНОЛОГИИ

РАБОТУ ВЫПОЛНИЛ

СТУДЕНТ ГР. №

4117

А.В. Иванова

подпись, дата

инициалы, фамилия

Санкт-Петербург 2025

Цель работы:

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

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

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

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

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

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

Выполнение работы:

Часть 1. Рассмотрение примеров.

В начале были рассмотрены примеры формирования звуковых сигналов из методических указаний.

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

При оригинальных параметрах фильтров ( полоса пропускания частот от 100 до 200 Гц и медленные колебания) формируется гул, напомнивший мне звук дороги с потоком машин в отдалении.

Если изменить полосу пропускания на диапазон от 500 до 600 Гц для первого фильтра и увеличить скорость колебаний можно получить эффект гула ветра в трубе.

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

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

Рассмотрен вариант формирования звука на основе авторегрессионной модели 2-го порядка с переменными во времени параметрами. Формируемый звук звучит как нарастание порывистого ветра. Такой эффект получается за счёт увеличения частоты на случайные значения от предыдущих результатов.

Если изменить начальную центральную частоту на 440 Гц, а один из коэффициентов, отвечающих за частотные свойства заменить на -0.5, то в результате формирования сигнала получиться шум мощного водопада.

Часть 2. Формирование собственного варианта.

Написана программа формирования шумоподобного звукового сигнала, имитирующего звук волн на пляже (Листинг 1).

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

Для достижения эффекта звучания волн (звук поочерёдно заглушается и нарастает) применена периодическая модуляция интенсивности с использованием функции косинуса. Таким образом получены плавные переходы между слышимыми частями сигнала. При этом использован небольшой (0.4) коэффициент для реализации медленных колебаний.

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

Листинг 1 — Код программы формирования шумоподобного сигнала с использованием ФВЧ и ФНЧ и модуляции. Имитация звука волн.

import numpy as np # для работы с данными

from scipy import signal # для фильтров

import soundfile as sf # для записи аудиофайла

import sounddevice as sd # для проигрывания звука с запуском программы

# Параметры

Fd = 44100 # частота дискретизации

T = 15 # время записи

N = round(Fd * T) # число отсчетов

# Генерация белого шума

x = np.random.uniform(low=-1.0, high=1.0, size=(2, N))

# Граничные частоты фильтров

f_dn1 = 400 # Низкочастотный фильтр для гула воды

f_up2 = 10000 # Высокочастотный фильтр для песка

# Создание фильтров

order1, order2 = 2, 5 # порядки фильтров

sos1 = signal.butter(order1, Wn=(f_dn1 / (Fd / 2)), btype='lowpass', output='sos')

sos2 = signal.butter(order2, Wn=(f_up2 / (Fd / 2)), btype='highpass', output='sos')

# Применение фильтров

y1 = signal.sosfilt(sos1, x)

y2 = signal.sosfilt(sos2, x)

# совмещение фильтров

y = y1 + (y2*0.02)

# модуляция амплитуды

alfa = np.zeros((2,N))

Fm = 0.4

for n in range(N):

alfa[:,n] = (0.5*(1-np.cos(np.pi*Fm*n/Fd)))**2

# итоговый сигнал

y = y * alfa

# Нормировка

Norm = np.max(np.abs(y))

if Norm != 0:

y = y / Norm

# проигрывание результата

sd.play(y.T, Fd)

sd.wait()

# запись сигнала

sf.write('audio/myvar.mp3', np.transpose((y)), Fd)

С помощью методов построения графиков из предыдущих лабораторных работ построен график получившегося сигнала (Рисунок 1), график фрагмента сигнала, с рассмотрением звучания одной волны (Рисунок 2), и спектрограмма (Рисунок 3).

Рисунок 1 — Визуализация аудиосигнала

Рисунок 2 — Фрагмент аудиосигнала на участке от 0.5 до 4 секунд

На Рисунках 1-2 хорошо заметно волнообразное изменение интенсивности сигнала с плавными переходами. При этом видны небольшие различия между значениями амплитуды в правом и левом каналах, за счёт того, что сигнал основан на белом шуме.

Рисунок 3 — Спектрограмма сигнала

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

Выводы:

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

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

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

Список использованных источников

1. Жаринов О.О. Учебно-методические материалы к выполнению лабораторной работы №4 по дисциплине “Мультимедиа-технологии “. гр.4116,4117, 4118, Z0411. ГУАП, 2025. – 9 с. (Интернет-ресурс): //URL:

https://pro.guap.ru/inside/student/tasks/d8cf5085c5985f0a2fbfa50b24060693/download

(Дата обращения 09.03.2025)