Оценка порядка оптимального КИХ-фильтра Parks-McClellan
[n,fo,ao,w] = firpmord(f,a,dev)
[n,fo,ao,w] = firpmord(f,a,dev,fs)
c = firpmord(f,a,dev,fs,'cell')
[n,fo,ao,w] = firpmord(f,a,dev)
находит аппроксимированный порядок, нормированные ребра диапазона частот, амплитуды диапазона частот и веса, которые соответствуют входным спецификациям f
A
, и dev
.
f
вектор ребер диапазона частот (между 0 и F s/2, где F s является частотой дискретизации), и a
вектор, задающий желаемую амплитуду на полосах, заданных f
. Длина f
два меньше, чем дважды длина a
. Желаемая функция является кусочной константой.
dev
вектор тот же размер как a
это задает максимальное допустимое отклонение или пульсации между частотной характеристикой и желаемой амплитудой выходного фильтра для каждой полосы.
Используйте firpm
с получившимся порядком n
, вектор частоты fo
, амплитудный вектор отклика ao
, и веса w
спроектировать фильтр b
который приблизительно соответствует спецификациям, данным firpmord
введите параметры f
A
, и dev
.
b = firpm(n,fo,ao,w)
[n,fo,ao,w] = firpmord(f,a,dev,fs)
задает частоту дискретизации fs
. fs
значения по умолчанию к 2 Гц, подразумевая частоту Найквиста 1 Гц. Можно поэтому задать ребра полосы, масштабируемые к частоте дискретизации конкретного приложения.
c = firpmord(f,a,dev,fs,'cell')
генерирует массив ячеек, элементы которого являются параметрами к firpm
.
В некоторых случаях, firpmord
недооценки или переоценки порядок n
. Если фильтр не соответствует спецификациям, попробуйте высший порядок, такой как n+1
или n+2
.
firpmord
использует алгоритм, предложенный в [1]. Этот метод неточен для ребер полосы или близко к 0 или близко к частота Найквиста, fs/2
.
[1] Rabiner, Лоуренс Р. и Отто Херрманн. “Предсказуемость Определенных Оптимальных Цифровых фильтров Конечной импульсной характеристики”. IEEE® Transactions на Теории Схемы. Издание 20, Номер 4, 1973, стр 401–408.
[2] Rabiner, Лоуренс Р. и Бернард Голд. Теория и Приложение Цифровой обработки сигналов. Englewood Cliffs, NJ: Prentice Hall, 1975, стр 156–157.