Добавил:
t.me Инфо для ГУАП студентов от меня: https://kafaka.notion.site/99e6d9b70ca74f7baef3daea17839e5a Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LR1 / Z9411_КафкаРС_ММТ_ЛР1.docx
Скачиваний:
6
Добавлен:
18.06.2024
Размер:
111.84 Кб
Скачать
  1. Текст программы считывание данных сформированного модельного аудиофайла и визуализацию его свойств с описанием примененных программных решений.

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

Листинг 2 – Считывание и визуализация данных модельного аудиофайла

% Считывание данных аудиофайла

[signal, fs] = audioread('model_audio_signal.wav');

% Временная ось для визуализации волновой формы

t = (0:length(signal)-1)/fs;

% Визуализация волновой формы

figure;

subplot(2,1,1);

plot(t, signal);

xlabel('Время (с)');

ylabel('Амплитуда');

title('Волновая форма');

% Вычисление и визуализация амплитудного спектра

% Переход к одному каналу, если сигнал стерео

if size(signal,2) == 2

signal = signal(:,1);

end

% Вычисление FFT

Y = fft(signal);

L = length(signal);

P2 = abs(Y/L);

P1 = P2(1:L/2+1);

P1(2:end-1) = 2*P1(2:end-1);

f = fs*(0:(L/2))/L;

% Визуализация амплитудного спектра

subplot(2,1,2);

plot(f, P1);

xlabel('Частота (Гц)');

ylabel('|P1(f)|');

title('Амплитудный спектр');

% Дополнительная настройка для улучшения визуализации

xlim([0 2000]); % Ограничение оси частот для лучшей визуализации

Были применены следующие программные решения:

Считывание данных аудиофайла

  • audioread: функция используется для считывания аудиоданных из файла. Возвращает аудиосигнал в переменную signal и частоту дискретизации в переменную fs. Это первый шаг, необходимый для работы с аудио в MATLAB.

Визуализация волновой формы

  • Временная ось (t): для визуализации волновой формы создается временная ось, исходя из длины сигнала и частоты дискретизации. Это позволяет корректно отображать амплитуды сигнала в зависимости от времени.

  • plot: функция используется для построения графика волновой формы аудиосигнала. Визуализация волновой формы дает представление о амплитудных характеристиках звука во времени.

Вычисление и визуализация амплитудного спектра

  • Переход к одному каналу: если сигнал стерео, выбирается один канал для упрощения анализа спектра.

  • Быстрое преобразование Фурье (fft): функция fft применяется к аудиосигналу для получения его амплитудного спектра. FFT преобразует сигнал из временного представления в частотное, что позволяет анализировать составляющие частоты звука.

  • Обработка результатов FFT: полученный спектр обрабатывается для корректной визуализации: вычисляется односторонний спектр (P1) и формируется соответствующий массив частот (f).

  • plot для спектра: с помощью функции plot визуализируется амплитудный спектр, показывая зависимость амплитуды звуковых компонент от частоты.

Соседние файлы в папке LR1