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

LR1 / Z9411_КафкаРС_ММТ_ЛР1

.pdf
Скачиваний:
1
Добавлен:
18.06.2024
Размер:
274.72 Кб
Скачать

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ федеральное государственное автономное образовательное учреждение высшего образования

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

ИНСТИТУТ НЕПРЕРЫВНОГО И ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ

КАФЕДРА 41

ОЦЕНКА

 

 

 

 

ПРЕПОДАВАТЕЛЬ

 

 

 

 

 

доц., канд. техн. наук, доц.

 

 

 

О. О. Жаринов

 

должность, уч. степень, звание

 

подпись, дата

 

инициалы, фамилия

ЛАБОРАТОРНАЯ РАБОТА №1

ОСНОВЫ МОДЕЛИРОВАНИЯ АУДИОСИГНАЛОВ СРЕДСТВАМИ MATLAB

по дисциплине: Мультимедиа технологии

РАБОТУ ВЫПОЛНИЛ

 

 

 

 

 

СТУДЕНТ гр. №

Z9411

 

 

 

Р. С. Кафка

 

номер группы

подпись, дата

 

инициалы, фамилия

 

 

 

 

Студенческий билет №

2019/3603

 

 

 

 

 

 

 

 

 

Шифр ИНДО

Санкт-Петербург 2024

Цель работы: получить представление о принципах формирования

аудиосигналов и приобрести навыки работы со звуковыми файлами с

использованием MATLAB.

Краткие теоретические сведения о задачах обработки мультимедиа

аудиоконтента

Аудиоконтент является ключевой составляющей мультимедиа, представляющей собой оцифрованный звук, сохраненный в файлах в одном из стандартных форматов кодирования. Средства программного обеспечения, такие как MATLAB, обеспечивают возможности для считывания и записи аудиоданных в популярных форматах, таких как WAV и MP3. Основные операции над аудиоданными включают чтение из файла, модификацию аудиосигналов, такие как изменение громкости, и запись обработанных аудиосигналов обратно в файл. Преобразование данных из целочисленного формата в формат с плавающей запятой и обратно позволяет улучшить точность обработки. Важной частью работы с аудиоконтентом является возможность создания модельных аудиофайлов с заданными свойствами, что облегчает тестирование различных процедур обработки звука. Методы моделирования могут включать генерацию звуковых сигналов с различными частотами и амплитудами, а также изменение этих параметров во времени для имитации реальных аудиосценариев.

Индивидуальный вариант

Вариант №8: Синусоидальный сигнал, громкость которого линейно увеличивается от нуля в начале записи до максимума в конце записи в левом канале и одновременно уменьшается от максимума до нуля в правом канале. Частота сигнала не изменяется на всем протяжении записи.

2

Ход работы

1.Текст программы формирования модельного аудиофайла с описанием примененных программных решений.

Для формирования модельного аудиофайла, согласно варианту, был написан код, представленный в листинге 1.

Листинг 1 – Формирования модельного аудиофайла

% Параметры аудиосигнала

fd = 44100; % Частота дискретизации, Гц duration = 5; % Длительность сигнала, секунды

f_signal = 1000; % Частота синусоидального сигнала, Гц

% Генерация временного массива

t = linspace(0, duration, fd * duration);

%Формирование синусоидального сигнала signal = sin(2 * pi * f_signal * t);

%Формирование линейно изменяющихся амплитуд для каналов amplitude_left = linspace(0, 1, length(t)); amplitude_right = linspace(1, 0, length(t));

%Создание стерео сигнала

stereo_signal = zeros(length(t), 2);

stereo_signal(:, 1) = signal .* amplitude_left; % Левый канал stereo_signal(:, 2) = signal .* amplitude_right; % Правый канал

% Запись аудиофайла audiowrite('model_audio_signal.wav', stereo_signal, fd);

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

Определение параметров аудиосигнала:

Частота дискретизации (fd) установлена в 44100 Гц, что является стандартной частотой для CD качества и обеспечивает высокое качество звука.

Длительность сигнала (duration) задана равной 5 секундам, что позволяет создать достаточно длительный аудиофрагмент для демонстрации изменения амплитуды.

3

Частота синусоидального сигнала (f_signal) установлена в 1000

Гц, представляя среднечастотный звук.

Генерация временного массива:

Временной массив t создается с помощью функции linspace,

которая равномерно распределяет временные точки от 0 до заданной длительности сигнала, что соответствует общему количеству отсчетов, определенному произведением частоты дискретизации и длительности сигнала.

Формирование синусоидального сигнала:

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

Модификация амплитуд для создания стереоэффекта:

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

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

Формирование и запись стерео аудиофайла:

Стерео сигнал создается объединением модифицированных синусоидальных сигналов для левого и правого каналов в двухканальный массив.

Используя функцию audiowrite, сформированный стерео сигнал записывается в аудиофайл формата WAV, что позволяет

4

сохранить результат в виде стандартного аудиофайла,

совместимого с большинством аудиопроигрывателей.

После выполнения программы в рабочей директории появится файл model_audio_signal.wav, который содержит сгенерированный аудиосигнал согласно заданным параметрам. Результат представлен на рисунке 1.

Рисунок 1 – Созданный файл

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

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

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

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

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

%Временная ось для визуализации волновой формы t = (0:length(signal)-1)/fs;

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

figure;

subplot(2,1,1); plot(t, signal); xlabel('Время (с)');

5

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): для визуализации волновой формы создается временная ось, исходя из длины сигнала и частоты дискретизации. Это позволяет корректно отображать амплитуды сигнала в зависимости от времени.

6

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

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

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

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

преобразует сигнал из временного представления в частотное, что позволяет анализировать составляющие частоты звука.

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

формируется соответствующий массив частот (f).

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

Дополнительные настройки визуализации

xlabel, ylabel, title: эти функции используются для добавления подписей к осям и заголовков к графикам, что делает визуализацию более понятной.

xlim: функция применяется для ограничения диапазона отображаемых частот на графике амплитудного спектра, улучшая тем самым его читаемость.

Эта программа сначала считывает аудиоданные из файла, затем визуализирует волновую форму сигнала, и во второй части скрипта вычисляет и отображает амплитудный спектр сигнала, используя быстрое преобразование Фурье

7

(FFT). Визуализация амплитудного спектра помогает анализировать частотные составляющие аудиосигнала. Графики представлены на рисунке 2.

Рисунок 2 – Графики, визуализирующий свойства сформированного модельного аудиосигнала

8

ВЫВОД

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

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

MATLAB, операциях с векторами и матрицами, а также о записи аудиофайлов.

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

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

MATLAB, как функции audioread, audiowrite, fft, а также функции для графического отображения результатов plot. Это позволило мне не только закрепить теоретические знания по обработке и анализу аудиосигналов, но и развить практические навыки программирования на языке MATLAB.

9

СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ

Разработка программы для анализа звуковых файлов пакете MATLAB.

// URL: https://gigabaza.ru/doc/106583.html (дата обращения: 03.04.2024)

Дьяконов В. MATLAB 8.0 (R2012b): создание, обработка и фильтрация сигналов, Signal Processing Toolbox. // Компоненты и технологии, 2013. №11, с. 151-161.

Генерация сигналов в пакете Signal Processing. // URL: https://megapredmet.ru/1-71591.html (дата обращения: 03.04.2024)

10

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