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

fircls1

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

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

Библиотека

EngeeDSP

Синтаксис

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

  • b = fircls1(n,wo,dp,ds) — генерирует коэффиценты b КИХ-фильтра нижних частот с линейной фазовой характеристикой длиной n+1. Амплитудно-частотная характеристика этого фильтра соответствует нормализованной частоте среза wo, неравномерности полосы пропускания dp и неравномерности полосы задерживания ds.

  • b = fircls1(n,wo,dp,ds,wt) — задает частоту wt таким образом, чтобы амплитудно-частотная характеристика фильтра находилась в следующих интервалах:

    • [1-dp,1+dp] в полосе пропускания, если wt находится в полосе пропускания;

    • [-ds,ds] в полосе задерживания, если wt находится в полосе задерживания.

  • b = fircls1(n,wo,dp,ds,wp,ws,k) — генерирует КИХ-фильтр с весовой функцией L2, определяемой граничной частотой полосы пропускания wp, граничной частотой полосы задерживания ws и коэффициентом ошибок расчета полосы пропускания к полосе задерживания k.

  • b = fircls1(___, "high") — проектирует КИХ-фильтр верхних частот. Функция fircls1 всегда использует четный порядок фильтра для конфигурации высокочастотного фильтра, так как амплитудно-частотная характеристика на частоте Найквиста равна 0 для нечетных порядков. Если указан нечетный порядок n, fircls1 увеличивает его на 1.

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

Аргументы

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

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

Details

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

Типы данных

Float32, Float64

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

Details

Нормализованная частота среза, заданная как вещественный положительный скаляр в диапазоне от 0 до 1, где 1 соответствует частоте Найквиста.

Типы данных

Float32, Float64

# dp — неравномерность в полосе пропускания
вещественнозначный положительный скаляр

Details

Неравномерность в полосе пропускания, заданная как вещественный положительный скаляр. Неравномерность в полосе пропускания — это максимальное отклонение полосы пропускания от 1.

При расчете очень узкополосных фильтров с малым dp фильтр указанного порядка, соответствующий спецификациям, может не существовать. В этом случае функция возвращает расчет фильтра с амплитудно-частотными характеристиками, максимально близкими к спецификациям. Чтобы решить эту проблему, ослабьте ограничения на расчет или увеличьте порядок фильтра.
Типы данных

Float32, Float64

# ds — неравномерность в полосе задерживания
вещественнозначный положительный скаляр

Details

Неравномерность в полосе задерживания, заданная как вещественный положительный скаляр. Неравномерность в полосе задерживания — это максимальное отклонение полосы задерживания от 0.

При расчете очень узкополосных фильтров с малым ds фильтр указанного порядка, соответствующий спецификациям, может не существовать. В этом случае функция возвращает расчет фильтра с амплитудно-частотными характеристиками, максимально близкими к спецификациям. Чтобы решить эту проблему, ослабьте ограничения на расчет или увеличьте порядок фильтра.
Типы данных

Float32, Float64

# wt — нормализованная граничная частота полосы пропускания
вещественнозначный положительный скаляр

Details

Нормализованная граничная частота полосы пропускания, заданная как вещественный положительный скаляр в диапазоне от 0 до 1, где 1 соответствует частоте Найквиста.

Задание нормализованной граничной частоты полосы пропускания может помочь в создании одной из следующих четырех схем фильтров, удовлетворяющих требованиям к границе полосы пропускания или полосы задерживания:

  • КИХ-фильтр низких частот:

    • 0 < wt < wo < 1 — амплитуда фильтра находится в пределах dp от 1 в диапазоне частот 0 < ω < wt.

    • 0 < wo < wt < 1 — амплитуда фильтра находится в пределах ds от 0 в диапазоне частот wt < ω < 1.

  • КИХ-фильтр высоких частот:

    • 0 < wt < wo < 1 — амплитуда фильтра находится в пределах ds от 0 в диапазоне частот 0 < ω < wt.

    • 0 < wo < wt < 1 — амплитуда фильтра находится в пределах dp от 1 в диапазоне частот wt < ω < 1.

Типы данных

Float32, Float64

# wp — граничная частота полосы пропускания весовой функции L2
вещественнозначный скаляр

Details

Граница полосы пропускания весовой функции L2, заданная как вещественный скаляр. Значение аргумента wp должно лежать на границе полосы пропускания:

  • wp < wo для фильтров низких частот;

  • wp > wo для фильтров высоких частот.

С учетом фактической и требуемой амплитудно-частотной характеристики и соответственно, ошибка расчета полосы пропускания L2 составляет

  • для фильтров нижних частот;

  • для фильтров высоких частот.

Типы данных

Float32, Float64

# ws — граничная частота полосы задерживания весовой функции L2
вещественнозначный скаляр

Details

Граница полосы задерживания весовой функции L2, заданная как вещественный скаляр. Значение аргумента wp должно лежать на границе полосы задерживания:

  • ws > wo для фильтров низких частот;

  • ws < wo для фильтров высоких частот.

С учетом фактической и требуемой амплитудно-частотной характеристики и соответственно, ошибка расчета полосы задерживания L2 составляет

  • для фильтров низких частот;

  • для фильтров высоких частот.

Типы данных

Float32, Float64

# k — коэффициент ошибок расчета L2 в полосе пропускания и полосе задерживания
вещественнозначный скаляр

Details

Коэффициент ошибок расчета L2 в полосе пропускания и полосе задерживания, заданный как вещественный скаляр. Учитывая ошибки расчета L2 в полосе пропускания и полосе задерживания и , зависящие от граничных частот wp и ws соответственно, значение k равно:

Типы данных

Float32, Float64

# designDisplay — параметры отображения расчета коэффициентов фильтра
"trace" | "plots" | "both"

Details

Параметры отображения расчета коэффициентов фильтра, заданные одним из следующих способов:

  • "trace" — отображение текстовой информации об ошибке расчета на каждом шаге итерации.

  • "plots" — отображение набора графиков, показывающих амплитудно-частотную характеристику фильтра во всей полосе пропускания и увеличенное изображение амплитудно-частотной характеристики в каждом участке полосы пропускания. Функция обновляет все графики на каждом шаге итерации. Нолики на графике — это предполагаемые экстремумы новой итерации, а крестики — предполагаемые экстремумы предыдущей итерации, где экстремумы — это пики (максимумы и минимумы) пульсаций фильтра.

  • "both" — отображение как текстовой информации, так и графиков.

Типы данных

String

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

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

Details

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

Алгоритмы

Функция fircls1 использует итерационный алгоритм наименьших квадратов для получения равновероятного отклика. Алгоритм представляет собой алгоритм многократного обмена, использующий множители Лагранжа и условия Куна—Таккера на каждой итерации.

Литература

  1. Selesnick, I. W., M. Lang, and C. S. Burrus. "Constrained Least Square Design of FIR Filters without Specified Transition Bands." Proceedings of the 1995 International Conference on Acoustics, Speech, and Signal Processing. Vol. 2, 1995, pp. 1260–1263.

  2. Selesnick, I. W., M. Lang, and C. S. Burrus. "Constrained Least Square Design of FIR Filters without Specified Transition Bands." IEEE® Transactions on Signal Processing. Vol. 44, Number 8, 1996, pp. 1879–1892.