Title: Chapter 6. Digital Filter Structures
1Chapter 6. Digital Filter Structures
- Gao Xinbo
- School of E.E., Xidian Univ.
- xbgao_at_ieee.org
- xbgao_at_lab202.xidian.edu.cn
- http//see.xidian.edu.cn/teach/matlabdsp/
-
2Introduction
- In earlier chapters we studied the theory of
discrete systems in both the time and frequency
domains. - We will now use this theory for the processing of
digital signals. - To process signals, we have to design and
implement systems called filters. - The filter design issue is influenced by such
factors as - The type of the filter IIR or FIR
- The form of its implementation structures
- Different filter structures dictate different
design strategies.
3Introduction
- IIR filters are characterized by
infinite-duration impulse response. Some of these
impulse responses can be modeled by - Rational system functions
- Difference equations
- ARMA or recursive filters
- We will treat FIR filter separately from IIR
filters for both design and implementation
purposes.
4Introduction
- Since our filters are LTI systems, we need the
following three elements to describe digital
filter structures. - Adder
- Multiplier (Gain)
- Delay element (shift or memory)
5IIR Filter Structures
- The system function of an IIR filter is given by
The order of such an IIR filter is called N if
aN0. The difference equation representation of
an IIR filter is expressed as
6Three different structures can be used to
implement an IIR filter
- Direct form
- In this form, there are two parts to this filter,
the moving average part and the recursive part
(or the numerator and denominator parts) - Two version direct form I and direct form II
- Cascade form
- The system function H(z) is factored into smaller
second-order sections, called biquads. H(z) is
then represented as a product of these biquads. - Each biquad is implemented in a direct form, and
the entire system function is implemented as a
cascade of biquad sections. - Parallel form
- H(z) is represented as a sum of smaller
second-order sections. - Each section is again implemented in a direct
form. - The entire system function is implemented as a
parallel network of sections.
7Direct Form I Structure
- As the name suggests, the difference equation is
implemented as given using delays, multipliers,
and adders. - For the purpose of illustration, Let MN2,
8Direct Form II Structure
The commutative law of the convolution
Direct Form II structure
9Matlab Implementation
- In Matlab the direct from structure is described
by two row vectors - b containing the bn coefficients and a
containing the an coefficients. - The structure is implemented by the filter
function, which is discussed in Chapter 2.
10Cascade Form
- In this form the system function H(z) is written
as a product of second-order section with real
coefficients. - This is done by factoring the numerator and
denominator polynomials into their respective
roots and then combining either a complex
conjugate root pair or any two real roots into
second-order polynomials.
11Cascade Form
- We assume that N is an even integer. Then
Where, K is equal to N/2, and Bk,1, Bk,2, Ak,1,
Ak,2 are real numbers representing the
coefficients of second-order section.
12Biquad Section
Is called the k-th biquad section. The input to
the k-th biquad section is the output from the
(k-1)-th section, while the output from the k-th
biquad is the input to the (k1)-th biquad. Each
biquad section can be implemented in direct form
II.
13The entire filter is then implemented as a
cascade of biquads
Cascade form structure for N4
14Matlab Implementation
- Given the coefficients bn and an of the
direct form filter - The function b0,B,A dir2cas(b,a)
- can be used to obtain the coefficients b0,
Bk,i, and Ak,i. - The cascade form is implemented using a casfiltr
function - Function y casfiltr(b0,B,A,x)
- Function cas2dir converts a cascade form to a
direct form. - Function b,a cas2dir(b0,B,A)
- Examples 6.1
15Parallel Form
- In this form the system function H(z) is written
as a sum of second-order section using partial
fraction expansion.
KN/2, and B,A are real numbers
16The second-order section
Is the k-th proper rational biquad section. The
filter input is available to all biquad section
as well as to the polynomial section if MgtN
(which is an FIR part) The output from these
sections is summed to form the filter
output. Each biquad section can be implemented in
direct form II.
17Parallel form structure
Parallel form structure for N4 (MN4)
18Matlab Implementation
- The function dir2par converts the direct form
coefficients bn and an into parallel form
coefficients Bk,i and Ak,i - Functions
- C,B,A dir2par(b,a)
- I cplxcomp(p1,p2)
- y parfiltr(C,B,A,x)
- b,a par2dir(C,B,A)
- Examples
19FIR Filter Structure
A finite-duration impulse response filter has a
system function of the form
Hence the impulse response h(n) is
And the difference equation representation is
Which is a linear convolution of finite
support. The order of the filter is M-1, while
the length of the filter is M.
20FIR Filter Structure
- Direct form
- The difference equation is implemented as a
tapped delay line since there are no feedback
paths. - Figure 6.10
- Note that since the denominator is equal to
unity, there is only one direct form structure. - Matlab implementation
- Function y filter(b,1,x)
21FIR Filter Structure
- Cascade form
- Figure 6.11
- Matlab Implementation
- Function dir2cas, cas2dir
22FIR Filter Structure
- Linear-phase form
- For frequency-selective filters (e.g., lowpass
filters) it is generally desirable to have a
phase response that is a linear function of
frequency. That is - For a causal FIR filter with impulse over 0,M-1
interval, the linear-phase conditions
Symmetric impulse response vs. antisymmetric
impulse response
23Linear-phase form
- Consider the difference equation with a symmetric
impulse response. - Figure 6.12 M7(odd) and M6(even)
- Matlab implementation
- The linear-phase structure is essentially a
direct form draw differently to save on
multiplications. Hence in a Matlab implementation
the linear-phase structure is equivalent to the
direct form.
24Frequency Sampling Form
- In this form we use the fact that the system
function H(z) of an FIR filter can be
reconstructed from it samples on the unit circle
It is also interesting to note that the FIR
filter described by the above equation has a
recursive form similar to an IIR filter because
it contains both poles and zeros.
25Frequency Sampling Form
- The system function leads to a parallel structure
as shown in Figure 6.15 for M4. - One problem with the structure in Fig.6.15 is
that it requires a complex arithmetic
implementation. - Using the symmetry properties of the DFT and the
(WMk) factor.
26- let p1WM-kexp(-j2pik/M)
- cos(2pik/M)jsin(2pik/M)
- HkmagHkexp(jphaHk)
- magHk(cos(phaHk)jsin(phaHk))
- Then
Figure 6.16
27MATLAB functions and Examples
- Notify the structure type
- C,B,Adir2fs(h) of textbook
- A practical problem unstable, avoid this problem
by sampling H(z) on a circle zr. - Ex6.6 find frequency sample form
- Ex6.7 In this example the frequency sample form
has less computational complexity than direct
form.
28Lattice Filter Structure
- The lattice filter is extensively used in digital
speech processing and in implementation of
adaptive filter. - It is a preferred form of realization over other
FIR or IIR filter structures because in speech
analysis and in speech synthesis the small number
of coefficients allows a large number of formants
to be modeled in real-time. - All-zeros lattice is the FIR filter
representation of the lattice filter. - The lattice ladder is the IIR filter
representation.
29All-zero Lattice Filters
- An FIR filter of length M (or order M-1) has a
lattice structure with M-1 stages.
Km reflection coefficients
30All-zero lattice filters
If the FIR filter is given by the direct form
And if we denote the polynomial
Then the lattice filter coefficients Km can be
obtained by the following recursive algorithm
31Note that the above algorithm will fail if Km1
for any m. Clearly, this condition is satisfied
by the linear-phase FIR filter. Therefore,
linear-phase FIR filter cannot be implemented
using lattice structure.
32Matlab Implementation
- Functions
- K dir2latc(b)
- y latcfilt(K,x)
- b latc2dir(K)
- Example 6.8
33All-pole Lattice Filter
- A lattice structure for an IIR filter is
restricted to an all-pole system unction. - It can be developed from an FIR lattice
structure. - This IIR filter of order N has a lattice
structure with N stages as shown in Fig.6.20. - Each stage of the filter has an input and output
that are related by the order-recursive equations.
34All-pole Lattice Filter
35Matlab Implementation
- Function K dir2latc(a)
- Care must be taken to ignore the K0 coefficient
in the K array. - Function a latc2dir(K)
- K01
36Lattice ladder Filters
- A general IIR filter containing both poles and
zeros can be realized as a lattice-type structure
by using an all-pole lattice as the basic
building block. - Consider an IIR filter with system function
- Where, without loss of generality, we assume that
NgtM
37Lattice ladder Filters
- A lattice type structure can be constructed by
first realizing an all-poles lattice with
coefficient Km for the denominator and then
adding a ladder part by taking the output as a
weighted linear combination of gm(n) as shown
in Fig.6.22 for MN.
38Lattice ladder Filters
The output of the lattice-ladder structure is
given by
Cm are called the ladder coefficients that
determine the zeros of the system function H(z).
39Matlab Implementation
- Function K,C dir2ladr(b,a)
- To use this function, NgtM. If MgtN, then the
numerator AN(z) should be divided into the
denominator BM(z) using the deconv function to
obtain a proper rational part and a polynomial
part. The proper rational part can be implemented
using the lattice-ladder structure, while the
polynomial part is implemented using the direct
structure. - Function b,a ladr2dir(K,C)
- Function y ladrfilt(K,C,x)
40Readings and exercises
- Textbook pp182217
- Chinese ref. Book pp.128137, 231234
- Exercises
- 1. 6.2, 6.3 both except (e)
- 2. 6.2e, 6.3e, 6.8, ?6.10