Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет_лаба2.docx
Скачиваний:
0
Добавлен:
25.04.2024
Размер:
356.73 Кб
Скачать

ГУАП

КАФЕДРА 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 – АЧХ после ФВЧ

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

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

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