prony

Метод Prony для создания фильтра

Синтаксис

[Num,Den] = prony(impulse_resp,num_ord,denom_ord)

Описание

[Num,Den] = prony(impulse_resp,num_ord,denom_ord) возвращает числитель Num и знаменатель Den коэффициенты для причинной рациональной системной функции с импульсной характеристикой impulse_resp. Системная функция имеет порядок числителя num_ord и знаменатель заказывает denom_ord. Длины Num и Den num_ord+1 и denom_ord+1. Если длина impulse_resp меньше самого большого порядка (num_ord или denom_ord), impulse_resp дополнен нулями. Войдите 0 в num_ord для системной функции все-полюса. Для все-нулевой системной функции введите 0 для denom_ord.

Примеры

свернуть все

Подбирайте 4-й порядок модель IIR к импульсной характеристике фильтра lowpass. Постройте исходные и Prony-спроектированные импульсные характеристики.

d = designfilt('lowpassiir','NumeratorOrder',4,'DenominatorOrder',4, ...
    'HalfPowerFrequency',0.2,'DesignMethod','butter');

impulse_resp = filter(d,[1 zeros(1,31)]);
denom_order = 4;
num_order = 4;
[Num,Den] = prony(impulse_resp,num_order,denom_order);

subplot(2,1,1) 
stem(impz(Num,Den,length(impulse_resp)))
title 'Impulse Response with Prony Design'

subplot(2,1,2)
stem(impulse_resp)
title 'Input Impulse Response'

Подбирайте 10-й порядок модель FIR к импульсной характеристике фильтра highpass. Постройте исходные и Prony-спроектированные частотные характеристики.

d = designfilt('highpassfir', 'FilterOrder', 10, 'CutoffFrequency', .8);

impulse_resp = filter(d,[1 zeros(1,31)]);
num_order = 10;
denom_order = 0;
[Num,Den] = prony(impulse_resp,num_order,denom_order);

fvt = fvtool(Num,Den,d);
legend(fvt,'Prony','Original')

Больше о

свернуть все

Системная функция

system function является z-преобразованием импульсной характеристики h [n]:

H(z)=n=h[n]zn

rational system function является отношением полиномов в z –1. Условно полиномом числителя является B (z), и знаменателем является A (z). Следующее уравнение описывает причинную рациональную системную функцию порядка числителя, который q и знаменатель заказывают p:

H(z)=k=0qb[k]zk1+l=1pa[l]zl

где a [0] = 1.

Ссылки

Парки, Томас В. и К. Сидни Беррус. Создание цифровых фильтров. Нью-Йорк: John Wiley & Sons, 1987, стр 226–228.

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