Chapter 9. Computation of Discrete Fourier Transform 9.1 Introduction 9.2 Decimation-in-Time Factorization 9.3 Decimation-in-Frequency Factorization 9.4 Application of FFT 9.5 Fast Computation of DCT 9.6 Matrix Approach 9.7 Prime Factor Algorithm BGL/SNU
1. Introduction BGL/SNU
- Example of fast computation BGL/SNU
2. Decimation-in-Time Factorization BGL/SNU
Decimation-in-time FFT flow graphs BGL/SNU
Decimation-in-time FFT flow graphs BGL/SNU
Decimation-in-time FFT flow graphs BGL/SNU
(Sande- Tuckey) FFT 3. Decimation-in-frequency Factorization BGL/SNU
g(n) h(n) g[0] g[1] g[2] g[3] h[0] h[1] h[2] h[3] X[0] X[2] X[4] X[6] X[1] X[3] X[5] X[7] x[0] x[1] x[2] x[3] x[4] x[5] x[6] x[7]
Final flow graph X[0] X[4] X[2] X[6] X[1] X[5] X[3] X[7] x[0] x[1] x[2] x[3] x[4] x[5] x[6] x[7] BGL/SNU
-Remarks - # Stages - # butterflies - # computations - inplace computations - output data ordering : bit-reversed -Question The flow graph for D-I-F is obtained by reversing. The direction of the flow graph for D-I-T. Why? -Omit Sections BGL/SNU
(1) Spectrum Analysis - is the spectrum of x[n], n=0,1,…,N-1 - Inverse transform can be done through the same mechanism i) Take the complex conjugate of X[k] ii) Pass it through the FFT process, But with one shift right(/2) operation at each stage iii) Finally, take the complex conjugate of the result 4. Applications of FFT BGL/SNU
(2) Convolution ( Filtering ) - Operation reduction : h[n] x[n] y[n] N 2N N x[n] 0 N-1 n h[n] 0 N-1 n y[n 0 2N-2 n #computation(multi)? 1+2+…+N+N-1+…+1+0 =N 2
-Utilize FFT of 2N-point ~ h[n] 0 N-1 2N n x[n] 0 N-1 2N n y[n] 0 2N-2 2N n R 2N [n] 1 0 2N-1 n ~ ~ 2N-pt DFTs BGL/SNU
2N-pt FFT 2N-pt FFT 2N-pt IFFT x[n] h[n] X[k] H[k] Y[k] y[n] 2N # operation (multi) - operation reduction : BGL/SNU
(3) Correlation /Power Spectrum 2N-point DFTs # Operation : - Power spectrum P[k] = X[k] X * [k] BGL/SNU
$ Comparison of # computation k 1k 2k 5k 35k 16k 7.25k 3.3k 16k 62.5k 250k 1M Direct Computation FFT-based Convolution Correlation FFT N BGL/SNU
5. Fast Computation of DCT BGL/SNU
- Example: Lee’s Algorithm (1984, IEEE Trans, ASSP, Dec) 1D x[ 0] x[1] x[2] x[3] x[4] x[5] x[6] x[7] X [ 0] X[4] X[2] X[6] X[1] X[5] X[3] X[7] BGL/SNU
- Example: 2D DCT Algorithm (1991, N.I.Cho and S.U.Lee) BGL/SNU Separable Transform NxN 2D DCT = N 1-D DCT into row direction followed by N 1-D DCT into column direction. Totally 2N 1-D DCT (each N-point) are required.
Fast Algorithm reduces the number of 1-D DCTs into N. By using the trigonometric properties, 2D DCT is decomposed into 1-D DCTs.
Signal flow graph of 2-D DCT 8x8 DCT 4x4 DCT
6. Matrix Approach · Decimation-in-time BGL/SNU
· Decimation-in-frequency BGL/SNU
· General expression for N=2 case
· Extension to general N (Cooley/Tuckey) BGL/SNU
· # computations (complex) BGL/SNU
7. Prime Factor Algorithm (Thomas/Good) (1) Basics from Number Theory Euler’s Phi function Euler’s Theorem 6mod125,2)(,6,5)(.mod1then,1),(If )( )( N aNNaeg NaNa Chinese Remainder Theorem (CRT) N
Second Integer Representation (SIR) BGL/SNU
(2) Prime Factor Algorithm Set Then BGL/SNU
Therefore Note that the only difference is in the “twiddle factor” BGL/SNU
(3) Comparison Example 12-Point DFT (N=12, p=3, q=4)C/T : Cooley/Tuckey T/G : Thomas/Good · Transform · Index Mappings
· Diagram 4pt DFT (0,0) (1,0) (2,0) (3,0) 4pt DFT (0,1) (1,1) (2,1) (3,1) 4pt DFT (0,2) (1,2) (2,2) (3,2) 3pt DFT ),( 01 kkX (0,0) (0,1) (0,2) 3pt DFT (1,0) (1,1) (1,2) 3pt DFT (2,0) (2,1) (2,2) 3pt DFT (3,0) (3,1) (3,2) T/GC/T T/G BGL/SNU 001 ),(nkx (0,0) (0,1) 102 ),(kkx (0,2) (0,3) (1,0) (1,1) (1,2) (1,3) (2,2) (2,3) (2,0) (2,1)
- Radix-2 algorithms: algorithms in textbook : - Radix-4 algorithms : Radix-4 algorithm BGL/JWL/SNU
- Radix-4 butterfly BGL/JWL/SNU
- Radix-4 butterfly -j j 1 j -j BGL/JWL/SNU