kaiserord

Параметры оценки конечной импульсной характеристики создания фильтра Кайзера

Описание

[n,Wn,beta,ftype] = kaiserord(f,a,dev) возвращает порядок фильтра n, нормированные ребра полосы частот Wn, и масштабный фактор beta который задает окно Кайзера для использования с fir1 функция. Проектирование конечной импульсной характеристики b который приблизительно соответствует спецификациям, данным f, a, и dev, использовать b = fir1(n,Wn,kaiser(n+1,beta),ftype,'noscale').

пример

[n,Wn,beta,ftype] = kaiserord(f,a,dev,fs) использует частоту дискретизации fs в Гц.

пример

c = kaiserord(f,a,dev,fs,'cell') возвращает массив ячеек, элементы которого являются параметрами для fir1.

Примеры

свернуть все

Проектируйте lowpass с полосой пропускания от 0 до 1 кГц и полосой остановки от 1500 Гц до 4 кГц. Задайте неравномерность в полосе пропускания 5% и затухания в полосе задерживания 40 дБ.

fsamp = 8000;
fcuts = [1000 1500];
mags = [1 0];
devs = [0.05 0.01];

[n,Wn,beta,ftype] = kaiserord(fcuts,mags,devs,fsamp);
hh = fir1(n,Wn,ftype,kaiser(n+1,beta),'noscale');

freqz(hh,1,1024,fsamp)

Figure contains 2 axes. Axes 1 contains an object of type line. Axes 2 contains an object of type line.

Проектируйте полосно-пропускной фильтр нечетной длины. Обратите внимание, что нечетная длина означает четный порядок, поэтому вход в fir1 должно быть четным целым числом.

fsamp = 8000;
fcuts = [1000 1300 2210 2410];
mags = [0 1 0];
devs = [0.01 0.05 0.01];

[n,Wn,beta,ftype] = kaiserord(fcuts,mags,devs,fsamp);
n = n + rem(n,2);
hh = fir1(n,Wn,ftype,kaiser(n+1,beta),'noscale');

[H,f] = freqz(hh,1,1024,fsamp);
plot(f,abs(H))
grid

Figure contains an axes. The axes contains an object of type line.

Проектируйте фильтр lowpass с отключением полосы пропускания 1500 Гц, отключение полосы остановки 2000 Гц, неравномерность в полосе пропускания 0,01, пульсацию полосы пробки 0,1 и частоту дискретизации 8000 Гц. Спроектируйте эквивалентный фильтр, используя 'cell' опция.

fs = 8000;
[n,Wn,beta,ftype] = kaiserord([1500 2000],[1 0],...
    [0.01 0.1],fs);
b = fir1(n,Wn,ftype,kaiser(n+1,beta),'noscale');

c = kaiserord([1500 2000],[1 0],[0.01 0.1],fs,'cell');
bcell = fir1(c{:});

hfvt = fvtool(b,1,bcell,1,'Fs',fs);
legend(hfvt,'b','bcell')

Figure Filter Visualization Tool - Magnitude Response (dB) contains an axes and other objects of type uitoolbar, uimenu. The axes with title Magnitude Response (dB) contains 2 objects of type line. These objects represent b, bcell.

Входные параметры

свернуть все

Ребра полосы пропускания, заданные как вектор. Длина f является 2*length(a)-2.

Амплитуда полосы значений, заданная как вектор. Амплитуда задается на полосах, заданных f. Вместе, f и a задайте кусочно-постоянную функцию отклика.

Максимально допустимое отклонение, заданное как вектор. dev - вектор того же размера, что и a который задает максимально допустимое отклонение между частотной характеристикой выхода фильтра и его полосы амплитудой для каждой полосы. Записи в dev задайте неравномерность в полосе пропускания и затухание в полосе задерживания. Задайте каждую запись в dev в виде положительного числа, представляющего абсолютное усиление фильтра (без единиц).

Частота дискретизации, заданная как положительная скалярная величина, измеренная в Гц. Если вы не задаете аргумент fs, или если вы задаете его как пустой вектор [], частота дискретизации по умолчанию составляет 2 Гц, и частота Найквиста составляет 1 Гц. Используйте этот синтаксис, чтобы задать ребра полосы пропускания, масштабированные до частоты дискретизации конкретного приложения. Диапазон частот ребер в f должно быть от 0 до fs/2.

Выходные аргументы

свернуть все

Порядок фильтра, возвращенный как положительное целое число.

Нормированные ребра полосы частот, возвращенные как вектор действительных чисел.

Масштабный фактор, вернулся как положительный действительный скаляр. Значение параметра beta влияет на ослабление боковой оси преобразования Фурье окна.

Тип фильтра, предназначенный для использования с fir1, возвращается как:

  • 'low' - lowpass фильтр с частотой среза Wn.

  • 'high' - высокочастотный фильтр с частотой среза Wn.

  • 'bandpass' - полосно-пропускающий фильтр, если Wn является двухэлементным вектором.

  • 'stop' - полосно-заграждающий фильтр, если Wn является двухэлементным вектором.

  • 'DC-0' - первый диапазон многодиапазонного фильтра является полосой остановки.

  • 'DC-1' - первый диапазон многодиапазонного фильтра является полосой пропускания.

Параметры конечные импульсные характеристики, возвращенные как массив ячеек.

Совет

  • Будьте осторожны, чтобы различить значения длины фильтра и порядка фильтра. Длина фильтра является количеством выборок импульсной характеристики в конечная импульсная характеристика. Обычно импульсная характеристика индексируется от n = 0 до n = L-1, где L является длиной фильтра. Порядок фильтра является самой высокой степенью в представлении Z-преобразования фильтра. Для передаточной функции конечной импульсной характеристики это представление является полиномом в z, где самая высокая степень zL–1 и самая низкая степень z0. Порядок фильтра на единицу меньше длины (L - 1) и также равен количеству нулей z полинома.

  • Если, в векторе dev, вы задаете неравные отклонения по полосам, используется минимальное заданное отклонение, поскольку метод окна Кайзера ограничен для создания фильтров с минимальным отклонением во всех полосах.

  • В некоторых случаях kaiserord занижает или переоценивает порядок n. Если фильтр не соответствует спецификациям, попробуйте более высокий порядок, например n+1, n+2и так далее, или попробовать более низкий порядок.

  • Результаты неточны, если частоты отсечения близки к 0 или частоте Найквиста, или если dev является большим (более 10%).

Алгоритмы

Учитывая набор спецификаций в частотный диапазон, kaiserord оценивает минимальный порядок фильтра конечной импульсной характеристики, который будет приблизительно соответствовать спецификациям. kaiserord преобразует данные спецификации фильтра в полосы пропускания и пульсации и преобразует частоты отключения в форму, необходимую для создания оконной конечной импульсной характеристики фильтра.

kaiserord использует эмпирически выведенные формулы для оценки порядков lowpass, а также дифференциаторов и трансформаторов Гильберта. Оценки для многодиапазонных фильтров (таких как полосно-пропускающие фильтры) получают из формул проекта lowpass.

Формулы проекта, которые лежат в основе окна Кайзера, и его применение для конечной импульсной характеристики создания фильтра,

β={0.1102(α8.7),α>500.5842(α21)0.4+0.07886(α21),21α500,α<21

где α = -20log10 δ является затуханием в полосе задерживания, выраженной в децибелах, и

n=α7.952.285(Δω)

где n - порядок фильтра, а, ω, - ширина наименьшей переходной области.

Ссылки

[1] Комитет по цифровой обработке сигналов Общества акустики, речи и обработки сигналов IEEE, eds. Выбранные документы в цифровой обработке сигналов. Vol. II. New York: IEEE Press, 1976.

[2] Кайзер, Джеймс Ф. «Нерекурсивное Создание цифровых фильтров с использованием функции I0-Sinh Window». Материалы Международного симпозиума IEEE по схемам и системам 1974 года. 1974, стр 20–23.

[3] Oppenheim, Alan V., Ronald W. Schafer, and John R. Buck. Обработка сигнала в дискретном времени. Верхняя Седл-Ривер, Нью-Джерси: Prentice Hall, 1999.

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

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.

См. также

| |

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