ГУАП
КАФЕДРА 41
ОТЧЕТ ЗАЩИЩЕН С ОЦЕНКОЙ
ПРЕПОДАВАТЕЛЬ
доцент, канд. тех. наук, доцент |
|
|
|
О. О. Жаринов |
должность, уч. степень, звание |
|
подпись, дата |
|
инициалы, фамилия |
ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ № 2 |
ОСНОВЫ ОБРАБОТКИ АУДИОСИГНАЛОВ СРЕДСТВАМИ PYTHON. МЕТОД ФИЛЬТРАЦИИ В СПЕКТРАЛЬНОМ ПРОСТРАНСТВЕ |
по курсу: Мультимедиа технологии |
|
|
РАБОТУ ВЫПОЛНИЛ
СТУДЕНТ ГР. № |
|
|
|
|
|
|
|
|
подпись, дата |
|
инициалы, фамилия |
Санкт-Петербург 2024
Цель работы
Изучить основы обработки аудиосигналов на примере фильтрации сигналов в спектральном пространстве.
Вариант задания
Номер варианта: №8
Тип фильтра: фильтр высоких частот
Граничные частоты полосы пропускания фильтра:
Теоретические сведения
Мультимедиа аудиоконтент представляет собой разновидность медиаконтента, основанную на звуковых элементах, включающих подкасты, аудиорекламу, аудиокниги, голосовые сообщения и другие форматы, где главным средством коммуникации является звук. В качестве основных задач по обработке мультимедиа аудиоконтента обычно выделяют следующие:
Редактирование аудиофайлов – это процесс изменения звуковых файлов, например, удаление шумов, вырезание фрагментов, добавление эффектов и т.д.;
Воспроизведение аудиофайлов – процесс проигрывания звуковых файлов на разных устройствах;
Визуализация аудиофайлов – возможность визуально оценить звук, записанный внутри файла, а также узнать АЧХ звука;
Транскодирование аудиофайлов – процесс преобразования аудиофайлов из одного формата в другой;
И т.д.
Методы фильтрации аудиосигналов используются для улучшения качества звука и удаления нежелательных шумов. Фильтрация аудиосигналов может быть выполнена с помощью различных инструментов, таких как ФНЧ и ФВЧ, ПФ и РФ, эквалайзеры, компрессоры, лимитеры и т.д. Фильтрация аудиосигналов позволяет улучшить качество звука, удалить шумы и искажения, а также настроить звук под определённые требования.
Фильтрация высоких частот
Теперь перейдем к основным частям лабораторной работы. Сама работа состоит из двух частей, и в первой части необходимо написать программу, осуществляющую фильтрацию высоких частот из аудиофайла. Данный фильтр оставляет неизменными компоненты с частотами, начиная от указанной граничной, более низкие частоты фильтр подавляет. В качестве аудиодорожки был выбран саундтрек, играющий по радио в игре Portal [2]. Список используемых переменных представлен в таблице 1, а сам код программы – в листинге 1. Также, исходный код программы вместе со всеми аудиофайлами находится в репозитории на GitHub [1].
Таблица 1. Список используемых переменных
Название |
Тип |
Описание |
Sample_rate |
Целочисленный |
Частота дискретизации звука |
Signal |
Двумерный массив |
Исходный двухканальный звук |
Min_freq |
Целочисленный |
Граничная частота фильтрации |
N_min_freq |
Целочисленный |
Индекс граничной частоты фильтра |
Fft_spectrum_input |
Двумерный массив |
Спектр входного сигнала |
Fft_spectrum_output |
Двумерный массив |
Спектр выходного сигнала |
Output_signal |
Двумерный массив |
Обратно преобразованный звук |
Листинг 1. Реализация фильтра высоких частот на Python
def high_pass_filter(min_freq: int, signal, sample_rate): # Переводим Гц в индексы массива n_min_freq = int(len(signal) * min_freq/sample_rate) # Создаем спектр входного и выходного сигнала fft_spectrum_input = np.fft.fft2(signal) fft_spectrum_output = np.zeros_like(fft_spectrum_input) + 10**(-10) # Реализация ФВЧ for i in range(1, n_min_freq): fft_spectrum_output[i, :] = fft_spectrum_input[i, :] fft_spectrum_output[len(signal)-i, :] = fft_spectrum_input[len(signal)-i, :] fft_spectrum_output[0, :] = fft_spectrum_input[0, :] fft_spectrum_output = fft_spectrum_input - fft_spectrum_output # Обратное преобразование в звук output_signal = np.real(np.fft.ifft2(fft_spectrum_output)) return output_signal
# Считываем файл и создаем АЧХ signal, sample_rate = sf.read("2/input_audio.wav") amplitude_frequency_response(signal[:,0], sample_rate, '(исходный)') # Пропускаем сигнал через ФВЧ и создаём АЧХ signal = high_pass_filter(800, signal, sample_rate) amplitude_frequency_response(signal[:,0], sample_rate, '(после ФВЧ)') |
Далее, для того чтобы убедиться в том, что данная программа подавляет низкие частоты, при этом полностью не трогает верхние, необходимо провести эксперимент с выбранной аудиодорожкой. Сперва, на рисунке 1 представлен исходный амплитудно-частотный спектр аудиофайла.
Рисунок 1 – Исходная АЧХ аудиофайла
Из данного спектра видно, что в данной звуковой дорожке преобладают низкие и средние частоты. Далее, по варианту задания необходимо пропустить данный файл через ФВЧ с пороговым значением частоты в 800 Гц. Итоговый частотный спектр представлен на рисунке 2.
Рисунок 2 – АЧХ после ФВЧ
Также, необходимо дать словесное описание различий между исходным и результирующим аудиофайлом. Безусловно различие в звучании будет зависеть от качества звуковоспроизводящей аппаратуры. И может быть такая ситуация, при которой разница в звучании данных будет настолько незначительная, что будет практически незаметна.
Однако в данном случае наушники, через которые воспроизводились данные два звуковых файла позволяют заметить разницу в звучании. При прослушивании второго файла складывалось впечатление, что он воспроизводился либо во время телефонного разговора, либо на очень плохой аппаратуре (например колонки в лифтах). Таким образом, ощущалась сильная нехватка «басов».