Документация Engee

firls

Страница в процессе разработки.

Расчет коэффициентов КИХ-фильтра с линейной фазовой характеристикой методом наименьших квадратов.

Библиотека

EngeeDSP

Синтаксис

Вызов функции

  • b = firls(n,f,a) — возвращает вектор-строку b, содержащую n+1 коэффициентов КИХ-фильтра порядка n. Частотные и амплитудные характеристики полученного фильтра соответствуют характеристикам векторов f и a.

  • b = firls(n,f,a,w) — использует аргумент w для взвешивания частотных интервалов.

  • b = firls(___,ftype) — проектирует антисимметричные (нечетные) фильтры, где аргумент ftype определяет фильтр как дифференциатор или преобразователь Гильберта.

Аргументы

Входные аргументы

# n — порядок фильтра
вещественный положительный скаляр

Details

Порядок фильтра, заданный как вещественное положительное число.

# f — нормализованные значения частот
вещественнозначный вектор

Details

Нормализованные значения частот, заданные как вектор вещественных чисел. Аргумент должен находиться в диапазоне [0,1], где 1 соответствует частоте Найквиста. Количество элементов вектора всегда кратно 2. Частоты должны быть расположены в порядке неубывания.

# a — требуемая амплитуда
вектор

Details

Требуемые амплитуды в точках, указанных в f, заданы в виде вектора. Длина f и a должна быть одинаковой. Длина должна быть четным числом.

  • Требуемая амплитуда на частотах между парами точек при нечетном — это отрезок прямой, соединяющий точки и .

  • Требуемая амплитуда на частотах между парами точек при четном не определена. Области между такими точками являются переходными областями или областями, не имеющими значения для конкретного применения.

# w — веса
вещественнозначный вектор

Details

Веса, используемые для настройки аппроксимации в каждой полосе частот, задаются в виде вектора вещественных чисел. Длина аргумента w составляет половину длины f и a, поэтому на каждую полосу приходится ровно один вес.

# ftype — тип фильтра
"hilbert" | "differentiator"

Details

Тип фильтра для фильтров с линейной фазовой характеристикой с нечетной симметрией (тип III и тип IV), заданный как "hilbert" или "differentiator":

  • "hilbert" — выходные коэффициенты в b подчиняются соотношению , . К этому классу фильтров относится преобразователь Гильберта, у которого заданная амплитуда равна 1 во всей полосе пропускания.

  • "differentiator" — для полос с ненулевой амплитудой фильтр взвешивает ошибку с коэффициентом , так что ошибка на низких частотах значительно меньше, чем на высоких. Для КИХ-дифференциаторов, амплитудная характеристика которых пропорциональна частоте, эти фильтры минимизируют максимальную относительную ошибку (максимальное значение отношения ошибки к заданной амплитуде).

Выходные аргументы

# b — коэффициенты фильтра
вектор-строка

Details

Коэффициенты фильтра, возвращаемые в виде вектора-строки длиной n+1. Коэффициенты расположены в порядке возрастания.

Алгоритмы

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

В книге [2] описан теоретический подход, лежащий в основе функции firls. Функция решает систему линейных уравнений с помощью оператора \ в Engee. Для фильтра порядка решение системы уравнений включает квадратную матрицу скалярного произведения размера , где , когда нечетное, и , когда четное.

Входные аргументы и задают частотно-амплитудные характеристики фильтра:

  • — вектор пар значений частот, заданных в диапазоне от 0 до 1, где 1 соответствует частоте Найквиста. Частоты должны быть расположены в порядке возрастания. Можно указать повторяющиеся значения частот.

  • — вектор, содержащий требуемые амплитуды в точках, заданных в векторе .

    Требуемая амплитудная функция на частотах между парами точек при нечетном — это отрезок прямой, соединяющий точки и .

    Требуемая амплитудная функция на частотах между парами точек при четном не определена. Это переходные («неважные») области.

  • и имеют одинаковую длину. Эта длина должна быть четным числом.

Функция firls проектирует фильтры с линейной фазовой характеристикой типа I, II, III и IV. Фильтры типа I и II используются по умолчанию при четном и нечетном соответственно, в то время как флаги "hilbert" и "differentiator" создают фильтры типа III ( четный) и IV ( нечетный). Различные типы фильтров имеют различную симметрию и ограничения на частотные характеристики (подробнее см. [1]).

Тип фильтра с линейной фазовой характеристикой Порядок фильтра Симметрия коэффициентов Отклик H(f), f = 0 Отклик H(f), f = 1 (Найквист)

Тип I

Четный

Нет ограничений

Нет ограничений

Тип II

Нечетный

Нет ограничений

Тип III

Четный

Тип IV

Нечетный

Нет ограничений

Литература

  1. Oppenheim, Alan V., and Ronald W. Schafer, with John R. Buck. Discrete-Time Signal Processing. Upper Saddle River, NJ: Prentice Hall, 1999.

  2. Parks, Thomas W., and C. Sidney Burrus. Digital Filter Design. Hoboken, NJ: John Wiley & Sons, 1987, pp. 54–83.