Professional Documents
Culture Documents
A B
X = A + BW Y = A BW
B.Baas, 2012,EEC281
14
Memory Locations
Input
B.Baas, 2012,EEC281
Output
15
B.Baas, 2012,EEC281
16
B.Baas, 2012,EEC281
17
B.Baas, 2012,EEC281
18
B.Baas, 2012,EEC281
19
B.Baas, 2012,EEC281
20
B.Baas, 2012,EEC281
21
B.Baas, 2012,EEC281
22
B.Baas, 2012,EEC281
23
+ ()
W
x +
25
B.Baas, 2012,EEC281
A B C D
V W X Y
B.Baas, 2012,EEC281
26
Bit-Reversed Addressing
Normally:
DIT:bitreverseinputsbeforeprocessing
BIT REVERSAL
DIF:bitreverseoutputsafterprocessing
Reverseaddressingbitsforread/writeofdata
000(0) 001(1) 010(2) 011(3) 100(4) 101(5) 110(6) 111(7) 000(0)#Word0doesnotmovelocation 100(4)#Originalword1goestolocation4 010(2)#Word2doesnotmovelocation 110(6)#Originalword3goestolocation6 001(1) #Originalword4goestolocation1 101(5) #Word5doesnotmovelocation 011(3) #Originalword6goestolocation3 111(7) #Word7doesnotmovelocation
BIT REVERSAL
Inmatlab,doaddresscalculationsnormally
AddrA AddrB =0,2,4, =1,3,5,
thenusepointerswithanoffsetofonewhenever indexingarrays
AddrA =; AddrB =; A =data(AddrA+1); B =data(AddrB+1); data(AddrA+1)=X; data(AddrB+1)=Y;
B.Baas, 2012,EEC281
28
Higher Radices
Radix2andradix4arecertainlythemostpopular Radix4isontheorderof20%moreefficientthan radix2forlargetransforms Radix8issometimesused,butlongerradix butterfliesarenotcommonbecauseadditional efficienciesaresmallandaddedcomplexityisnon trivial(especiallyforhardwareimplementations)
B.Baas, 2012,EEC281
29
I. Common-Factor FFTs
Keycharacteristics
MostcommonclassofFFTs AlsocalledCooleyTukey FFTs FactorsofN usedindecompositionhavecommonfactor(s)
A)Radixr
N =rk, wherek isapositiveinteger Butterfliesusedineachstagearethesame Radixr butterfliesareused N/r butterfliesperstage k =logr N stages
B.Baas, 2012,EEC281
30
I. Common-Factor FFTs
B)Mixedradix
Radicesofcomponentbutterfliesarenotallequal Morecomplexthanradixr IsnecessaryifN rk Example
N=32 Couldcalculatewithtworadix4stagesandoneradix2stage
B.Baas, 2012,EEC281
31
B.Baas, 2012,EEC281
32
V W Wa X Y
33
Wb
FFTW(www.fftw.org)
Csubroutinelibrarieshighlytunedforspecificarchitectures
Goertzel DFT
Notanormal FFTinthatitscomputationalcomplexityis stillorderN2 ItallowsasubsetoftheDFTs N outputtermstobe efficientlycalculated
B.Baas, 2012,EEC281
34
Signal Growth
NoteinDFTequationsignalcangrowbyN times ThisisalsoseenintheFFTinitsgrowthbyr timesin aradixr butterfly,andlogrN stagesintheentire transform:r ^(logrN) =N Thus,theFFTprocessorrequirescarefulscaling
Floatingpointnumberrepresentation
Easiestconceptually,butexpensivehardware.Typicallynot usedinefficientDSPsystems.
Fixedpointwithscalingby1/r everystage
Firststageisaspecialcase.Scalingmustbedoneontheinputs beforeprocessingtoavoidoverflowwithlargemagnitude complexinputswithcertainphases.
Blockfloatingpoint
B.Baas, 2012,EEC281
35
Swappingrealandimaginaryparts:
a = fft(imag(in) + i*real(in)); out = (imag(a) + i*real(a));
Usingconjugates:
a = fft(conj(in)); out = conj(a);
Asimpleindexingchange:
a = fft(in); out = [a(0) a(N-1:-1:1)]; out = [a(1) a(N :-1:2)]; % with normal indices % with weird matlab indices
B.Baas, 2012,EEC281
36