fircband

Ограниченная полоса equiripple КИХ-фильтр

Синтаксис

b = fircband(n,f,a,w,c)
b = fircband(n,f,a,s)
b = fircband(...,'1')
b = fircband(...,'minphase')
b = fircband(..., 'check')
b = fircband(...,{lgrid})
[b,err] = fircband(...)
[b,err,res] = fircband(...)

Описание

fircband минимаксный алгоритм создания фильтра, который вы используете, чтобы спроектировать следующие типы действительных КИХ-фильтров:

  • Типы 1-4 линейная фаза

    • Тип 1 является даже порядком, симметричным

    • Тип 2 является нечетным порядком, симметричным

    • Тип 3 является даже порядком, антисимметричным

    • Тип 4 является нечетным порядком, антисимметричным

  • Минимальная фаза

  • Максимальная фаза

  • Минимальный порядок (даже или нечетный), дополнительная пульсация

  • Максимальная пульсация

  • Ограниченная пульсация

  • Полоса одно точки (отметка и худой)

  • Принудительное усиление

  • Произвольная частотная характеристика формы изгибает фильтры

b = fircband(n,f,a,w,c) фильтры проектов, ограничивавшие ошибочные величины (пульсации). c массив ячеек из символьных векторов той же длины как w. Записи c должен быть любой 'c' указать что соответствующий элемент в w ограничение (пульсация для той полосы не может превысить то значение), или 'w' указание, что соответствующая запись в w вес. Должна быть по крайней мере одна неограниченная полоса — c должен содержать по крайней мере один w запись. Например, пример 'Проектирует Ограниченный Фильтр Lowpass', использует вес одного в полосе пропускания и ограничивает пульсацию полосы задерживания не превышать 0.2 (приблизительно 14 дБ).

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

Заметьте, что, когда вы работаете с ограниченными полосами задерживания, вы вводите ограничение полосы задерживания согласно стандартной формуле преобразования для степени — получившееся затухание фильтра или ограничение равняются 20*log (ограничение), где ограничение является значением, вы входите в функцию. Например, чтобы установить 20 дБ затухания, используйте значение для ограничения, равного 0,1. Это применяется к ограниченным полосам задерживания только.

b = fircband(n,f,a,s) используется, чтобы спроектировать фильтры со специальными свойствами в определенных точках частоты. s массив ячеек из символьных векторов и должна быть та же длина как f и a. Записи s должен быть один из:

  • 'n' — нормальная точка частоты.

  • 's' — полоса одно точки. Диапазон частот дан одной точкой. Необходимо задать соответствующее усиление в этой точке частоты в a.

  • 'f' — принудительная точка частоты. Обеспечивает усиление в заданном диапазоне частот, чтобы быть заданным значением.

  • 'i' — неопределенная точка частоты. Используйте этот аргумент, когда полосы примкнут друг к другу (никакая область перехода).

b = fircband(...,'1') проектирует фильтр типа 1 (симметричный ровный порядок). Вы могли также задать тип 2 (симметричный нечетный порядок), тип 3 (антисимметричный ровный порядок) или тип 4 (антисимметричный нечетный порядок) фильтры. Примечание там является ограничениями на a в f = 0 или f = 1 для типов 2, 3, и 4.

b = fircband(...,'minphase') проектирует КИХ-фильтр минимальной фазы. Существует также 'maxphase'.

b = fircband(..., 'check') производит предупреждение, когда существуют потенциальные аномалии области перехода в ответе фильтра.

b = fircband(...,{lgrid}), где {lgrid} скалярный массив ячеек, содержащий целое число, управляет плотностью сетки частоты.

[b,err] = fircband(...) возвращает невзвешенные ошибочные величины приближения. err имеет один элемент для каждой независимой ошибки приближения.

[b,err,res] = fircband(...) возвращает структуру res из дополнительных результатов, вычисленных fircband, и содержит следующие поля:

Поле структуры

Содержимое

res.fgrid

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

res.des

Желаемый ответ на fgrid

res.wt

Веса на fgrid

res.h

Фактическая частотная характеристика на сетке частоты

res.error

Ошибка в каждой точке (желаемый ответ - фактический ответ) на сетке частоты

res.iextr

Вектор из индексов в fgrid из внешних частот

res.fextr

Вектор из чрезвычайно частот

res.order

Порядок фильтра

res.edgecheck

Проверка аномалии области перехода. Один элемент на ребро полосы. Значения элемента имеют следующие значения: 1 = OK, 0 = вероятная аномалия области перехода,-1 = ребро, не проверяемое. Вычисленный, когда вы задаете 'check' введите опцию в синтаксисе функций.

res.iterations

Количество итераций Remez для оптимизации

res.evals

Количество вычислений функции для оптимизации

Примеры

свернуть все

Спроектируйте 12-й порядок фильтр lowpass с ограничением на ответ фильтра.

b = fircband(12,[0 0.4 0.5 1], [1 1 0 0], ...
[1 0.2], {'w' 'c'});

Используя fvtool, чтобы отобразить результат b показывает вам ответ фильтра, который вы спроектировали.

fvtool(b)

Спроектируйте два фильтра различного порядка с полосой задерживания, ограниченной к 60 дБ. Используйте избыточный порядок (80) во втором фильтре, чтобы улучшить неравномерность в полосе пропускания.

b1 = fircband(60,[0 .2 .25 1],[1 1 0 0],...
[1 .001],{'w','c'});
b2 = fircband(80,[0 .2 .25 1],[1 1 0 0],...
[1 .001],{'w','c'});
hfvt = fvtool(b1,1,b2,1);
legend(hfvt,'Filter Order 60','Filter Order 80');

Смотрите также

| | |

Введенный в R2011a