Zoom FFT
блокируйтесь реализации масштабируют БПФ на основе многоскоростного многоступенчатого полосового фильтра, спроектированного в Комплексном Проекте Полосового фильтра. Если вы задаете центральную частоту и фактор децимации, Zoom FFT
блочные конструкции и применяют фильтр к входному сигналу. Используя БПФ изменения масштаба, можно масштабировать в тоны входной синусоиды.
Вход является шумным синусоидальным сигналом с частотами на уровне 1 кГц и 1,4 кГц. Шум является аддитивным белым Гауссовым шумом с нулевым средним значением и отклонением 1e-2. Входная частота дискретизации, Фс, составляет 44,1 кГц, и размер входного кадра, L, является 440 выборками.
Сконфигурируйте Zoom FFT
блокируйтесь, чтобы анализировать полосу пропускания 800 Гц с центральной частотой на уровне 1 200 Гц. Фактором децимации, D, является отношение входной частоты дискретизации, 44,1 кГц и полосы пропускания интереса, 800 Гц. Длина БПФ является отношением размера входного кадра, 440, и фактор децимации. БПФ вычислен по частотам, запускающимся на уровне 800 Гц, и расположен с интервалами Гц независимо, который является разрешением или минимальной частотой, которая может быть различена. С вышеупомянутыми значениями разрешение, или приблизительно 100 Гц.
Откройте модель.
model = 'zoomfftEx';
open_system(model)
Запустите модель. Вычислите квадрат величины FFT изменения масштаба выход, выполните сдвиг БПФ и просмотрите получившийся спектр в графике массивов.
sim(model)
Спектр показывает частоты в области значений [800 1600] Гц с тонами на уровне 1 кГц и 1,4 кГц. Длина БПФ уменьшала до длины. Это - фундаментальное понятие БПФ изменения масштаба. Путем десятикратного уменьшения исходного сигнала можно сохранить то же разрешение, которого вы достигли бы с БПФ в натуральную величину на вашем исходном сигнале путем вычисления маленького БПФ на более коротком сигнале. Можно альтернативно достигнуть лучшего разрешения при помощи той же длины БПФ.
Если вы вносите какие-либо изменения в модель, сохраняете модель прежде, чем закрыть модель.
close_system(model)
bdclose('all');