Professional Documents
Culture Documents
FFT ALGORTMALARININ
FPGA ZERNDE GEREKLENMES
BTRME DEV
Tuba AYHAN
040040301
MAYIS 2008
NSZ
Bitirme devim boyunca bilgilerinden faydalandm ve bana ok deerli zamann
ayrarak yardmc olan Sayn Yrd. Do. Dr. Mtak Erhan YALINa sonsuz sayg ve
teekkrlerimi sunarm.
Bu projenin gereklenmesinde, bana Gml Sistemler Laboratuarnda deneyimlerini
aktararak yardmc olan arkadalarma teekkrlerimi sunarm.
Mays 2008
Tuba Ayhan
ii
NDEKLER
ZET
SUMMARY
iv
v
1. GR
2
3
5
5
6
7
9
11
11
12
13
14
16
18
20
25
27
30
35
38
38
41
44
46
5. KARILATIRMALAR
50
6. SONULAR VE TARTIMA
52
KAYNAKLAR
53
ZGEM
54
iii
ZET
Ayrk Fourier dnm (Discreet Fourier Transform- DFT), bir iaretin frekans
domeni karlnn, zaman domenindeki ifadesinden daha sk kullanld saysal
iaret ileme uygulamalarnda gerekli bir dnmdr. Ancak, ayrk Fourier
dnmnn getirdii ilem yk, maliyeti arttrabilir; ya da ilem sresini arttrarak,
giri iaretinin rneklenebilecei en yksek frekans deerini snrlayp, frekans
znrl drebilir. Bu nedenle saysal iaret ileme uygulamalarnda ilem yk
daha az olan ve saysal ilemci yapsna daha uygun olan Hzl Fourier Dnm
(Fast Fourier Transform- FFT) tercih edilir.
Bu almada, eitli hzl Fourier dnm algoritmalar sahada programlanabilir kap
dizileri (Field Programmable Gate Arrays, FPGA) zerinde gereklenmitir. Tasarm
sresinin ksal, tekrar tekrar kullanlabilir olmas, test aamasnn kolayl ve
maliyetinin dk olmas nedeniyle FPGA VLSI (Very Large Scale Integrated Circuitok Geni lekli Tmdevre) tasarmlarda ska kullanlan bir cihazdr.
Bu almada incelenen her bir algoritma iin nce o algoritmann teorik analizi ve
MATLAB simlasyonu yaplm, daha sonra algoritmaya ilikin devre Verilog HDL
ile tasarlanm, bilgisayar benzetimi yaplm ve en son yazlan kod FPGAya
aktarlarak gereklenen devre gerek ortamda altrlp test edilmitir.
Bu projede deerlendirilen FFT algoritmalarnn genel kullanm biimleri gzetilerek,
her biri iin kullanlan toplama ve arpma alt bloklar tekrar tasarlanm, sabit noktal,
tek duyarl kayan noktal veya yar duyarl kayan noktal aritmetik kullanlmtr.
Bylece algoritmaya gre, sonularn kesinlii, geree yaknl ve FPGA iinde
kullanlan alan asndan optimizasyon salanmaya allmtr.
Gerek ortamda tasarmlar test edilirken, SPARTAN3E gelitirme kiti kullanld. Giri
iareti, bir iaret retecinden alnd ve 8 bitlik analog saysal dntrc zerinden
FPGA ya aktarld. Alnan 8 bitlik sabit noktal veri FFT algoritmasnda kullanlacak
olan forma dntrld. Dnm sonucu ise, hedef sistemin yapsna uygun bir
forma dntrld. Hedef sistem, dnm sonularnn okunaca VGA gibi bir
ekran olabilecei gibi, zerinde bir iaret ileme algoritmas koulan baka bir FPGA
da olabilir. Projede, frekans znrl 32 noktaya kadar olan FFT algoritmalarnn
k osiloskoptan gzlenmitir.
Projede 8 bit ADC ve DAC, SPARTAN3E FPGA ieren Starter Kit gelitirme kiti
kullanlmtr. Donanm tanmlama dili olarak Verilog HDL kullanlm, Xilinx ISE
programnda derlenmitir. Benzetim ortam olarak ise ModelSimXE ve MATLAB
kullanlmtr.
iv
SUMMARY
Discreet Fourier Transform (DFT), is a widely used transform where the frequency
domain representation of a signal is more useful than its time domain equivalent.
However, the operational cost of discreet Fourier transform increases the device cost;
or increased operation time restricts maximum sampling frequency for input sequence.
Therefore, frequency resolution decreases. Hence, in applications of digital signal
processing, a similar transform whose operation load is less, Fast Fourier Transform
(FFT) which is more suitable for digital signal processor architecture is preferred.
During this work, various fast Fourier transform algorithms are realized on Field
Programmable Gate Array (FPGA). FPGA is handled for VLSI (Very large Scale
Integrated Circuit) designs due to the short design period, being reusable, providing
advantages during test step, and low cost.
Each algorithm in this project is firstly searched theoretically and MATLAB
simulation of each is analyzed. Then, a circuit concerning that algorithm is designed
using Verilog HDL and simulation on computer is made then the circuit is tested on
FPGA .
Basic modules such as adders and multipliers are redesigned and single precision
floating point, half precision floating point or fixed point arithmetic is used for each
algorithm concerning the general usage advantages of the related FFT algorithm.
Thus, accuracy of results, reliability or device cost in FPGA is tried to be optimized
according to the needs of the algorithm.
For the real time tests, SPARTAN 3E starter kit is used. Input is taken from signal
generator and digitalized trough an 8 bit analogue to digital converter. 8 bit fixed point
signal is converted to the form that will be used in FFT block if needed. Output of FFT
block is then converted to the form that can be used in the target system. Target
system can be a screen to read the results, such as LCD as well as another FPGA
running another signal processing algorithm. In this project, output of fast fourier
transforms with frequency resolutions up to 32 points are screened on oscilloscope.
A starter kit containing SPARTAN 3E FPGA is used. Verilog HDL is used as
hardware description language, program is compiled with Xilinx ISE and ModelSim
and MATLAB are used as simulation tools.
1. GR
Ses ve konuma iaretlerinin ilenmesi, sonar ve radar uygulamalar, saysal grnt
ileme, istatistiksel iaret ileme, spektral kestirim, haberleme sistemleri iin iaret
ileme, biyomedikal iaret ileme gibi alt dallar bulunan saysal iaret ileme
gnmzde uygulama alanlarn geniletmektedir.
Saysal iaret ilemeye dair almalar standart bilgisayarlar zerinde yaplrken, daha
sonralar saysal iaret ilemciler kullanlmaya balanmtr. Bylelikle saysal iaret
ileme almalarnn pratie geirilmesi kolaylamtr.
Sahada programlanabilir kap dizileri (Field Programmable Gate Arrays, FPGA),
saysal iaret ileme iin kullanlabilecek
kullanlabilecek dier bir ara olan saysal iaret ilemcilerden programlanma ekli ve
mimarisi bakmndan ok farkldr. te yandan, ASIC (Application Specific Integrated
Circuit- Uygulamaya zel Tmleik Devre) teknolojisine de imalat sonrasnda
yaplandrlabilmesinden dolay ok yakn deildir.
Bitirme projesi kapsamnda saysal iaret ileme uygulamalarnda ska kullanlan FFT
(Fast Fourier Transform- Hzl Fourier Dnm) algoritmalar incelenmitir. Bu
projenin amac her biri farkl uygulamalara sahip FFT algoritmalarnn iaret ileme
uygulamalar bata olmak zere dier almalarda kullanlmak zere FPGA zerinde
gereklenmesidir.
Projenin ilk ksmnda sahada programlanabilir kap dizileri ve almada kullanlan
FPGA hakknda bilgi verilmi, neden bu proje iin FPGAnn seildii aklanmaya
allmtr.
Sonraki ksmlarda ise ayrk Fourier dnm ve hzl Fourier dnm hakknda
genel bilgi verilmi ve baz FFT algoritmalar hakknda detayl bilgi verilmi ve FPGA
zerinde gereklemeleri anlatlmtr.
kolay
programlanamyor
oluudur.
Ancak
FPGA
ve
CPLD
lerin
FPGA Mimarisi
Genel Mimarisi ekil 2.1de gsterilen FPGA temel olarak bloktan oluur;
yaplandrlabilir lojik bloklar (CLB- Configurable Logic Block), giri k banklar
(IOB- Input Output Bank) ve balant bloklar. eitli FPGAlarda, arpma blou gibi
aritmetik ilem bloklar, saat datclar (DCM- Digital Clock Manager), bellek
bloklar
Access
bulunabilmektedir.
Memory)
gibi
zel bloklar da
Output Bank) iinde gruplanrlar. Bylelikle, ayn FPGA, baka arabirimlere gerek
kalmakszn farkl cihazlarla balant kurabilir.
Yaplandrlm lojik bloklarn birbirine balanmasnda ara balant bloklar kullanlr.
Buradaki yap PLA yapsna benzer.
ekil 2.1de gsterilen genel mimari iinde DCM (Digital Clock Manager) olarak
adlandrlan blok, FPGA iindeki tm flip floplara gnderilen saat iaretinin
oluturulduu ksmdr, gnmzde FGPAlar dardan saat iareti uygulanmasna
ihtiya duymaz.
2.2.
FPGA Programlama
programlanabilir
anahtarlar
ile
oluturulmasyla
gerekletirilir.
ara
balantlar
oluturduu
programlama
ekline
SRAM
CLB
CLB
CLB
(satr)
(stun)
(toplam)
46
34
1,164
Edeer
Dilim LUT/Kapan
Lojik
Hcre
4,656
9,312
10,476
RAM
Dank
16/SRL
RAM
4,656
74,496
Aritmetik ilemleri hzlandrmak ve bir dilim iinde bulunan kapan saysndan fazla
kapan gerektiren ilemleri, CLB harcamadan yapabilmek iin blok arpclar
tanmlanmtr. Her biri 18x18 arpma gerekletirebilen bu bloklardan XC3S500E
iinde 20 adet bulunmaktadr [3]. arpc bloklarnn varl, byk arpma
ilemlerinin gereklendii Fourier dnmnde, ayr CLBlerde bulunan kapanlar
kullanmadan arpma ileminin gereklenmesini salar.
Bir dier ek blok ise 360K bit adreslenebilir yere sahip RAM bloudur [3]. Blok
RAM, uzunluk ve genilii farkl ekillerde yaplandrlabilir, ift adres hatt RAMin
ift giri kl olmasn salar. Blok RAM kullanlan tasarmlarda, RAMe ulam
zaman ve RAMe yazlacak olan datann tutulma zaman ile, cihazn alma frekans
arasndaki uyuma dikkat edilmelidir. Blok RAM, gerektiinde ROM olarak da
kullanlabilir. Bloklarn bir ksm Fourier dnm gereklenirken katsaylar tutmak
amacyla ROM olarak, ve ilemler srasnda kullanmak amacyla RAM olarak
yaplandrlmtr.
2.3.2. SPARTAN 3E Gelitirme Kiti (STARTER KIT)
ekil 2.3de grlen gelitirme kitinin zerinde, blm 2.3.1de anlatlan FPGA
dnda, kullancya ayrlm giri-k pinleri, 16 Mbits SPI (Serial Parallel InterfaceSeri Paralel Arabirim), paralel NOR Flash, 2 satr 16 karakter LCD ekran, PS/2 fare
veya klavye girii, VGA k portu, eitli haberleme portlar (Ethernet, RS232 gibi),
50MHz osilatr, programlama ve zme iin USB girii, 3 adet Digilent 6-pin
konektr, 4 kl DAC, 2 girili ADC, anahtarlar, LEDler, butonlar bulunmaktadr.
Bitirme projesinde, FPGA ve programlama niteleri dnda, 6-pin konektrler ile SPI
ADC ve DAC balants iin, LCD ve LEDler sonular gzlemek iin, butonlar ile
anahtarlar kontrol ve hata ayklama iin kullanlmtr.
(3.1)
s k [i ] = sin( 2ik / N )
(3.2)
Burada ck[0], giri iaretinin DC deerini verir, sk[0] ise her zaman 0 olduu iin
dikkate alnmaz, orijinal iaretin tekrar elde edilmesinde etkisi olmaz. Giri iareti,
sins ve kosins iaretlerinin toplam olduuna gre,
x[i ] =
N/2
N /2
__
__
Re X [k ] cos(2ik / N ) + Im X [k ] sin(2ik / N )
k =0
(3.3)
k =0
Re X [k ] =
__
Re X [0] =
Re X [k ]
N /2
(3.4)
Re X [0]
N
(3.5)
__
Re X [ N / 2] =
__
Im X [k ] =
Re X [ N / 2]
N
(3.6)
Im X [k ]
N /2
(3.7)
Yukardaki gibi tanmlanan bir giri iaretinin ayrk fourier dnm hesaplanmak
istendiinde, sins ve kosins ifadelerinin karmak dzlemde karlklar kullanlarak,
j 2
kn
X (k ) = x(n )e N
n =0
N 1
(3.8)
yazlabilir.
Burada X (karmak say), x ile gsterilen zaman domenindeki iaretin frekans
domenindeki karln ifade eder. Dnm ksaca u ekilde gsterilebilir:
(3.9)
Frekans domeninden zaman domenine geerken, ters Fourier dnm kullanlr:
1
x (n ) =
N
j 2
kn
(
)
X
k
e
k =0
N 1
(3.10)
10
3.1.
11
(3.11)
i =0
N 1
(3.12)
i =0
DFT hesaplamada 32 noktaya kadar bu yntem, daha fazla nokta iin Hzl Fourier
Dnm (FFT) kullanlr [7].
12
deerlendirilip
yntemlerine
deerlendirilemeyecei
gidilmitir.
Bir
ksm
oklu
konusunda eitli
indeksleme
snflandrma
yntemleri
kullanan
algoritmalar FFT algoritmas olarak grrken (Burus), bir ksm ise DFTnin temel
ilem yk olan O(N2) kadar ilemi, e
j2
N
j2
N
gibi tek boyutlu indekslenmi katsaylarn yerini veya ifadesini deitirerek DFT
tanmnda verilen toplama ilemini bir dairesel konvolsyona dntrmektir. Bu
yntem ilem ykn biraz azaltabildii gibi, FFT ilemi FIR filtre yapsyla
gereklenebilir hale getirilmi olacandan, gereklenebilirlii de arttrmaktadr.
Rader, Bluestein Chirp-z ve Winograd I algoritmalar bu tip algoritmalardr [6].
Bir dier yol ise ilem ykn olduka azaltan ve DFT hesaplamalar iin sklkla
kullanlan ok boyutlu indeksleme yntemleridir. Cooley-Tukey, Winograd II ve
Good-Thomas algoritmalar da bunlara rnek tekil eder. Bu tip algoritmalar arpma
saysn azaltanlar ve toplama saysn azaltanlar olarak gruplanabilmektedir. arpma
saysn azaltan algoritmalar ortak blenlerin bir araya toplanmasna dayanan CooleyTukey algoritmas gibi algoritmalardr [7]. Toplama saysnn azaltlmas iin de,
Winograd
ayrlarak tekrar dzenlenir [7]. Gnmzde iaret ileme iin kullanlan DSP ve
FPGA gibi ara ve devreler iin arpma ileminin yk toplama ileminin yknden
13
4.1.
Goertzel Algoritmas
FFT algoritmalar elde edilirken, ama gereksiz ilemlerden kurtulmak, bylece daha
ucuz ve daha hzl ilem yapabilmektir. Bahsedilen gereksiz ilemler, nceden
hesaplanm olan verilerin tekrar hesaplanmalardr. rnein, btn bir spektrumun
dnm isteniyorsa, simetrilere bal olarak yaplan indirgemeler, ilem saysn
yar yarya azaltr; ancak, tm bir spektrumla deil de az sayda ya da tek bir frekans
bileeni ile ilgileniliyorsa, katsaylardaki simetri ilemlerde azalmaya neden
olmamaktadr [10]. Hesaplanan her frekans bileeninin neden olduu ilem
karmakl, zaman domenindeki her bir rnek- xn, hesaba katld iin en az O(N)
olmaldr [10]. Ancak, eer giri dizisinde aranan frekans veya frekanslar belliyse,
kullanlan katsaylar hedef frekansa gre seilebilir, bylece katsaydan kaynaklanan
karmaklk azaltlabilir. X[k] frekans domeninde yer alan hedef bileen olmak zere,
denklem (3.8) de e
N 1
X (k ) = x(n )WNnk
j 2
kn
N
(4.1)
n=0
N 1
(4.2)
(4.3)
X (k ) = x(n )W N Nk W Nnk
n =0
N 1
X (k ) = x(n )W N( N n )( k )
n =0
14
2k
3k
4k
(N -1)k
(4.4)
Bu nedenle yukardaki denklemde verilen katsaylar, hedef frekansa gre seilip, ayn
alnabilir. Polinom Horner kuralna gre zyinelemeli olarak tekrar yazldnda
denklem (4.5)e ulalmaktadr.
X[k] = x[0] + W(x[1] + W(x[2] + + W(x[N - 2] + Wx[N - 1])))
(4.5)
Algoritmann basit bir FIR (finite impuls response- sonlu darbe yantl) szge yaps
ile gereklenebilecei grlmektedir [9].
j 2
kn
N
karmak saysyla hesaplanan X[k] deeri de karmak bir deer olacaktr; ancak,
eitli trigonometrik dnmlerle X[k] deerinin dorudan genliini hesaplamak da
mmkndr. Dnm gerekletirmek iin nceden hesaplanmas gereken katsay
(4.6) ile hesaplanr.
W = 2. cos(2. .k / N )
(4.6)
15
770 Hz
852 Hz
941 Hz
16
0.8411
770
0.8540
852
0.8625
941
0.8518
1209
0.8918
1336
0.9075
1477
0.9273
1633
0.9440
17
(4.7)
kilik sisteme geildiinde, saydaki tek iaret biti saynn iaretini verir. ssn
iaretini belirtmek iin ise ikiye veya bire tmleme yntemleri kullanlmaz, ya da
iaret biti yazlmaz. s belirtilirken gerek s bir sayyla (bias) toplanarak gerek
ssn alaca en kk deerin gsterilimi sfr yaplm olur. Gsterilen s negatif
olmaz.
Kayan nokta gsteriminde ANSI/IEEE Std 754-1985 standard kullanlr. Bu
standartta s yanl biimde ifade edilir. Anlaml say ksm 1.f eklinde gsterilir,
18
burada f saynn mantisi, 1 ise sakl bittir. Saylarn uzunluklar, duyarllklarn belirler
[12]. Std 754 standardnda 32 bit uzunluk tek duyarl gsterime, 64 bit uzunluk ise ift
duyarl gsterime kar gelmektedir. Bias yall temsil etmek zere, ikilik tabanda
verilen saynn on tabanndaki karl olan x (4.8) denkleminde gsterildii gibi
hesaplanr, tm bitlerin sfr olduu durum onluk tabanda sfra karlk gelmektedir.
x = (1) isaret 2 e yanlilik 1. f
(4.8)
1987 ylnda geniletilen ANSI/IEEE Std 754 standardnda, 16 bit uzunluklu kayan
noktal saylar yar duyarl olarak adlandrlmtr. Yar, tek ve ift duyarl gsterimler
iin zellikler tablo 4.3te verilmitir.
Tablo 4.3: IEEE 754r Standardnda Kayan Noktal Gsterimler
zellik
Yar Duyarl
Tek Duyarl
ift Duyarl
16
32
64
10
23
52
s bit says
11
s yanll
24 -1 = 15
27 -1 = 127
210 -1 = 1023
En kk deer
5.9x10-8
1.2x10-32
2.2x10-308
En byk deer
6.5x108
3.4x1032
1.8x10308
Kayan noktal saylarla ilem yapmak sabit noktal saylarla ilem yapmaktan daha
farkldr. Kayan noktal saylarla toplama yaplrken nce saynn mantisi kaydrlarak
sler eitlenir, saylarn iaretine gre ilem yaplp sonucun iareti belirlenir, daha
sonra sonu mantisi normalize edilerek 1.f biimine getirilir, kullanlan duyarllk
lsne uygun s ve mantis bit saysna geri dnlm olur [13].
arpma ileminde ise slerin eitlenmesine gerek yoktur. Mantisler dorudan
arplabilir normalize edilerek ve 1.f standardna getirilir. Sonucun ssnn
belirlenmesi iin sler toplanr ve yanllk toplandan karlr. Mantislerin arpmna
gre gerekiyorsa s arttrlr veya azaltlr [13].
19
nceden belirtilen dizi uzunluuna gre (N nokta) bellek oluturulup, giri iareti bu
bellee yazlarak gerekli dizi oluturulur. Bunun alternatifi, belli uzunlukta bir
telemeli yazma kullanarak, devaml bu bellei gncel tutmaktr; ancak Goertzel
algoritmasnn kullanld uygulamalar gz nnde bulundurulursa, giri iaretinin
frekans bileenleri devaml deien bir iaret olmad anlalmaktadr. rnein
telefonda kullanlan DTMF detektrnde, tu iaretleri ard ardna gelen N noktal
paketlerin analizi yaplarak tespit edilebilir. telemeli yazma kullanmak bu nedenle
gereksizdir. Onun yerine ard ardna gelen N adet rnekten bir paket oluturup, bu
paketin analizi yaplmaktadr. lk gelen N noktal paket YAZ durumunda bellein ilk
halini oluturur. Burada bellee yazma hz, rnekleme hzna uygun olmaldr. KO
durumunda ise, YAZ durumunda oluturulan N elemanl dizi Goertzel Algoritmasna
gre ilenirken, yeni gelen giri deerleri de sradaki N elemanl paketi oluturmak
zere bellee yazlr.
21
nokta bellee alnana kadar modl YAZ durumunda kalr, N nokta tamamlandnda
devre ekil 4.5te ilevi gsterilen KO durumuna geer.
olacaktr;
bu
nedenle
arpc
izni
dorudan
toplayc
iznine
22
Sadece FFT devresinin benzetimi, daha nce MATLABda alnan sonularla uyum
gsterdiinden FFT modl dier modller ile birletirilerek gelitirme kiti zerinde
gerekleme yaplmtr.
Analog saysal dntrcden alnan 8 bit uzunluundaki sabit noktal deer, FFT
blounda kullanlacak olan tek duyarl kayan noktal gsterime dntrlmtr.
Arlklar ise nceden hesaplanabilir olduundan, FFT devresi iinde bir yazmata
tutulmaktadr. k da benzer ekilde tek duyarl kayan nokta formatndan, sekiz bit
uzunluklu sabit noktal hale getirilmitir.
Benzetim srasnda, dosyaya yazlp okunabilen deerlerin gerek ortamda
gzlenebilmesi iin gelitirilen yol, saysal analog evirici giriini FFT modlnn
k belli bir deerin stndeyse 11111111e, altndaysa 00000000a ekmek
olmutur. Saysal analog evirici k ise osiloskoba balanarak eer giri frekans
hedef frekans ile ayn ise osiloskopta Vdd, deilse toprak seviyesinde iaret
gzlenmitir. kn kit zerindeki LEDler yerineharici bir osiloskopa balanmasnn
nedeni, ncelikle dnlenin giri frekans hedef frekansa yaklatka k deerinde
bir art olup olmadn tespit etmekti; ancak k aralnn saysal analog
eviricinin k aral yannda ok geni olmas nedeniyle, ufak deiimler osiloskop
giriinin besleme veya topraa srlmesine neden olmutur. Bu nedenle sistemde ufak
bir deiiklikle hedef frekans ile giri frekansnn rtp rtmedii yine
osiloskoptan gzlenmitir.
23
aret
Giris/Giri evirici
Tanm ve Balant
Analog saysal eviriciden alnan 8 bit uzunluklu iaret
zin_giris/Giri evirici Her bir yeni deeri iaretleyen aktif yksek giri.
cikis/Giri evirici
zin_cikis/Giri
evirici
START/FFT
DVIN/FFT
FFT blou iin her bir yeni deeri iaretleyen aktif yksek
giri, (izin_cikis/ giri evirici)
x/FFT
y/FFT
FFT modl k
Son_izin/FFT
Giris/k evirici
zin_giris/k
evirici
cikis/k evirici
zin_cikis/k
evirici
24
Lojik Birimler
Dilimler
28
4656
%0
Dilimlerdeki Flip-Floplar
32
9312
%0
45
9312
%0
IOBler
12
232
%5
Saat
24
%8
4.2.
Rader Algoritmas
25
k = (r m ) mod( N )
(4.9a)
Burada, N asal bir say olmak zere, r N asal saysnn grubunda bir saydr, yle ki,
gruptaki her bir eleman bu r saysnn ss eklinde ifade edilebilir. leride
gereklemede kullanlacak olan N = 17 ve r = 3 iin bu durum snanacak olursa:
30 mod(17) = 1
(4.9b)
31 mod(17) = 3
(4.9c)
32 mod(17) = 9
(4.9d)
33 mod(17) = 10
(4.9e)
34 mod(17) = 13
(4.9f)
35 mod(17) = 5
(4.9g)
36 mod(17) = 15
(4.9h)
37 mod(17) = 11
(4.9i)
38 mod(17) = 16
(4.9j)
39 mod(17) = 14
(4.9k)
310 mod(17) = 8
(4.9l)
311 mod(17) = 7
(4.9m)
312 mod(17) = 4
(4.9n)
313 mod(17) = 12
(4.9o)
314 mod(17) = 2
(4.9p)
315 mod(17) = 6
(4.9r)
316 mod(17) = 1
(4.9s)
Grld
gibi
N=17
kmesinin
her
eleman
r=3n
kuvveti
eklinde
yazlabilmektedir.
Asal saylarn bu zellii, DFT ilemini konvolsyona evirmek iin kullanlr; (4.1)
denkleminde,sfrdan farkl k yerine eitlik (4.9)da verilen k deeri yerletirildiinde
(4.10) ile verilen eitlie ulalmaktadr.
26
X ((r p ) mod( N )) =
N 2
x((r
) mod( N ))W rp
+ x ( 0)
m=0
(4.10)
X ( 2) = 0
X (3) 0
X (4) 0
0 0 0 0 x ( 0)
1 2 3 4 x(1)
2 4 1 3 x ( 2)
3 1 4 2 x(3)
4 3 2 1 x(4)
(4.11)
X ( 2) = 0
X ( 4) 0
X (3) 0
0 0 0 0 x ( 0)
1 3 4 2 x(1)
2 1 3 4 x(3)
4 2 1 3 x ( 4)
3 4 2 1 x(2)
(4.12)
Bu yeni dzenlemeyle elde edilen (4.12) ifadesinde, W matrisinde her bir satrdaki
srann dairesel olarak deimesi salanmtr. Bu da gereklemede kolaylk
salayacak bir etkendir.
te yandan X(0) ise iaretin DC deeri olduu iin baz uygulamalarda ilgilenilmiyor,
veya deeri nceden biliniyor olabilir. Frekans spektrumu karlrken, iaretin DC
deeri iin N noktann ortalamas alnmas yeterlidir. Baz uygulamalarda sadece
toplamnn alnmas ile yetinilirken, ayrca blme ilemi yaplmam olur.
28
(4.13)
30
31
aret
Yn
Tanm
Giri
Bala
Giri
Girite
ilenecek
olan
ilk
verinin
grlmesi
ile,
sistemin
Giri
Bitir
Giri
Y_reel
clk
Giri
rst
Giri
Yazlan devre, MATLAB ile oluturulan giri iaretleri ile ModelSim kullanlarak test
edilmitir. Davransal benzetim ile durum geileri, her bir saat darbesinde yaplan i,
k ve devre iindeki yazmalardaki deiim gzlenmitir.
32
33
ekil 4.12: (a) MATLAB ile Elde Edilen 1kHz frekans spektrumu (b) ModelSim
Simlasyon Sonucu 1kHz Frekans Spektrumu
34
ekil 4.13: (a) MatLab ile elde edilen 200Hz, 1kHz ve 2,5kHz frekans spektrumu (b)
ModelSim Simlasyon Sonucu elde edilen 200Hz, 1kHz ve 2,5kHz frekans spektrumu
4.3.
N noktal bir DFT ilemi, Fourier dnm yaplacak olan x(n) serisinin, birim
ember zerinde, eit aralklarla sralanm N noktada z dnmnn hesaplanmasna
denktir.
Denklem (3.8)deki genel DFT ifadesi, nk yerine (4.14) ifadesi konularak tekrar
yazlrsa, denklem (4.15) elde edilir.
( k n) 2 n 2 k 2
+
+
2
2
2
X (k ) = e
jn
x
(
n
)
e
n =0
j 2 N 1
k
N
(4.14)
2
jN ( k n )2
(4.15)
Elde edilen ifade, srasyla (4.16) ve (4.17) olarak tanmlanan N-1 noktadan oluan
a(n) ve b(n) dizilerinin konvolsyonunun bir sabit ile arplmdr. Bu sabit, e
j 2
k
N
b(k)ya eittir.
Nj n 2
a (n) = x(n) e
(4.16)
jN n 2
b(n) = e
(4.17)
N 1
X (k ) = b(k ) (a (n)b(k n) )
(4.18)
n =0
n 2
N
) + j. sin(
a (n) = x(n).(cos(
n 2
n 2
n 2
N
n 2
N
) j. sin(
(4.19)
n 2
N
))
(4.20)
(4.21)
(4.22)
ve
b(n)
(4.23)
fonksiyonlarnn
konvolsyonu,
FIR
filtre
kullanlarak
a(n)
ve
b(n)
fonksiyonlarnn
konvolsyon
ifadesi
denklem
(4.24)
37
4.4.
1965 ylnda, Cooley ve Tukey, Gaussun ortya att bir algoritmay FFT hesaplamak
iin yeniden ele alarak yaynlad [14]. Cooley ve Tukeyin nerdii algoritma,
yalnzca O(N.log2N) ilem gerektirdiinden, nokta says N bydke dier FFT
algoritmalarna gre ilem ykn olduka azaltmaktadr. Cooley-Tukey algoritmas
ekil 3.1 ile gsterilen katsaylarn periyodikliine ve simetrisine dayanr. Katsaylarn
periyodikliinden denklem (4.25), katsaylarn simetrisinden ise denklem (4.26) elde
edilir [15].
W k = W k+N
(4.25)
W k = W k + N / 2
(4.26)
X (k ) =
( N / 2 ) 1
x(n)WNnk +
n =0
N 1
x(n)W
nk
N
(4.27)
n= N / 2
Denklem (4.27)de ikinci toplam ileminde n yerine n+N/2 yazlrsa denklem (4.28)
halini alr.
X (k ) =
( N / 2 ) 1
x(n )W
nk
N
n=0
( N / 2 ) 1
+W
kN / 2
n=0
x n + WNnk
2
(4.28)
Burada nye bal olmad iin toplam dna karlan terim (4.29) eitlii ile
hesaplanabilir.
38
kN / 2
=e
jk
(4.29)
Bulunan katsay knn tek deerleri iin -1, ift deerleri iin 1 olacaktr. (4.29) ifadesi
knn ift deerleri iin k=2k ve tek deerleri iin k=2k+1 olarak ikiye ayrlp
yazldnda srasyla (4.30) ve (4.31) elde edilir.
( N / 2 ) 1
X ( 2k ) =
n=0
N
2 nk
N
x(n) + x n + 2 W , k = 0,1,..., 2 1
( N / 2 ) 1
X (2k + 1) =
n =0
N
n
2 nk
N
x(n) x n + 2 W W , k = 0,1,..., 2 1
(4.30)
(4.31)
39
40
41
42
43
(4.32)
XY = ( AC BD ) + j ( AD + BC )
(4.33)
Karmak arpma ilemini gereklemek iin kullanlan blok diyagram ekil 4.24 ile,
karmak toplama ilemini gereklemek iin kullanlan blok diyagram ise ekil 4.25 ile
verilmitir.
44
karmak saylarla arpma modllerinde birden fazla Topla ve arp blou kullanlarak
toplama ve arpma ilemlerinin paralel olarak yaplmasna olanak vermektedir.
46
47
FFT ileminde kullanlacak olan katsaylar, yar duyarl kayan nokta hassasiyetine
getirilmi ve ROMa kaydedilmitir. FFT blou da, 8 aamann gerekletirildii,
RAM ve adres zclerden oluan 8 ayr alt blok giri iaretinin tutulduu, RAM ile
yazma ve okuma adres zclerinden oluan giri blou, durum makinesi ile
karmak toplama ve arpma birimlerinden oluan ana bloktan oluur. Ana blokta
yaplan ilem ekil 4.20de verilen ilemdir, giriin alnd RAM (x) ve kn
yazld RAM (y) durum makinesi ile belirlenir. Hangi adrese veri yazlaca ve
hangi katsaynn ilemlerde kullanlaca ise ayn alt blokta bulunan adres zcler
tarafndan belirlenir.
Bilgisayar ortamnda FFT blounun benzetimi yaplm ve elde edilen k deerleri,
doru ekilde sralanarak ekil 4.27de gsterilen frekans spektrumu oluturulmutur.
MATLAB benzetiminden farkl olarak, yan piklerde art gzlenmitir. Ayrca
Nyquist frekansna gre simetrik olmas beklenen spektrumda, Nyquist frekansnn
altnda frekans bileenlerinin genlikleri birbirine yaknken, stnde frekans genlikleri
azalmaktadr.
48
49
5. KARILATIRMALAR
Bitirme almas sresince her biri farkl alanlarda ska kullanlan drt ayr FFT
algoritmas incelenmi, bunlardan tanesi kendilerinden beklenen avantajlar
gzetilerek FPGA zerinde farkl ekillerde gereklenmitir. Bluestein Chirp-z FFT
algoritmas ise, yaps itibariyle Rader algoritmasna benzemektedir, Rader algoritmas
iin oluturulan arpma bloklarnda katsaylara zel deiiklikler yapldnda,
Bluestein Chirp-z algoritmasna geilebilir. Bu nedenle, Bluestein Chirp-z algoritmas
FPGA zerinde gereklenmemitir.
Algoritmalar arasndaki karlatrma kriterlerinden biri, algoritmalar gereklendiinde
FPGAnn ne kadarn doldurduudur. FPGA zerinde kullanlan alann ls olarak
kullanlan dilim says gsterilebilir; ancak ayn FPGA zerinde baka uygulamalar da
gelitirilecekse, kullanlan dilim says yannda, blok arpclar, blok RAMler gibi
FPGAnn dier kaynaklarnn kullanm da karlatrlmaldr.
rnein, dilim
50
Kullanlan
Lojik Birimler
Mevcut
Goertzel Rader Cooley-Tukey
Dilimler
4656
28
714
1088
Dilimlerdeki Flip-Floplar
9312
32
3919
4976
9312
45
7357
7088
IOBler
232
12
18
12
Saat
24
Blok RAM
20
51
6. SONULAR VE TARTIMA
DSP (Digital Signal Processor- Saysal aret lemci) zerinde defalarca gereklenmi
olan FFT algoritmalar bu almada saysal iaret ileme alannda da kullanm
gittike yaygnlaan [9] FPGA zerinde gereklenmitir. Farkl hazr FFT bloklarnn
varl, dier iaret ileme algoritmalarnn FPGA zerinde gereklenmesine yardmc
olacaktr. FPGA programlanma ekli nedeniyle, toplama ve arpma gibi temel
ilemlerin yaplandrlmasnda DSPye gre daha kullanldr. Bu da hz/alan orannn
kullanc tarafndan kontrolne msaade ederken, gereklenen algoritmann da daha
fazla gelitirilebilmesine olanak tanr.
Bitirme almasnda gereklenen Goertzel algoritmas kullanlarak, ayn cihaz
zerinde farkl frekans deerlerinin tespitini yapan modller yardmyla giri iaretinin
frekans spektrumunu oluturmak gibi eitli uygulamalar gelitirilebilir. Daha fazla
frekans genliinin elde edilmesi iin dier modller yerine, Goertzel FFT modllerinin
ayr ayr kullanlmas, faz spektrumunun kullanlmad uygulamalarda avantajldr;
dorudan genlik deeri hesapland iin karmak saylarla ilem yapmay
gerektirmez.
32den daha az nokta iin Fourier dnm kullanldnda, gerek Rader
algoritmasnda gerekse Bluestein Chirp-z algoritmasnda, katsaylarn kullanld
aritmetik ilemlerinin ayn arpma ve toplama bloklar yerine, katsaylarn her biri iin
zel arpma bloklar kullanlabilir. Byle oluturulan devrelerde toplama ya da arpma
yk azaltlabilir [9].
Daha kesin ve gvenilir frekans spektrumlar oluturabilmek iin, bu almada
gereklenen FFT algoritmalar birbiri ile birletirilerek, optimize edilmelidir.
52
KAYNAKLAR
[1] http://www.ti.com
[1] Maxfield, C., 2004. The design warrior's guide to FPGAs, Elsevier, Amsterdam.
[2] http://www.xilinx.com
[3] PM10855, 2005. SPARTAN FPGAs
[4] DS312, 2005. SPARTAN 3E Datasheet
[5] UG230, 2006. Starter Kit Board User guide
[6] Edelman, A., McCorquodale P., Toledo, S., 1999, The Future Fast Fourier
Transform, SIAM J. Sci. Computing, 20, 10941114.
[7] Smith, S., 2003, Digital Signal Processing, Newnes, USA
[8] Mano, M.Morris, 2005, Digital Design, Prentice Hall, USA
[9] Maeyer, U., 2001. Digital Signal Processing With Field Programmable Gate
Arrays, Springer, Germany
[10] Stein, Y., 2000. Digital Signal Processing A Computer Science Perspective, John
Willey & Sons, Canada
[11]Stroobach, J., 1992. Digital DTMF Tone Detector Kanata, United States Patent,
No: 5119322, dated: 6.2.1992
[12] Kahan, W., 1997. Lecture Notes on the Status of IEEE 754, Elect. Eng. &
Computer Science University of California, USA
[13] Goldberg, D., 1991. What Every Computer Scientist Should Know About
Floating-Point Arithmetic, ACM Computing Surveys, 23, 5-48
[14] Cooley, J. W., Tukey, J. W., 1965. An algorithm for the machine calculation of
complex Fourier series, Mathematical Computing. 19, 297301
[15] Chassaing, R., 1992. Digital Signal Processing with C and the TMS320C30,
John Wiley & Sons, USA
[16] http://www.fftw.org/
53
ZGEM
1987 ylnda doan Tuba AYHAN, Ankara Fen Lisesinden 2004 ylnda derece ile
mezun olduktan sonra lisans renimini T Elektronik Mhendisliinde grmeye
balad. 2006-2007 akademik ylnda, K. Leuven niversitesinde bulunarak lisans
reniminin bir yln Belikada geirdi. Birok kez, T Yksek Onur listesine giren
Tuba AYHAN, 2004 senesinde ARI dlne ve halen devam etmekte olan T baar
bursuna layk grlmtr.
54