firpmord

Оценка порядка оптимального КИХ-фильтра Parks-McClellan

Описание

[n,fo,ao,w] = firpmord(f,a,dev) возвращает аппроксимированный порядок n, нормированные ребра диапазона частот fo, амплитуды диапазона частот ao, и веса w это выполняет входным техническим требованиям fA, и dev.

пример

[___] = firpmord(___,fs) задает частоту дискретизации fs. fs значения по умолчанию к 2 Гц, подразумевая частоту Найквиста 1 Гц. Можно задать ребра полосы, масштабируемые к частоте дискретизации конкретного приложения. Можно использовать это с любым из предыдущих входных синтаксисов.

пример

c = firpmord(___,'cell') возвращает массив ячеек c чьими элементами являются параметры к firpm.

Примеры

свернуть все

Спроектируйте минимальный порядок фильтр lowpass с частотой среза полосы пропускания на 500 Гц и частотой среза полосы задерживания на 600 Гц. Задайте частоту дискретизации 2 000 Гц. Потребуйте по крайней мере 40 дБ затухания в полосе задерживания и меньше чем 3 дБ пульсации в полосе пропускания.

rp = 3;           % Passband ripple in dB 
rs = 40;          % Stopband ripple in dB
fs = 2000;        % Sampling frequency
f = [500 600];    % Cutoff frequencies
a = [1 0];        % Desired amplitudes

Преобразуйте отклонения в линейные модули. Спроектируйте фильтр и визуализируйте его величину и фазовые отклики.

dev = [(10^(rp/20)-1)/(10^(rp/20)+1) 10^(-rs/20)]; 
[n,fo,ao,w] = firpmord(f,a,dev,fs);
b = firpm(n,fo,ao,w);
freqz(b,1,1024,fs)
title('Lowpass Filter Designed to Specifications')

Figure contains 2 axes objects. Axes object 1 with title Lowpass Filter Designed to Specifications contains an object of type line. Axes object 2 contains an object of type line.

Фильтр немного далек от встречи технические требования неравномерности в полосе пропускания и затухание в полосе задерживания. Используя n+1 вместо n в вызове firpm достигает желаемых амплитудных характеристик.

Спроектируйте фильтр lowpass с частотой среза полосы пропускания на 1 500 Гц и частотой среза полосы задерживания на 2 000 Гц. Задайте частоту дискретизации 8 000 Гц. Потребуйте максимальной амплитуды полосы задерживания 0,1 и максимальной ошибки полосы пропускания (пульсация) 0,01.

[n,fo,ao,w] = firpmord([1500 2000],[1 0],[0.01 0.1],8000);
b = firpm(n,fo,ao,w);

Получите эквивалентный результат при наличии firpmord сгенерируйте массив ячеек. Визуализируйте частотную характеристику фильтра.

c = firpmord([1500 2000],[1 0],[0.01 0.1],8000,'cell');
B = firpm(c{:});
freqz(B,1,1024,8000)

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

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

свернуть все

Ребра диапазона частот в виде вектора с действительным знаком. Аргумент должен быть в области значений [0, Fs/2], где Fs является частотой Найквиста. Число элементов в векторе всегда является кратным 2. Частоты должны быть в увеличивающемся порядке.

Желаемые амплитуды в точках содержатся в fВ виде вектора. f и a должен удовлетворить длине условия (f) = 2length (a) –2. Желаемая функция является кусочной константой.

Максимальное допустимое отклонение в виде вектора. dev имеет тот же размер как a. Это задает максимальное допустимое отклонение или пульсации между частотной характеристикой и желаемой амплитудой выходного фильтра для каждой полосы.

Частота дискретизации в виде действительного скаляра.

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

свернуть все

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

Нормированная частота указывает в виде вектора с действительным знаком. Аргумент должен быть в области значений [0, 1], где 1 соответствует частоте Найквиста. Число элементов в векторе всегда является кратным 2. Частоты должны быть в увеличивающемся порядке.

Амплитудный ответ, возвращенный как вектор с действительным знаком.

Веса раньше настраивали подгонку в каждом диапазоне частот в виде вектора с действительным знаком. Длина w половина длины f и a, таким образом, существует точно один вес на полосу.

КИХ-параметры фильтра, возвращенные как массив ячеек.

Алгоритмы

firpmord использует алгоритм, предложенный в [1]. Эта функция приводит к неточным результатам для ребер полосы или близко к 0 или близко к частота Найквиста, fs/2.

Примечание

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

Ссылки

[1] Rabiner, Лоуренс Р. и Отто Херрманн. “Предсказуемость определенных оптимальных цифровых фильтров конечной импульсной характеристики”. IEEE® Транзакции на Теории Схемы. Издание 20, Номер 4, 1973, стр 401–408.

[2] Rabiner, Лоуренс Р. и Бернард Голд. Теория и Приложение Цифровой обработки сигналов. Englewood Cliffs, NJ: Prentice Hall, 1975, стр 156–157.

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

Смотрите также

| | | | |

Представлено до R2006a
Для просмотра документации необходимо авторизоваться на сайте