CHAPTER 8

advertisement
CHAPTER 8
DSP Algorithm Implementation
Wang Weilian
wlwang@ynu.edu.cn
School of Information Science and Technology
Yunnan University
OUTLINE
• Concepts Relating to DSP Algorithm
– Matrix Representation
– Precedence Graph
– Structure Verification
• Structure Simulation and Verification Using MATLAB
• Computation of DFT
– Goertzel’s Algorithm
– FFT
– Inverse DFT computation
• Summary
MATRIX REPRESENTATION OF
THE DIGITAL FILTER STRUCTURE
• Consider the structure figure:
• The structure can be described by a set of equations:
W1 ( z )  X ( z )  W5 ( z )
W2 ( z )  W1 ( z )   W3 ( z )
W3 ( z )  z 1W2 ( z )
W4 ( z )  W3 ( z )  W2 ( z )
W5 ( z )  z 1W4 ( z )
Y ( z )  W1 ( z )   W5 ( z )
MATRIX REPRESENTATION OF
THE DIGITAL FILTER STRUCTURE
• In the time-domain, the equivalent set of equations is
as follows:
• The above set of equations are non-computable in the
present order.
MATRIX REPRESENTATION OF
THE DIGITAL FILTER STRUCTURE
• Reorder the above equations as follows:
• The above ordered set of equations can be implemented
in the sequential order and is computable.
MATRIX REPRESENTATION OF
THE DIGITAL FILTER STRUCTURE
• A simple way to examine the computability of structure
equations is by writing the equations in a matrix form.
• Define four matrices as follows:
MATRIX REPRESENTATION OF
THE DIGITAL FILTER STRUCTURE
• The first ordered set of equations can be described
in the compact matrix form:
• The matrix equation is not computable because all
elements of the matrix F on the diagonal and above
diagonal are not all zeros.
MATRIX REPRESENTATION OF
THE DIGITAL FILTER STRUCTURE
• Computability condition: all elements of the F matrix
on the diagonal and above diagonal must be zeros.
• The F matrix for the second ordered set of equations
is
• It can be seen that the above F matrix satisfies the
computability condition.
PRECEDENCE GRAPH
• Precedence graph can be used to test the computability
of a digital filter structure. It is developed from the signal
flow-graph of the digital filter structure.
• The signal flow-graph description of
is shown below
PRECEDENCE GRAPH
• The reduced signal flow-graph is
• The precedence graph of the above figure is
STRUCTURE VERIFICATION
• A digital filter structure is verified to ensure that no
computational and / or other errors taken place and
that the structure is indeed characterized by H (z).
• Consider a causal 3rd order IIR transfer function
• Its unit sample response is {h[n]}, then
STRUCTURE VERIFICATION
• From the above equation, we arrive at
in the time-domain, the equivalent convolution sum is
for n=0,1,2,…,6, we have
STRUCTURE VERIFICATION
• The above equations can be written in the matrix form
in the partitioned form, it can be written as
STRUCTURE VERIFICATION
where
• Solving the second equation, we get
• Substituting above in the first equation, we arrive at
• In the case of N-th order IIR filter, the coefficients of its transfer
function can be determined from the first 2N+1 impulse response
samples.
STRUCTURE VERIFICATION
STRUCTURE VERIFICATION
Structure Simulation & Verification
Using MATLAB
• As shown earlier, the set of equations describing the
filter structure must be ordered properly to ensure
computability.
• The procedure is to express the output of each adder
and filter output variable in terms of all incoming
variables.
Structure Simulation & Verification
Using MATLAB
Structure Simulation & Verification
Using MATLAB
• From the computed impulse response samples, the structure can
be verified by determining the transfer function coefficients using
the M-file strucver.
• The M-file filter implements IIR filter in the transposed direct form
II structure shown below for a 3rd order filter.
• As indicated in the figure, d(1) has been assumed to be equal to 1.
Structure Simulation & Verification
Using MATLAB
Structure Simulation & Verification
Using MATLAB
COMPUTATION OF DFT
GOERTZEL’S ALGORITHM
• Goertzel’s algorithm is a recursive DFT computation scheme
making use of the identity
• We can write
• Define
WN kN  1
GOERTZEL’S ALGORITHM
then we have
•
yk [n ] is the direct convolution of the causal sequence
with a causal sequence
GOERTZEL’S ALGORITHM
• A second order realization
• According to the above figure, DFT computation equations are
GOERTZEL’S ALGORITHM
FAST FOURIER TRANSFORM
ALGORITHMS
• The basic idea behind the fast Fourier transform ( FFT)
– Decompose the N-point DFT computation into computations of smallersize DFTs
WNkN
– Take advantage of the periodicity and symmetry of the complex
number
.
DECIMATION-IN-TIME FFT ALGORITHM
• Consider a sequence x[n] of length N  2u . Using 2-band polyphase
decomposition, we can express its z-transform as
DECIMATION-IN-TIME FFT ALGORITHM
DECIMATION-IN-TIME FFT ALGORITHM
DECIMATION-IN-TIME FFT ALGORITHM
DECIMATION-IN-TIME FFT ALGORITHM
DECIMATION-IN-TIME FFT ALGORITHM
DECIMATION-IN-TIME FFT ALGORITHM
DECIMATION-IN-TIME FFT ALGORITHM
DECIMATION-IN-TIME FFT ALGORITHM
DECIMATION-IN-TIME FFT ALGORITHM
DECIMATION-IN-TIME FFT ALGORITHM
DECIMATION-IN-TIME FFT ALGORITHM
• Examination of the above flow-graph reveals that each stage
of the DFT computation process employs the same basic
computational module
• Basic computational module is called butterfly computation.
DECIMATION-IN-TIME FFT ALGORITHM
DECIMATION-IN-TIME FFT ALGORITHM
DECIMATION-IN-TIME FFT ALGORITHM
DECIMATION-IN-TIME FFT ALGORITHM
DECIMATION-IN-TIME FFT ALGORITHM
DECIMATION-IN-FREQUENCY FFT
ALGORITHM
DECIMATION-IN-FREQUENCY FFT
ALGORITHM
DECIMATION-IN-FREQUENCY FFT
ALGORITHM
DECIMATION-IN-FREQUENCY FFT
ALGORITHM
DECIMATION-IN-FREQUENCY FFT
ALGORITHM
DECIMATION-IN-FREQUENCY FFT
ALGORITHM
INVERSE DFT COMPUTATION
INVERSE DFT COMPUTATION
INVERSE DFT COMPUTATION
DFT AND IDFT COMPUTATION USING
MATLAB
• The following functions in the MATLAB package
can be used to compute DFT and IDFT:
fft(x)
ifft(x)
fft(x,N)
ifft(x,N)
• Since vectors in MATLAB are indexed from 1 to N,
the DFT and the IDFT computed in the above
MATLAB functions make use of the expressions:
N

( n 1)( k 1)
X
[
k
]

x
[
n
]
W
,1  k  N

N


n 1

N
1
 ( n 1)( k 1)
 x[n] 
X
[
k
]
W
,1  n  N

N

N k 1

SUMMARY
• Some common factors in the implementation of
DSP algorithm
• The implementation carried out by the set of
equations describing the algorithm
• The computability condition of these equations
• Fast Fourier transform (FFT)
• MATLAB-based implementation of digital filtering
algorithms
Download