Efficient Computation of DFT - 14 - 16
Efficient Computation of DFT - 14 - 16
Engineering
ECN-312
DFT
IDFT
Row-wise
Column-wise
Lets assume we are using row-wise storage for X
but column-wise operation on x:
Fast Fourier Transform
3. L-point DFTs
Complexity computation
Step-1:
Addition:
Multiplications:
Step-2: Multiplications:
Step-3:
Originally,
Calculate for N=100.
L=4 M=25!
Fast Fourier Transform
When N is highly composite:
Radix-2 algorithm:
Lets consider apply the divide and conquer technique
,
Radix-2 FFT Technique
Radix-2 FFT Technique
Periodicity property!!
Radix-2 FFT Technique
Complex Multiplication:
Radix-2 FFT Technique
Radix-2 FFT Technique
Radix-2 FFT Technique
X( 0) 1 1 1 1 x( 0)
X( 1) 1 1 j j x( 2)
X( 2) 1 1 1 1 x( 1)
1 1 j j x( 3)
X( 3)
4-point DFT
X( 0) 1 1 1 1 x( 0)
X( 1) 1 1 j j x( 2)
X( 2) 1 1 1 1 x( 1)
1 1 j j x( 3)
X( 3)
The system matrix is rewritten as
X( 0) 1 0 1 1
0 1 0 0 x( 0)
X( 1) 0 1 0 j 1 1 0 0 x( 2)
X( 2) 1 0 1 0 0 0 1 1 x( 1)
X( 3) 0
1 0 j 0 0 1 1 x( 3)
X( 0) 1 0 1 0 1 1 x( 0)
0 0
X( 1) 0 1 0 j 1 1 0 0 x( 2)
First stage of
X( 2) 1 0 1 0 0 0 1 1 x( 1) realization
X( 3) 0
1 0 j 0 0 1 1 x( 3)
x( 0) x( 2) 1 1 x( 0)
0 0
Second x( 0) x( 2) 1 1 0 0 x( 2)
stage
x( 1) x( 3) 0 0 1 1 x( 1)
x( 1) 0
x( 3) 0 1 1 x( 3)
X( 0) 1 0 1 x( 0)
0 x( 2)
X( 1) 0 1 0 j x( 0) x( 2)
X( 2) 1 0 1 0 x( 1) x( 3)
0
X( 3) 1 0 j x( 1) x( 3)
Decimation of 4 point DFT into 2xradix-2
x0 x0+x2 X[0]
x2 xo -x2 X[1]
-1
x1+x3 X[2]
x1 Wo
w1 W 2
x1-x3 X[3]
x3
W 3
-1
• The values of
W40= 1; W42 = -1; W41= -j; and W 43 = j
N=8-point radix-2 DIT-FFT:
N/4 point DFT N/2 point DFT N-point DFT
x[0] X[0]
x[4] X[1]
-1
x[2] X[2]
-1
x[6] X[3]
-1
w2 -1
x[1] X[4]
-1
X[5]
x[5] w1 -1
-1
x[3] w2 X[6]
-1 -1
x[7] w3 X[7]
-1 w2 -1 -1
Radix-2 FFT Technique
Radix-2 FFT Technique
For N=16, (one representation)
For N=16, (one representation)
For 16-point! Can you guess the butterfly
diagram
-1
[4] -1
[12] -1 -1
-1
-1 -1
[6] -1 -1
[14] -1 -1 -1
[1] -1
[9] -1
-1
-1 -1
-1 -1
-1
[3] -1 -1
[11] -1 -1 -1
-1 -1 -1
-1 -1
-1 -1
Radix-2 FFT Technique
Try yourself!
X X
2 2
X X
k
W
2N
k
W
2N
Example
xx=[1 1 2 2 3 1 4 2]
fft(xx)=16.0000 + 0.0000i -2.0000 + 2.0000i -2.0000 + 2.0000i -2.0000 - 2.0000i
4.0000 + 0.0000i -2.0000 + 2.0000i -2.0000 - 2.0000i -2.0000 - 2.0000i
x1=[1 2 3 4], We know their DFTs from previous example on
x2=[1 2 1 2] slide-36!
By using the expression for complete sequence:
fft(xx)=
for k=1:4
g(k)=dft_x1(k)+exp(-j*2*pi*(k-1)/8)*dft_x2(k)
g(k+4)=dft_x1(k)-exp(-j*2*pi*(k-1)/8)*dft_x2(k)
end
Why?
DFT term
Can be seen as convolution equation as follows:
Example: Suppose
Which starts on a point:
Alternative method:
Chirp-Z
Complexity:
M=