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

Функция 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.