Professional Documents
Culture Documents
alghoniemy@alexu.edu.eg
10/15/2022 1
• Reading:
• Oppenheim:
– Sections: 9.3, 9.4,
• Proakis:
– Sections: 6.1.3, 6.1.4, 6.2.1, 6.2.2
10/15/2022 2
The Discrete Fourier Transform
X N = FN x N
X [0] 1 1 1 ... 1 x[0]
X [1] 1 W W 2
... WNN −1 x[1]
N N
X [2] = 1 WN2 WN4 ... WN2 ( N −1) x[2]
: : : : ... : :
X [ N − 1] 1 WNN −1 WN2 ( N −1) WN( N −1) x[ N − 1]
2
1 1 1 1
1 − j − 1 j
F4 =
1 − 1 1 − 1
1 j − 1 − j
• Define the permutation matrix 𝐏𝟒
1 1 1 1 1 1 1 1 1
1 − j −1 j 1 1 −1 − j j
Fˆ 4 = F4P4T = =
1 −1 1 −1 1 1 1 −1 −1
1 j −1 − j 1 1 −1 j − j
10/15/2022 4
Factorization of the DFT matrix
• 1 1 1 1
1 −1 − j j
Fˆ 4 = F4P4T =
1 1 −1 −1
1 −1 j − j
1 1 1 0 1 1
0 − j 1
− −1 F2
ˆF = D 2F2
1 1
=
1 1 −D 2F2
4
−1 0 1 1 F2
1 −1 0 j 1
−1
where
1 1 1 0 W 0
0
F2 = , D2 = = 4
1
10/15/2022 1 −1 0 − j 0 W4 5
Factorization of the DFT matrix
• We need to find:
y = F4x
y = ( F4P4T )( P4x )
y L ˆ x even
y = F4 x
U odd
• The 4-DFT becomes
x F D 2F2 x even
F4x = Fˆ 4 even
=
F
2
odd 2
x −D 2F2 x odd
1 1 1 1 1 1 1 1
1 −𝑗 −1 𝑗 𝑊81 −𝑗𝑊81 −𝑊81 𝑗𝑊81
1 −1 1 −1 −𝑗 𝑗 −𝑗 𝑗
1 𝑗 −1 −𝑗 −𝑗𝑊81 𝑊81 𝑗𝑊81 −𝑊81
𝐅8 =
1 1 1 1 −1 −1 −1 −1
1 −𝑗 −1 𝑗 −𝑊81 𝑗𝑊81 𝑊81 −𝑗𝑊81
1 −1 1 −1 𝑗 −𝑗 𝑗 −𝑗
1 𝑗 −1 −𝑗 𝑗𝑊81 −𝑊81 −𝑗𝑊81 𝑊81
10/15/2022 8
1 1 11 W80 1 1 1 1
1 − j −1 j
1 − j −1 j 1
W8
1 −1 1 −1 W82
1 −1 1 −1
3
1 j −1 − j 1 j −1 − j
W8
Fˆ8 =
1 1 11 W80 1 1 1 1
1 1 − j −1 j
− j −1 j −
1
W8
1 −1 1 −1 W82 1 −1 1 −1
1 3
j −1 − j 1 j −1 − j
W8
F4 D 4F4
Fˆ8 =
F4 −D 4F4 The 8-point DFT can be computed as
yL ˆ x F D 4F4 x even
y = = 8
even
=
F
4
−D 4F4 x odd
F8 x F
U odd 4
x
𝐅4 𝐱 𝑒𝑣𝑒𝑛 + 𝐃4 𝐅4 𝐱 𝑜𝑑𝑑
=
𝐅4 𝐱 𝑒𝑣𝑒𝑛 − 𝐃4 𝐅4 𝐱 𝑜𝑑𝑑
• another DFT factorization
𝐅 𝐃2 𝐅2 𝐱 𝑒𝑣𝑒𝑛/𝑒𝑣𝑒𝑛
𝐅4 𝐱 𝑒𝑣𝑒𝑛 = 2
𝐅2 −𝐃2 𝐅2 𝐱 𝑒𝑣𝑒𝑛/𝑜𝑑𝑑
𝐅 𝐃2 𝐅2 𝐱 𝑜𝑑𝑑/𝑒𝑣𝑒𝑛
𝐅4 𝐱 𝑜𝑑𝑑 = 2
𝐅2 −𝐃2 𝐅2 𝐱 𝑜𝑑𝑑/𝑜𝑑𝑑
• ends-up with a 2-point DFT
1 1 1 0
𝐅2 = , 𝐃2 =
1 −1 0 −𝑗
10/15/2022 10
Decimation in Time FFT (DIT-FFT)
WN0
1
W
D N /2 = N
N /2 −1
WN
10/15/2022 11
8-point DIT-FFT is reduced to two-4 (DIT-FFT)
even sequence
odd sequence
Ordered Output
Shuffled input
10/15/2022
Shuffled input 8-Point radix-2 Decimation-in-Time FFT
Ordered Output
10/15/2022
The basic butterfly for DIT-FFT
10/15/2022
Shuffled input 8-point radix-2 Decimation-in-Time FFT
Ordered Output
10/15/2022
Bit reversed ordering “shuffling”
Gray coding “reflected binary code”
10/15/2022
Complexity of radix-2 FFT
• The Fast Fourier Transform (FFT) reduces the complexity of computing the
DFT from 𝓞(𝑵𝟐 ) to 𝓞(𝑵𝒍𝒐𝒈𝟐 𝑵).
10/15/2022
High-speed convolution
• The length of 𝑥1 [𝑛] is 𝑁1 and the length of 𝑥2 [𝑛] is 𝑁2 and we would like
to compute 𝑥1 𝑛 ∗ 𝑥2 [𝑛]
10/15/2022 19
Radix-2 Decimation in Frequency FFT (DIF-FFT)
𝐲 = 𝐅𝑁 𝐱
Multiply both sides from the left by the permutation matrix P
𝐏𝐲 = 𝐏𝐅𝑁 𝐱
The row-permuted DFT matrix becomes
𝐅𝑁/2 𝐅𝑁/2
𝐅𝑁 = 𝐏𝐅𝑁 =
𝐅𝑁/2 𝐃𝑁/2 −𝐅𝑁/2 𝐃𝑁/2
Radix-2 DIF FFT becomes
𝐲𝑒𝑣𝑒𝑛 𝐅𝑁/2 𝐅𝑁/2 𝐱𝐿
𝐲𝑜𝑑𝑑 = 𝐅𝑁/2 𝐃𝑁/2 −𝐅𝑁/2 𝐃𝑁/2 𝐱 𝑈
10/15/2022 21
8-point Radix-2 Decimation-in-Frequency FFT
10/15/2022
8-point Radix-2 Decimation-in-Frequency FFT
Ordered Input
Shuffled Output
10/15/2022
Basic butterfly for DIF-FFT
10/15/2022
radix-𝐫 FFT
• 𝑥[𝑛] has length 𝑵 = 𝒓𝑴 .
10/15/2022
Radix-4 Decimation in Time FFT (DIT-FFT)
𝐲 = 𝐅𝑁 𝐱
Permute the columns of the DFT matrix and the input vector
𝑁/4−1
𝐲 = 𝐅𝑁 𝐏 𝑇 𝐏𝐱 𝐃𝑁/4 = 𝑑𝑖𝑎𝑔(𝑊𝑁0 , 𝑊𝑁1 , ⋯ , 𝑊𝑁 )
𝑇
• 𝐱 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16
1 2 3 4
• 𝐱 0 = 5 , 𝐱1 = 6 , 𝐱 = 7 , 𝐱 = 8
2 3
9 10 11 12
13 14 15 16
𝐱0
𝐱
𝐏𝐱 = 𝐱1
2
𝐱3
10/15/2022 27
Radix-4 Decimation in Time FFT (DIT-FFT)
𝐲𝐿𝐿 𝐱0
𝐲𝐿𝑈 𝐱1
𝐲= 𝐲 , 𝐏𝐱 = 𝐱
𝑈𝐿 2
𝐲𝑈𝑈 𝐱3
10/15/2022 28
Radix-4 Decimation in time FFT (DIT-FFT)
10/15/2022 29
Radix-4 Decimation-in-Frequency FFT (DIF-FFT)
𝐲 = 𝐅𝑁 𝐱
• Multiply from the left by the permutation matrix 𝑷
𝑁/4−1
𝐏𝐲 = 𝐏𝐅𝐍 𝐱 𝐃𝑁/4 = 𝑑𝑖𝑎𝑔(𝑊𝑁0 , 𝑊𝑁1 , ⋯ , 𝑊𝑁 )
𝐲0 𝐅𝑁/4 (𝐱𝐿𝐿 + 𝐱 𝐿𝑈 + 𝐱 𝑈𝐿 + 𝐱 𝑈𝑈 )
𝐲1 𝐅𝑁/4 𝐃𝑁/4 (𝐱 𝐿𝐿 − 𝑗𝐱 𝐿𝑈 − 𝐱 𝑈𝐿 + 𝑗𝐱 𝑈𝑈 )
𝐲2 = 𝐅𝑁/4 𝐃2𝑁/4 (𝐱 𝐿𝐿 − 𝐱 𝐿𝑈 + 𝐱 𝑈𝐿 − 𝐱 𝑈𝑈 )
𝐲3
𝐅𝑁/4 𝐃3𝑁/4 (𝐱 𝐿𝐿 + 𝑗𝐱 𝐿𝑈 − 𝐱 𝑈𝐿 − 𝑗𝐱 𝑈𝑈 )
10/15/2022 31
• Computation of radix-4 output ordering