exponenta event banner

firpmord

Оптимальная оценка порядка FIR-фильтра Паркса-Макклеллана

Описание

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

пример

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

пример

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

Примеры

свернуть все

Проектирование фильтра нижних частот минимального порядка с частотой отсечки полосы пропускания 500 Гц и частотой отсечки полосы отсечки 600 Гц. Укажите частоту дискретизации 2000 Гц. Требуется не менее 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. Axes 1 with title Lowpass Filter Designed to Specifications contains an object of type line. Axes 2 contains an object of type line.

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

Проектирование фильтра нижних частот с частотой отсечки полосы пропускания 1500 Гц и частотой отсечки полосы отсечки 2000 Гц. Укажите частоту дискретизации 8000 Гц. Требуется максимальная амплитуда полосы останова 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. Axes 1 contains an object of type line. Axes 2 contains an object of type line.

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

свернуть все

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

Требуемые амплитуды в точках, содержащихся в f, указан как вектор. f и a должен удовлетворять условию length (f) = 2length (a) -2. Требуемая функция является кусочно постоянной.

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

Частота выборки, заданная как действительный скаляр.

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

свернуть все

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

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

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

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

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

Алгоритмы

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

Примечание

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

Ссылки

[1] Рабинер, Лоуренс Р. и Отто Германн. «Предсказуемость некоторых оптимальных цифровых фильтров с конечным импульсом отклика». IEEE ® Транзакции по теории каналов. Том 20, номер 4, 1973, стр. 401-408.

[2] Рабинер, Лоуренс Р. и Бернард Голд. Теория и применение цифровой обработки сигналов. Энглвуд Клиффс, Нью-Джерси: Прентис-Холл, 1975, стр. 156-157.

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

.

См. также

| | | | |

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