Добавил:
t.me Инфо для ГУАП студентов от меня: https://kafaka.notion.site/99e6d9b70ca74f7baef3daea17839e5a Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Z9411_Чурилов_ММ_ЛР1

.docx
Скачиваний:
2
Добавлен:
10.11.2024
Размер:
158.56 Кб
Скачать

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

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

«САНКТ-ПЕТЕРБУРГСКИЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»

КАФЕДРА № 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