Многоскоростной фильтр данных о Реализации

The upfirdn функция изменяет частоту дискретизации сигнала на целочисленное отношение P/Q. Он вычисляет результат каскада из трех систем, который выполняет следующие задачи:

  • Увеличение дискретизации (нулевая вставка) по целочисленному коэффициенту p

  • Фильтрация конечная импульсная характеристика h

  • Понижающая дискретизация по целочисленному коэффициенту q

Для примера, чтобы изменить частоту дискретизации сигнала с 44,1 кГц до 48 кГц, мы сначала найдем наименьший коэффициент целочисленного преобразования p/q. Набор

d = gcd(48000,44100);
p = 48000/d;
q = 44100/d;

В этом примере p = 160 и q = 147. Преобразование частоты дискретизации затем выполняется путем ввода

y = upfirdn(x,h,p,q)

Этот каскад операций реализован эффективным способом с использованием полифаз фильтрации, и это центральная концепция многоразовой фильтрации. Обратите внимание, что качество результата повторной дискретизации зависит от качества конечной импульсной характеристики фильтра h.

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

Другие функции, которые выполняют многоразовую фильтрацию (с фиксированным фильтром), включают resample, interp, и decimate.