Biomedical Signal processing Chapter 9 Computation of the Discrete Fourier Transform Zhongguo Liu Biomedical Engineering School of Control Science and Engineering, Shandong University 2015/4/13 1 Zhongguo Liu_Biomedical Engineering_Shandong Univ. Chapter 9 Computation of the Discrete Fourier Transform 9.0 Introduction 9.1 Efficient Computation of Discrete Fourier Transform 9.2 The Goertzel Algorithm 9.3 decimation-in-time FFT Algorithms 9.4 decimation-in-frequency FFT Algorithms 9.5 practical considerations(software realization) 2 9.0 Introduction Implement a convolution of two sequences by the following procedure: 1. Compute the N-point DFT X 1 k and X 2 k of the two sequence x1 n and x2 n 2. Compute X 3 k X1k X 2 k for 0 k N 1 3. Compute x3 n x1n N x2 n as the inverse DFT of X 3 k Why not convolve the two sequences directly? There are efficient algorithms called Fast Fourier Transform (FFT) that can be orders of magnitude more efficient than others. 3 9.1 Efficient Computation of Discrete Fourier Transform The DFT pair was given as N 1 X k x[n]e n 0 j 2 / N kn 1 x[n] N N 1 X k e k 0 DFTcomputational complexity: Each DFT coefficient requires N complex multiplications; N-1 complex additions All N DFT coefficients require N2 complex multiplications; N(N-1) complex additions 4 j 2 / N kn 4 9.1 Efficient Computation of Discrete Fourier Transform N 1 X k x[n]e j 2 / N kn n 0 Complexity in terms of real operations 4N2 real multiplications 2N(N-1) real additions (approximate 2N2) 5 5 9.1 Efficient Computation of Discrete Fourier Transform Most fast methods are based on Periodicity properties Periodicity in n and k; Conjugate symmetry e j 2 / N k N n e Re 6 j 2 / N kn e e j 2 / N kN j 2 / N k n e j 2 / N k n N e e j 2 / N kn j 2 / N k N n ] 6 9.2 The Goertzel Algorithm Makes use of the periodicity e j 2 / N Nk e j 2 k 1 Multiply DFT equation with this factor X k e Define j 2 / N kN N 1 x[r ]e j 2 / N rk r 0 yk n x[r ]e N 1 x[r ]e r 0 j 2 / N k n r r using x[n]=0 for n<0 and n>N-1 j 2 / N k N r u n r X k yk n n N X[k] can be viewed as the output of a filter to the input x[n] j 2 / N kn u n Impulse response of filter: h[n] e X[k] is the output of the filter at time n=N 7 7 9.2 The Goertzel Algorithm Goertzel h[n] e j 2 / N knu[n] W knu[n] Filter: N 1 Hk z 1 WN k z 1 yk [n] yk [n 1]WNk x[n], n 0,1,..., N , X k yk n n N , k 0,1,..., N yk [1] 0 N 1 X k x[n]WNkn n 0 Computational complexity 4N real multiplications; 4N real additions Slightly less efficient than the direct method But it avoids computation and storage of WNkn 8 Second Order Goertzel Filter Goertzel Filter 1 Hk z 2 1 e j N k 1 z Multiply both numerator and denominator j 2 k 2 k N 1 e z 1 Hk z 2 2 2 k 1 2 j k j k 1 1 N N 1 2 cos z z 1 e z 1 e z N 2 k y[n] y[n 2] 2 cos y[n 1] x[n], n 0,1,..., N N yk [ N ] y[ N ] WNk y[ N 1] X k , k 0,1, ..., N 1 e 9 N z 1 j 9 Second Order Goertzel Filter 2 k y[n] y[n 2] 2 cos y[n 1] x[n], n 0,1,..., N N yk [ N ] y[ N ] WNk y[ N 1] X k , k 0,1, ..., N Complexity for one DFT coefficient ( x(n) is complex sequence). Poles: 2N real multiplications and 4N real additions Zeros: Need to be implement only once: 4 real multiplications and 4 real additions Complexity for all DFT coefficients Each pole is used for two DFT coefficients Approximately N2 real multiplications and 2N2 real additions 10 10 Second Order Goertzel Filter 2 k y[n] y[n 2] 2 cos y[n 1] x[n], n 0,1,..., N N yk [ N ] y[ N ] WNk y[ N 1] X k , k 0,1, ..., N If do not need to evaluate all N DFT coefficients Goertzel Algorithm is more efficient than FFT if less than M DFT coefficients are needed,M < log2N 11 11 9.3 decimation-in-time FFT Algorithms Makes use of both periodicity and symmetry Consider special case of N an integer power of 2 Separate x[n] into two sequence of length N/2 Even indexed samples in the first sequence Odd indexed samples in the other sequence N 1 X k x[n]e j 2 / N kn n 0 x[n]e n even 12 j 2 / N kn x[n]e j 2 / N kn n odd 12 9.3 decimation-in-time FFT Algorithms X k x[n]e j 2 / N kn n even x[n]e j 2 / N kn n odd Substitute variables n=2r for n even and n=2r+1 for odd X k N /21 x[2r ]W 2 rk N r 0 N /21 r 0 N /21 x[2r 1]W G k W H k k N N r 0 x[2r ]WNrk/2 WNk 2 r 1k N /21 x[2r 1]WNrk/2 WN2 j 2 2 e N r 0 j 2 e N /2 G[k] and H[k] are the N/2-point DFT’s of each 13 subsequence WN /2 13 9.3 decimation-in-time FFT Algorithms X k N /2 1 x[2r ]W rk N /2 r 0 W G k W H k k N N 1 k 0,1,..., 2 N G k G k 2 k N N /2 1 x[2r 1]W rk N /2 r 0 j 2 2rk e N j 2 rk e N /2 k 0,1,..., N N H k H k 2 G[k] and H[k] are the N/2-point DFT’s of each subsequence 14 W rk N /2 14 8-point DFT using decimation-in-time 15 Figure 9.3 computational complexity Two N/2-point DFTs 2(N/2)2 complex multiplications 2(N/2)2 complex additions Combining the DFT outputs N complex multiplications N complex additions Total complexity N2/2+N complex multiplications N2/2+N complex additions More efficient than direct DFT 16 16 9.3 decimation-in-time FFT Algorithms Repeat same process , Divide N/2-point DFTs into Two N/4-point DFTs Combine outputs N=8 17 17 9.3 decimation-in-time FFT Algorithms After two steps of decimation in time Repeat until we’re left with two-point DFT’s 18 18 9.3 decimation-in-time FFT Algorithms flow graph for 8-point decimation in time N=2m m=log2N Complexity: 19 Nlog2N complex multiplications and additions 19 Butterfly Computation Flow graph constitutes of butterflies We can implement each butterfly with one multiplication Final complexity for decimation-in-time FFT (N/2)log2N complex multiplications and Nlog2N additions 20 20 9.3 decimation-in-time FFT Algorithms Final flow graph for 8-point decimation in time N=2m m=log2N Nlog2N complex multiplications and additions Complexity: (Nlog2N)/2 complex multiplications and Nlog2N additions 21 21 9.3.1 In-Place Computation同址运算 Decimation-in-time flow graphs require two sets of registers Input and output for each stage one set of registers X 0 0 x 0 X 0 1 x 4 X 0 2 x 2 X 0 3 x 6 X 0 4 x 1 X 0 5 x 5 X 0 6 x 3 22X 0 7 x 7 x 0 x 4 x 2 x 6 x 1 x 5 x 3 x 7 X 2 0 X 2 1 X 2 2 X 2 3 X 2 4 X 0 X 1 X 2 X 3 X 4 X 2 5 X 5 X 2 6 X 6 X 2 7 X 7 22 9.3.1 In-Place Computation同址运算 Note the arrangement of the input indices Bit reversed indexing(码位倒置) X 0 0 x 0 X 0 000 x 000 x 0 X 0 X 0 1 x 4 X 0 001 x 100 x 4 X 1 X 0 2 x 2 X 0 010 x 010 x 2 X 0 3 x 6 X 0 011 x 110 X 0 4 x 1 X 0 100 x 001 X 0 5 x 5 X 0 101 x 101 X 0 6 x 3 X 0 110 x 011 X 0 7 x 7 X 0 111 x 111 X 2 x 6 X 3 x 1 X 4 x 5 X 5 x 3 X 6 x 7 X 7 23 23 normal order binary coding for position: x 000 000 x 0 x n2n1n0 x 001 001 x 4 x 010 010 x 2 x 011 011 x 6 x 100 100 x 1 x 101 101 x 110 110 x 111 111 must padding 0 to 24 N 2M x 5 x 3 x 7 Figure 9.13 cause of bit-reversed order binary coding for position: x 0 x 000 000 x n2n1n0 must padding 0 to 25 N 2M x 100 001 x 4 x 010 010 x 2 x 110 011 x 001 100 x 101 101 x 011 110 x 111 111 x 6 x 1 x 5 x 3 x 7 Figure 9.13 9.3.2 Alternative forms Note the arrangement of the input indices Bit reversed indexing(码位倒置) X 0 0 x 0 X 0 000 x 000 x 0 X 0 X 0 1 x 4 X 0 001 x 100 x 4 X 1 X 0 2 x 2 X 0 010 x 010 x 2 X 0 3 x 6 X 0 011 x 110 X 0 4 x 1 X 0 100 x 001 X 0 5 x 5 X 0 101 x 101 X 0 6 x 3 X 0 110 x 011 X 0 7 x 7 X 0 111 x 111 26 X 2 x 6 X 3 x 1 X 4 x 5 X 5 x 3 X 6 x 7 X 7 26 9.3.2 Alternative forms strongpoint:in-place computations shortcoming:non-sequential access of data 27 Figure 9.14 Figure 9.15 28 Input, output same normal order shortcoming:not in-place computation non-sequential access of data Figure 9.16 29 Same structure, Input, output same normal order shortcoming:not in-place computation strongpoint: sequential access of data 9.4 Decimation-In-Frequency FFT Algorithm The DFT equation N 1 X k x[n]WNnk n 0 Split the DFT equation into even and odd frequency indexes N 1 N /2 1 X 2r x[n]WNn 2 r n 0 Substitute variables 30 n 0 N /21 x[n]W n 0 N /2 1 n 2r N x[n]WNn 2 r N 1 n N / 2 N /21 x[n]WNn 2 r x[n N / 2]W n N / 22 r N n 0 x[n] x[n N / 2]W nr N /2 n 0 N /2 1 n 0 g (n)WNrn/2 30 9.4 Decimation-In-Frequency FFT Algorithm N 1 X k x[n]WNnk The DFT equation N 1 X 2r 1 x[n]W n ( 2 r 1) N n 0 N /21 x[n]W n 0 N /2 1 n (2 r 1) N N /21 x[n]W N /21 N 1 n ( 2 r 1) N x[n]W n N /2 x[n N / 2]W n N /2(2 r 1) N n 0 x[n] x[n N / 2]W n (2 r 1) N n 0 N /21 x[n] x[n N / 2]W W n 2r 1 N 31 n ( 2 r 1) N n 0 n N n 0 W n 0 W W W W 2rn N n N rn N /2 n N rn N /2 N /2 1 n 0 N (2 r 1) 2 N W h(n)WNnWNrn/2 W W Nr N N /2 N 1 31 decimation-in-frequency decomposition of an Npoint DFT to N/2-point DFT X 2r N /2 1 n 0N /2 1 X 2r 1 32 nr x [ n ] x [ n N / 2] W N /2 n 0 N /2 1 n 0 rn N /2 n x [ n ] x [ n N / 2] W NW g (n)WNrn/2 N /2 1 n 0 h(n)WNnWNrn/2 32 decimation-in-frequency decomposition of an 8point DFT to four 2-point DFT X 2*2s N / 41 sn [ g ( n ) g ( n N / 4)] W N /4 n 0 X 2*(2s 1) 33 N / 41 [ g (n) g (n N / 4)]W W n 0 2n N sn N /4 N /4 1 n 0 p(n)WNsn/4 N /4 1 n 0 q(n)WN2 n33 WNsn/4 2-point DFT X v ( p) X v1( p) X v1(q) X v (q) X v 1 ( p) X v 1 (q) W 0 8 34 when N 8 34 X 2r N /2 1 x[n] x[n N / 2] n 0 X 2* 2 s N /4 1 n 0 n 0 g (n)WN2/2sn g (n)WN2/2sn sn N /4 g (n)W N /4 1 n 0 N /4 1 N /2 1 n 0 g (n)WNrn/2 N /2 1 n N /4 g (n)WN2/2sn g ( n N / 4)WN2/2s ( n N /4) g ( n N / 4)W sn N /4 n 0 N /4 1 [ g (n) g (n N / 4)]W n 0 35 N /4 1 n 0 N /4 1 WNnr/2 sn N /4 N /4 1 n 0 p(n)WNsn/4 X 2r N /2 1 x[n] x[n N / 2] n 0 X 2*(2 s 1) N /4 1 n 0 N /4 1 n 0 n 0 g (n)WN(2/2s 1) n sn N /4 2n N g (n)W W N /2 1 36 n 0 g (n)WNrn/2 n N / 4 g (n)WN(2/2s 1) n N /4 1 n 0 N /4 1 g (n N / 4)WN(2/2s 1)( n N /4) g (n N / 4)W W W sn N /4 n 0 N /4 1 [ g (n) g (n N / 4)]W n 0 g ( n)WN(2/2s 1) n g (n)WNsn/4WNn/2 N /4 1 n 0 N /2 1 nr WN /2 N /2 1 2n N sn N /4 W 2n N (2 s 1) N /4 N /2 N /4 1 n 0 q(n)WN2 nWNsn/4 WN(2/2s1) N /4 WNsN/2/2WNN/2/4 1 X 2*2s N /4 1 n 0 X 2* 2* 2t 2 tn N /4 p(n)W n 0 N /4 1 N /81 N /81 2tn N /4 p(n)W n 0 p(n)WNsn/4 2 tn N /4 p(n)W n 0 N /4 1 2 tn N /4 p(n)W n N /8 N /81 2t ( n N /8) N /4 p(n N / 8)W n 0 N /81 tn [ p ( n ) p ( n N / 8)] W N /8 n 0 p(n) p(n 1) 37 when N 8 X 2*2s N /4 1 n 0 p(n)WNsn/4 X 2*2*(2t 1) N /81 n 0 p(n)WN(2/4t 1) n n 0 p(n)WN(2/4t 1) n n 0 N /81 N /4 1 N /81 n 0 N /81 p(n)WN(2/4t 1) n N /4 1 n N /8 N /81 n 0 tn p(n)WN2/4 WNn/4 p(n)WN(2/ 4t 1) n p(n N / 8)WN(2/4t 1)( n N /8) N /81 n 0 tn p(n N / 8)WN2/4 WNn/4WN(2/4t 1) N /8 tn 4n [ p ( n ) p ( n N / 8)] W W N /8 N n 0 [ p(n) p(n 1)]W80 when N 8 38 WN(2/4t 1) N /8 WNtN/4/4WNN/4/8 1 Final flow graph for 8-point DFT decimation in frequency N=8 39 39 9.4.1 In-Place Computation同址运算 DIF FFT DIT FFT 40 40 9.4.1 In-Place Computation同址运算 DIF FFT transpose DIT FFT 41 41 9.4.2 Alternative forms decimation-in-frequecy Butterfly Computation transpose decimation-in-time Butterfly Computation 42 42 The DIF FFT is the transpose of the DIT FFT DIF FFT transpose DIT FFT 43 43 9.4.2 Alternative forms DIF FFT transpose DIT FFT 44 9.4.2 Alternative forms DIF FFT transpose DIT FFT 45 Figure 9.24 erratum x 0 x 4 x 2 x 6 x 1 x 5 x 3 x 7 46 9.4.2 Alternative forms DIF FFT transpose DIT FFT 47 Chapter 8 HW 9.1, 9.2, 9.3, 48 返 回2015/4/13 上一页 Zhongguo Liu_Biomedical Engineering_Shandong Univ. 下一页