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)

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

Спроектируйте два фильтра различного порядка с полосой задерживания, ограниченной к 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');

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

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

| | |

Введенный в R2011a