Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Теория / мт__МТ__лаб01

.pdf
Скачиваний:
0
Добавлен:
25.04.2024
Размер:
425.72 Кб
Скачать

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

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

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

Краткие теоретические сведения

Аудиоконтент является одной из составляющих мультимедиа. Оцифрованный звук сохраняют в файлах, данные в котором представлены в одном из стандартных форматов кодирования звука. Средства MATLAB позволяют считывать и записывать аудиоданные, закодированные в форматах *.wav и *.mp3, посредством стандартных команд:

[data,Fd] = audioread('имя файла на диске ПК'),

и

audiowrite('имя файла на диске ПК', data, Fd)

где data представляет собой массив аудиоданных (для записей, произведенных в режиме “моно”, массив будет одномерным, для стереозвука - двумерным), параметр Fd определяет частоту дискретизации. Для музыкальных файлов обычно используется стандартное значение частоты дискретизации 44100 Гц, хотя, при записи речевых сигналов нередко используется меньшее значение Fd=8000 Гц.

Врезультате выполнения функции audioread в переменную data будет перемещены все значения оцифрованного звука, хранящиеся в указанном файле. Строки матрицы data соответствуют отсчётам сигнала, столбцы – каналам, которых в звуковом файле может быть несколько (для моно – один, для стерео – два, для квадрофонических записей – четыре, и т.д.).

Взвуковом файле каждый отдельно взятый отсчёт оцифрованного сигнала (иногда вместо термина “отсчёт” не очень корректно используется термин “сэмпл”, являющийся англицизмом от sample) представлен целым числом со знаком, лежащими в диапазоне либо от минус 128 до +127 (8 бит на отсчёт, при использовании формата int8, используется довольно редко, в основном для записей речевых сигналов), либо от минус 32768 до +32767 (16 бит на отсчёт, при использовании формата int16). Часто для улучшения точности обработки после считывания исходных данных из файла их дополнительно преобразуют в формат чисел с плавающей запятой (double), а перед записью в файл данных, полученных после обработки, необходимо производить преобразование из формата double в целочисленный формат.

1

© Жаринов О.О. Учебно-методические материалы к выполнению лабораторной работы №1 по дисциплине “Мультимедиа-технологии “, испр. 21.02.2024. гр.4016,4017. ГУАП, 2024. – 7 с.

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

Текст простейшей Matlab-программы, в которой осуществляется открытие файла данных, небольшая модификация его содержимого и запись измененного звука в файл, представлен на листинге 1. В данном случае предполагается, что звук записан в стереорежиме, и после обработки громкость звука в левом канале будет вдвое ниже, чем на исходной записи, а в правом канале – вдвое выше. При этом, если исходная запись была достаточно громкой, то в правом канале может образоваться эффект “перегруза”, когда значения отдельных отсчетов выйдут за пределы диапазона допустимых значений. На слух это будет восприниматься как “хрипящий” звук.

Листинг 1 – Простейшая программа обработки аудиоданных

[input_data,Fd] = audioread('D:/input_audio.wav'), processed_data(:,1) = 0.5 * input_data(:,1) processed_data(:,2) = 2.0 * input_data(:,2) output_data = int16(processed_data) audiowrite('D:/output_audio.wav', output_data, Fd)

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

На Листинге 2 представлен текст mat-файла, который позволяет осуществить формирование тестового модельного аудиофайла. В данном случае модельный звуковой файл содержит последовательность из трех сменяющих друг друга синусоид с разными частотами: в низкочастотном, среднечастотном и высокочастотном звуковом диапазоне.

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

При необходимости изменения амплитуды и/или частоты гармонических компонентов на протяжении записи формируемого модельного аудиосигнала, следует включить соответствующие дополнения в программу. Для формирования сигнала с линейно меняющейся частотой в Matlab имеется встроенная функция chirp. Амплитудные параметры формируемого сигнала можно изменять в отдельном цикле, уже после формирования компонентов сигнала с желаемыми частотными свойствами.

2

© Жаринов О.О. Учебно-методические материалы к выполнению лабораторной работы №1 по дисциплине “Мультимедиа-технологии “, испр. 21.02.2024. гр.4016,4017. ГУАП, 2024. – 7 с.

Листинг 2 – Программа создания простейшего модельного звукового сигнала

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

Ts = 6; % задаем длительность формируемого сигнала в секундах N = Fd*Ts; %количество дискретных отсчетов

f1=100; f2=1000; 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:/audio_model.wav', output_signal, Fd)

Текст программы, которая формирует тональный сигнал, громкость которого изменяется по закону (0.5*(1-cos(2πt)))^2, представлен на листинге 3. Полезно запустить данную программу на выполнение и прослушать полученный при помощи нее аудиофайл.

Листинг 3 – Программа создания тонального сигнала с изменяющейся во времени амплитудой

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

Ts = 6; % задаем длительность формируемого сигнала в секундах N = Fd*Ts; %количество дискретных отсчетов

f_tone=440; % частота тона в Гц y=zeros(N,2);

for n=1:N

nt = 2*pi*n*Td;

y(n,1) = sin(f_tone*nt);

end

%меняем амплитуду в отдельном цикле: for n=1:N

nt = 2*pi*n*Td;

y(n,1) = y(n,1)* (0.5*(1 - cos(0.5*nt)))^2;

end

y(:,2) = y(:,1); %правый канал – копия левого

output_signal = int16(32767*y); %задание разрядности данных sound(y,Fd); %проигрываем смоделированный cигнал

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

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

3

© Жаринов О.О. Учебно-методические материалы к выполнению лабораторной работы №1 по дисциплине “Мультимедиа-технологии “, испр. 21.02.2024. гр.4016,4017. ГУАП, 2024. – 7 с.

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

В программе, текст которой приведен на листинге 4, производится открытие модельного аудиофайла и построение графиков всего сигнала и его выбранного отрезка, на котором скачкообразно изменяется частота. Кроме того, в программе осуществляется вычисление спектра аудиосигнала, и строится его график. График спектра, для вычисления которого используется стандартная функция MATLAB fft (fast fourier transform – быстрое преобразование Фурье), позволяет получать важную информацию о частотных свойствах сигнала и в целом проконтролировать корректность задания параметров тональных компонентов сигнала.

Листинг 4 – Программа открытия и визуализации данных аудиофайла

clc, clear, close all %очистка памяти [input_signal,Fd] = audioread('D:/audio_model.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('Амплитудный спектр исходного аудиосигнала');

4

© Жаринов О.О. Учебно-методические материалы к выполнению лабораторной работы №1 по дисциплине “Мультимедиа-технологии “, испр. 21.02.2024. гр.4016,4017. ГУАП, 2024. – 7 с.

Варианты заданий

Задание на лабораторную работу предполагает написание и запуск на выполнения двух программ: первая осуществляет формирование модельного аудиосигнала с заданными свойствами и запись его в файл в формате wav или mp3 (по выбору студента), вторая производит открытие полученного модельного аудиофайла, визуализацию содержащегося в нем сигнала, а также вычислением и визуализацию его амплитудного спектра. Длительность короткого визуализируемого фрагмента звуковой волны задается студентом так, чтобы на графике была отчетливо видна структура модельного сигнала.

Данные вариантов заданий представлены в таблице. Не исключено, что для выполнения некоторых заданий придется изучить дополнительные справочные материалы, обратившись к сети Интернет. Параметры аудиосигналов, которые не указаны явно в некоторых вариантах заданий (например, длительность полученной записи, частоты тональных компонентов аудиосигнала), студент выбирает самостоятельно.

Порядок выполнения работы

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

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

3.Написать, отладить и запустить на выполнение MATLAB-программу, осуществляющую формирование модельного аудиофайла с заданными по варианту свойствами.

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

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

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

5

© Жаринов О.О. Учебно-методические материалы к выполнению лабораторной работы №1 по дисциплине “Мультимедиа-технологии “, испр. 21.02.2024. гр.4016,4017. ГУАП, 2024. – 7 с.

 

Таблица – Варианты заданий на моделирование аудиосигналов

Вар.

Свойства модельного аудиосигнала

1

3 синусоидальных волны существующих одновременно на протяжении всей

 

записи, синхронно в обоих каналах

2

Сигнал с линейно меняющейся частотой, от 400 Гц в начале записи до 6000

 

Гц в конце записи, синхронно в обоих каналах

3

Сигнал типа “меандр” с частотой 400 Гц, синхронно в обоих каналах

4

3 синусоидальных импульса, длительностью 0.5 сек каждый, с одинаковой

 

частотой и с нулевыми паузами между ними, равными по длительности 0.5

 

сек, синхронно в обоих каналах

5

3 синусоидальных импульса, длительностью 0.5 сек каждый, с различными

 

частотами и с нулевыми паузами между ними, равными по длительности 0.5

 

сек, синхронно в обоих каналах

6

Тональный сигнал в первой половине записи в левом канале и тональный

 

сигнал с той же частотой во второй половине записи в правом канале

7

Синусоидальный сигнал, громкость которого линейно увеличивается от

 

нуля в начале записи до максимума в конце записи, одновременно в обоих

 

каналах. Частота сигнала не изменяется на всем протяжении записи

8

Синусоидальный сигнал, громкость которого линейно увеличивается от

 

нуля в начале записи до максимума в конце записи в левом канале и

 

одновременно уменьшается от максимума до нуля в правом канале. Частота

 

сигнала не изменяется на всем протяжении записи.

9

3 синусоидальных импульса, длительностью 0.5 сек каждый, с одинаковой

 

частотой и с нулевыми паузами между ними, равными по длительности 0.5

 

сек, синхронно в обоих каналах

10

3 синусоидальных импульса, длительностью 0.5 сек каждый, с одинаковыми

 

частотами и с нулевыми паузами между ними в левом канале, в правом

 

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

 

во время каждого импульса в левом канале.

11

Сигнал типа “меандр” с частотой 400 Гц, громкость которого линейно

 

растет от нуля до максимума в середине записи. а затем вновь начинает

 

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

12

Сигнал частотой 1000 Гц, амплитуда которого меняется по гармоническому

 

закону с частотой 1 Гц, синхронно в обоих каналах на протяжении всей

 

записи

13

Сигнал частотой 1000 Гц, амплитуда которого меняется по

 

синусоидальному закону с частотой 1 Гц в левом канале и по

 

косинусоидальному закону с частотой 1Гц в правом канале

14

Сигнал типа “меандр” с частотой 400 Гц, со сдвигом на четверть периода в

 

одном канале по отношению к другому

15

Синусоидальный сигнал, громкость которого линейно увеличивается от

 

нуля в начале записи до максимума в конце записи, одновременно в обоих

 

каналах. Частота сигнала также увеличивается от 400 Гц в начале записи до

 

6000 Гц в конце записи, синхронно в обоих каналах

6

© Жаринов О.О. Учебно-методические материалы к выполнению лабораторной работы №1 по дисциплине “Мультимедиа-технологии “, испр. 21.02.2024. гр.4016,4017. ГУАП, 2024. – 7 с.

Содержание отчета

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

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

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

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

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

6.Выводы, в которых отражены особенности изученных методов и свойства полученных результатов.

7.Список используемых источников, желательно не только из списка рекомендуемой литературы, приветствуется использование Интернетресурсов; на все источники в тексте отчета должны быть ссылки.

Контрольные вопросы

1.Какова ожидаемая форма амплитудного спектра аудиосигнала, который представляет собой последовательность тональных импульсов (“писков”) на частоте 1000 Гц?

2.Есть два аудиосигнала. В первом сначала идет тональный сигнал на частоте 1000 Гц. а затем на частоте 2000 Гц, в другом их последовательность меняется местами. Будут ли различаться их амплитудные спектры? если да, то как именно, если нет, то почему?

3.Что такое спектрограмма и каковы ее возможности по анализу свойств аудиосигналов?

4.Что произойдет, если в последней строке программы, текст которой приведен на листинге 1, заменить Fd на любое другое, произвольно выбранное числовое значение?

Рекомендуемая литература

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

//URL: https://gigabaza.ru/doc/106583.html

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

3.Генерация сигналов в пакете Signal Processing.

//URL: https://megapredmet.ru/1-71591.html

7

© Жаринов О.О. Учебно-методические материалы к выполнению лабораторной работы №1 по дисциплине “Мультимедиа-технологии “, испр. 21.02.2024. гр.4016,4017. ГУАП, 2024. – 7 с.

Соседние файлы в папке Теория