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

Для просмотра документации необходимо авторизоваться на сайте