fircls1

КИХ-фильтр линейной фазы наименьших квадратов с ограничениями lowpass и highpass проекта

Синтаксис

b = fircls1(n,wo,dp,ds)
b = fircls1(n,wo,dp,ds,'high')
b = fircls1(n,wo,dp,ds,wt)
b = fircls1(n,wo,dp,ds,wt,'high')
b = fircls1(n,wo,dp,ds,wp,ws,k)
b = fircls1(n,wo,dp,ds,wp,ws,k,'high')
b = fircls1(n,wo,dp,ds,...,'design_flag')

Описание

b = fircls1(n,wo,dp,ds) генерирует lowpass конечную импульсную характеристику фильтр b, где n+1 - длина фильтра, wo - нормированная частота среза в области значений от 0 до 1 (где 1 соответствует частоте Найквиста), dp - максимальное отклонение полосы пропускания от 1 (неравномерности в полосе пропускания), и ds - максимальное отклонение полосы упора от 0 (пульсация полосы упора).

b = fircls1(n,wo,dp,ds,'high') генерирует высокочастотный конечная импульсная характеристика b. fircls1 всегда использует четный порядок фильтра для строения highpass. Это потому, что для нечетных порядков частотная характеристика на частоте Найквиста обязательно равна 0. Если вы задаете нечетное n, fircls1 увеличивает его на 1.

b = fircls1(n,wo,dp,ds,wt) и

b = fircls1(n,wo,dp,ds,wt,'high') задает частотное wt выше которого (для wt > wo) или ниже которого (для wt < wo) фильтр гарантированно удовлетворяет заданному полосой критерию. Это поможет вам спроектировать фильтр, который соответствует требованию к ребру полосы пропускания или полосы упора. Существует четыре случая:

  • Lowpass:

    • 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.

b = fircls1(n,wo,dp,ds,wp,ws,k) генерирует lowpass конечную импульсную характеристику фильтр b с взвешенной функцией, где n+1 - длина фильтра, wo - нормированная частота среза, dp - максимальное отклонение полосы пропускания от 1 (неравномерности в полосе пропускания), и ds - максимальное отклонение полосы упора от 0 (пульсация полосы упора). wp - ребро полосы пропускания L2 функции веса и ws является ребром полосы стопора функции L2 weight, где wp < wo < ws. k - отношение (полоса пропускания L2 ошибка )/( стоповая полоса L2 ошибка)

k=0wp|A(ω)D(ω)|2dωwzπ|A(ω)D(ω)|2dω

b = fircls1(n,wo,dp,ds,wp,ws,k,'high') генерирует высокочастотный конечная импульсная характеристика b с взвешенной функцией, где ws < wo < wp.

b = fircls1(n,wo,dp,ds,...,'design_flag') позволяет контролировать создание фильтра, где 'design_flag' может быть

  • 'trace', для текстового отображения таблицы дизайна, используемой в проекте

  • 'plots', для графиков величины фильтра, задержки группы и нулей и полюсов. Все графики обновляются на каждом шаге итерации. O на графике являются предполагаемыми экстремалами новой итерации, а X являются предполагаемыми экстремалами предыдущей итерации, где экстремалы являются peaks (максимальными и минимальными) пульсаций фильтра. Только рябь, которая имеет соответствующие O и X, сделаны равными.

  • 'both', как для текстового отображения, так и для графиков

Примечание

В проекте очень узких ленточных фильтров с малыми dp и dsможет не существовать фильтр заданной длины, соответствующий спецификациям.

Примеры

свернуть все

Спроектируйте фильтр lowpass порядка 55 с нормированной частотой среза 0,3. Задайте неравномерность в полосе пропускания 0,02 и пульсацию стопорной полосы 0,008. Отобразите графики полос данных.

n = 55;
wo = 0.3;
dp = 0.02;
ds = 0.008;
b = fircls1(n,wo,dp,ds,'both');
    Bound Violation = 0.0870385343920  
    Bound Violation = 0.0149343456540  
    Bound Violation = 0.0056513587932  
    Bound Violation = 0.0001056264205  
    Bound Violation = 0.0000967624352  
    Bound Violation = 0.0000000226538  

Figure contains 3 axes. Axes 1 contains 2 objects of type line. Axes 2 contains 2 objects of type line. Axes 3 contains 2 objects of type line.

    Bound Violation = 0.0000000000038  

Связанные нарушения обозначают итерации процедуры при сходимости проекта. Отобразите величину ответ фильтра.

fvtool(b)

Figure Filter Visualization Tool - Magnitude Response (dB) contains an axes and other objects of type uitoolbar, uimenu. The axes with title Magnitude Response (dB) contains an object of type line.

Алгоритмы

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

Ссылки

[1] Selesnick, I. W., M. Lang, and C. S. Burrus. «Ограниченный Проект методом наименьших квадратов из конечной импульсной характеристики фильтров без заданных Полос перехода». Материалы Международной конференции по акустике, речи и обработке сигналов 1995 года. Том 2, 1995, стр. 1260-1263.

[2] Selesnick, I. W., M. Lang, and C. S. Burrus. «Ограниченный Проект методом наименьших квадратов из конечной импульсной характеристики фильтров без заданных Полос перехода». IEEE® Транзакции по обработке сигналов. Том 44, № 8, 1996, стр. 1879-1892.

Расширенные возможности

.

См. также

| |

Представлено до R2006a