Иллюстрированный самоучитель по MatLab

Поддержка звуковой системы

Этот небольшой урок посвящен довольно экзотической возможности математической системы МАТLАВ – работе со звуком. Стоит напомнить, что для этого компьютер должен быть оснащен звуковой картой и звуковыми колонками. Средства поддержки звука в МАТLАВ имеют рудиментарный характер, но все же они есть и позволяют разнообразить выполнение некоторых примеров.

Средства работы со звуком

Начиная с версии МАТЬАВ 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.
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.