Equiripple FIR-фильтр с ограниченным диапазоном
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 является алгоритмом конструирования фильтров minimax, который используется для конструирования следующих типов реальных фильтров FIR:
Типы 1-4 линейной фазе
Тип 1 четный, симметричный
Тип 2 нечетный, симметричный
Тип 3 четный, антисимметричный
Тип 4 нечетный, антисимметричный
Минимальная фаза
Максимальная фаза
Минимальный порядок (четный или нечетный), дополнительная пульсация
Максимальная рябь
Ограниченная пульсация
Одноточечная полоса (выемка и пик)
Форсированный выигрыш
Фильтры кривой частотной характеристики произвольной формы
b = fircband(n,f,a,w,c) проектирует фильтры с ограниченными значениями ошибок (пульсациями). c - массив ячеек символьных векторов той же длины, что и w. Записи c должно быть либо "c' чтобы указать, что соответствующий элемент в w является ограничением (пульсация для этой полосы не может превышать это значение) илиw' указывая, что соответствующая запись в w является весом. Должна быть хотя бы одна неограниченная полоса - c должен содержать, по крайней мере, один w вход. Например, в примере «Design a Constrained Lowpass Filter» используется вес, равный единице в полосе пропускания, и ограничение пульсации полосы останова не превышает 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 | Требуемый ответ на |
res.wt | Веса на |
res.h | Фактическая частотная характеристика на частотной сетке |
res.error | Ошибка в каждой точке (требуемый отклик - фактический отклик) частотной сетки |
res.iextr | Вектор индексов в |
res.fextr | Вектор экстремальных частот |
res.order | Порядок фильтрации |
res.edgecheck | Проверка аномалии в области перехода. Один элемент на край полосы. Значения элементов имеют следующие значения: 1 = OK, 0 = вероятная аномалия переходной области, -1 = край не проверен. Вычисляется при указании |
res.iterations | Количество итераций Remez для оптимизации |
res.evals | Количество оценок функций для оптимизации |