Анализируйте поддиапазон входных частот Используя БПФ изменения масштаба

Zoom FFT блокируйтесь реализации масштабируют БПФ на основе многоскоростного многоступенчатого полосового фильтра, спроектированного в Комплексном Проекте Полосового фильтра. Если вы задаете центральную частоту и фактор децимации, Zoom FFT блочные конструкции и применяют фильтр к входному сигналу. Используя БПФ изменения масштаба, можно масштабировать в тоны входной синусоиды.

Вход является шумным синусоидальным сигналом с частотами на уровне 1 кГц и 1,4 кГц. Шум является аддитивным белым Гауссовым шумом с нулевым средним значением и отклонением 1e-2. Входная частота дискретизации, Фс, составляет 44,1 кГц, и размер входного кадра, L, является 440 выборками.

Сконфигурируйте Zoom FFT блокируйтесь, чтобы анализировать полосу пропускания 800 Гц с центральной частотой на уровне 1 200 Гц. Фактором децимации, D, является отношение входной частоты дискретизации, 44,1 кГц и полосы пропускания интереса, 800 Гц. Длина БПФ является отношением размера входного кадра, 440, и фактор децимации. БПФ вычислен по частотам, запускающимся на уровне 800 Гц, и расположен с интервалами$Fs/L$ Гц независимо, который является разрешением или минимальной частотой, которая может быть различена. С вышеупомянутыми значениями разрешение$44100/440$, или приблизительно 100 Гц.

Откройте модель.

model = 'zoomfftEx';
open_system(model)

Запустите модель. Вычислите квадрат величины FFT изменения масштаба выход, выполните сдвиг БПФ и просмотрите получившийся спектр в графике массивов.

sim(model)

Спектр показывает частоты в области значений [800 1600] Гц с тонами на уровне 1 кГц и 1,4 кГц. Длина БПФ уменьшала до длины$L/D$. Это - фундаментальное понятие БПФ изменения масштаба. Путем десятикратного уменьшения исходного сигнала можно сохранить то же разрешение, которого вы достигли бы с БПФ в натуральную величину на вашем исходном сигнале путем вычисления маленького БПФ на более коротком сигнале. Можно альтернативно достигнуть лучшего разрешения при помощи той же длины БПФ.

Если вы вносите какие-либо изменения в модель, сохраняете модель прежде, чем закрыть модель.

close_system(model)
bdclose('all');

Смотрите также

Блоки