0% found this document useful (0 votes)
16 views48 pages

Lec08computationofdft 230606124625 691907bf

The document discusses efficient algorithms for computing the Discrete Fourier Transform (DFT), focusing on the Fast Fourier Transform (FFT) and its various types, such as Radix-2 and Composite N. It explains the DFT as a linear transformation and provides insights into the computational efficiency in terms of multiplications and additions required for implementation. Additionally, it highlights the divide-and-conquer principle that underlies FFT algorithms, demonstrating how they reduce the computational complexity compared to direct DFT computation.

Uploaded by

Mona Sayed
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views48 pages

Lec08computationofdft 230606124625 691907bf

The document discusses efficient algorithms for computing the Discrete Fourier Transform (DFT), focusing on the Fast Fourier Transform (FFT) and its various types, such as Radix-2 and Composite N. It explains the DFT as a linear transformation and provides insights into the computational efficiency in terms of multiplications and additions required for implementation. Additionally, it highlights the divide-and-conquer principle that underlies FFT algorithms, demonstrating how they reduce the computational complexity compared to direct DFT computation.

Uploaded by

Mona Sayed
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 48

Computation of the DFT

Carrson C. Fung
Institute of Electronics
National Yang Ming Chiao Tung University
Overview

 Efficient algorithms for computing the DFT


 Fast Fourier transform (FFT)
 Many types of FFTs
 Radix-2 (DIT, DIF), Composite N (Cooley-Tukey), Winograd,
Chirp transform, …
 Principle lies in divide and conquer
 Efficient criteria
 Number of multiplications
 Number of additions
 Chip area in VLSI implementation
EEEC20034: Intro. to Digital
Signal 2
Processing
DFT as a Linear Transformation
 Recall that the DFT can be regarded as linear transformation
 Can be computed using matrices
 DFT: N 1
X k  x n WNkn , k  0,1,…, N
n0 1
N 1
1
x n  X kWN
 kn
, n  0,1,…, N
 N k 1
0
 Let
 x(0)   X (0) 
 x(1)   X 
xN  , X N  (1) ,
  ⁝    ⁝ 
and  x(N  1)  X (N  1)
1 1 1  1 
 
W
WN2  WN N 
1 1
N
1
IDFT matrix: WNn k 1 
W N2 W N4 W N2( N 1)  , for k, n  0,1…, N
 N  ⁝ ⁝ ⁝ ⁝
 1
1 ( N 1)( N 1) 
 W N( N 1) W N2( N 1)  N 

EEEC20034: Intro. to Digital W


Signal 3
Processing
DFT as a Linear
Transformation (cont’d)
 Note that for the matrix notation, I split 1/N in the
synthesis equation to both the IDFT and DFT matrix
X  WH x N -point DFT
N N
N

x N  WN XN N -point IDFT (WN is an unitary matrix)


1 j
2
W   e kn N , n, k  0,1,, N
where  N  nk N 1
 Because the matrix (transformation) WN has a
specific structure and because WNk has particular
values (for some k and n), we can reduce the number
of arithmetic operations for computing this transform
EEEC20034: Intro. to Digital
Signal 4
Processing
Example
 Let
3
T
 x  0 1 2
Compute the 4-point DFT
1 1 1 1 
 DFT matrix  
W 40 W 40 W4 0 W40  j j j
 1 1 1 1
  1 e 2
e 2
e 2
1  W40 W4 1 W42 W 3 1 2 3  j 
 1 1
4 4 4
W4H 1
4 
  j
2
j
2
j
2
  j 1 
W4 6  2   40 e 6  W4
2
 2 W 40 W 42 W4 4 e
1 
2 4
 Thus  W 0 W 9 
4 4
W
4
W4 3 W4 6 4
e e
j 3 j 6 j 2 1 1 1 1
4
24
W
4
3
e 24
W4
2
e 29  41 
 4
W 
 3   1 1 j 1  j 
 
X 4  W4H x  1 j 

4  1

1 j  
 Note that to compute each X[k] value, assuming x[n] is complex-valued, it
requires us to perform N complex-valued multiplications and N-1
complex- valued additions. To compute all N values of the FFT, it requires
N2 complex-valued multiplications and N(N-1) additions

EEEC20034: Intro. to Digital


Signal 5
Processing
Fast Fourier
Transform
 Highly efficient algorithms for computing DFT
 General principle: Divide and conquer
 Exploit specific properties of WNk
kn
kn *
 Complex conjugate symmetry: WN = (WN )
k+N/2 k
 Symmetry: WN = -WN
k+N k
 Periodicity: WN = WN
 Particular values of k and n: e.g.radix-4 FFT (no
multiplications: e.g. multiplication by 1 and -1)

EEEC20034: Intro. to Digital


Signal 6
Processing
FFT
 Direct computation of DFT
N 1
X [k ]  x[n] kn
N , k  0,1,…, N 
 n W 1
 
0 1
N  
Rex[n]  Re NW
kn
   ImNW kn


n


Imj Re x[n] 
x[n]
kn
N
 Imx[n]
 Re N
kn
W

0
 ImWNkn requires
For 1 complex multiplication: x[n]W 
 4 real-valued multiplications, 2 real-valued additions
 For each complex-valued addition
 2 real-valued additions
 So, for each k, since we need N complex multiplications and N-1 complex additions
 N complex-valued multiplications = 4N real-valued multiplications and 2N real-valued
additions
 N-1 complex-valued additions = 2(N-1) real-valued additions
 Therefore, 4N real-valued multiplications and 2N+2(N-1) = 4N-2 real-valued additions
 Therefore, to compute all N values of the DFT, we need 4N2 real-valued
multiplications and N(4N-2) real-valued additions.

EEEC20034: Intro. to Digital


Signal 7
Processing
Radix-2: Decimation-in-
Time Algorithms
 Idea: N-point DFT  N/2-point DFT  N/4-point DFT
N/4-point DFT
 N/2-point DFT  N/4-point DFT
N/4-point DFT
 Sequence: x[0] x[1] x[2] x[3] … x[n/2] … x[N-1]
 Even index: x[0] x[2] … x[N-2]
 Odd index: x[1] x[3] … x[N-1]

EEEC20034: Intro. to Digital


Signal 8
Processing
Radix-2: Decimation-in-
Time Algorithms (cont’d)
N 1
X [k ]  x[n]WNkn , k  0,1,…, N
1 n

  x[n]Wkn  x[n]WNkn
0
N

 – – ––  –  – 
n ve e n
n od d

n2r n2r 1

N N
2 1 2 1
2rk (2r 1)k
 x[2r]W  x[2r N

1]W
r
0
N 
r
0


N /2 
2 2 j 
2 
 N  2 j  W
Since W 
N  
N /2
e e
N N
2 1 1
k 2
X [k ]  x[2r]WN / 2   x[2r  1]WNrk/ 2
rk
N
W r –0 ––– –r–0 –  – – – 
N N
-point DFT -point DFT
2 2
 G[k ]  W
N H
k

[k ]
EEEC20034: Intro. to Digital
Signal 9
Processing
Radix-2: Decimation-in-Time
Algorithms (cont’d)
 Note that G[k] and H[k] are periodic in k with
a period of N/2. Therefore for N = 8
X  4 G 4  W44 H 4
 
 G 0  W
4 H0
4


 Similar relationship can be exploited to obtain
X[5], X[6], and X[7]

EEEC20034: Intro. to Digital


Signal 10
Processing
Comparison
 Direct computation of N-point DFT (N frequency samples)
 N2 complex-valued multiplications and ~N2 (it’s actually N(N-1), but we shall assume N is large)
complex-valued additions
 Direct computation of N/2-point DFT
 We need to perform 2(N/2)-point DFTs, each one will require (N/2)2 complex-valued
multiplications and approximately (N/2)2 complex-valued additions. Therefore, we need to
perform 2(N/2)2 complex-valued multiplications and 2(N/2)2 complex-valued additions
 Combining the 2(N/2)-point DFTs also requires
 an additional N complex-valued multiplications (because we need to multiply the WNk terms)
 an additional N complex-valued additions (combining the G[k] and H[k] terms)
 Adding everything together, we have:
 N + 2(N/2)2 = N + N2/2 complex-valued multiplications
 N + 2(N/2)2 = N + N2/2 complex-valued additions
 For N>2, N+N2/2 < N2, therefore, this divide-and-conquer approach does decrease the amount of
computations
 log2N-stage FFT
 Since N=2v, we can further break N/2-point DFT into two N/4-point DFT and so on

EEEC20034: Intro. to Digital


Signal 11
Processing
(N/4)-point DFT: G[k]

N /21
G k   g rW rk
N /2
 r
0
N /41 N /41
  g  2ℓ W 2kℓ
g  2ℓ 1 2ℓ1 k
N /2
ℓ0  
ℓ W
 
N /2
N /41 0 N /41
  g  2ℓ W kℓ
W g  2ℓ 1 kℓ
N /4
ℓ0 k

N /2 ℓ W
 
N /4
0

EEEC20034: Intro. to Digital


Signal 12
Processing
(N/4)-point DFT: H[k]

x[1] H[0]

N/4-point
N / 21
DFT WN/20
H k   h rW rk
N /2
 r
0
N / 41 N / 41 x[5] H[1]
  h 2ℓ h 2ℓ 1 2ℓ1
2kℓ k
 N /2
ℓ W Wℓ WN/2 1
 
N /2
0 0
N /41 N /41
  h 2ℓ W kℓ
N /4  WN /2  h 2ℓ 1 kℓ
N /4
k
ℓ0 ℓ0 W
 
x[3] WN/22 H[2]
N/4-point
DFT

x[7] WN/23 H[3]

EEEC20034: Intro. to Digital


Signal 13
Processing
Combining G[k] and H[k]

 Combining the two


figures above and
realizing that WN/2k =
WN2k, we can obtain
Figure 9.5

EEEC20034: Intro. to Digital


Signal 14
Processing
2-point DFT

 Assuming N = 8, the
(N/4)-point DFT is
actually a 2-point DFT

EEEC20034: Intro. to Digital


Signal 15
Processing
8-point DIT

 Then substituting the 2-


point DFT structure in
Figure 9.6 into Figure
9.5, we have the
structure in Figure 9.7

EEEC20034: Intro. to Digital


Signal 16
Processing
Number of Operations
 For a general N-point DFT, and assuming N is still a power of 2, we can decompose
any N-point DFT into 2 (N/2)-point DFT, then the 2 (N/2)-point DFTs can be
further decomposed into 4 (N/4)-point DFTs, then the 4 (N/4)-point DFTs can be
decomposed into 8 (N/8)-point DFTs, and so on until we are left with a 2-point
DFT
 There are a total of v = log2 N number of stages of computations
 Following the same logic as before for the N-point DFT, where we can decompose
it into 2 (N/2)-point DFT, which requires N + 2(N/2)2 complex-valued
multiplications and N + 2(N/2)2 complex-valued additions. Decomposing the (N/2)-
point DFT into (N/4)-point DFT requires us to replace the (N/2)2 term into N/2 +
2(N/4)2. Therefore, we need to perform N+2(N/2 + 2(N/4)2) = N + N + 4(N/4)2
complex-valued multiplications and N+2(N/2 + 2(N/4)2) = N + N + 4(N/4)2
complex-valued additions
 This can be done at most v times, so the number of complex-valued multiplications
and additions is equal to Nv = Nlog2 N

EEEC20034: Intro. to Digital


Signal 17
Processing
Comparison: DFT vs. FFT
Number of Direct computations: FFT: Complex-valued Speed
points N complex-valued multiplications improvement
multiplications (Nlog2N) factor
4 16 8 2.0
8 64 24 2.67
16 256 64 4
64 4,096 384 10.67
256 65,536 2,048 32
1024 1,048,576 10,240 102.4

Further savings is possible if we consider the butterfly

EEEC20034: Intro. to Digital


Signal 18
Processing
FFT in Matrix Form: 4-point FFT
Consider the 4-point DFT matrix and consider decimation-in-time in which the inputs are
permuted (bit-reversed) becomes
1  1 
1 1 1 1  1  1 2  
j
1 j   1  j  1  1 
W4H    1 1 1 
1 j 1 1 
   1 1  
2 
1 1
j j  1
1 1 1

x[0]1 j 1  j x[0] X[0]
 
W20  W40 
x[2] 1 1
x[1] X[1]
Even-odd W21  1 1
permutation
W4  
j
x[1]
x[2] X[2]
W2  2
W42  1
1
x[3] W43 
x[3] X[3]
W23  1 j

EEEC20034: Intro. to Digital


Signal 19
Processing
General 1024-point FFT Decomposition

FFT Decomposition
H
  
For N   I 512 D 512 
W512
 
 even-odd
 permutation 
D 
H
W1024
1024, I512 512   W 512  
H 
  j 2N  j 2N 2 j
2
511 
D512  Diag1, e , , , N  , for N 
e e 1024.
 2 
H  j N kn , for n, k  0,,N 1
W 512 kn  2
e

EEEC20034: Intro. to Digital


Signal 20
Processing
E.g. 8-point FFT Decomposition: DIT
c0
c0
c2
c1 c4 N/2-pt.
c2 c6 DFT
c3
P
c1
c4
c3
c5 c5 N/2-pt.
c6 DFT
c7
c7

N=8 point decimation-in-frequency butterfly

H
I D 
4  W4 4   even-odd

For N  H
W8   
   
8, I4 D4   W 4  permutation
H

2
  j 2  j N 2 j
2
7 

D4  Diag 1, e N , e N , , e  , for N 


 
8
Permutation matrix separates the incoming vector c into its even and odd parts

EEEC20034: Intro. to Digital


Signal 21
Processing
FFT Butterfly
 Butterfly
 Basic unit in FFT
 Two multiplications (see
Figure 9.8 on right)
 Notice that WN(r+N/2) =
WNN/2W Nr = -1 W Nr, so the
butterfly with two
multiplications can be turned
into a butterfly with a single
multiplication (multiplication
with 1 and -1 don’t count).
See Figure 9.9 on right

EEEC20034: Intro. to Digital


Signal 22
Processing
8-point DIT Using Simplified
Butterfly Structure

Now we have an additional savings by a factor of 2 since at


every butterfly, we have halved the number of
multiplications!
EEEC20034: Intro. to Digital
Signal 23
Processing
In-Place Computations
 Besides efficient computation of the DFT, the structure in Figure 9.10 also offers an efficient
way to storage the original data and the results of the computations in the intermediate stages
 Each stage of the FFT process has N inputs and N outputs, so we need exactly N storage
locations at any one point in the calculations
 It is possible to reuse the same storage locations at each stage to reduce memory
overhead
 Any algorithm which uses the same memory to store successive iterations of a calculation is called
an “in-place” algorithm
 Computation must be done in a specific order
 Let Xm[p] and Xm[q] denote the results from the mth stage of computations and Xm-1[p] and Xm-
1[q] denote the results from the (m-1) stage of computations. Then the relationship between
th

the input and output of the butterfly can be written as (see Figure 9.11)
X [ p]  X [ p]  W r X
[q]
m m1 N m1
X [q]  X [ p]  W r X
[q]
m m1 N m1

Only two registers are needed for computing a butterfly unit because Xm[p] and Xm[q] are
stored in the same storage registers as Xm-1[p] and Xm-1[q], respectively. This is because once
Xm[p] and Xm[q] are produced from Xm-1[p] and Xm-1[q], there is no need to store Xm-1[p] and Xm-
1[q] anymore, so we can place the new results, Xm[p] and Xm[q], into the storage location of Xm-
1[p] and Xm-1[q]
EEEC20034: Intro. to Digital
Signal 24
Processing
In-Place Computations (cont’d)
In order to retain the in-place computation property, the input data are accessed in the bit-reversed
order. This gives us an easy way to index the data
Note: The outputs are in the normal order (same as the “position”)

Position Binary Bit reversed Sequence


equivalent index
6 110 011 3
2 010 010 2

Remark: Index 3 input data is placed at position 6

EEEC20034: Intro. to Digital


Signal 25
Processing
In-Place Computations (cont’d)
 We may also place the
inputs in the normal order;
then the outputs are in the
bit-reversed order to obtain
the structure in Figure 9.14

EEEC20034: Intro. to Digital


Signal 26
Processing
In-Place Computations (cont’d)
 If we try to maintain the
normal order of both inputs
and outputs, then in-place
computation structure is
destroyed. The structure is
shown in Figure 9.15.
There is no advantage in using
this structure since there is no
in- place computation (cannot
save storage space), and no
easy way to index the data (the
input data are not stored in bit-
reversed order)
EEEC20034: Intro. to Digital
Signal 27
Processing
Radix-2 Decimation-in-
Frequency Algorithms
Dividing the output sequence X[k] into smaller pieces
N 1
X k   x n WNkn , k  0,1,…, N
n
0
1
Assuming N = 2v, where v is an integer. If k is even, i.e. k = 2r, then
N 1 N
X [2r]  x[n]WNkn , r  0,1,, 1
n0 2
N
2 1 N 1
  x[n]W N
2nr
  x[n]WN2nr n  (n  N 2) in second term
n0 N
n 2
N
1 N
2 1

2
2nr   2r  n N 
 x n  2 

  2 N N
x[n] N Wn0

W 2r[n N
 W 2rnW rN 
] 2rn
Wn0 2
 W
N N
N
2 N
1
N
   x[n]  x  n  N   N
2nr

n0  W  2  
N
21
   x[n]  x  n N   nr
N 2
n0    2   W

EEEC20034: Intro. to Digital


Signal 28
Processing
Radix-2 Decimation-in-
Frequency Algorithms
N
For k  2r 1, r  0,1,,
1
N 1 2
X  2r 1  x n WNn2r
1

 n0
 N

2 1 N 1
 x n WN  n 2r 1
  x n WNn2r 1
n N
n0
 2 
N
N 1 2 1 N  2r
   n  1
Let n  n 
N
, then  x n W n 2r 1
N  x n
n  
N
WN   2

2
2
n
N
2
 0

 
N
2 1
 N 2r
 N
 2  1
  x n  N  W n2r 1
N
W n
0
 2
EEEC20034: Intro. to Digital
Signal  29
Processing
Radix-2 Decimation-in-
Algorithms
Frequency N
2 1
X 2r 1  x n WN n2r 1
W 2
N
 N 2r 1 2 1
 N  n2r 1

N
x n  W
2  N
n0  n0

N  N 2r  N
2r 1
 2  2 
Note WN W N 
W N2
 1 1.

Therefore N
N 1 2 1

 x n W n 2r 1
N   x n  N W n2r 1
N
n
N   n
0
 2

2
So 
N
2 N
1 2 1
X 2r 1   x n n 2r 1
N   x n  N W n2r 1
N
n n 2 WN2nr  nr
W 0
N
 0

N W
N /2

2 1 1

   x n  x   N  WNn2r   N   n nr
2
   x n  x
1

n WN W N /2
n0 
n  2   n0 
  2  

EEEC20034: Intro. to Digital
Signal 30
Processing
Radix-2 Decimation-in-
Frequency Algorithms (cont’d)
 2N 1
 X [2r]   x[n]  N   nr
 N2
  
x
n0 
n 2  W

 N 1
 2 
 N   n nr

 x n  x n 2  W NW N / 2
 X 2r 1 n0


 g[n]  x[n]  x  n  N 
 2

 WNnr/2 is refers to
 h[n]  x[n]  xn  
 the N /2-point DFT

 N

2
EEEC20034: Intro. to Digital
Signal 31
Processing
Radix-2 Decimation-in-
Frequency Algorithms (cont’d)
 We can further break into
even and odd groups (just like
DIT). Again, we can
reduce the two-multiplication
butterfly into one
multiplication. Hence, the
computational complexity is
about (N/2)log2 N. The in-
place computation property
holds if the outputs are in bit-
reversed order (when inputs
are in the normal order)

EEEC20034: Intro. to Digital


Signal 32
Processing
Radix-2 Decimation-in-
Frequency Algorithms (cont’d)

EEEC20034: Intro. to Digital


Signal 33
Processing
FFT for Composite N

 When N is not a power of 2, but a product of 2 or more


integers, FFT algorithms still exist to compute the DFT
 If N is a prime number, we can simply pad zeros to
make
N into an composite integer
 Cooley-Tukey Algorithm: N = N1N2
 DIT and DIF are special cases of Composite N algorithm
where N = 2(N/2) = (N/2)2
 For composite N FFT, we can divide x[n] and X[k] into a
two-dimensional array
EEEC20034: Intro. to Digital
Signal 34
Processing
Example

Time index: n  N2 n1  or n  n1  0  n1  N1 1
2
 n 
N1n2 0  n  N 1
2 2

k  N2 k1  or k  k1  N1  0  k1  N
1
Freq. index: 2 2
 k k 1
0  k  N 1
2 2

 For x[n] in this case, n1 is the column index and n2 is the


row index. There will be N2 elements in each column (i.e.
N2 number of rows) of the two-dimensional array which
stores x[n].
 For X[k], k1 is the column index and k2 is the row index.
There will be N1 elements in each row (i.e. N1 number of
columns) of the two-dimensional array which stores X[k]
EEEC20034: Intro. to Digital
Signal 35
Processing
Example (cont’d)
For example: N1 = 2, N2 = N/N1 = N/2, then the input signal x[n] can be arranged
into a 2-dimensional array as
n1 0 1
n2
0 x[0] x[N/2]
1 x[1] x[N/2+1]
. . .
. . .
N2-1 x[N/2-1] x[N-1]

EEEC20034: Intro. to Digital


Signal 36
Processing
Decomposition
Goal: Decompose N-point DFT into two stages: let n = N2n1 + n2 and k=k1 + N1k2

N1-point DFTN2-point DFT


N 1
X [k ]  x[n]WNkn , 0kN
 n
0
1
 X [k1 
N1Nk21] N 1
2 1

   x[N 2n1  2 k1  N1k2  N 2 n1 n 2 


N 
n 0 n
0
2
n
1
]W
N2 1 N1 1
  x[N n  N 2 k1n1
WNk1n2 N k2 N1n2 N N1N 2k 2n1
2 1 2
 
N
  – –
n2 0 n1
0
n ]W W W 1
W Nk1n1 k n
W N2 2
1 2

 

N1  ⏟ N
 1 
N 2 1 N 1
k1n2 
     x[N2n1  k1n1
 k n
  N 22 2
n2 0 n1
n ]W W W
0  – – –2 –  – – – –  factor 
 N1 -point
twiddle

 – – – – – – – – N–-point– – – – –  ––
 2

EEEC20034: Intro. to Digital


Signal 37
Processing
Procedure
(1) Compute N1 -point DFT of all N2 rows: (row
transform) N 1
1

G[n , k ] x[N 2n1  n2 ]WNk11n1  0  k1  N1


 2 1 n0 1 , 1
 0  n 2  N2
(2) Each row DFTs are multiplied by twiddle1
factors:
~ , k ]  Wk1n2  G[n ,
G[n  0  k1  N1
2 1 N 2 1
k ], 1
 0  n 2  N2
(3) Compute N2 -point DFT: (column transform) 1
N2 1
X [k1  N1k2 ]  G[n
~ ,
2 1
k2 n2
N2
 n2 0
k ]W

EEEC20034: Intro. to Digital


Signal 38
Processing
Example: N=15 = 35 = N1 N2

First, perform a 3-point DFT for each of the five rows (Notations: x[n2,n1], G[n2,k1]):

Row 1 x[0,0] = x[0] x[0,1] = x[5] x[0,2] = x[10]  G[0,k1]


Row 2 x[1,0] = x[1] x[1,1] = x[6] x[1,2] = x[11]  G[1,k1]
Row 3 x[2,0] = x[2] x[2,1] = x[7] x[2,2] = x[12]  G[2,k1]
Row 4 x[3,0] = x[3] x[3,1] = x[8] x[3,2] = x[13]  G[3,k1]
Row 5 x[4,0] = x[4] x[4,1] = x[9] x[4,2] = x[14]  G[4,k1]

EEEC20034: Intro. to Digital


Signal 39
Processing
Example: N=15 = 35 = N1 N2
kn
Multiply by WN 1 2

Column 1 Column 2 Column 3

G~ 0, 0 G~ 0,1 G~ 0, 2

G~ 1, 0 G~ 1,1 G~ 1, 2

G~ 2, 0 G~ 2,1 G~ 2, 2

G~ 3, 0 G~ 3,1 G~ 3, 2

G~ 4, 0 G~ 4,1 G~ 4, 2

EEEC20034: Intro. to Digital


Signal 40
Processing
Example: N=15 = 35 = N1 N2

Compute the 5-point DFT for each of the three columns

X[0,0] = X[0] X[0,1] = X[1] X[0,2] = X[2]


X[1,0] = X[3] X[1,1] = X[4] X[1,2] = X[5]
X[2,0] = X[6] X[2,1] = X[7] X[2,2] = X[8]
X[3,0] = X[9] X[3,1] = X[10] X[3,2] = X[11]
X[4,0] = X[12] X[4,1] = X[13] X[4,2] = X[14]

EEEC20034: Intro. to Digital


Signal 41
Processing
Example: N=15 = 35 =
N1 N2
Computation of N=15-point DFT by means of 3-point and 5-point DFTs

EEEC20034: Intro. to Digital


Signal 42
Processing
Example: N=15 = 35 = N 1 N 2 - Butterfly Structure

EEEC20034: Intro. to Digital


Signal 43
Processing
EEEC20034: Intro. to Digital
Signal 44
Processing
Computational Complexity
 Extension: N = N1N2…Nv
 If N = N1N2
 1. row transform: N2(N1)
 2. twiddle factors: N1N2 = N
 3. column transform: N1(N2)

In the example above, when N2 = 5 and N1 = 3. We first have to perform 5 different 3-point DFT
(row transform), so the number of multiplications will be 5 times (3), where (3) is the number
of multiplications we need to perform for a 3-point DFT. There are 15 twiddle factor
multiplications
(counting all trivial multiplications as well). Finally, there are three 5-point DFT to perform
in the last stage, therefore, 3 times (5) number of multiplications
(N )  N2  (N1 )  N1  (N2 )  N
  (N 1)  (N 2 ) 1 (*)
N  N1 2 

N   (Ni )
 (  1) 

In general if N = N1N 2…N v, then by repeatly applying (*), we have (N )  N i1 N i . This is
achieved by continuously breaking down the transform into successively smaller  transforms. N(v-1)
accounts for the total number of twiddle factor multiplication. However, it should be N(v-1)/2
because half of the twiddle factors are actually equal to “1” (see example when N = N1N2 = 3*5)
 Note that the way we reduce the number of computations is to obtain efficient algorithms for
implementing the smaller Ni-point transforms with few than Ni 2 multiplications

EEEC20034: Intro. to Digital


Signal 45
Processing
Special Case: N 1 = N 2 = … = Nv =
2 Radix-2: N1  N2   N  2 and v  log2
N
  N v 1
 (N )  2 multiplications because  2 requires no
1  N2   N  4 and v 
Radix-4: Nmultiplications
log4 N
N v 1
 (N )  2 multiplications because  4 requires no
multiplications by j and - j can be achieved by interchanging the real
(multiplications
and
imaginary parts). This FFT has few stages than Radix-2  fewer mults

40 W4 0 W40  1 1 1 1  1 1 1 1
W W
40
 1
W 40 W4 1 W4 2 W4 3 W 41 W4 2 W4 3  1 j
W4   0   j 1
 4 W4 2 W4 4 W4 6  1 W 42 W4 0 W42  1
W  
 W40 W4 6 W4 9 1 W 43 W4 2 W41  1
W4 3 1 j

For example, let N  16  N1 N2  4
 2 1  x n2    j 1 x N / 4  n2   1 1 x N / 2 n2  j 11 x 3N / 4  n2
* 4n , k k k k
G
   
for k1 0,1, 2, n2  0,1,…(N  , / 4)
1
3; 1 j
EEEC20034: Intro. to Digital
Signal 46
Processing 1
Radix-4 FFT
Each section Entire structure

EEEC20034: Intro. to Digital


Signal 47
Processing
Implementation of Inverse FFT
Using FFT
N 1
1
IDFT: x[n]
N
 X [k ]  kn
N (*)
 k
0
W
N 1
DFT: X [k ]  x[n] Nnk
 n W
0
Hence, take the conjugate of (*) Then take the conjugate of x* n
1

*
* x[n] 
*
 k 
x*[n] 1  N 1 X
  kn
N

  N DFT  X

 N  k [k ]W 
 *
0 1  *

N
1  X
N 1 * kn
N  FFT  X k
N k [k ]W Thus, we can use the FFT
0
algorithm to compute the inverse
1
 N DFT  X * k  
DFT

 
EEEC20034: Intro. to Digital
Signal 48
Processing

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy