Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсач_4win.docx
Скачиваний:
7
Добавлен:
01.05.2025
Размер:
484 Кб
Скачать
☆

1.2 Реализация возможностей воспроизведения звука в среде программирования matlab

При разработки данного плеера был задействован компонент Matlab GUI(Graphical user interface). GUI - это разновидность пользовательского интерфейса, в котором элементы интерфейса (меню, кнопки, значки, списки и т. п.), представленные пользователю на дисплее и исполнены в виде графических изображений. В отличие от интерфейса командной строки, в графическом интерфейсе пользователь имеет произвольный доступ ко всем видимым экранным объектам (элементам интерфейса) и осуществляет непосредственное манипулирование ими. Чаще всего элементы интерфейса в графический интерфейс реализованы на основе метафор и отображают их назначение и свойства, что облегчает понимание и освоение программ неподготовленными пользователями[5].

Преобразование аналогового сигнала в цифровой и обратно – это процессы, которые выполняются аппаратными средствами. Matlab же, будучи программным пакетом, может лишь взаимодействовать с соответствующим оборудованием. Кроме того, в Matlab предусмотрены средства для воспроизведения и записи звука, а также для работы со звуковыми файлами формата WAV.

Для считывания WAV-файлов в Matlab имеется функция waveread.

y = wavread (‘filename’); где filename – имя звукового файла (расширение .wav указывать необязательно).В результате выполнения функции в переменную y будет перемещено всё содержимое указанного файла. Строки матрицу y соответствуют отсчётам сигнала, столбцы – каналам, которых в WAV-файле может быть несколько. В звуковом файле отсчёты сигнала представлены целыми числами, лежащими в диапазоне -128..+127 (8 бит на отсчёт), либо-32768…+32767 (16 бит на отсчёт). Управлять нормировкой считываемых отсчётов можно с помощью дополнительного строкового параметра ‘fmt’, добавляемого в конце списка входных параметров функции waveread. При принятом по умолчанию варианте ‘double’ значения отсчётов приводятся в диапазоне -1..+1, а при значении ‘native’ функция возвращает целые числа в том виде, в котором они хранятся в WAV-файле[4].

Помимо собственно отсчётов, в WAV-файле хранится служебная информация о частоте дискретизации, количество бит на отсчёт и т.п. Узнать частоту дискретизации и количество бит на отсчёт можно, используя при вызове функции дополнительные выходные параметры:

[y,Fs, N] = wavread (‘filename’);

Для того что-бы записать вектор (или матрицу) на диск в виде WAV-файла, используется функция wavwrite:

wavwrite (y,Fs,N,‘filename’);

Здесь:

y – записываемые данные (вектор для монофонической записи, двухстолбцовая матрица – для создания стереофайла);

Fs – частота дискретизации в герцах; . Типичные значения поддерживаются большинством звуковых карт являются 8000, 11025, 22050, 44100, 48000 и 96000 Гц.

N – число бит на отсчёт (8 или 16); Биты в образце. Укажите только тогда, когда сигнал Y представляет значения с плавающей точкой.Допустимые значения зависят от оборудования, установленного аудио: 8 , 16 или 24 .По умолчанию: 16

‘filename’ – имя создаваемого файла.

Выходных параметров у данной функции нет. Параметры N и Fs можно опускать, при этом используются значения по умолчанию – N=16 и Fs=8000.

Начиная с версии Matlab 5.0, в системе несколько расширены средства для работы со звуком. Ниже приведено описание основных команд для воспроизведения звуковых сигналов:

sound(y,Fs) — воспроизводит сигнал из вектора y с частотой дискретизации Fs с помощью колонок, подключенных к звуковой карте компьютера. Компоненты y могут принимать значения в следующих пределах -1.0 ≤ у ≤ 1.0. Для воспроизведения стереозвука на допускающих это компьютерных платформах y должен быть матрицей размера М x 2;

Оператор sound хотя и воспроизводят звук, но не подходят, так как в плеере понадобится ставить воспроизведение на паузу и затем воспроизводить вновь с того же места. Для того что-бы ставить файл на паузу и воспроизводить с того же места, надо объявить переменную типом audioplayer предварительно считав в ней *.wav файл. player =audioplayer(y,Fs,nBits) при этом создается  объект типа аудиоплеер из сигнала y  с частотой дискретизации Fs и числом бит на отсчёт nBits .

Для управлением аудиоплеером существуют стандартные команды.

isplaying(y)- Если в момент запроса файл воспроизведение то команда выдаст 1, если нет 0.

pause(y)- ставит воспроизведение файла на паузу.

playblocking(y)-файл начинает воспроизводиться, но блокируется управление плеером до конца воспроизведение.

resume(y)- продолжает воспроизводить файл с паузы.

stop(y)- остановка воспроизведение.[8]

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]