Search Introduction to Digital Filters
Would you like to be notified by email when Julius Orion Smith III publishes a new entry into his blog?
Figure J.9 gives a listing of a matlab function for computing a
``right justified'' partial fraction expansion (PFE) of an IIR digital
filter
as described in §6.8 (and below).
The code in Fig.J.9 was written to work in Octave, and also in Matlab if the 'm' argument is omitted (in two places).
function [r, p, f, e] = residued(b, a, toler) if nargin<3, toler=0.001; end NUM = b(:)'; DEN = a(:)'; nb = length(NUM); na = length(DEN); f = []; if na<=nb f = filter(NUM,DEN,[1,zeros(nb-na)]); NUM = NUM - conv(DEN,f); NUM = NUM(nb-na+2:end); end [r,p,f2,e] = residuez(NUM,DEN,toler); |
