
Z9411_Чурилов_ММ_ЛР1
.docxМИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное образовательное учреждение высшего образования
«САНКТ-ПЕТЕРБУРГСКИЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»
КАФЕДРА № 41
ЛАБОРАТОРНАЯ РАБОТА
ЗАЩИЩЕНА С ОЦЕНКОЙ
РУКОВОДИТЕЛЬ
доц., канд. техн. наук, доц. |
|
|
|
О. О. Жаринов |
должность, уч. степень, звание |
|
подпись, дата |
|
инициалы, фамилия |
ОТЧЁТ О ЛАБОРАТОРНОЙ РАБОТЕ №1 |
Основы моделирования аудиосигналов средствами MATLAB |
по курсу: Мультимедиа технологии |
|
|
РАБОТУ ВЫПОЛНИЛ
СТУДЕНТ ГР. № |
Z9411 |
|
|
|
А. С. Чурилов |
|
|
|
подпись, дата |
|
инициалы, фамилия |
Санкт-Петербург
2024
Цель работы
Получить представление о принципах формирования аудиосигналов и приобрести навыки работы со звуковыми файлами с использованием MATLAB.
Вариант задания:
Вариант №4.
3 синусоидальных импульса, длительностью 0.5 сек каждый, с одинаковой частотой и с нулевыми паузами между ними, равными по длительности 0.5 сек, синхронно в обоих каналах.
Ход работы:
Напишем, отладим и запустим на выполнение MATLAB-программу, осуществляющую формирование модельного аудиофайла с заданными по варианту свойствами. Код программы приведён в листинге 1.
Листинг 1 – Формирования модельного аудиофайла
Fd = 44100; % Стандартная частота дискретизации, Гц Td = 1./Fd; % Период дискретизации (обратен частоте) Ts = 3; % Длительность формируемого сигнала, сек N = Fd*Ts; % Количество дискретных отсчетов f = 500; % Частота, Гц A = 30; % Амплитуды компонентов, % A = (A/100) * 32768; y=zeros(N,2);
for n=1:N nt = 2*pi*n*Td; if (n<N/3) y(n,1) = A*sin(f*nt); end
if ((n>=N/6) && (n<N/3)) y(n,1) = 0; end
if (n>=N/3) y(n,1) = A*sin(f*nt); end
if ((n>=3*N/6) && (n<2*N/3)) y(n,1) = 0; end
if (n>=2*N/3) y(n,1) = A*sin(f*nt); end
if (n>=5*N/6) y(n,1) = 0; end
y(n,2) = y(n,1); % Второй "стерео" канал звука end
output_signal = int16(y); % Разрядность данных sound(y,Fd); % Проигрывает смоделированный cигнал audiowrite('C:\Users\sanyc\OneDrive\Документы\MATLAB\audio.wav', output_signal, Fd); |
Напишем, отладим и запустим на выполнение MATLAB-программу, осуществляющую считывание данных сформированного ранее модельного аудиофайла и визуализацию звуковой волны и амплитудного спектра. Код программы приведён в листинге 2.
Листинг 2 – Считывание и визуализация данных
clc, clear, close all % Очистка памяти [input_signal,Fd] = audioread('audio.wav'); % Считывает звуковой файл N = length(input_signal); % Длина данных аудиофайла t = 1:1:N;
% Строим график сигнала целиком для одного канала plot(t./Fd,input_signal(:,1)) xlabel('Time'), ylabel('Audio Signal')
% строим график фрагмента сигнала 0.2с в окрестности второй секунды дорожки
time_center= 2*Fd; start = time_center - 0.1*Fd; stop = time_center + 0.1*Fd; figure(2) subplot(2,1,1); plot(input_signal((start:stop),1)); subplot(2,1,2); plot(input_signal((start:stop),2));
%вычисляем спектр сигналав обоих каналах: Spectr_input(:,1)=fft(input_signal(:,1)); %левый канал Spectr_input(:,2)=fft(input_signal(:,2)); %правый канал
eps= 0.000001; % Малая константа, чтобы избежать lg(0) y=20*log10(abs(Spectr_input(:,1))+eps); % Преобразовать в дБ f=[0:(Fd/N):Fd/2]; % Перевести абсциссу графика Гц
% Строим график амплитудного спектра входного сигнала в левом канале y=y(1:length(f)); figure(3), semilogx(f,y); grid; axis([1 Fd/2 -100 100]) xlabel('Частота (Гц)'); ylabel('Уровень (дБ)'); title('Амплитудный спектр исходного аудио сигнала'); |
Визуализация сигнала показана на рисунке 1. Визуализация амплитудного спектра приведена на рисунке 2. График фрагмента сигнала в обоих каналах показан на рисунке 3.
Рисунок 1. Визуализация сигнала
Рисунок 2. Визуализация амплитудного спектра
Рисунок 3. График фрагмента сигнала в обоих каналах
ВЫВОД
В ходе выполнения данной лабораторной работы я ознакомился с основными принципами работы с аудиоконтентом в MATLAB, включая создание, обработку и анализ аудиосигналов.
В данной работе был создал модельный аудиофайл, состоящий из 3 синусоидальных импульсов, длительностью 0.5 сек каждый, с одинаковой частотой и с нулевыми паузами между ними, равными по длительности 0.5 сек, синхронно в обоих каналах.
Также было осуществлено считывание данных из сформированного аудиофайла и его анализ, включающий в себя визуализацию волновой формы и амплитудного спектра сигнала.
В процессе работы над лабораторной я использовал такие инструменты MATLAB, как функции audioread, audiowrite, fft, а также функции для графического отображения результатов plot. Это позволило мне получить знания по обработке и анализу аудиосигналов, а также получить основы программирования на языке MATLAB.
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ
Разработка программы для анализа звуковых файлов пакете MATLAB. // URL: https://gigabaza.ru/doc/106583.html
Дьяконов В. MATLAB 8.0 (R2012b): создание, обработка и фильтрация сигналов, Signal Processing Toolbox. // Компоненты и технологии, 2013. №11, с. 151-161.
Генерация сигналов в пакете Signal Processing. // URL: https://megapredmet.ru/1-71591.html