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

fir2

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

Расчет коэффициентов КИХ-фильтра на основе частотной выборки.

Библиотека

EngeeDSP

Синтаксис

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

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

  • b = fir2(n,f,m,npt,lap) — определяет npt — количество точек в сетке интерполяции, и lap — длину области, которую функция fir2 вставляет вокруг повторяющихся частотных точек, которые задают шаги в частотной характеристике.

  • b = fir2(___,window) — указывает вектор окна, который будет использоваться при проектировании в дополнение к любым входным аргументам из предыдущих синтаксисов.

Используйте функцию fir1 для оконного стандартного фильтра нижних частот, полосового фильтра, фильтра верхних частот, режекторного фильтра и многополосного фильтра.

Аргументы

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

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

Details

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

Для конфигураций с полосой пропускания на частоте Найквиста функция fir2 всегда использует четный порядок. Если для одной из таких конфигураций указано нечетное значение n, функция fir2 увеличивает n на 1.

Типы данных

Float64

# f — частотно-амплитудная характеристика
вектор

Details

Частотно-амплитудная характеристика, заданная в виде вектора такой же длины, что и m.

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

Типы данных

Float64

# m — частотно-амплитудная характеристика
вектор

Details

Частотно-амплитудная характеристика, заданная в виде вектора такой же длины, что и f.

Аргумент m — вектор, содержащий искомую амплитудно-частотную характеристику в каждой из точек, указанных в аргументе m.

Типы данных

Float64

# npt — число точек сетки
512 (по умолчанию) | положительный целочисленный скаляр

Details

Число точек сетки, заданное как положительное целое число. Значение npt должно быть больше половины порядка фильтра: npt > n/2.

Типы данных

Float64

# lap — длина области вокруг точек дублирующей частоты
25 (по умолчанию) | положительный целочисленный скаляр

Details

Длина области вокруг точек дублирующей частоты, заданная как положительное целое число.

Типы данных

Float64

# window — окно
вектор-столбец

Details

Окно, заданное как вектор-столбец. Вектор окна должен содержать n + 1 элемент. Если аргумент window не задан, то функция fir2 использует окно Хэмминга.

Функция fir2 не увеличивает автоматически длину аргумента window при попытке спроектировать фильтр нечетного порядка с полосой пропускания на частоте Найквиста.

Типы данных

Float64

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

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

Details

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

Алгоритмы

Функция fir2 использует частотную дискретизацию для вычисления коэффициентов фильтра. Функция линейно интерполирует желаемую частотную характеристику на плотную, равномерно распределенную сетку длины npt. Функция fir2 также создает области точек lap вокруг повторяющихся значений f для обеспечения крутых, но плавных переходов. Для получения коэффициентов фильтра функция применяет к сетке обратное быстрое преобразование Фурье и умножает на аргумент window.

Список литературы

  1. Jackson, L. B. Digital Filters and Signal Processing. 3rd Ed. Boston: Kluwer Academic Publishers, 1996.

  2. Mitra, Sanjit K. Digital Signal Processing: A Computer Based Approach. New York: McGraw-Hill, 1998.