====== Программирование звука ====== --- //[[romiras@users.sourceforge.net|Romtek]] 2010/08/07 01:04// --- //Pavia// ===== Введение ===== Оцифровка сигнала включает в себя два процесса: дискретизацию и квантизацию. После оцифровки (процесс Analog-Digital-Conversion, ADC) непрерывный аналоговый сигнал звука x_a(t) (a-analog) принимает форму x_d[n] (d-digital). Если аналоговый сигнал может принимать вещественные значения, t \in \mathbb{R}, то оцифрованный сигнал может принимать целочисленные значения, n \in \mathbb{N}. При оцифровке функция аналогового сигнала разбивается на равные промежутки времени (доли секунды), задаваемые частотой дискретизации f_s (s-sample), определяемой как количество семплов (промежутков времени) в секунду.\\ Часто используется частота дискретизации 44100 герц. Но это зависит от диапазона передаваемых частот. Чем шире диапазон передаваемых частот, тем выше должна быть частота дискретизации f_s. Для синтеза (см. ниже) звукового сигнала с частотой f_0 необходимо задать частоту дискретизации не менее f_s = 2 f_0 согласно теореме Найквиста-Котельникова (([[wpru>Теорема_Котельникова|теорема Найквиста-Котельникова]])). При оцифровке сигнала учитывается и уровень квантизации амплитуды, задаваемый в битах (''N'' бит).\\ Таким образом, амплитуда звуковой волны задаётся числами в диапазоне -2^N .. 2^{N-1}. Как правило, для оцифровки звука используют 16 бит и, реже, 32 бита. Для оцифровки сигналов с микрофона достаточно 8 бит. ===== Генерация примитивных звуковых сигналов ===== Любой звуковой сигнал может быть представлен в виде суммы колебаний (волн) разных частот и амплитуд. Накладываясь одна на другую, вместе они составляют сложный звук. Каждая волна задана формулой x(t)=A \cos (2 \pi f t) для аналогового сигнала и x_n=A \cos (2 \pi f n) - для цифрового. ''A'' - амплитуда волны, а ''f'' - частота волны. ''t'' и ''n'' - текущий отсчёт во времени времени или семпл. Составляющие (колебания) звукового сигнала называют //гармониками//. === Синусоида === === Прямоугольный === === Треугольный === === Пилообразный ===