Next |
Prev |
Up |
Top
|
Index |
JOS Index |
JOS Pubs |
JOS Home |
Search
Polynomial Division in Matlab
The matlab function deconv (deconvolution) can be used
to perform polynomial long division in order to split an improper
transfer function into its FIR and strictly proper parts:
B = [ 2 6 6 2]; % 2*(1+1/z)^3
A = [ 1 -2 1]; % (1-1/z)^2
[firpart,remainder] = deconv(B,A)
% firpart =
% 2 10
% remainder =
% 0 0 24 -8
Thus, this example finds that
is as written in Eq.(6.21).
This result can be checked by obtaining a common denominator in order
to recalculate the direct-form numerator:Bh = remainder + conv(firpart,A)
% = 2 6 6 2
The operation deconv(B,A) can be implemented using
filter in a manner analogous to the polynomial
multiplication case (see §6.8.8 above):
firpart = filter(B,A,[1,zeros(1,length(B)-length(A))])
% = 2 10
remainder = B - conv(firpart,A)
% = 0 0 24 -8
That this must work can be seen by looking at Eq.(6.21) and
noting that the impulse-response of the remainder (the strictly proper
part) does not begin until time
, so that the first two samples
of the impulse-response come only from the FIR part.
In summary, we may conveniently use convolution and deconvolution to
perform polynomial multiplication and division, respectively, such as
when converting transfer functions to various alternate forms.
When carrying out a partial fraction expansion on a transfer function
having a numerator order which equals or exceeds the denominator
order, a necessary preliminary step is to perform long division to
obtain an FIR filter in parallel with a strictly proper transfer
function. This section describes how an FIR part of any length can be
extracted from an IIR filter, and this can be used for PFEs as well as
for more advanced applications [].
Next |
Prev |
Up |
Top
|
Index |
JOS Index |
JOS Pubs |
JOS Home |
Search
[How to cite this work] [Order a printed hardcopy] [Comment on this page via email]