По материалам семинара в группе Э-04-07 от 11 ноября 2009 г.
Для начала немного о цифровом звуке. Любая функция (в том числе и звуковой сигнал) на компьютере представляется дискретно (как конечный набор значений (отсчетов), а не непрерывное их множество). Количество таких значений, укладывающихся в единичном отрезке, называют частотой дискретизации (или частотой сэмплирования).
В современных цифровых проигрывателях (бытовых, а не профессиональных) типовым значением частоты дискретизации является Fs = 44100 Гц, то есть в одной секунде - 44100 отдельных дискретных значений сигнала.
Важно с какой точностью представляются отдельные значения, т.е. какой тип переменной используется для их хранения. Переменная разрядностью 1 байт (8 бит) способна хранить только 256 градаций уровня сигнала, и этого оказывается недостаточно для качественной оцифровки звука (слишком грубая шкала). Поэтому обычно используются переменные разрядностью 2 байта (16 бит).
Воспроизведем в Матлабе ноту ля первой октавы - это стандартный камертон для музыкальных инструментов, частота звукового сигнала f = 440 Гц:
 = \sin2 \pi f t)
Код:
bits = 16; % разрядность в битах
Fs = 44100; % частота дискретизации
dt = 1/Fs; % шаг по времени
t = 0:dt:1; % создаем матрицу-строку значений времени
f = 440; % задаем частоту звукового сигнала
y = sin(2*pi*f*t); % рассчитываем значения звукового сигнала в дискретные моменты времени
sound(y,Fs,bits) % воспроизводим звуковой сигнал
wavwrite(y,Fs,bits,'A3.wav'); % записываем сигнал в дисковый файл
Звучит этот сигнал так:
Применим к сигналу дискретное преобразование Фурье и построим график его спектра.
Код:
N = length(y); % число дискретных значений в сигнале
y2 = fft(y,N)/N; % дискретное преобразование Фурье (методом БПФ)
f=(0:N-1)/N/dt; % матрица-строка частот
Код для построения графиков здесь опущен, чтобы не загромождать изложение, его можно посмотреть во вложенном файле A3spectrum.m.

Спектр синусоидального сигнала оказался очень простым, на частоте 440 Гц в спектре имеется столбик высотой 0.5 (именно 0.5, а не единица, так как вторые 0.5 соответствуют отрицательной частоте -440 Гц, а отрицательные частоты на графике не показаны).
Проанализируем спектры музыкальных инструментов. Используем для этого следующий m-код.
Код:
[snd, Fs, bits] = wavread('piano_A3.wav');
y = snd(:,1).'; % будем анализировать только первый стерео-канал
dt = 1/Fs; % шаг по времени
N = length(y); % % число дискретных значений в сигнале
t = 0:dt:(N-1)*dt; % создаем матрицу-строку значений времени
sound(y,Fs,bits) % воспроизводим звуковой сигнал
N = length(y); % число дискретных значений в сигнале
y2 = fft(y,N)/N; % дискретное преобразование Фурье (методом БПФ)
f=(0:N-1)/N/dt; % матрица-строка частот
% код для построения графиков
scrsz = get(0,'ScreenSize');
figure('Position',[10 300 scrsz(3)-590 scrsz(4)-800])
subplot(1,2,1)
plot(t,y); grid on; xlabel('t, с'); ylabel('y'); title('Сигнал во временной области');
xlim([0.1 0.12]);
subplot(1,2,2)
bar(f, abs(y2)); grid on; xlabel('f, Гц'); ylabel('F(y)'); title('Спектр сигнала');
xlim([0 3500]); ylim([0 0.006]);
set(gca, 'ytick', ([0:0.001:0.006]),'xtick', ([0:500:3500]));
В первой строке считывается wave-файл, в котором записано воспроизведение роялем ноты ля первой октавы. Аналогичные файлы есть во вложении для скрипки и гобоя.
Рояль:

Скрипка:

Гобой:

Спектры отличаются значительно. У рояля доминирует первая гармоника, у скрипки вклад высших гармоник более значителен, а у гобоя и вовсе третья гармоника является определяющей. Именно эти относительные соотношения амплитуд при гармониках и определяют характерное звучание музыкальных инструментов.
Во вложении к сообщению есть файл piano_C3_chord.wav. Звучит он так:

Здесь столбики коэффициентов разложения уже не находятся равноудаленно друг от друга. Посмотрим более подробно на начальную часть спектра:

Детальный анализ графика показывает, что первый столбик соответствует частоте 261.5 Гц, второй - 329.5 Гц, третий - 392.5 Гц, четвертый - 523.5 Гц. Смотрим в таблицу соответствия нот и частот и видим, что ближайшие значения такие:
261.5 Гц - нота до первой октавы 261.63 Гц
329.5 Гц - нота ми первой октавы 329.63 Гц
392.5 Гц - нота соль первой октавы 392.0 Гц
523.5 Гц - нота до второй октавы 523.25 Гц (вторая гармоника для до первой октавы)
Таким образом, анализ частотного спектра позволил распознать какими нотами сыгран аккорд - это основное мажорное трезвучие в тональности до мажор.
Во вложении находится архив с использованными wave-файлами, m-файлами и таблицей соответствия нот и частот.