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