Consider causal FIR filters:
yn=∑
k
=0M−1hkxn−k
y
n
k
M
1
0
h
k
x
n
k
; this can be realized using the following structure
or in a different notation
This is called the
directform FIR filter structure.
There are no closed loops (no feedback) in this structure, so it
is called a nonrecursive structure. Since any FIR
filter can be implemented using the directform, nonrecursive
structure, it is always possible to implement an FIR filter
nonrecursively. However, it is also possible to implement an
FIR filter recursively, and for some
special sets of FIR filter coefficients this is much more
efficient.
yn=∑
k
=0M−1xn−k
y
n
k
M
1
0
x
n
k
where
hk=00
1
⌃︀
k
=
0
1…1
1
⌃︀
k
=
M

1
000…
h
k
0
0
1
⌃︀
k
=
0
1
…
1
1
⌃︀
k
=
M

1
0
0
0
…
But note that
yn=yn−1+xn−xn−M
y
n
y
n
1
x
n
x
n
M
This can be implemented as
Instead of costing
M−1
M
1
adds/output point, this comb filter costs only two
adds/output.
Is this stable, and if not, how can it be made so?
IIR filters must be implemented with a
recursive structure, since that's the
only way a finite number of elements can generate an
infinitelength impulse response in a linear, timeinvariant (LTI)
system. Recursive structures have the advantages of being
able to implement IIR systems, and sometimes greater
computational efficiency, but the disadvantages of
possible instability, limit cycles, and other deletorious
effects that we will study shortly.
The flowgraphreversal theorem says that if one
changes the directions of all the arrows, and inputs at the
output and takes the output from the input of a reversed
flowgraph, the new system has an identical inputoutput
relationship to the original flowgraph.
The ztransform of an FIR filter can be factored into a
cascade of shortlength filters
b
0
+
b
1
z1+
b
2
z3+…+
b
m
z−m=
b
0
(1−
z
1
z1)(1−
z
2
z1)…(1−
z
m
z1)
b
0
b
1
z
b
2
z
3
…
b
m
z
m
b
0
1
z
1
z
1
z
2
z
…
1
z
m
z
where the
z
i
z
i
are the zeros of this polynomial. Since the
coefficients of the polynomial are usually real, the roots
are usually complexconjugate pairs, so we generally combine
(1−
z
i
z1)(1−
z
i
*z1)
1
z
i
z
1
z
i
z
into one quadratic (length2) section with
real coefficients
(1−
z
i
z1)(1−
z
i
*z1)=1−2Re
z
i
z1+
z
i
2z2=
H
i
z
1
z
i
z
1
z
i
z
1
2
z
i
z
z
i
2
z
2
H
i
z
The overall filter can then be implemented in a
cascade structure.
This is occasionally done in FIR filter implementation
when one or more of the shortlength filters can be
implemented efficiently.
It is also possible to implement FIR filters in a lattice
structure: this is sometimes used in adaptive filtering