Prony method for filter design
Fit a 4th-order IIR model to the impulse response of a lowpass filter. Plot the original and Prony-designed impulse responses.
d = designfilt('lowpassiir','NumeratorOrder',4,'DenominatorOrder',4, ... 'HalfPowerFrequency',0.2,'DesignMethod','butter'); h = filter(d,[1 zeros(1,31)]); bord = 4; aord = 4; [b,a] = prony(h,bord,aord); subplot(2,1,1) stem(impz(b,a,length(h))) title 'Impulse Response with Prony Design' subplot(2,1,2) stem(h) title 'Input Impulse Response'
Fit a 10th-order FIR model to the impulse response of a highpass filter. Plot the original and Prony-designed frequency responses. The responses match to high precision.
d = designfilt('highpassfir','FilterOrder',10,'CutoffFrequency',0.8); h = filter(d,[1 zeros(1,31)]); bord = 10; aord = 0; [b,a] = prony(h,bord,aord); fvt = fvtool(b,a,d); legend(fvt,'Prony','Original')
h— Impulse response
Impulse response, specified as a vector.
impz(fir1(20,0.5)) specifies the impulse response of a
20th-order FIR filter with normalized cutoff frequency π/2 rad/sample.
Complex Number Support: Yes
aord— Numerator and denominator orders
If you want an all-pole transfer function, specify
If you want an all-zero transfer function, specify
The transfer function is the Z-transform of the impulse response h[n]:
A rational transfer function is a ratio of polynomials in z–1. This equation describes a causal rational transfer function of numerator order q and denominator order p:
where a = 1.
 Parks, Thomas W., and C. Sidney Burrus. Digital Filter Design. New York, NY, USA: Wiley-Interscience, 1987.