Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Основы обработки аудиосигналов средствами MATLAB

Автор:   •  Январь 22, 2023  •  Лабораторная работа  •  638 Слов (3 Страниц)  •  266 Просмотры

Страница 1 из 3

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

Основы обработки аудиосигналов средствами MATLAB

Вариант 6


Содержание

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

Задание на работу        3

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

Выводы.        10


Цель работы.

Получить навыки формирования аудиосигналов средствами MATLAB. Изучить основы обработки аудиосигналов на примере методов фильтрации сигналов в спектральном пространстве.

Задание на работу

Задание на лабораторную работу предполагает реализацию метода Фурье-фильтрации аудиофайла. Сначала следует создать модельный аудиосигнал, на котором нужно будет протестировать программу фильтрации. Затем следует осуществить фильтрацию реальной аудиозаписи. Аудиозапись каждый обучающийся выбирает самостоятельно.

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

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

Исходные данные варианта:

Тип фильтра: режекторный фильтр

Граничные частоты полосы пропускания фильтра fниж = 150 Гц, fверхн = 500 Гц,

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

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

Листинг программы

clc; clear all; close all;

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

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

Ts = 5; % задаем длительность формируемого сигнала в секундах

N = Fd*Ts; %количество дискретных отсчетов

f1=80; f2=400; f3=5000; % частоты компонентов

A1=30; A2=30; A3=30; % амплитуды компонентов в процентах от максимума

A1=(A1/100)*32768; A2=(A2/100)*32768; A3=(A3/100)*32768;

y=zeros(N,2);

for n=1:N

 nt = 2*pi*n*Td;

 if (n<N/3) y(n,1) = A1*sin(f1*nt); end

 if ((n>=N/3) && (n<2*N/3)) y(n,1) = A2*sin(f2*nt); end

 if (n>=2*N/3) y(n,1) = A3*sin(f3*nt); end

 y(n,2) = y(n,1); % формируем второй "стерео" канал звука

end

output_signal = int16(y); %задание разрядности данных

sound(y,Fd); %проигрываем смоделированный cигнал

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

audiowrite('D:/Temp/Audio_Lab1.wav', output_signal, Fd)

Результат работы – звуковой файл из трех сигналов

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

Листинг программы

clc, clear, close all %очистка памяти

[input_signal,Fd] = audioread('D:/Temp/Audio_Lab1.wav');%звуковой файл

sound(input_signal,Fd); % проигрываем файл

N = length(input_signal);%Получить длину данных аудиофайла

t = 1:1:N;

plot(t./Fd,input_signal) % строим график сигнала

title('График сигнала');legend('Audio');

xlabel('Time'), ylabel('Audio Signal')

Spectr_input=fft(input_signal); %вычисляем спектр сигнала

y=20*log(abs(Spectr_input))/log(10); %Преобразовать в дБ

f=[0:(Fd/N):Fd/2]; %Перевести абсциссу графика в Гц

%строим график амплитудного спектра входного сигнала

y=y(1:length(f));

figure(2),

semilogx(f,y); grid; axis([1 Fd/2 -100 100])

xlabel('Частота (Гц)'); ylabel('Уровень (дБ)');

title('Амплитудный спектр исходного аудиосигнала');legend('Audio');

output_signal=zeros(N,2); % создаем пустой массив для последующей записи вых. сигнала

...

Скачать:   txt (9.9 Kb)   pdf (360.6 Kb)   docx (184.7 Kb)  
Продолжить читать еще 2 страниц(ы) »
Доступно только на Essays.club