Sie sind auf Seite 1von 37

Computation of the Discrete

Fourier Transform
1
2
Efficient Computation of Discrete Fourier Transform
The DFT pair was given as
2
| |
( )
1
0
2 / 1
[ ]
N
k
j N kn
x n X k
N
e
t

=
=
| |
( )
1
0
2 /
[ ]
N
n
j N kn
X k x n e
t

Baseline for computational complexity:


Each DFT coefficient requires
N complex multiplications;
N-1 complex additions
All N DFT coefficients require
N
2
complex multiplications;
N(N-1) complex additions
3
Efficient Computation of Discrete Fourier Transform
3
Complexity in terms of real operations
4N
2
real multiplications
2N(N-1) real additions (approximate 2N
2)
| |
( )
1
0
2 /
[ ]
N
n
j N kn
X k x n e
t

4
Efficient Computation of Discrete Fourier
Transform
Most fast methods are based on Periodicity properties
Periodicity in n and k; Conjugate symmetry
4
( ) ( ) ( ) ( ) ( ) ( )
2 / 2 / 2 / 2 / j N k N n j N kN j N k n j N kn
e e e e
t t t t
= =
( ) ( ) ( ) ( )( )
2 / 2 / 2 / j N kn j N k n N j N k N n
e e e
t t t + +
= =
{ }
Re ]
5
Decimation-in-time FFT Algorithms (DIT FFT)
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
| |
( )
( ) ( )
1
0
n even n odd
2 /
2 / 2 /
[ ]
[ ] [ ]
N
n
j N kn
j N kn j N kn
X k x n
x n x n
e
e e
t
t t


=
= +


6
Decimation-in-time FFT Algorithms
6
| |
( )
/ 2 1 / 2 1
2 1
2
r 0 r 0
[2 ] [2 1]
N N
r k
rk
N N
X k x r W x r W

+
= =
= + +

Substitute variables n=2r for n even and n=2r+1 for
odd
G[k] and H[k] are the N/2-point DFTs of each
subsequence
| |
( ) ( )
n even n odd
2 / 2 /
[ ] [ ]
j N kn j N kn
X k x n x n e e
t t
= +

| | | |
k
N
G k W H k = +
/ 2 1 / 2 1
/ 2 / 2
r 0 r 0
[2 ] [2 1]
N N
rk k rk
N N N
x r W W x r W

= =
= + +

2
/2
2
/2
2 2
N N
N
j j
N
W W e e
t t

= = =
7
Decimation-in-time FFT Algorithms
7
G[k] and H[k] are the N/2-point DFTs of each
subsequence
| | | |
k
N
G k W H k = +
| |
/ 2 1 / 2 1
/ 2 / 2
r 0 r 0
[2 ] [2 1]
N N
rk k rk
N N N
X k x r W W x r W

= =
= + +

/2
2 2
2
/2
rk
N
r r
N N
j k j k
W e e
t t

= =
| |
2
N
G k G k
(
+ =
(

| |
2
N
H k H k
(
+ =
(

1
0,1,...,
2
N
k

=
0,1,..., k N =
8-point DFT using decimation-in-time
8
9
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
N
2
/2+N complex multiplications
N
2
/2+N complex additions
More efficient than direct DFT
9
10
Decimation-in-time FFT Algorithms
Repeat same process ,
Divide N/2-point DFTs
into
Two N/4-point DFTs
Combine outputs
10
N=8
11
Decimation-in-time FFT Algorithms
After two steps of decimation in time
11
Repeat until were left with two-point DFTs
12
Decimation-in-time FFT Algorithms
flow graph for 8-point decimation in time
12
Complexity:
Nlog
2
N complex multiplications and additions
13
Butterfly Computation
Flow graph constitutes of butterflies
13
We can implement each butterfly with one
multiplication
Final complexity for decimation-in-time FFT
(N/2)log
2
N complex multiplications and
additions
14
Decimation-in-time FFT Algorithms
Final flow graph for 8-point decimation in
time
14
Complexity:
(Nlog
2
N)/2 complex multiplications and Nlog
2
N additions
15
In-Place Computation
Decimation-in-time flow graphs require two sets of
registers
Input and output for each stage
15
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
0
0
0
0
0
0
0
0
0 0
1 4
2 2
3 6
4 1
5 5
6 3
7 7
X x
X x
X x
X x
X x
X x
X x
X x
=
=
=
=
=
=
=
=
| |
| |
| |
| |
| |
| |
| |
| |
0
4
2
6
1
5
3
7
x
x
x
x
x
x
x
x
| |
| |
| |
| |
| |
| |
| |
| |
0
1
2
3
4
5
6
7
X
X
X
X
X
X
X
X
| |
| |
| |
| |
| |
| |
| |
| |
2
2
2
2
2
2
2
2
0
1
2
3
4
5
6
7
X
X
X
X
X
X
X
X
16
In-Place Computation
Note the arrangement of the input indices
Bit reversed indexing
16
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0 000 000
1 4 001 100
2 2 010 010
3 6 011 110
4 1 100 001
5 5 101 101
6 3 110 011
7 7 111 111
X x X x
X x X x
X x X x
X x X x
X x X x
X x X x
X x X x
X x X x
= =
= =
= =
= =
= =
= =
= =
= =
| |
| |
| |
| |
| |
| |
| |
| |
0
4
2
6
1
5
3
7
x
x
x
x
x
x
x
x
| |
| |
| |
| |
| |
| |
| |
| |
0
1
2
3
4
5
6
7
X
X
X
X
X
X
X
X
17
cause of bit-reversed order
binary coding for position
000
001

010
011

100
101

110
111
M
N 2 =
must padding 0 to
Alternative forms
Note the arrangement of the input indices
Bit reversed indexing
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0 000 000
1 4 001 100
2 2 010 010
3 6 011 110
4 1 100 001
5 5 101 101
6 3 110 011
7 7 111 111
X x X x
X x X x
X x X x
X x X x
X x X x
X x X x
X x X x
X x X x
= =
= =
= =
= =
= =
= =
= =
= =
| |
| |
| |
| |
| |
| |
| |
| |
0
4
2
6
1
5
3
7
x
x
x
x
x
x
x
x
| |
| |
| |
| |
| |
| |
| |
| |
0
1
2
3
4
5
6
7
X
X
X
X
X
X
X
X
19
Figure 9.14
9.3.2 Alternative forms
strongpointin-place computations
shortcomingnon-sequential access of data
20
Figure 9.15
shortcomingnot in-place computation
non-sequential access of data
21
9.3 decimation-in-time FFT Algorithms
21
| |
( )
/ 2 1 / 2 1
2 1
2
r 0 r 0
[2 ] [2 1]
N N
r k
rk
N N
X k x r W x r W

+
= =
= + +

Substitute variables n=2r for n even and n=2r+1 for
odd
G[k] and H[k] are the N/2-point DFTs of each
subsequence
| |
( ) ( )
n even n odd
2 / 2 /
[ ] [ ]
j N kn j N kn
X k x n x n e e
t t
= +

| | | |
k
N
G k W H k = +
/ 2 1 / 2 1
/ 2 / 2
r 0 r 0
[2 ] [2 1]
N N
rk k rk
N N N
x r W W x r W

= =
= + +

2
/2
2
/2
2 2
N N
N
j j
N
W W e e
t t

= = =
Review
22
9.3.1 In-Place Computation
Bit reversed indexing
22
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
0
0
0
0
0
0
0
0
000 000
001 100
010 010
011 110
100 001
101 101
110 011
111 111
=
=
=
=
=
=
=
=
X x
X x
X x
X x
X x
X x
X x
X x
| |
| |
| |
| |
| |
| |
| |
| |
0
4
2
6
1
5
3
7
x
x
x
x
x
x
x
x
| |
| |
| |
| |
| |
| |
| |
| |
0
1
2
3
4
5
6
7
X
X
X
X
X
X
X
X
23
Figure 9.14
9.3.2 Alternative forms
strongpointin-place computations
shortcomingnon-sequential access of data
24
Decimation-In-Frequency FFT Algorithm
The DFT equation
24
| |
1
0
[ ]
N
nk
N
n
X k x n W

=
=

| |
1 / 2 1 1
2 2 2
0 0 / 2
2 [ ] [ ] [ ]
N N N
n r n r n r
N N N
n n n N
X r x n W x n W x n W

= = =
= = +

( )
/ 2 1
/ 2
0
[ ] [ / 2]
N
nr
N
n
x n x n N W

=
= + +

Split the DFT equation into even and odd frequency


indexes
Substitute
variables
( )
/ 2 1 / 2 1
/ 2 2
2
0 0
[ ] [ / 2]
N N
n N r
n r
N N
n n
x n W x n N W

+
= =
= + +

/ 2 1
0
/ 2
( )
N
rn
n
N
g n W

=
=

25
Decimation-In-Frequency FFT Algorithm
The DFT equation
25
| |
1
0
[ ]
N
nk
N
n
X k x n W

=
=

| |
1 / 2 1 1
(2 1) (2 1) (2 1)
0 0 / 2
2 1 [ ] [ ] [ ]
N N N
n r n r n r
N N N
n n n N
X r x n W x n W x n W

+ + +
= = =
+ = = +

( )
/ 2 1
(2 1)
0
[ ] [ / 2]
N
n r
N
n
x n x n N W

+
=
= +

( )
/ 2 1 / 2 1
/ 2 (2 1)
(2 1)
0 0
[ ] [ / 2]
N N
n N r
n r
N N
n n
x n W x n N W

+ +
+
= =
= + +

(2 1)
/ 2
2
1
N
r
Nr N
N N N
W W W
+
= =
( ) 2
/2
2 1 n r
rn n rn n
N N N N N
W W W W W
+
= =
( )
/
2
2 1
0
/
[ ] [ / 2]
N
n rn
N
n
N
x n x n N W W

=
= +

/ 2
/ 2 1
0
( )
N
n r
N N
n
n
h n W W

=
=

26
Decimation-in-frequency decomposition of an N-
point DFT to N/2-point DFT
26
| | ( )
/ 2 1
0
/2
2 [ ] [ / 2]
N
n
nr
N
X r x n x n N W

=
= + +

| | ( )
/ 2 1
0
/ 2
2 1 [ ] [ / 2]
N
n rn
N
n
N
X r x n x n N W W

=
+ = +
/ 2
/ 2 1
0
( )
N
n r
N N
n
n
h n W W

=
=

/ 2 1
0
/ 2
( )
N
rn
n
N
g n W

=
=

27
Decimation-in-frequency decomposition of an 8-
point DFT to four 2-point DFT
/ 4
/ 4 1
2
0
( )
N
n s
N N
n
n
q n W W

=
=

| |
/
2
0
/ 4
4 1
2*(2 1) [ ( ) ( / 4)]
N N
N
n sn
n
X s g n g n N W W

=
+ = +

27
/ 4 1
0
/ 4
( )
N
sn
n
N
p n W

=
=

| |
/
0
/ 4
4 1
2*2 [ ( ) ( / 4)]
N
sn
n
N
X s g n g n N W

=
= + +

28
2-point DFT
28
0
8
1 1
( ) ( ) ( )
v
v v
X q X p X q W

( =

8 when N =
1 1
( ) ( ) ( )
v
v v
X p X p X q

= +
29
| | ( )
/ 2 1
0
/2
2 [ ] [ / 2]
N
n
nr
N
X r x n x n N W

=
= + +

/ 2 1
0
/ 2
( )
N
rn
n
N
g n W

=
=

| |
/ 4 1 / 2 1
2 2
0 / 4
/ 4 1 / 4 1
2 2 ( / 4)
0 0
/ 4 1 / 4
/ 2 / 2
/ 2 / 2
/ 4 / 4
/
1
0 0
0
4
/ 4 1
2*2 ( ) ( )
( ) ( / 4)
( ) ( / 4)
[ ( ) ( / 4)]
N N
sn sn
n n N
N N
sn s n N
n n
N N
sn sn
N N
N N
N N
N
n n
N
sn
n
X s g n W g n W
g n W g n N W
g n W g n N W
g n g n N W

= =

+
= =

= =

=
= +
= + +
= + +
= + +


/ 4 1
0
/ 4
( )
N
sn
n
N
p n W

=
=

30
| | ( )
/ 2 1
0
/2
2 [ ] [ / 2]
N
n
nr
N
X r x n x n N W

=
= + +

/ 2 1
0
/ 2
( )
N
rn
n
N
g n W

=
=

| |
/ 2 1
(2 1)
0
/ 4 1 / 2 1
(2 1)
/ 2
/ 2 / 2
/ 4 / 2
(2 1)
0 /
/ 2
/ 4 / 4 /
4
/ 4 1 / 4 1
(2 1)( / 4)
0 0
/ 4 1
2 2 (2 1)
0
2
2*(2 1) ( )
( ) ( )
( ) ( / 4)
( ) ( / 4)
N
s n
n
N N
s n s n
n n N
N
N
N N
N N N
N N N N
N
sn n s n N
n n
N
sn n s
N
n n s N
n
X s g n W
g n W g n W
g n W W g n N W
g n W W g n N W W W

+
=

+ +
= =

+ +
= =

+
=
+ =
= +
= + +
= + +

/ 4 1
/ 4
0
/ 4 1
2
0
/ 4
[ ( ) ( / 4)]
N N
N
n
N
n sn
n
g n g n N W W

=
= +

/ 2 / 2
(2 1) / 4 / 2 / 4
/ 2
1
s N sN N
N N N
W W W
+
= =
/ 4
/ 4 1
2
0
( )
N
n s
N N
n
n
q n W W

=
=

31
| |
/ 4
/ 4 1
0
2*2 ( )
N
sn
n
N
X s p n W

=
=

| |
/ 4
/ 4
/ 4 1
2
0
/8 1 / 4 1
/
2
/
4
2
0 8
2*2*2 ( )
( ) ( )
N
tn
n
N N
t
N
n tn
n n N
N N
X t p n W
p n W p n W

=

= =
=
= +


/8 1 /8 1
2 2 ( /8)
0
4
0
/ 4 /
( ) ( / 8)
N N
tn t n N
N
n n
N
p n W p n N W

+
= =
= + +

/8 1
0
/8
[ ( ) ( / 8)]
N
tn
n
N
p n p n N W

=
= + +

( ) ( 1) p n p n = + + 8 when N =
32
| |
/ 4
/ 4 1
0
2*2 ( )
N
sn
n
N
X s p n W

=
=

| |
/ 4
/ 4
/ 4 1
(2 1)
0
/8 1 / 4 1
(2 1) (2 1)
0
4
/
/
8
2*2*(2 1) ( )
( ) ( )
N
t n
n
N N
t n t n
N
N
n n N
N
X t p n W
p n W p n W

+
=

+ +
= =
+ =
= +


/8 1 /8 1
(2 1) (2 1)( /8)
0 0
/ 4 / 4
( ) ( / 8)
N N
t n t n N
n
N
n
N
p n W p n N W

+ + +
= =
= + +

/8 1
0
4
/8
[ ( ) ( / 8)]
N
N
tn n
N
n
p n p n N W W

=
= +

0
8
[ ( ) ( 1)] p n p n W = +
8 when N =
/8 1 /8 1
2 2 (2
/ 4 / 4 / 4 / 4 / 4
1) /8
0 0
( ) ( / 8)
N N
tn n
N N N
tn n t N
n n
N N
p n W W p n N W W W

+
= =
= + +

/ 4 / 4
(2 1) /8 / 4 /8
/ 4
1
t N tN N
N N N
W W W
+
= =
33
Final flow graph for 8-point DFT decimation in
frequency
33
34
9.4.1 In-Place Computation

34
DIF FFT
DIT FFT
35
9.4.1 In-Place Computation
35
DIF FFT
DIT FFT
36
9.4.2 Alternative forms
36
decimation-in-time Butterfly Computation
decimation-in-frequecy Butterfly Computation
37
The DIF FFT is the transpose of the DIT FFT
37
DIF FFT
DIT FFT

Das könnte Ihnen auch gefallen