Реализация банка многоскоростного фильтра

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

  • Повышающая дискретизация (обнуляют вставку) целочисленным коэффициентом p

  • Фильтрация по КИХ фильтрует h

  • Субдискретизация целочисленным коэффициентом q

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

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

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

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

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

Наборы фильтров могут быть реализованы с помощью upfirdn путем разрешения фильтру h быть матрицей, с одним КИХ-фильтром для каждого столбца. Сигнальный вектор передается независимо через каждый КИХ-фильтр, приводящий к матрице выходных сигналов.

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