exponenta event banner

kaiserord

Расчетные параметры КИХ-фильтра кайзеровского окна

Описание

[n,Wn,beta,ftype] = kaiserord(f,a,dev) возвращает порядок фильтрации n, нормализованные границы полосы частот Wnи коэффициент формы beta , которые указывают окно Kaiser для использования с fir1 функция. Проектирование фильтра FIR 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.

Примеры

свернуть все

Проектирование фильтра нижних частот с полосой пропускания от 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.

Сконструировать фильтр нижних частот с отсечкой полосы пропускания 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' - фильтр нижних частот с частотой отсечки Wn.

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

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

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

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

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

Параметры FIR, возвращаемые в виде массива ячеек.

Совет

  • Будьте внимательны, чтобы различать значения длины фильтра и порядка фильтра. Длина фильтра - это количество выборок импульсной характеристики в КИХ-фильтре. Обычно импульсная характеристика индексируется от 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 оценивает минимальный порядок фильтра FIR, который будет приблизительно соответствовать спецификациям. kaiserord преобразует заданные характеристики фильтра в пульсации полосы пропускания и полосы останова и преобразует частоты отсечения в форму, необходимую для конструкции оконного КИХ-фильтра.

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

Формулы проектирования, лежащие в основе окна Кайзера, и его применение к конструкции фильтра FIR:

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

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

n = α − 7,952,285 (Δλ)

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

Ссылки

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

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

[3] Оппенгейм, Алан В., Рональд В. Шефер и Джон Р. Бак. Дискретно-временная обработка сигналов. Река Верхнее Седло, Нью-Джерси: Прентис Холл, 1999.

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.

См. также

| |

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