exponenta event banner

Изменение частоты дискретизации сигнала

В этом примере показано, как изменить частоту дискретизации сигнала. Пример состоит из двух частей. Первая часть изменяет частоту дискретизации синусоидального входа с 44,1 кГц на 48 кГц. Этот рабочий процесс часто используется при обработке звука. Частота дискретизации на компакт-дисках составляет 44,1 кГц, а частота дискретизации на цифровой аудиоленте - 48 кГц. Вторая часть изменяет частоту дискретизации записанной речевой выборки с 7418 Гц на 8192 Гц.

Создайте входной сигнал, состоящий из суммы синусоидальных волн, дискретизированных на частоте 44,1 кГц. Синусоидальные волны имеют частоты 2, 4 и 8 кГц.

Fs = 44.1e3;
t = 0:1/Fs:1-1/Fs;
x = cos(2*pi*2000*t) + 1/2*sin(2*pi*4000*(t-pi/4)) + ...
    1/4*cos(2*pi*8000*t);

Чтобы изменить частоту дискретизации с 44,1 до 48 кГц, необходимо определить рациональное число (отношение целых чисел), P/Q, такой, что P/Q умножить на исходную частоту выборки 44100, равную 48000 в пределах определенного допуска.

Чтобы определить эти факторы, используйте rat. Введите отношение новой частоты выборки 48000 к исходной частоте выборки 44100.

[P,Q] = rat(48e3/Fs);
abs(P/Q*Fs-48000)
ans = 7.2760e-12

Вы видите, что P/Q*Fs только отличается от желаемой частоты выборки, 48000, порядка 10-12.

Используйте числитель и знаменатель, полученные с помощью rat в качестве входных данных для resample для вывода сигнала, дискретизированного на частоте 48 кГц.

xnew = resample(x,P,Q);

Если компьютер может воспроизводить звук, можно воспроизводить две формы сигнала. Установите комфортный уровень громкости перед воспроизведением сигналов. Выполните команду sound команды по отдельности, чтобы можно было услышать сигнал с двумя различными частотами дискретизации.

% sound(x,44100)
% sound(xnew,48000)

Измените частоту дискретизации речевой выборки с 7418 Гц на 8192 Гц. Речевой сигнал является записью говорящего «MATLAB ®».

Загрузите образец речи.

load mtlb

Загрузка файла mtlb.mat приносит речевой сигнал, mtlbи частота выборки, Fs, в рабочую область MATLAB.

Определите рациональное приближение к отношению новой частоты выборки, 8192, к исходной частоте выборки. Использовать rat для определения аппроксимации.

[P,Q] = rat(8192/Fs);

Повторная выборка речевой выборки с новой частотой выборки. Постройте график двух сигналов.

mtlb_new = resample(mtlb,P,Q);

subplot(2,1,1)
plot((0:length(mtlb)-1)/Fs,mtlb)
subplot(2,1,2)
plot((0:length(mtlb_new)-1)/(P/Q*Fs),mtlb_new)

Figure contains 2 axes. Axes 1 contains an object of type line. Axes 2 contains an object of type line.

Если ваш компьютер имеет возможность вывода звука, вы можете воспроизвести две формы сигнала с соответствующей частотой дискретизации для сравнения. Перед воспроизведением звуков установите на компьютере удобный уровень прослушивания. Выполните команду sound отдельно для сравнения речевых выборок с различными частотами выборок.

% sound(mtlb,Fs)
% sound(mtlb_new,8192)

См. также