Beruflich Dokumente
Kultur Dokumente
=
t
=
1 N
0 k
kn N / 2 j
e k X
N
1
] n [ x
| |
( )
=
t
=
1 N
0 n
kn N / 2 j
e ] n [ x k X
( ) ( ) ( ) ( ) ( ) ( )kn N / 2 j n k N / 2 j kN N / 2 j n N k N / 2 j
e e e e
t t t t
= =
( ) ( ) ( ) ( )( )n N k N / 2 j N n k N / 2 j kn N / 2 j
e e e
+ t + t t
= =
Copyright (C) 2005 Gner Arslan
351M Digital Signal Processing
3
The Goertzel Algorithm
Makes use of the periodicity
Multiply DFT equation with this factor
Define
With this definition and using x[n]=0 for n<0 and n>N-1
X[k] can be viewed as the output of a filter to the input x[n]
Impulse response of filter:
X[k] is the output of the filter at time n=N
( )
1 e e
k 2 j Nk N / 2 j
= =
t t
| |
( ) ( ) ( ) ( )
=
t
=
t t
= =
1 N
0 r
n N r N / 2 j
1 N
0 r
rn N / 2 j kN N / 2 j
e ] r [ x e ] r [ x e k X
| |
( ) ( )
| |
=
t
=
r
r n k N / 2 j
k
r n u e ] r [ x n y
| | | |
N n
k
n y k X
=
=
( )
| | n u e
kn N / 2 j t
Copyright (C) 2005 Gner Arslan
351M Digital Signal Processing
4
The Goertzel Filter
Goertzel Filter
Computational complexity
4N real multiplications
2N real additions
Slightly less efficient than the direct method
Multiply both numerator and denominator
( )
1
k
N
2
j
k
z e 1
1
z H
=
( )
2 1
1
k
N
2
j
1
k
N
2
j
1
k
N
2
j
1
k
N
2
j
k
z z
N
k 2
cos 2 1
z e 1
z e 1 z e 1
z e 1
z H
+
t
=
|
|
.
|
\
|
|
|
.
|
\
|
=
Copyright (C) 2005 Gner Arslan
351M Digital Signal Processing
5
Second Order Goertzel Filter
Second order Goertzel Filter
Complexity for one DFT coefficient
Poles: 2N real multiplications and 4N real additions
Zeros: Need to be implement only once
4 real multiplications and 4 real additions
Complexity for all DFT coefficients
Each pole is used for two DFT coefficients
Approximately N
2
real multiplications and 2N
2
real additions
Do not need to evaluate all N DFT coefficients
Goertzel Algorithm is more efficient than FFT if
less than M DFT coefficients are needed
M < log
2
N
( )
2 1
1
k
N
2
j
k
z z
N
k 2
cos 2 1
z e 1
z H
+
t
=
Copyright (C) 2005 Gner Arslan
351M Digital Signal Processing
6
Decimation-In-Time FFT Algorithms
Makes use of both symmetry and periodicity
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
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
| |
( ) ( ) ( )
t
=
t
+ = =
1 N
odd n
kn N / 2 j
1 N
even n
kn N / 2 j
1 N
0 n
kn N / 2 j
e ] n [ x e ] n [ x e ] n [ x k X
| |
( )
| | | | k H W k G
W ] 1 r 2 [ x W W ] r 2 [ x
W ] 1 r 2 [ x W ] r 2 [ x k X
k
N
1 2 / N
0 r
rk
2 / N
k
N
1 2 / N
0 r
rk
2 / N
1 2 / N
0 r
k 1 r 2
N
1 2 / N
0 r
rk 2
N
+ =
+ + =
+ + =
=
+
=
Copyright (C) 2005 Gner Arslan
351M Digital Signal Processing
7
Decimation In Time
8-point DFT example using
decimation-in-time
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
Repeat same process
Divide N/2-point DFTs into
Two N/4-point DFTs
Combine outputs
Copyright (C) 2005 Gner Arslan
351M Digital Signal Processing
8
Decimation In Time Contd
After two steps of decimation in time
Repeat until were left with two-point DFTs
Copyright (C) 2005 Gner Arslan
351M Digital Signal Processing
9
Decimation-In-Time FFT Algorithm
Final flow graph for 8-point decimation in time
Complexity:
Nlog
2
N complex multiplications and additions
Copyright (C) 2005 Gner Arslan
351M Digital Signal Processing
10
Butterfly Computation
Flow graph constitutes of butterflies
We can implement each butterfly with one multiplication
Final complexity for decimation-in-time FFT
(N/2)log
2
N complex multiplications and additions
Copyright (C) 2005 Gner Arslan
351M Digital Signal Processing
11
In-Place Computation
Decimation-in-time flow graphs require two sets of registers
Input and output for each stage
Note the arrangement of the input indices
Bit reversed indexing
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | 111 x 111 X 7 x 7 X
011 x 110 X 3 x 6 X
101 x 101 X 5 x 5 X
001 x 100 X 1 x 4 X
110 x 011 X 6 x 3 X
010 x 010 X 2 x 2 X
100 x 001 X 4 x 1 X
000 x 000 X 0 x 0 X
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
= =
= =
= =
= =
= =
= =
= =
= =
Copyright (C) 2005 Gner Arslan
351M Digital Signal Processing
12
Decimation-In-Frequency FFT Algorithm
The DFT equation
Split the DFT equation into even and odd frequency indexes
Substitute variables to get
Similarly for odd-numbered frequencies
| |
=
=
1 N
0 n
nk
N
W ] n [ x k X
| |
=
=
+ = =
1 N
2 / N n
r 2 n
N
1 2 / N
0 n
r 2 n
N
1 N
0 n
r 2 n
N
W ] n [ x W ] n [ x W ] n [ x r 2 X
| |
( )
( )
=
=
+
=
+ + = + + =
1 2 / N
0 n
nr
2 / N
1 2 / N
0 n
r 2 2 / N n
N
1 2 / N
0 n
r 2 n
N
W ] 2 / N n [ x ] n [ x W ] 2 / N n [ x W ] n [ x r 2 X
| | ( )
( )
=
+
+ = +
1 2 / N
0 n
1 r 2 n
2 / N
W ] 2 / N n [ x ] n [ x 1 r 2 X
Copyright (C) 2005 Gner Arslan
351M Digital Signal Processing
13
Decimation-In-Frequency FFT Algorithm
Final flow graph for 8-point decimation in frequency