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

4

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

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

федеральное государственное автономное образовательное учреждение высшего образования

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»

Кафедра 41

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

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

О. О. Жаринов

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

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

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

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

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

по курсу: Мультимедиа технологии

СТУДЕНТКА ГР. №

Z0411

01.04.25

М. В. Карелина

номер группы

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

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

Номер студенческого билета: 2020/3477

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

2025

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

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

Различают несколько типов окрашенных шумов:

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

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

3. Коричневый (бурый) шум: Спектральная плотность мощности уменьшается быстрее, чем у розового шума, создавая глубокий и басовый звук.

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

5. Зеленый шум: Имеет пик спектральной плотности в области 500 Гц и имитирует звук листвы, колышущейся на ветру.

6. Серый шум: С учетом чувствительности человеческого слуха воспринимается как равномерный на всех частотах.

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

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

Листинг 1. Моделирование звука с помощью белого шума и формирующих фильтров.

import numpy as np import matplotlib.pyplot as plt from scipy import signal from scipy.io.wavfile import write # Параметры Fs = 44100 # Частота дискретизации duration = 5 # Длительность звука в секундах N = int(Fs * duration) # Общее количество выборок f01 = 880 # Центральная частота первого фильтра f02 = 7 * f01 # Центральная частота второго фильтра ef1, ef2 = 0.03, 0.01 # половина относительной ширины полосы dn1, up1 = 1 - ef1, 1 + ef1 dn2, up2 = 1 - ef2, 1 + ef2 order = 2 # Генерация белого шума x = np.random.uniform(low=-1.0, high=1.0, size=(2, N)) # Создание полосовых фильтров sos1 = signal.butter(order, Wn=(f01 * dn1 / (Fs / 2), f01 * up1 / (Fs / 2)), btype='bandpass', output='sos') sos2 = signal.butter(order, Wn=(f02 * dn2 / (Fs / 2), f02 * up2 / (Fs / 2)), btype='bandpass', output='sos') # Применение фильтров к шуму y1 = signal.sosfilt(sos1, x[0]) y2 = signal.sosfilt(sos2, x[1]) # Создание сигмоидальной функции для изменения соотношения alfa = np.zeros((2, N)) for n in range(N): alfa[:, n] = 1 / (1 + np.exp(-10 * (2 * (n - N / 2) / N))) # Микширование сигналов с меняющимся во времени коэффициентами y = y1 * (1 - alfa[0]) + y2 * alfa[0] # Модуляция итогового сигнала Fm = 2 # Частота модуляции for n in range(N): alfa[:, n] = (0.5 * (1 - np.cos(2 * np.pi * Fm * n / Fs)))**2 y = y * alfa[0] # Применяем модуляцию # Нормализация итогового сигнала y /= np.max(np.abs(y)) # Нормализация # Сохранение результата в WAV файл write('LR4.wav', Fs, (y * 32767).astype(np.int16)) # Визуализация спектра Spectr_y = np.fft.fft(y) AS_y = np.abs(Spectr_y) eps = np.max(AS_y) * 1.0e-9 S_dB_y = 20 * np.log10(AS_y + eps) f = np.linspace(0, Fs / 2, N // 2) plt.figure(figsize=(8, 4)) plt.semilogx(f[:N // 2], S_dB_y[:N // 2], color='b') # slicing для соответствия длинам plt.grid(True, which='both', linestyle=":") plt.xlabel('Frequency (Hz)') plt.ylabel('Level (dB)') plt.title('Amplitude Spectrum of Generated Sound') plt.show() # Визуализация временного сигнала t = np.linspace(0, duration, N, endpoint=False) # Добавлено для создания временной оси plt.figure(figsize=(8, 4)) plt.plot(t[:2000], y[:2000]) plt.xlabel("Time (s)") plt.ylabel("Amplitude") plt.title("Time-domain Signal of Generated Sound") plt.show() print("Звук, похожий на пение птиц, был успешно сгенерирован и сохранен.")

Код создан с использованием белого шума и полосовых фильтров. В начале импортируются необходимые библиотеки: numpy для численных вычислений, matplotlib для визуализации и scipy для обработки сигналов, а также сохранения аудиофайлов. Устанавливаются параметры, такие как частота дискретизации, равная 44100 Гц, и длительность звучания, равная 5 секундам. Также определяются центральные частоты для двух фильтров: первая частота составляет 880 Гц, а вторая — 7 раз выше первой. Для фильтров задаются значения относительной ширины полосы и порядок фильтра. Затем генерируется белый шум с равномерным распределением, который создаётся для двух каналов. После этого создаются два полосовых фильтра с помощью функции signal.butter, применяемых к сгенерированному белому шуму, что позволяет получить два разных аудиосигнала. В коде также создаётся сигмоидальная функция, которая плавно изменяет соотношение между двумя сигналами на протяжении времени. Эти два отфильтрованных сигнала комбинируются с изменяющимся во времени коэффициентом, чтобы добиться желаемого эффекта звучания. Получившийся звук сохраняется в формате WAV в файл с именем LR4.wav.

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

Рисунок 1 - Амплитудный спектр

Рисунок 2 - Сигнал в временной области

Вывод

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

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

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

Ссылка на аудиофайлы: https://drive.google.com/drive/folders/1-T1Y_1foDcRzw5ROi7un1AuykKyI-kU1?usp=drive_link

Список используемых источников

1. Жаринов О.О. Учебно-методические материалы к выполнению лабораторной работы №4 по дисциплине “Мультимедиа-технологии “. гр. Z0411. ГУАП, 2025. – 9 с. (Интернет-ресурс) // URL: https://pro.guap.ru/inside/student/tasks/20ecafed5f509289df455ec44add2fb9/download

2. Цвета шума. Википедия. // URL: https://ru.wikipedia.org/wiki/Цвета_шума

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

4. Алгоритм цифровой фильтрации в частотной и временной областях. // URL: http://stu.sernam.ru/book_g_rts.php?id=137

Соседние файлы в предмете Мультимедиа технологии