fircls

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

Синтаксис

b = fircls(n,f,amp,up,lo)
fircls(n,f,amp,up,lo,'design_flag')

Описание

b = fircls(n,f,amp,up,lo) генерирует длину n+1 линейный фильтр фазы FIR b. Характеристики значения частоты этого фильтра совпадают с данными векторами f и amp:

  • f является вектором частот перехода в диапазоне от 0 до 1, где 1 соответствует частоте Найквиста. Первой точкой f должен быть 0 и последняя точка 1. Точки частоты должны быть в увеличивающемся порядке.

  • amp является вектором, описывающим кусочно-постоянную желаемую амплитуду частотной характеристики. Длина amp равна количеству полос в ответе и должна быть равна length(f)-1.

  • up и lo являются векторами с той же длиной как amp. Они задают верхние и нижние границы для частотной характеристики в каждой полосе.

fircls всегда использует даже порядок фильтра для настроек с полосой пропускания на частоте Найквиста (то есть, highpass и заграждающие фильтры). Это вызвано тем, что для нечетных порядков, частотная характеристика на частоте Найквиста обязательно 0. Если вы задаете n с нечетным знаком, fircls постепенно увеличивает его 1.

fircls(n,f,amp,up,lo,'design_flag') позволяет вам контролировать проект фильтра, где ' design_flag ' может быть

  • 'trace', для текстового отображения ошибки проектирования на каждом шаге итерации.

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

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

Примечание

Обычно, нижнее значение в полосе задерживания будет задано как отрицательное. Установкой lo, равной 0 в полосах задерживания, неотрицательная амплитуда частотной характеристики может быть получена. Такие фильтры могут быть спектрально учтены, чтобы получить минимальные фильтры фазы.

Примеры

свернуть все

Разработайте 150-й порядок lowpass фильтр с нормированной частотой среза 0.4π рад/выборка. Задайте максимальную абсолютную погрешность 0,02 в полосе пропускания и 0.01 в полосе задерживания. Отобразите графики полос.

n = 150;
f = [0 0.4 1];
a = [1 0];
up = [1.02 0.01];
lo = [0.98 -0.01];
b = fircls(n,f,a,up,lo,'both');
  Bound Violation = 0.0788344298966  
  Bound Violation = 0.0096137744998  
  Bound Violation = 0.0005681345753  
  Bound Violation = 0.0000051519942  
  Bound Violation = 0.0000000348656  

  Bound Violation = 0.0000000006231  

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

fvtool(b)

Алгоритмы

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

Ссылки

[1] Selesnick, я. W. М. Ленг и К. С. Беррус. “Ограниченный Проект Наименьшего квадрата КИХ-Фильтров без Заданных Полос Перехода”. Продолжения 1 995 Международных конференций по вопросам Акустики, Речи и Обработки сигналов. Издание 2, 1995, стр 1260–1263.

[2] Selesnick, я. W. М. Ленг и К. С. Беррус. “Ограниченный Проект Наименьшего квадрата КИХ-Фильтров без Заданных Полос Перехода”. IEEE® Transactions на Обработке сигналов. Издание 44, Номер 8, 1996, стр 1879–1892.

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

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

| |

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