Прототип фильтра бабочки
Функция buttap возвращает полюса в длину n вектор столбца p и коэффициент усиления в скаляре k. z является пустой матрицей, поскольку нет нулей. Передаточная функция:
p (2)) ⋯ (s − p (n))
z = []; p = exp(sqrt(-1)*(pi*(1:2:2*n-1)/(2*n)+pi/2)).'; k = real(prod(-p));
Примечание
Функция buttap возвращает нули, полюса и коэффициент усиления (z, p, and k) в MATLAB ®. Однако сгенерированный код C/C + + дляbuttap возвращает только полюса p и выигрыш k с нулями z всегда является пустой матрицей.
Фильтры бабочек характеризуются амплитудным откликом, который является максимально плоским в полосе пропускания и монотонным в целом. В случае нижних частот первые 2n-1 производных квадратичной амплитудной характеристики равны нулю при λ = 0. Функция отклика на величину в квадрате
(λ/λ 0) 2n
соответствует передаточной функции с полюсами, равномерно расположенными вокруг окружности в левой половине плоскости. Амплитудный отклик на угловой частоте отсечки (λ) всегда независимо от порядка фильтра. buttap для нормализованного результата устанавливает для λ 0 значение 1.
[1] Парки, T. W. и К. С. Беррус. Проектирование цифрового фильтра. Нью-Йорк: John Wiley & Sons, 1987.