prof. mark fowler - binghamton personal page/ee302...prof. mark fowler 2/15 the previous note...
Post on 25-Jan-2021
0 Views
Preview:
TRANSCRIPT
-
Note Set #26• FFT Algorithm: Divide & Conquer Viewpoint• Reading: Sect. 8.1.2 & 8.1.3 of Proakis & Manolakis
EEO 401 Digital Signal Processing
Prof. Mark Fowler
-
2/15
The previous note set’s FFT development was somewhat ad hoc.Here we develop a more formalized & generalized approach that can be used to develop other FFT approaches.
To illustrate the basic ideas consider the case of an N-pt DFT where N is not prime can be factored into two integer factors: N LM=
Can always zero-pad out to appropriate number
We now can use either of two mappings from 2-D indices l,m to the actual time index n:
n Ml m= + n l mL= +“Row-Wise Input Mapping” “Column-Wise Input Mapping”
We use one or the other of these mappings to convert the input to a matrix and then take DFTs along either the rows or columns.
We now can use either of two mappings from 2-D indices p,q to the actual DFT result index k: k Mp q= + k p qL= +
“Row-Wise Output Mapping” “Column-Wise Output Mapping”
Divide & Conquer Approach
-
3/15
n Ml m= +
n l mL= +
“Row-Wise Input Mapping”
“Column-Wise Input Mapping”
DFTs DownColumns
DFTs AcrossRows
-
4/15
Now to illustrate how to use this machinery… Use• Column-wise input mapping• Row-wise output mapping
1
0
[ ] [ ]N
knN
nX k x n W
−
=
= ∑n l mL= +k Mp q= +1
( )( )
0 0
[ , ] [ , ]M L
Mp q l mLN
m lX p q x l m W
−+ +
= =
= ∑∑
1 mq plNmp N L N MN
MLmp mLq Mpl lqN N N N
W WW
W W W W== =
=
1
0 0
[ , ]
[ , ]
[ , ]
[ , ] [ , ]L M
lq mq plN N L N M
l m
F l q
G l q
X p q
X p q W x l m W W−
= =
=
=
∑ ∑
Compute M-pt DFTs of Rows
Apply Twiddle Factors
Compute L-pt DFTs of Colns
-
5/15
Illustration of this Approach
Although this LOOKS more complicated… it is actually more efficient!
Compute M-ptDFTs of Rows
Apply Twiddle Factors
Compute L-ptDFTs of Colns
-
6/15
Application to Develop Dec-In-Time Radix-2 FFT Let N = 2vWe apply the divide-and-conquer approach with M = N/2 & L = 2
n l mL= + “Column-Wise Input Mapping”
DFTs AcrossRows
Compute N/2-pt DFTs of Rows
Apply Twiddle Factors
Compute 2-pt DFTs of Colns
Now repeat this for each N/2-pt DFT… Etc., Etc., Etc.
x[0] x[2] x[4] x[ N – 2]
x[1] x[3] x[5] x[ N – 1]
-
7/15
Application to Develop Dec-In-Frequency Radix-2 FFT N = 2vWe apply the divide-and-conquer approach with M = 2 & L = N/2
n l mL= + “Column-Wise Input Mapping”
DFTs Across Rows
x[0]
x[1]
x[N/2 - 1]
x[N/2]x[N/2+1]
x[N–1]
g1[n]
g2[n]
kNW
X[0]X[2]
X[N–2]
X[1]X[3]x[0]
x[1]
x[N/2 – 1]
x[2]
x[N/2]
x[N/2 + 1]
x[N/2 + 2]
x[N – 1]
2-pt DFT
N/2-pt DFT
Compute N/2-pt DFTs of Columns
Apply Twiddle Factors
Compute 2-pt DFTs of Rows
Now repeat this for each
N/2-pt DFT… Etc., Etc., Etc.
-
8/15
N = 8 First Stage of Dec-in-Freq FFT
-
9/15
Complete Dec-in-Freq FFT for N = 8 DFT Values are in Bit Reversed Order!
-
10/15
Butterfly Structure: DiT vs DiF
Butterfly Structure: Dec-in-Time
Butterfly Structure: Dec-in-Freq
-
11/15
N=8 D-in-Time FFT w/ BR InputsCan be done “in-place”
N=8 D-in-Time FFT w/ BR OutputsCan be done “in-place”
N=8 D-in-Time FFT w/ both sides “Normal Order”Can NOT be done “in-place”
Diagrams from R. Lyon, Understanding Digital Signal Processing, 3rd Ed., Prentice-Hall, 2011
3 Different Configurations of D-in-Time FFT
Writes over Data Needed Later!!
-
12/15
N=8 D-in-Freq FFT w/ BR InputsCan be done “in-place”
N=8 D-in-Freq FFT w/ BR OutputsCan be done “in-place”
N=8 D-in-Freq FFT w/ both sides “Normal Order”Can NOT be done “in-place”
Diagrams from R. Lyon, Understanding Digital Signal Processing, 3rd Ed., Prentice-Hall, 2011
3 Different Configurations of D-in-Freq FFT
Writes over Data Needed Later!!
-
13/15
Implementation Issues
• We’ve looked at two radix-two methods.- Other radices: 4 & 8- split radix (2 and 4)
• In-Place computation requires only 2N memory locations- But complicates the indexing & control operations- Doubling the memory to 4N locations can be advantageous
o Reduces complexity of indexing & controlo Allows natural ordering for both input and output
• In general, many factors come into play when determining best method- Parallelism, HW vs SW, fixed-point vs floating-point, etc.
• Also… no need to develop distinct IFFT algorithm
*1 12 / * 2 /
0 0
1 1[ ] [ ] [ ]N N
j kn N j kn N
n nx n X k e X k e
N Nπ π
− −−
= =
= = ∑ ∑ { } { }{ }*
1[ ] [ ]IDFT X k conj DFT X kN
=
-
14/15
Two Tricks for Real-Valued Signals
1. Efficient DFT of two Real-Valued Signals
Let x1[n] and x2[n] be real-valued signals, each length N
1 2[ ] [ ] [ ]x n x n jx n+
Then we have* *
1 2[ ] [ ] [ ] [ ][ ] & [ ]
2 2x n x n x n x nx n x n
j+ −
= =
Form:
Thus{ } { } { } { }* *
1 2
[ ] [ ] [ ] [ ][ ] & [ ]
2 2DFT x n DFT x n DFT x n DFT x n
X k X kj
+ −= =
But… DFT{ x*[n]} = X*[N – k]
* *1 2
1 1[ ] [ ] [ ] & [ ] [ ] [ ]2 2
X k X k X N k X k X k X N kj
= + − = − −
-
15/15
2. Efficient DFT of 2N-pt Real-Valued Signal
1 2[ ] [2 ] & [ ] [2 1]x n g n x n g n +
Let g[n] be a real-valued signal of length 2N
Then define:
And: 1 2[ ] [ ] j [ ]x n x n x n= +
From Trick #1 we have
* *1 2
1 1[ ] [ ] [ ] & [ ] [ ] [ ]2 2
X k X k X N k X k X k X N kj
= + − = − −
But using ideas from Dec-in-Time FFT we know1 1
2 (2 1)2 2
0 01 1
2 (2 1)1 2 2 2
0 0
[ ] [2 ] [2 1]
[ ] [ ]
N Nnk n k
N Nn nN N
nk n kN N
n n
G k g n W g n W
x n W x n W
− −+
= =
− −+
= =
= + +
= +
∑ ∑
∑ ∑
So then we get1 2 2
1 2 2
[ ] [ ] [ ], 0,1, , 1
[ ] [ ] [ ], 0,1, , 1
kN
kN
G k X k W X k k NG k N X k W X k k N
= + = −
+ = − = −
So computing one N-pt DFT of x[n] gets us the 2N-pt DFT of g[n]!
EEO 401 �Digital Signal Processing�Prof. Mark FowlerSlide Number 2Slide Number 3Slide Number 4Slide Number 5Slide Number 6Slide Number 7Slide Number 8Slide Number 9Slide Number 10Slide Number 11Slide Number 12Slide Number 13Slide Number 14Slide Number 15
top related