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 КИХ-фильтр линейной фазы 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