Although less well-known, IIR filters can be implemented with block
processing [20], [12], [42], [7], [8]. The block form of an IIR
filter is developed in much the same way as for the block convolution
implementation of the FIR filter. The general constant coefficient
difference equation which describes an IIR filter with recursive
coefficients alal, convolution coefficients bkbk, input signal x(n)x(n),
and output signal y(n)y(n) is given by
y
(
n
)
=
∑
l
=
1
N
-
1
a
l
y
n
-
l
+
∑
k
=
0
M
-
1
b
k
x
n
-
k
y
(
n
)
=
∑
l
=
1
N
-
1
a
l
y
n
-
l
+
∑
k
=
0
M
-
1
b
k
x
n
-
k
(10)using both functional notation and subscripts, depending on which is
easier and clearer. The impulse response h(n)h(n) is
h
(
n
)
=
∑
l
=
1
N
-
1
a
l
h
(
n
-
l
)
+
∑
k
=
0
M
-
1
b
k
δ
(
n
-
k
)
h
(
n
)
=
∑
l
=
1
N
-
1
a
l
h
(
n
-
l
)
+
∑
k
=
0
M
-
1
b
k
δ
(
n
-
k
)
(11)which can be written in matrix operator form
1
0
0
⋯
0
a
1
1
0
a
2
a
1
1
a
3
a
2
a
1
0
a
3
a
2
⋮
⋮
h
0
h
1
h
2
h
3
h
4
⋮
=
b
0
b
1
b
2
b
3
0
⋮
1
0
0
⋯
0
a
1
1
0
a
2
a
1
1
a
3
a
2
a
1
0
a
3
a
2
⋮
⋮
h
0
h
1
h
2
h
3
h
4
⋮
=
b
0
b
1
b
2
b
3
0
⋮
(12)In terms of NN by NN submatrices and length-NN blocks, this becomes
A
0
0
0
⋯
0
A
1
A
0
0
0
A
1
A
0
⋮
⋮
h
̲
0
h
̲
1
h
̲
2
⋮
=
b
̲
0
b
̲
1
0
⋮
A
0
0
0
⋯
0
A
1
A
0
0
0
A
1
A
0
⋮
⋮
h
̲
0
h
̲
1
h
̲
2
⋮
=
b
̲
0
b
̲
1
0
⋮
(13)From this formulation, a block recursive equation can be written that will
generate the impulse response block by block.
A
0
h
̲
n
+
A
1
h
̲
n
-
1
=
0
for
n
≥
2
A
0
h
̲
n
+
A
1
h
̲
n
-
1
=
0
for
n
≥
2
(14)
h
̲
n
=
-
A
0
-
1
A
1
h
̲
n
-
1
=
K
h
̲
n
-
1
for
n
≥
2
h
̲
n
=
-
A
0
-
1
A
1
h
̲
n
-
1
=
K
h
̲
n
-
1
for
n
≥
2
(15)with initial conditions given by
h
̲
1
=
-
A
0
-
1
A
1
A
0
-
1
b
̲
0
+
A
0
-
1
b
̲
1
h
̲
1
=
-
A
0
-
1
A
1
A
0
-
1
b
̲
0
+
A
0
-
1
b
̲
1
(16)This can also be written to generate the square partitions of the impulse
response matrix by
H
n
=
K
H
n
-
1
for
n
≥
2
H
n
=
K
H
n
-
1
for
n
≥
2
(17)with initial conditions given by
H
1
=
K
A
0
-
1
B
0
+
A
0
-
1
B
1
H
1
=
K
A
0
-
1
B
0
+
A
0
-
1
B
1
(18)ane K=-A0-1A1K=-A0-1A1. This recursively generates square submatrices
of HH similar to those defined in Equation 4 and Equation 6 and shows the
basic structure of the dynamic system.
Next, we develop the recursive formulation for a general input as
described by the scalar difference equation Equation 11 and in matrix operator
form by
1
0
0
⋯
0
a
1
1
0
a
2
a
1
1
a
3
a
2
a
1
0
a
3
a
2
⋮
⋮
y
0
y
1
y
2
y
3
y
4
⋮
=
b
0
0
0
⋯
0
b
1
b
0
0
b
2
b
1
b
0
0
b
2
b
1
0
0
b
2
⋮
⋮
x
0
x
1
x
2
x
3
x
4
⋮
1
0
0
⋯
0
a
1
1
0
a
2
a
1
1
a
3
a
2
a
1
0
a
3
a
2
⋮
⋮
y
0
y
1
y
2
y
3
y
4
⋮
=
b
0
0
0
⋯
0
b
1
b
0
0
b
2
b
1
b
0
0
b
2
b
1
0
0
b
2
⋮
⋮
x
0
x
1
x
2
x
3
x
4
⋮
(19)which, after substituting the definitions of the sub matrices and assuming
the block length is larger than the order of the numerator or denominator,
becomes
A
0
0
0
⋯
0
A
1
A
0
0
0
A
1
A
0
⋮
⋮
y
̲
0
y
̲
1
y
̲
2
⋮
=
B
0
0
0
⋯
0
B
1
B
0
0
0
B
1
B
0
⋮
⋮
x
̲
0
x
̲
1
x
̲
2
⋮
.
A
0
0
0
⋯
0
A
1
A
0
0
0
A
1
A
0
⋮
⋮
y
̲
0
y
̲
1
y
̲
2
⋮
=
B
0
0
0
⋯
0
B
1
B
0
0
0
B
1
B
0
⋮
⋮
x
̲
0
x
̲
1
x
̲
2
⋮
.
(20)From the partitioned rows of Equation 21, one can write the block recursive relation
A
0
y
̲
n
+
1
+
A
1
y
̲
n
=
B
0
x
̲
n
+
1
+
B
1
x
̲
n
A
0
y
̲
n
+
1
+
A
1
y
̲
n
=
B
0
x
̲
n
+
1
+
B
1
x
̲
n
(21)Solving for y̲n+1y̲n+1 gives
y
̲
n
+
1
=
-
A
0
-
1
A
1
y
̲
n
+
A
0
-
1
B
0
x
̲
n
+
1
+
A
0
-
1
B
1
x
̲
n
y
̲
n
+
1
=
-
A
0
-
1
A
1
y
̲
n
+
A
0
-
1
B
0
x
̲
n
+
1
+
A
0
-
1
B
1
x
̲
n
(22)
y
̲
n
+
1
=
K
y
̲
n
+
H
0
x
̲
n
+
1
+
H
˜
1
x
̲
n
y
̲
n
+
1
=
K
y
̲
n
+
H
0
x
̲
n
+
1
+
H
˜
1
x
̲
n
(23)which is a first order vector difference equation [7], [8]. This
is the fundamental block recursive algorithm that implements the original
scalar difference equation in Equation 11. It has several important
characteristics.
- The block recursive formulation is similar to a state variable equation
but the states are blocks or sections of the output [8], [28], [46], [47].
- The eigenvalues of KK are the poles of the original scalar problem
raised to the NN power plus others that are zero. The longer the block
length, the “more stable" the filter is, i.e. the further the poles are
from the unit circle [7], [8], [46], [4], [6].
- If the block length were shorter than the denominator, the vector
difference equation would be higher than first order. There would be a
non zero A2A2. If the block length were shorter than the numerator,
there would be a non zero B2B2 and a higher order block convolution
operation. If the block length were one, the order of the vector equation
would be the same as the scalar equation. They would be the same
equation.
- The actual arithmetic that goes into the calculation of the output is
partly recursive and partly convolution. The longer the block, the more
the output is calculated by convolution and, the more arithmetic is
required.
- It is possible to remove the zero eigenvalues in KK by making KK
rectangular or square and N by N This results in a form even more similar
to a state variable formulation [35], [8]. This is briefly
discussed below in The Z-Transform.
- There are several ways of using the FFT in the calculation of the various
matrix products in Equation 22 and in Equation 24 and Equation 25. Each has
some arithmetic advantage for various forms and orders of the original
equation. It is also possible to implement some of the operations using
rectangular transforms, number theoretic transforms, distributed
arithmetic, or other efficient convolution algorithms
[8], [46], [3], [11], [45], [36].
- By choosing the block length equal to the period, a periodically time
varying filter can be made block time invariant. In other words, all the
time varying characteristics are moved to the finite matrix multiplies
which leave the time invariant properties at the block level. This allows
use of z-transform and other time-invariant methods to be used for
stability analysis and frequency response analysis [31], [32]. It
also turns out to be related to filter banks and multi-rate filters
[30], [29], [14].