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

Синтез звуков — Audio


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

  • Waveform [type, freq, dur] — создает звуковой сигнал формы type с частотой freq (в герцах) и длительностью dur (в секундах). Возможны следующие формы сигнала: Sinusoid — синусоидальный, Triangle — треугольный, Square — прямоугольный и Sawtooth — пилообразный;
  • Waveform [type, freq, dur, Overtones->n] — создает звуковой сигнал формы type с частотой freq (в герцах) и длительностью dur (в секундах), имеющий п гармоник.



Приведенный на рис. 13.1 пример дает генерацию прямоугольного сигнала частотой 1000 Гц и длительностью 0.5 с. Следует обратить внимание.на то, что созданный звуковой объект проигрывается и показывается после команды Show.

Звуковой объект, как отмечалось, ассоциируется с графическим объектом. К сожалению, явной связи между осциллограммой звукового сигнала и его графическим образом нет. Более того, вид графического объекта сильно зависит от компьютерной платформы, на которой установлена система Mathematica. Так что графический звуковой объект — это просто некий условный графический образ звукового сигнала.

Рисунок 13.2 показывает генерацию прямоугольного сигнала с двумя гармониками. Здесь используется опция Overtones->2. Ее нельзя применять к синусоидальному сигналу, поскольку он принципиально не имеет гармоник.

Рис. 13.1. Создание и просмотр звукового объекта — синусоидального сигнала

Рис. 13.2. Генерация прямоугольного сигнала с двумя гармониками

Когда указана опция Overtones, функция Waveform использует ряд Фурье для создания высших гармоник, обогащающих тембр звука. При этом возможно изменение числа гармоник. Возможно также создание сигнала с заданными номерами и амплитудами гармоник. Для этого служит функция ListWaveform:

  • ListWaveform[ { {nl, al}, {n2, a2 },...}, freq, dir] — создает звуковой объект с частотой основной гармоники f req и длительностью dir, содержащий дополнительные частоты с кратностями ni и амплитудами ai.

На рис. 13.3 представлен пример создания звукового объекта сложного типа, содержащего ряд частотных составляющих.
Данные представлены списком partial-List. С помощью функции Table подготовлен объект, содержащий шесть звуковых подобъектов.



Рис. 13.3. Генерация многочастотного сигнала Для создания звуковых объектов, порождающих звук с амплитудной и частотной модуляцией, служат следующие функции:

  • AmplitudeModulation [f c , f m ,m t ,dur] — создает амплитудно-модулирован-ный синусоидальный сигнал с несущей частотой f c , частотой модуляции f m , коэффициентом модуляции m. и длительностью dur. Опция RingModula-tion->True позволяет получить амплитудную модуляцию с подавленной несущей;
  • FrequencyModulation [f c , {{f m ,pd}, dur] — создает частотно-модулированный синусоидальный сигнал с несущей частотой f c , модулированный по частоте сигналом с частотой модуляции f m , с девиацией частоты pd (в герцах) и длительностью dur.
Рисунок 13.4 демонстрирует создание звукового объекта с амплитудной и частотной модуляцией. Обратите внимание на то, что объект показывается сразу, поскольку в состав его выражения включена команда //Show.

Для создания сложных сигналов с частотной модуляцией функция Frequency-Modulation используется в следующем виде:

  • FrequencyModulation [fc, {{f l,pdl}, (f2,pd2 },...}, dur] — создает частотно-модулированный синусоидальный сигнал длительностью dur с несущей частотой f с и каскадом частот модуляции fmi с девиациями pdi. Опция ModulationType->Parallel создает сигнал, независимо промодулированнып всеми указанными частотами, а опция ModulationType->Cascade включает режим, при котором перечисленные частоты последовательно модулируют друг друга.
Рисунок 13.5 показывает создание и воспроизведение композитного звуковок сигнала. Он представлен списком объектов {s 1, s 2, s 3}.

 

Рис. 13.4. Генерация звуковых объектов с амплитудной (сверху) и частотной (снизу) модуляцией
 

Рис. 13.5. Генерация композитного звукового сигнала Для считывания звуковых файлов с магнитного диска служит функция Read-Soundfile:

  • ReadSoundf ile [ "soundfile" ] — опознает файлы разного формата и конвертирует их в список, содержащий целые числа в диапазоне от -32 768 до +32 767.Опция PrintHeader->True позволяет вывести отчет о звуковом файле. Поддерживаются следующие форматы звуковых файлов: NeXT/Sun, WAVE и AIFF.
Разумеется, считываемый звуковой файл должен быть расположён в текущей директории или его имя должно точно указывать местоположение файла. Файлы отображаются соответствующим графическим образом (как описывалось выше).



Содержание раздела