Демонстрация возможностей работы со звуком
Эта команда служит для комплексной демонстрации возможностей работы со звуком. Она выводит диалоговое окно, которое позволяет выбрать несколько видов звукового сигнала, создать для них массив данных звука и воспроизвести звук (если компьютер оснащен звуковой картой, совместимой с Sound Вlastеr).
Кроме того, имеется возможность графически отобразить временную зависимость звукового сигнала, его частотный спектр и спектрограмму.
Еще один весьма наглядный способ представления массива данных звуковых сигналов — это показ их
спектрограммы.
Звуковой сигнал при этом делится на множество фрагментов, а спектрограмма дает представление о распределении частот спектра в разные моменты времени. Представление о том, насколько любопытной бывает спектрограмма сложного звукового сигнала, можно получить на примере рис. 22.3. Подобные спектрограммы могут быть использованы при разработке методов распознавания звуков.
Демонстрационные примеры можно просмотреть с помощью команды type xpsound. Вы получите доступ к более подробной информации по работе со звуком в системе MATLAB.
Средства работы со звуком
Начиная с версии МАТЬАВ 5.0 в системе несколько расширены средства для работы со звуком. До этого система имела единственную звуковую команду:
sound(Y.Р5) — воспроизводит сигнал из вектора У с частотой дискретизации Р5 с помощью колонок, подключенных к звуковой карте компьютера. Компоненты У могут принимать значения в следующих пределах -1.0<=у<=1.0. Для воспроизведения стереозвука на допускающих это компьютерных платформах У должен быть матрицей размера
Мх2;
sound(Y) — функционирует аналогично, принимая частоту дискретизации по умолчанию равной 8192 Гц;
sound(Y,РS.ВIТS) — функционирует аналогично с заданием разрядности звуковой карты: ВIТS=8 или ВIТ=16.
Теперь появились дополнительные команды воспроизведения звука:
sound(Y,...) — масштабирует и воспроизводит сигнал из массива У: По синтаксису команда аналогична-sound( Y,...);
soundsc(Y ,...,SLIМ) — аналогична предшествующей команде, но позволяет задать параметр SLIМ = [MIN(Y) MAX(Y)], определяющий тот диапазон значений Y, который будет соответствовать полному динамическому диапазону звука. По умолчанию SLIМ = [МIN(Y) МАХ(У)].
Bеер оn или off — соответственно разрешает или запрещает гудок;
s=bеер — возвращает состояние оn|off
bеер — при s=оn издает гудок.
Кроме того, введены команды для считывания и записи файлов звукового формата .WAV, стандартного для операционных систем класса Windows
wavwrite(Y,WAVEFILE_Е) — записывает файл типа WAVE под именем WAVELIFE. Данные по каждому каналу в случае стерео записывются в разных столбцах массива. Величины должны быть в диапазоне [-1; 1];
wavwrite(Y.FS.WAVEFILE) — делает то же с заданием частоты дискретизации FS (в герцах);
wavwrite(Y,FS,NBITS,WAVEFILE) — делает то же с заданием числа бит на отсчет
NBITS, причем NBITS<=16;
Y=wavread(FILE) — считывает файл типа WAVE с именем FILE и возвращает данные в массиве Y;
[Y,FS,BITS]=wavread(FILE) — считывает файл типа WAVE с именем FILE и возвращает массив данных Y, частоту дискретизации FS (в герцах) и разрядность BITS кодирования звука (в битах);
[...]=wavread(FILE.N) — возвращает только первые N отсчетов из каждого канала файла;
[...]=wavread(FILE, [N1 N2]) — возвращает только отсчеты с номерами от N1 до N2 из каждого канала;
SIZ=wavread(FILE, 'size') — возвращает объем аудиоданных в виде вектора SIZ=[samples channels] (samples — число отсчетов, channels — число каналов);
auwrite - записывает файл в соответствии со звуковым форматом фирм Sun и Next; auread воспроизводит файлы в MATLAB 6 на Sun и в MATLAB 5 на Next.