You are on page 1of 59

STANBUL TEKNK NVERSTES

ELEKTRK ELEKTRONK FAKLTES

FFT ALGORTMALARININ
FPGA ZERNDE GEREKLENMES

BTRME DEV
Tuba AYHAN
040040301

Blm: Elektronik Mhendislii


Program: Elektronik Mhendislii

Danman: Yrd. Do. Dr. Mtak Erhan YALIN

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. SAHADA PROGRAMLANABLR KAPI DZLER (FPGA)


2.1. FPGA Mimarisi
2.2. FPGA Programlama
2.3. Bu almada Kullanlan FPGA ve Gelitirme Kiti zellikleri
2.3.1. SPARTAN 3E XCS500E
2.3.2. SPARTAN 3E Gelitirme Kiti (STARTER KIT)

2
3
5
5
6
7

3. AYRIK FOURER DNM


3.1. Ayrk Fourier Dnm Hesaplama Yntemleri
3.1.1. Ezamanl Hesaplamalarla DFT
3.1.2. Korelasyonla DFT

9
11
11
12

4. HIZLI FOURER DNM (FFT)


4.1. Goertzel Algoritmas
4.1.1. MATLAB Benzetimi
4.1.2. Kayan Nokta Aritmetii
4.1.3. FPGA zerinde Gerekleme
4.2. Rader Algoritmas
4.2.1. MATLAB Benzetimi ve FPGA zerinde Gerekleme
4.2.2. FFT leminin Gereklenmesi
4.3. Bluestein Chirp- z Algoritmas
4.4. Cooley - Tukey Algoritmas
4.4.1. Frekansta Azaltmal Cooley-Tukey FFT Algoritmas
4.4.2. MATLAB Benzetimi
4.4.3. Toplama ve arpma Devrelerinin Gereklenmesi
4.4.4. FPGA zerinde Gerekleme

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

teknolojilerdendir. Ayn ama iin

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.

2. SAHADA PROGRAMLANABLR KAPI DZLER (FPGA)


Programlanabilir Lojik Aygt (Programmable Logic Device- PLD) terimi, imalat
aamas bittikten sonra ilev kazandrlan lojik elektronik birimleri iin kullanlr.
retim aamasnda, (yar iletken zerine kurma, paketleme) PLDleri tanmlanm
bir fonksiyonu yoktur, programlanabilir mantk birimleri ierir ve bu birimler
arasndaki balantlarn ayarlanmasyla aygt programlanabilir.
Bu anlamda Salt Oku Bellekler (ROM) ilkel PLD olarak dnlebilir. Gnmze
kullanlan PLDler ise 1970 ylnda Texas Insturements firmasnn 17 giri 18 ktan
ve 8 JK tipi flip floptan oluan programlanabilir cihaz piyasaya srmesiyle ortaya
kmtr [1]. lerleyen yllarda dier firmalarn da benzer cihazlar piyasaya
srmeleriyle bellek ve giri k says bakmndan ok daha byk cihazlar retildi.
1978de programlanabilir VEYA dizilerinden oluan ilk PAL (Programmable Array
Logic-programlanabilir mantk dizisi) retildi [1].
PAL ve PAL benzeri GAL (Generic Array Logic - silinip tekrar programlanabilen
PAL), birka yz kap byklne ulaabilir. Daha byk mantk devreleri iin
birka PLDnin programlanabilir balantlarla birletirilmesiyle oluturulan CPLD
(Complex PLD- Karmak PLD) ise binlerce kap ierir.
Bir baka programlanabilir lojik aygt ailesi ise kap dizisi teknolojisine dayal Sahada
Programlanabilir Kap Dizileri (FPGA) dir. FPGA iinde mantk kaplar ve flipfloplardan oluan lojik birimler kolon veya matrislerde sralanmtr. Birimler
arasndaki programlanabilir balant alar sayesinde lojik birimler dier lojik
birimlerle birleerek daha ok birim ile daha karmak ilemler gerekletirebilir.
Birimler arasndaki balantlar ksaldka, devrenin alabilecei maksimum hz artar.
Bu nedenle ara balantlar sadece birbirine komu lojik birimler arasnda kurulur.
CPLD ve FPGA larn bykl kullanlabilir kap saysyla belirtilir. Genelde
byklk kullanlabilir maksimum iki girili NAND kaps saysna denk gelir.
FPGA ve CPLD lojik elemanlarn says bakmndan byk tasarmlar yapmaya
elverili olsa da, daha byk devreleri kurabilmek yeni sorunlar ortaya karmtr.
ok byk devrelerde saat iaretinin her bir flip floba ayn anda ulatrlmas
2

zorlamaktadr. Flip floplara farkl zamanlarda saat darbesi gelmesi devrede


beklenmeyen davranlara neden olabilecei iin flip floplarn saat girilerindeki
kaymay en aza indirebilmek amacyla FPGA ve CPLD lerde saate zel bir evrensel
hat kullanlr. Bu hat yksek hzl bir veri yoludur.
Devrenin byk olmasnn yaratt bir dier sknt da CPLD ve FPGA larn PAL
kadar

kolay

programlanamyor

oluudur.

Ancak

FPGA

ve

CPLD

lerin

yayglamasyla onlara zel programlama aralar da gelimitir.


FPGA ile CPLD arasnda byk farklara yoktur, ikisi arasnda seim genelde
tasarmcnn tercihine, ekonomik ve ulalabilirlik faktrlerine baldr. CPLD daha
hzl ve daha kesin zamanlama zelliklerine sahipken, FPGA larn kap younluu
daha fazladr ve sadece reticinin deil, kullancnn da programlama yapmasna izin
verir bu nedenle FPGA akademik kullanm iin daha avantajldr.
2.1.

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

(SRAM- Static Random

Access

bulunabilmektedir.

Memory)

gibi

zel bloklar da

ekil 2.1: FPGA Genel Yaps [2]


Boole fonksiyonlarnn gereklendii Lojik blok mimarisi ekil 2.2de gsterilmitir.
Says ve zellikleri cihazdan cihaza deiiklik gsteren lojik bloklarn her biri 4 veya
6 girili yaplandrlabilir anahtarlama matrisi (Switch Matrix), ile oullayc benzeri
bir seici devre ve flip floplar ieren dilimlerden (slice) meydana gelir. Anahtarlama
matrisi kombinezonsal mantk devresi eleman, telemeli yazma veya RAM olarak
yaplandrlabilir.

ekil 2.2: Yaplandrlabilir Lojik Blok [2]


Farkl sistemlerle daha iyi balant kurulabilmesi iin FPGAlar birok giri k
standardn salayabilecek ekilde retilmektedirler. FPGAda giri klar gruplar
halinde bulunmaktadr. Ayn standard destekleyen giri klar ayn bank (IOB, Input

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

FPGAnn programlanmas iindeki lojik bloklarn yaplandrlmas ve ara


balantlarn

programlanabilir

anahtarlar

ile

oluturulmasyla

gerekletirilir.

Programlanabilir anahtarn gereklenme teknolojisi, FPGAnn programlanma


teknolojisini belirler.
ekil 2.1deki SRAM (Statik RAM) hcrelerinin kontrol ettii transistorlarn
programlanarak

ara

balantlar

oluturduu

programlama

ekline

SRAM

programlama teknolojisi ad verilir. SRAM hcreleri besleme kesildiinde ilerindeki


bilgiyi saklayamayacaklarndan, bu teknoloji devrenin her alnda FPGAnn
yeniden programlanmasn gerektirir. rn gelitirme aamasnda, ve FPGA iindeki
verinin gizli tutulmasn gerektiren ifreleme benzeri uygulamalarda tercih edilir,
ayrca FPGAnn sistem zerinde yeniden programlanmasna olanak tanr [2]. Bu
nedenle SRAM FPGA iinde byk alan kaplamasna ramen, retilen FPGAlarda
SRAM programlama teknolojisinden vazgeilmemitir.
Daha kk alana ihtiya duyan antifuse programlama teknolojisinde ise, ara
balantlar programlama srasnda gerilim uygulanarak oluturulur. Bylece FPGAlar
tekrar programlanabilme zelliklerini kaybeder. retim aamasnda tercih edilen bir
programlama teknolojisidir, rnek retimi ve gelitirme iin uygun bir zm deildir.
2.3.

Bu almada Kullanlan FPGA ve Gelitirme Kiti zellikleri

Bu almada iinde SPARTAN 3E serisinden XC3S500E bulunduran SPARTAN 3E


gelitirme kiti (Starter Kit) kullanlmtr.

2.3.1. SPARTAN 3E XCS500E


Blm 2.1de belirtilen temel bloklar dnda SPARTAN 3E ailesi FPGAlarnda blok
arpclar ve blok RAM bulunmaktadr.
Temel bloklardan olan giri k banklarna, sadece giri iin kullanlan banklar
eklenmi, komu banklar arasnda DDR (Double Data Rate- ki kat hzl) flipfloplarnn paylam salanarak alandan kazanlm ve tm giri k bloklarnn
gecikmesi programlanabilir hale getirilmitir. Bu ailenin her bir yesi 18 giri k
standardn salamaktadr. [3]
FPGA iinde 4 adet DCM ve saat hatt bulunmaktadr. Ayrca saat iaretinin dardan
alnmasna da msaade edilmitir.
Dier bir temel blok CLB, ekil 2.2de X ve Y indisleriyle gsterilen drder dilimden
oluur. Her bir dilim ikier LUT (Look Up Table- referans tablosu) ve tutucu (mandallatch) veya flip flop olarak kullanlabilecek ikier adet bellek eleman bulundurur.
LUT 16x1 bellek (RAM 16), 16 bir telemeli yazma (SRL 16), gerekli durumlarda
oullayc, ve aritmetik blok olarak kullanlabilir. Bu ailede, her CLB birbirine etir.
Bir FPGA ailesinde, FPGAnn ierdii dilim (veya CLB) says ayrt edicidir. Tablo
2.1de bitirme almasnda kullanlan XC3S500E iin lojik bloklarn nicel zellikleri
verilmitir.
Tablo 2.1: SPARTAN3E XC3S500E CLB zellikleri [4]

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.

ekil 2.3: SPARTAN 3E Gelitirme Kiti [5]

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. AYRIK FOURER DNM


Fourier Analizi, bir fonksiyonun farkl frekanslardaki sinzoidal fonksiyonlarn
toplam biiminde almdr. Periyodik ve ayrk bir iaretin fourier analizi iin Ayrk
Fourier Dnm (Discrete Fourier Transform- DFT) kullanlr. Ayrk Fourier
dnm, bir iaretin frekans spektrumunu bulmak iin kullanlabilecei gibi, bir
darbe cevab bilinen bir sistemin frekans cevabnn; frekans cevab bilinen bir sistemin
darbe cevabnn bulunmas iin ya da daha karmak ilemlerde ara adm olarak
kullanlr [6]. Zaman domeninde verilen ayrk bir iretin frekans domenindeki
karlnn DFT ile bulunabilmesi iin, iaretin sfrdan farkl deerlerinin sonlu
sayda olmas gerekir. Bu tip bir iaret srekli bir iaretin uygun ekilde rneklenmesi
ile elde edilir.
Ters dnmde ise, orijinal iaret tam olarak elde edilemez; nk DFT ile elde
edilen frekans deerleri (sinzoidal fonksiyonlar) sonlu saydadr ve DFT ile iaretin
sadece sonlu bir blgesi analiz edilmitir.
N adet gerek deerden oluan zaman domenindeki bir x[k] iareti, ayrk Fourier
dnmnden sonra, N/2 +1 adet kosins ve N/2 +1 adet sins iareti biiminde
gsterilir. Kosins dalgalarnn genlii frekans domenindeki iaretin reel ksmna kar
gelirken, sins dalgalarnn genlii de sanal ksmlara kar der. Giri iaretinin
karmak deerlerden olumas halinde, kompleks DFT, N adet karmak deeri
frekans domeninde N adet karmak deere dntrr. DFT baz fonksiyonlar u
ekilde bulunur:
c k [i ] = cos(2ik / N )

(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

yazlabilir. fadeler aadaki ekilde geniletilebilir.


__

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)

Denklem (3.8)de, x(n) teriminin yannda yer alan katsaylar incelendiinde,


katsaylarn birim ember zerinde olduu grlmektedir. Katsaylarn ember
zerindeki dalm, nokta says Nye baldr. N= 8 iin ekil 3.1de katsaylarn
birim ember zerinde nasl dizildii gsterilmitir.

10

ekil 3.1: Periyodik ve Simetrik Katsaylar

3.1.

Ayrk Fourier Dnm Hesaplama Yntemleri

DFT birbirinden ok farkl 3 yntemle hesaplanabilir. Anlalmas en basit olan,


denklem (3.8)de verilen ilemi dorudan gereklemektir; ancak bu yntem pratik
hesaplamalar iin yetersiz kalr. Uygulanabilirlii daha yksek olan bir yntem,
korelasyon ile verilen iaret iinde bilinen dalga formlarnn aranmasna dayanr. Bu
almada incelenen yntem olan hzl Fourier dnm dier iki yntemden daha sk
tercih edilen bir yntemdir [6].

3.1.1. Ezamanl Hesaplamalarla DFT


DFT hesaplamak iin en basit ancak pratikte uygulanabilirlii en zayf yntemdir.
Zaman domeninde verilen N deer ile, frekans domeninde olan N adet bilinmeyenin
temel matematiksel denklemlerle hesaplanabilmesi iin lineer bamsz N adet
denklemin zlmesi gerekir. N adet deiken, N adet sinzoidal demektir. Bu N
sinzoidin her birinin bir katsayyla arpmnn toplam giri iaretini verecektir, N
nokta iin bu toplam yazlrsa N tane N bilinmeyenli denklem elde edilmi olur. Tek

11

dezavantaj ok fazla ilem yk getirmesi deildir, kullanlan sinzoitler lineer


bamsz olmak zorundadr.

3.1.2. Korelasyonla DFT


Bilinen bir dalga formunun baka bir iaret iinde aranmasdr. N nokta iin DFT
ilemi uygulanacaksa, frekans domeninde N/2 sanal, N/2 gerel deer bulunmaldr.
Korelasyon kullanldnda, bilinen bir dalga formu ile verilen iaret arplr ve elde
edilen yeni iaretteki tm noktalarn deerleri toplanr. Elde edilen deer bu iki
iaretin birbirine ne kadar benzediinin bir lsdr. Kullanlan referans dalga
formunun, frekans domenindeki sanal deerleri bulmak iin sins, gerel deerleri
bulmak iin kosins olmas gerektii de gz nne alndnda, aadaki ifadeleri
elde ederiz:
N 1

Re{ X [k ]} = x[i ] cos(2ii / N )

(3.11)

i =0

N 1

Im{X [k ]} = x[i ] sin( 2ii / N )

(3.12)

i =0

DFT hesaplamada 32 noktaya kadar bu yntem, daha fazla nokta iin Hzl Fourier
Dnm (FFT) kullanlr [7].

12

4. HIZLI FOURER DNM (FFT)


Blm 3.1de anlatlan DFTnin fiziksel anlamn matematiksel olarak birebir ifade
eden yntemlerin ilem yk hesaplama iin farkl yntemler kullanlmasn zorunlu
klmaktadr; nk yukardaki yntemler FFT ile karlatrldnda ok yava
kalmaktadr.
Ancak DFT hesaplamakta kullanlabilecek, ilem yk grece az her yntemin FFT
olarak

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

ifadesinin simetri, asal katlar gibi

zelliklerinden yararlanarak azaltan algoritmalar FFT algoritmas snfnda inceler


[6]. lem ykn eitli yollarla azaltan algoritmalar gz nne alndnda, bu tip
algoritmalarn temelde iki yntem kullandn grlr. Bunlardan bir tanesi ( e

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

algoritmasnda olduu gibi, katsaylarn indeksleri asal arpanlarna

ayrlarak tekrar dzenlenir [7]. Gnmzde iaret ileme iin kullanlan DSP ve
FPGA gibi ara ve devreler iin arpma ileminin yk toplama ileminin yknden

13

daha fazladr [8]. arpma ilemlerinin saysn azaltan Cooley-Tukey algoritmas bu


nedenle ska kullanlmaktadr [6].
Konvolusyon ile ayrk Fourier dnm hesaplama yntemleri ile yalnzca belli bir
frekans bileeninin genlik deerini vermesi asndan benzerlik gsteren Goertzel
algoritmas da hzl Fourier dnm algoritmalar arasnda saylr [9]. Goertzel
Algoritmas yalnzca tek bir genlik deeri ile ilgilenildii zaman, frekans domenineki
deerin sanal ve gerel ksmlarnn ayr ayr hesaplanmas gerekmemesinden yola
karak ilem saysn azaltan bir algoritmadr [10].

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

yerine WNnk konulduunda denklem (4.1) elde edilir.

(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

W N Nk =1 olduuna gre, denklem (4.1) tekrar dzenlendiinde elde edilen (4.2)

ifadesinin alm yaplarak denklem (4.4) elde edilir.

14

X[k] = x[0] + x[1]WN + x[2]WN + x[3]WN + x[4]WN + .. + x[N - 1]WN


k

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].

ekil 4.1: Goertzel FFT Algoritmas Blok Diyagram


Belli bir hedef frekans iin, W deeri, kullanlacak nokta says N ve rnekleme
frekans bilindii halde, e

j 2
kn
N

ifadesinde yerine konarak elde edilmektedir. W

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)

Burada N nokta says, farkl deerlerde seilebilir. N deerinin arttrlmas, bir


rnekleme periyodu iinde ileme sokulmas gereken x(n) giri deerlerinin saysn
arttrd iin sistemin alabilecei maksimum rnekleme hzn drecektir. te
yandan, N deeri ayn zamanda tespit edilebilecek frekans bileeni saysna eit olduu
iin nokta saysnn azaltlmas frekans znrln drmektedir.
Bir iaretin iinde belli bir frekans bileeninin bulunup bulunmadnn tespiti iin
kullanlan bu algoritma, DTMF (Dual Tone Multiple Frequency-ift Tonlu oklu

15

Frekans Kodlama) detektr uygulamalarnda tercih edilmektedir [11]. rnein DTMF


kodlama sisteminde telefon zerindeki 16 adet tu (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, #, *, A, B,
C, D), ikier ton ile ifade edilmektedir. Bir karakteri temsil eden iki tondan biri 1kHz
in stndeki 4 frekanstan biri, dieri 1kHz in altndaki 4 frekanstan biridir. DTMF
detektr ile, alnan bir iarette bu sekiz frekans bileeninden deerinden hangi ikisinin
bulunduunun tespiti yaplr. Goertzel algoritmas bu uygulama iin tm iaretin
frekans spektrumunu karmaktan daha kolay, ayn zamanda aranan frekans deerleri
belli olduu iin daha kesin sonular sunabilmektedir [9].

4.1.1. MATLAB Benzetimi


Goertzel algoritmasnn FPGA zerine geirmesinden nce, kullanlmas gereken giri
ve k uzunluklar ile arllarn hassasiyetlerinin belirlenmesi gerekmektedir. Bu
nedenle Goertzel algoritmasnn Fourier dnm iin kullanld uygulamalardaki
avantajnn, gsterdii hz ve kesinlik olduu gz nnde bulundurularak, bir yap
ngrlmtr. Kesinliin salanabilmesi iin kayan nokta aritmetiinin kullanlmas
uygun grlmtr. Telefon zerindeki tular ifade eden sinyallerin bileenleri tablo
4.1de verilmitir. Bu sekiz frekans iin denklem (3.6)ya gre hesaplanan arlklar
ise tablo 4.2de gsterilmektedir. Burada verilen arlklar rnekleme frekans 8000
Hz kabul edilerek hesaplanmtr.
Tablo 4.1: Telefonda Kullanlan aretlerin Frekans Bileenleri [11]

1209 Hz 1336 Hz 1477 Hz 1633 Hz


669Hz

770 Hz

852 Hz

941 Hz

16

Tablo 4.2: DTMF iin Frekanslara Gre Arlklar


Frekans (Hz) W
697

0.8411

770

0.8540

852

0.8625

941

0.8518

1209

0.8918

1336

0.9075

1477

0.9273

1633

0.9440

Telefon tularndan 1, 5, 9 ve D iin, MATLAB ortamnda ideal giri iaretleri


retilmi ve bulunan katsaylar ile ileme sokularak, ierdikleri frekans deerlerinin
genlikleri bulunmutur. ekil 4.2de gsterilen sonularda, giri iareti iinde olan bir
frekans bileenine ait genlik deeri, ayn iaret iinde dier frekanslar iin bulunan
genlik deerinin yaklak 10 katdr. Giri iareti [-2 +2] arasnda deiirken, frekans
genlii [0 50] arasnda deimektedir. 8 bitlik analog saysal eviriciden alnan deerin
[0-127] arasnda olmas nedeniyle, frekans genlik klarnn daha fazla byyecei
aktr. lem srasnda tamalar engellemek iin kayan noktal aritmetik kullanlmas
gerekmektedir.

17

ekil 4.2: Goertzel Algoritmas ile DTMF in MATLAB Benzetimi Sonular

4.1.2. Kayan Nokta Aritmetii


ok byk ve ok kk saylarla allrken, kayan noktal gsterim, sabit noktal
gsterime gre daha kesin sonular salamaktadr. Ayrca dinamik erim de arttrlr.
Kayan noktal gsterimde saylar iaret, s e, s taban b ve anlaml ksm s olmak
zere drt blmle ifade edilir. (4.7) eitliinde bir saynn kayan noktal temsili
gsterilmektedir.
x = s be

(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

Toplam bit says

16

32

64

Anlaml bitler (s)

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

4.1.3. FPGA zerinde Gerekleme


Bilgisayar ortamnda benzetimin yaplabilmesi iin yalnzca FFT algoritmasnn
donanm tanmlama dili ile yazlamas yeterlidir; ancak FFT algoritmas gerek
ortamda test edilmek istendiinde, dier birimlerle balantsn ve haberlemesini
salamak iin FFT modlne baka modller de eklenmelidir. FFT algoritmas
gereklenirken sistemin genel halinin gz nnde bulundurulmas, FFT modl
zerinde dier modllerden kaynaklanan kstlamalarn dikkate alnabilmesi iin
gereklidir. ekil 4.3te verilen genel diyagramda, FPGA zerinde iaret kayna ve
hedef sistem ile haberleme iaretleri retilmesi ve alnmas dnda, ayr modl
bulunduu grlmektedir.

ekil 4.3: Genel Gerekleme Aamalar


aret retecinden alnan analog iaret, analog saysal evirici knda bulunan
iaretin alnmas ve yeni iaretin gnderilmesi izninin verilmesi ile, hedef sisteme
gnderilen iaretin kontrol gelitirme kiti zerinde bulunan SPI kontrolr
programlanarak yaplmaktadr. SPI kontrolrn hz, FFT modl zerinde bir
kstlama oluturmaktadr.
ncelikle, giriin ve kn tek duyarl kayan nokta formatnda olduu FFT modl
tasarlanm ve davransal benzetimi yaplmtr.
N noktadan oluan giri dizisine Goertzel algoritmas uygulandnda, (3.4) eitliinde
verildii gibi, nce x[N-1] deeri nceden belirlenmi katsay ile arplr, daha sonra
da kendinden sonra gelen dizi eleman ile toplanr. N-1 adet toplama ve N adet arpma
ilemi gerekletirildiinde N nokta da ilenmi demektir ve bylece ilgilenilen hedef
frekansn genliini veren X[k] elemannn deeri bulunur.
Gereklemede, ekil 4.4te gsterilen durumdan bahsedilebilir. Bunlar, BOTA,
YAZ ve KO durumlardr. BOTA durumu, iaret gelmesinin ve FFT ilemine
balanmasnn beklenildii durumdur; bu durumda ilem yaplmaz. YAZ durumunda
20

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.

ekil 4.4: Goertzel FFT Devresi Durum Makinas


ekil 4.4te BALA iareti dntrlecek yeni bir paketin geldiini bildirmektedir.
Saya ise bellee alnmas gereken N adet noktann tamamlanp tamamlanmadnn
anlalmas iin altrlmaktadr. Yeni bir pakete balanmad srece, yeteri kadar

21

nokta bellee alnana kadar modl YAZ durumunda kalr, N nokta tamamlandnda
devre ekil 4.5te ilevi gsterilen KO durumuna geer.

ekil 4.5: Goertzel Algoritmas Ak Diyagram


Toplayc ve arpc modlleri kullanld zaman toplayc ve arpc izinleri ile giri
deerinin deiimi (giri deerlerinin yazld ktkten deerleri ekmek) ekil 4.5te
zetlenmitir. N. giri, giri deerleri ktne yazldnda ayn anda arpcya da bir
giri olarak yazlmaktadr. Dier arpan nceden belirlenmi olan arlktr. Bu srada
toplaycnn bir girii 0 (arpcnn k) dier girii x (n-1)dir. arpc izni en bata
(YAZ durumunda) 1 dir, dolaysyla toplayc izni de 1 dir ve k x (n-1)dir. arpc
izni tekrar 1 olduunda, arpm W. x(n-1) olur. arpc izni, saycy 1 azaltr ve giri
deerleri ktnden x(n-2) deerinin ekilmesini salamakta, ayn zamanda da
toplaycya ilem yapmas iin izin vermektedir. Sayc deeri deitii iin, arpc
izni alnmasyla, yeni giri deerinin giri ktnden ekilmesi arasnda 1 darbelik
fark

olacaktr;

bu

nedenle

arpc

izni

dorudan

toplayc

iznine

balanmamaldr, 1 saat darbesi geciktirilmektedir. Baka bir deyile toplaycnn bir


girii (arpm) yenilendikten 1 saat darbesi sonra toplaycnn ikinci girii (x)
yenilenmekte ve toplayc izni alnmaktadr. Toplama ilemi tamamlanmadan veya
arpcnn eski ii bitmeden yeni arpma ilemi balatlmamaktadr. Dolaysyla
arpc izninin verilmesi iin toplayc k izninin ve arpc k izninin verilmi
olmas gerekmektedir.
Tm bu toplama ve arpma ilemleri tek duyarl kayan nokta aritmetiine uygun
olarak hazrlanm toplama ve arpma bloklaryla gerekletirilmitir. Toplama ve
arpma ilemleri blm 4.1.2te belirtildii gibi birden fazla aama gerektirmektedir,
bu nedenle ilemin bitii bir izin k ile iaretlenmektedir. Sz edilen izinler,
toplama veya arpma ileminin sonulandn belirten iaretlerdir.

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.

ekil 4.6:Goertzel Algoritmas in Hazrlanan Modller


ematik gsterilimi ekil 4.6da verilen modllerin giri k tanmlamalar ve
balantlar tablo 4.4te verilmitir.

23

Tablo 4.4: Goertzel Algoritmes Modlleri Pin Tanmlar

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

Tek duyarl kayan nokta formatnda zaman domeni iareti


(x/FFT)

zin_cikis/Giri

Her bir yeni kayan nokta deeri iaretleyen giri evirici

evirici

START/FFT

Yeni bir paketle FFT ilemine balanmasn salayan FFT


modl girii

DVIN/FFT

FFT blou iin her bir yeni deeri iaretleyen aktif yksek
giri, (izin_cikis/ giri evirici)

x/FFT

FFT modl girii

y/FFT

FFT modl k

Son_izin/FFT

FFT modl k izni (izin_giris/k evirici)

Giris/k evirici

FFT modlnden alnan kayan nokta formatndaki iaret


(y/FFT)

zin_giris/k

Her bir yeni deeri iaretleyen aktif yksek giri.

evirici
cikis/k evirici

Saysal analog eviriciye aktarlacak olan 8 bit uzunluklu


iaret

zin_cikis/k

Her bir yeni k iaretleyen iaret

evirici

24

Tablo 4.5: Goertzel FFT iin FPGA da Kullanlan Alan

Lojik Birimler

Kullanlan Mevcut Yzde Kullanlan

Dilimler

28

4656

%0

Dilimlerdeki Flip-Floplar

32

9312

%0

Drt Girili LUTlar

45

9312

%0

IOBler

12

232

%5

Saat

24

%8

Devre tm modlleri ile birlikte gereklendiinde FPGA iinde kulland dilim ve


elemanlarn dalm tablo 4.5 te gsterilmitir. Kayan nokta aritmetii kullanld
halde, algoritmann ilem yknn ok az olmas, FPGA zerinde devrenin ok kk
bir yer kaplamasn salamtr.

4.2.

Rader Algoritmas

Rader Algoritmas, hzl fourier dnmn dairesel konvolsyonla ifade


edilmesinden yola kar. Rader algoritmasnn asal say zelliklerini kullanmas bu
algoritmay konvolsyon ile ayrk fourier dnm hesaplama yntemlerinden ayrr.
N noktada uygulanan algoritma, standart ayrk fourier dnmne gre 2n ilem
kazan salar. Algoritma N nokta DFT ilemini, katsay indekslerinin yeniden
dzenlenmesi ve dairesel konvolsyon kullanlarak, birka toplam ilemi ile birlikte
(N-1) nokta DFT ilemine dntrr [9].
Toplamann birleme zelliinden yararlanlarak, indekslenmi terimlerin sras
deitirilebilir. Rader algoritmasnda kullanlan ok boyutlu bir indeksleme deil, asal
gruplar iinde arpma ilemi ile oluturulan tek boyutlu bir indekslemedir:

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

= x(0) + x((r l ) mod( N )) *W r , l = [0,1,2 N - 2]

(4.10)

N=5, r=2 ve r-1=3 iin rnek bir matris oluturulmutur.


X ( 0) 0
X (1) 0


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)

Dorudan DFT gereklenebilecek ekilde oluturulmu (4.11) matrisinde, satrlarn


yerleri deitirilmitir.
X ( 0) 0
X (1) 0


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.

4.2.1. MATLAB Benzetimi ve FPGA zerinde Gerekleme


ekil 4.7da gsterildii gibi, drt durum tasarlanmtr. Bekle durumunda Bala
iareti gelene kadar kalnr. Bala iareti geldiinde, FFT ileminin yapld
durumlara geilir. FFT ilemi iki ayr durumda gerekletirilmitir.
1. kinci yazma dizisindeki verinin dnm ilemi ve gelen yeni verinin birinci
bellee yazlmas durumu (Durum 1).
2. Birinci yazma dizisindeki verinin dnm ilemi ve gelen yeni verinin ikinci
bellee yazlmas durumu (Durum 2).
27

Durum 1 ve Durum 2 arasndaki gei, bir paketteki nokta saysna ulalp


ulalmad kontrol edilerek salanr.
N noktadan oluan bir paketin ilk eleman matris arpm ileminde kullanlmad iin
bellee yazlmaz, ancak iaretin DC deerini tutan deikene eklenir.
Bitir iareti gelene kadar bu iki durum iin tanmlanan ilemler yaplmaya devam eder.
Bitir iareti geldiindeyse, belleklere veri yazm sonlanr ve ilem durdurulur.
Burada, giriteki iaretin yeni bir deer olup olmad darbe iareti ile kontrol edilir.
Darbe olarak tanmlanan aslnda rnekleme frekansnda bir saat darbesi gibi
dnlebilir, sistemin alma saati ise rnekleme frekansndan daha yksek
olmaldr.

28

ekil 4.7: Rader Algoritmas Ak Diyagram


29

4.2.2. FFT leminin Gereklenmesi


Yukardaki matris arpmnda grld gibi, x deerleri sral olmasa da yerleri
sabittir. te yandan katsaylarn ise yerleri dairesel olarak deimektedir. Sabit olan bu
katsaylar bir bellek dizisinde tutulmakta, ve yerleri deitirilmemektedir. Ancak
katsaylar bellee yerletirilirken, matrisin ilk satrndaki sra kullanlmtr. N= 5 iin
[W1 W3 W4 W2], N= 17 iin [W1 W3 W9 W10 W13 W5 W15 W11 W16 W14 W8
W7 W4 W12 W2 W6] sras kullanlmtr. FFT ilemi srasnda ise, katsay
yazmacndan ekilen deerler bir iaretinin her bir ayr Y deeri iin bir deer
yukardan balamas ile matris arpmnda verilen dairesellik salanmtr.
y_reel = REG2[0] * coeffR[r] + REG2[2] * coeffR[sira] + REG2[8] * coeffR[a] +
REG2[9] * coeffR[b]

(4.13)

Yukarda a, b, r ve sira ile tanmlanan deikenler, katsay matrisindeki yerleri


gstermektedir. r= 0 olduunda, sira=1 a=2 b=3 olacaktr. Bu durumda matrisin ilk
satr ile giri iareti arplarak y_reel(1) deeri bulunuyormu gibi dnlebilir. Bir
sonraki ilemde, r, sira, a ve b deikenleri bir arttrlacak, arpm ve toplan ilemleri
tekrar yaplacak ve y_reel(2) deeri bulunacaktr. Frekans iaretinin reel ksmn
bulmak iin izlenen tm yollan sanal ksmnn bulunmas iin de geerlidir, yalnzca
sanal ksmn katsaylar iin ayr bir yazma kullanlmtr.
Deikenler sabit nokta formatnda, k deerleri 16 bit olacak ekilde ayarlanmtr.
Tama olmamas iin 16 bit olarak verilen katsaylar ve giri deerleri -32 +31
aralnda, 16 bite geniletilmi saylardr. Hassasln bu kadar dk olmas
sonular da etkilemektedir.

30

ekil 4.8: Dairesel Katsay Yazmac


ekil 4.8de gsterildii gibi, yazmalarn ii hi deitirilmemi, toplanan terimler
Reg_X(i)*Reg_W(j) eklinde verilmitir. Burada i her zaman bir sabit ile
tanmlanmken, j ise i deerine gre a, b, c.. deikenleri ile tanmlanmtr. Bu
deikenler, katsaynn yazmata bulunduu yeri gsteren indislerdir ve mod (N-1) e
gre her bir ilemde dairesel olarak artmaktadr. N= 17 seilmesi, dairesel artn elde
edilmesini kolaylatrmtr. Bir kontrol mekanizmas konmadan 4 bitlik tanmlanan
deikenler, 16 adet katsayy tarayacaktr.

ekil 4.9: Rader FFT Devresi ematii


Sentezlenen FFT devresinin ematii ekil 4.9 ile, pin aklamalar ise tablo 4.6 ile
verilmitir.

31

Tablo 4.6: Rader FFT Devresi Pin Aklamalar

aret

Yn

Tanm

Giri

lenecek olan giri iareti

Bala

Giri

Girite

ilenecek

olan

ilk

verinin

grlmesi

ile,

sistemin

alabileceini gsteren iaret


Darbe

Giri

Giri iaretinin rnekleme frekansna bal, giriteki ilenecek olan


verinin yeni bir deer olduunu gsteren darbe iareti.

Bitir

Giri

lemin sonlandrlmasn salayan iaret

Y_reel

k FFT sonucunun reel ksm

Y_sanal k FFT sonucunun sanal ksm


Y_dc

k lenen paketin DC deeri

clk

Giri

Saat: Ykselen kenar tetiklemeli devre iin saat iareti

rst

Giri

Reset: Asenkron reset, aktif 1

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

ekil 4.10: Durum1 ModelSim Grafii


ekil 4.10 ve ekil 4.11de srasyla Durum1 ve Durum2 iin meydana gelen
deiimler verilmitir. ekillerdeki darbe_reg iareti, darbe iaretinin sfrdan bire
getii yerleri bulmak amacyla devre iinde oluturulu bir iarettir. k ise test
dosyasnda tanmlanm, dosyadan okunan giri deerlerinin srasn gsterir.
Durumlarn kodlanmasnda Gray kodu kullanlmtr.

33

ekil 4.11: Durum2 ModelSim Grafii


Simlasyonlarda 1kHzlik temiz sins dalgas ve iinde 200 Hz, 1kHz ve 2,5kHzlik
bileenler bulunan 8kHz ile rneklenmi baka bir dalga kullanlmtr.
Simlasyon sonular izdirilirken, k srasnn frekans skalasndaki sra ile ayn
olmad gz nne alnm ve aadaki grafikler izilirken, sra deitirilmitir.

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.

Bluestein Chirp- z Algoritmas

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)

Son halde (4.18) denklemi yazlabilir.


35

N 1

X (k ) = b(k ) (a (n)b(k n) )

(4.18)

n =0

a(n) ve b(n) ifadeleri, (4.19) ve (4.20)deki gibi aldnda, (4.21) ve (4.22)den


yararlanlarak a(n) ifadesi (4.23) olarak deitirilebilir.
b(n) = cos(

n 2
N

) + j. sin(

a (n) = x(n).(cos(

breel (n) = cos(

n 2

n 2

bsanal (n) = sin(

n 2
N

n 2
N

) j. sin(

(4.19)

n 2
N

))

(4.20)

(4.21)

(4.22)

a (n) = breel (n).x(n) bsanal (n).x(n)


a(n)

ve

b(n)

(4.23)

fonksiyonlarnn

konvolsyonu,

FIR

filtre

kullanlarak

gereklenebilmektedir. FIR filtre seiminde ise, dorudan (direct) FIR filtre


kullanlabilecei gibi, apraz (transposed) FIR filtre de kullanlabilir. ekil 4.14 te
gsterilen dorudan FIR gereklenirken N satrlk telemeli yazma kullanlmas
gerekir, ancak apraz ekil 4.15 ile gsterilen FIR topolojisi iin tek satrlk N adet
ktk kullanmak yeterlidir.

ekil 4.14: Dorudan FIR


Zaman domeninde bulunan N rnek says ve karlk gelen K frekans says birbirine
eit seilmek zorunda deildir, ancak ilem kolayl asndan bu ikisi birbirine eit
seildiinde,

a(n)

ve

b(n)

fonksiyonlarnn

konvolsyon

(4.24)teki gibi yazlrsa ekil 4.15 ile verilen topolojiye geilebilir:


36

ifadesi

denklem

y (n) = a (n) * b(n) = a (n).b(0) + a (n 1).b(1) + a (n 2).b(2).....a (0).b(n)


= ((a (n).b(n 1).z 1 + a (n).b(n 2)).z 1 + ....) z 1 + a (n).b(0)

(4.24)

ekil 4.15: apraz FIR


Algoritma aamada gereklenebilir:
1. a(n) in oluturulmas
2. a(n) ile b(n)in konvolsyonu
3. Konvolsyonun b(k) ile arplarak X(k)nn oluturulmas
Yukarda maddelenen ilemler, ekil 4.16 daki blok diyagram ile gereklenebilir.

ekil 4.16: Bluestein Chirp-z DFT


Toplamda N uzunluklu bir konvolsyon ilemi ve 2N adet arpma gerektiren bu
algoritmann Rader algoritmasna ok benzemektedir. Fark, Rader algoritmasnda
olduu gibi Nin asal olma zorunluluunun olmamasdr.
Gereklemede ise, b(n) ifadesi baz n deerleri iin ilem yk getirmeyen 1 ve 0
deerlerini alabildii iin genel hali verilen szge yaplar kltlebilir. N deerinin
sabit olduu durumlarda, her bir b(n) arpan iin farkl toplama ve telemeli yazma
yaplar kullanlarak, devrenin kaplad alan kltlebilir [9].

37

4.4.

Cooley - Tukey Algoritmas

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)

N nokta DFT ilemi Cooley-Tukey algoritmas kullanlarak N, N1 ve N2 noktal DFT


ilemlerine blnebilmektedir [9]. N1 ve N2 de ayn ekilde arpanlarna ayrlarak 2
noktal DFT ilemine kadar inilebilir. N1 ve N2nin seiminde teorik olarak bir
kstlama olmasa da, gereklemede kolaylk salamas asndan, N ikinin kuvveti
olarak seilip, N/2 noktal iki DFT ilemine alacaktr. Bu ekilde alarak, en son 2
nokta DFT ilemi elde edilecektir. Bu tip bir alma taban-2 Cooley-Tukey FFT denir
[9]. Optimizasyon iin farkl yntemlerle birletirilip, katsaylarn farkl sralanmasna
msaade eden Cooley-Tukey algoritmasnn bu almada frekansta azaltmal taban-2
formu kullanlmtr.

4.4.1. Frekansta Azaltmal Cooley-Tukey FFT Algoritmas


N terimden oluan x(n) dizisi, terim says eit iki alt diziye blnp, (4.1) ile verilen
DFT ilemi yeniden yazlrsa denklem (4.27) elde edilir.

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

= (e j ) = (cos j sin ) k = (1) k


k

(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)

W, nokta says Nnin bir fonksiyonudur, WN eklinde gsterilebilir. Katsaylarn birim


ember zerindeki hareketi nedeniyle, W2 de N/2nin bir fonksiyonu olarak, WN/2
biiminde yazlabilir. N=2r noktal DFT ilemi iin Cooley Tukey algoritmas
kullanlarak r-1 aamada iki noktal DFT ilemine indirilebilir. 2 nokta DFT ileminin
hesaplanmas da bir aama olarak hesaba katldnda, toplam r aamada N noktal
DFT ilemi tamamlanm olur.
8 noktal DFT ileminin Cooley-Tukey algoritmas ile gereklenmesinin ilk aamas
ekil 4.17 ile gsterilmitir.

ekil 4.17: 8 Nokta DFT in lk Aama


Elde edilen 4 noktal DFT ilemleri de ikier adet 2 noktal DFT ilemine ekil 4.18 ile
gsterildii gibi almaktadr.

39

ekil 4.18: 8 Nokta DFT in kinci Aama


ki noktal DFT ilemine kadar indirgenen N noktal DFT ileminde son aama,
katsay kullanlmakszn gerekletirilebilir. 8 nokta DFT hesaplanmasnn aamas
toplu halde ekil 4.19 gsterilmitir.

ekil 4.19: 8 Nokta DFT


Son aamada bulunan frekans deerleri, sral deildir. Elde edilen frekans deerleri
ile frekans spektrumu oluturulmak istendiinde, frekans deerlerinin yerleri
deitirilmelidir.

40

4.4.2. MATLAB Benzetimi


Her bir aamada ele alnan N nokta DFT ilemi iin, N/2 tane karmak katsay
gerekmektedir. Bir aamadan bir sonrakine geebilmek iin izlenmesi gereken yol,
ekil 4.20deki ak diyagram ile verilmitir.

ekil 4.20: Tek Aama in Cooley-Tukey Ak Diyagram


Bu diyagram uyarnca, 512 noktal DFT ilemi, 8 aamada MATLAB ile
hesaplanmtr. Hesaplamada kullanlan katsaylar ve sins dalgas MATLAB ile

41

hesaplanabilecek maksimum hassaslk derecesindedir. Ayn giri iaretinin frekans


spektrumu MATLABn sunduu hazr komutlarla hesaplandnda, sadece CooleyTukey algoritmas kullanlarak oluturulan frekans spektrumundan daha temiz bir
spektrum elde edilmektedir. Bunun nedeni MATLABn Cooley-Tukey algoritmas ile
dier algoritmalarn birleimini kullanarak optimizasyon salayan C tabanl bir FFT
bankasndan yararlanmasdr [16]. Kulland birleim 512 noktal DFT ilemini
Coley-Tukey algoritmas ile 32 noktal DFT ilemlerine paralayp, bu 32 noktal DFT
ilemini ise 32 ve daha az nokta iin daha iyi sonu retebilen Rader FFT algoritmas
ile hesaplamaktr.
512 nokta Cooley Tukey FFT algoritmas gereklenecektir. Bunun iin sekiz aama
gereklidir. ncelikle aralarnda asal frekans bileeninden oluan 8kHz ile
rneklenmi sins iareti ekil 4.21 ile gsterilmitir.

ekil 4.21: Giri areti Olarak Kullanlan Sins Dalgas


Giri iaretinin MATLABn optimize edilmi FFT fonksiyonu ile izilen frekans
spektrumu ekil 4.22de verilmitir. aret 140 Hz, 1,031kHz ve 3kHz bileenlerinden
olumaktadr. Bu frekanslara kar gelen k deerleri sras ile 9, 66 ve 192dir.

42

ekil 4.22: Giri aretinin Frekans Spektrumu


ekil 4.20deki ak diyagram her bir aamaya uyarlanarak, sekiz aama sonunda elde
edilen deerler, uygun ekilde yerletirilerek oluturulan frekans genlik spektrumu
ekil 4.23 ile gsterilmitir. Beklenildii gibi, optimize FFT fonksiyonu ile oluturulan
frekans spektrumu ile farkllk gstermekte, frekans bileenleri evresinde pikler
olumaktadr. Ayrca spektrum Nyquist frekans etrafnda simetrik deildir, giri
iaretinin frekans bileenleri iin genlik deerleri eit beklenmekte ancak optimize
fonksiyonla elde edilen frekans spektrumunda da olduu gibi, birbirine yakn ve yanal
piklerden yksek olmakla beraber, eit kmamaktadr.

43

ekil 4.23: 512 Nokta Cooley-Tukey FFT

4.4.3. Toplama ve arpma Devrelerinin Gereklenmesi


X=A+jB ve Y=C+JD eklinde gsterilen X ve Y karmak saylarnn toplam (4.32)
eitlii ile arpmlar ise (4.33) eitlii ile bulunur.
X + Y = ( A + C ) + j ( B + D)

(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

ekil 4.24: Karmak Saylarla arpma

ekil 4.25:Karmak Saylarla Toplama


ekil 4.24 ve ekil 4.25te gsterilen Topla ve arp bloklar, yar duyarl kayan nokta
gsterimli saylar iin oluturulmu toplama ve arpma bloklardr. Bu bloklar
Goertzel Algoritmas iin kullanlan ve ilemleri blm 4.1.2de anlatlan tek duyarl
kayan nokta arpma ve toplama bloklarnn yar duyarl kayan nokta gsterilimi iin
yeniden dzenlenmi halidir. Tek duyarl toplama ve arpma bloklarna gre,
kaplad alan yaklak yar yarya azalmtr, bu da karmak saylarla toplama ve
45

karmak saylarla arpma modllerinde birden fazla Topla ve arp blou kullanlarak
toplama ve arpma ilemlerinin paralel olarak yaplmasna olanak vermektedir.

4.4.4. FPGA zerinde Gerekleme


Kullanlan FPGA zerinde bulunan blok RAMler kullanlarak, ak diyagramna gre
elde edilen klar her bir aama sonrasnda kaydedilecektir. Aama sonular dnda,
giri iareti de bir blok RAMe yazlacaktr. Bu nedenle toplam 9 adet 512 gzl RAM
kullanlmas gerekmektedir. SPARTAN 3E iindeki toplam blok RAM kapasitesi de
gz nne alndnda, her bir blok RAMin geniliinin 32 bit, uzunluunun 512
szck olmas uygun grlmtr.
Katsaylar da benzer ekilde bir ROM iinde tutulacaktr. Katsaylarn karmak say
olmas her bir aama sonunda elde edilen deerlerin de karmak olmasna neden olur.
Aama klarnn yazld RAMlerde sonular gerel ve sanal olmak zere iki
ksm halinde tutulacaktr. Gerel ve sanal ksm uzunluklar birbirine eit ve on altar
bit seilmitir. Giri iareti gerel olduu iin, giri iaretinin tutulduu RAMin
uzunluunu otuz iki bit seme zorunluluu olmasa da, ileride ters FFT ileminin
gereklenmesinde kolaylk salayabilmesi iin bu RAM de 32 bit uzunluklu
oluturulmu; ancak her bir gzn yksek anlaml ilk 16 biti giri iaretine ayrlm,
dier bitleri sfr olarak braklmtr. Dier RAMlerde ise yksek anlaml 16 bit
saynn gerel ksmna, dk anlaml 16 bit ise saynn sanal ksmna ayrlmtr.
Hassaln salanabilmesi iin yar duyarl kayan nokta aritmetii kullanlmtr.
ekil 4.26da kullanlan blok diyagram verilmitir. Burada AAMA1, AAMA2
olarak verilen ilemlerin her birinde ekil 4.20de tek bir aama iin gsterilen ak, N
deeri deitirilerek kullanlmaktadr. Fo, yeni bir giri alnp alnmadn
gstermektedir, rnekleme periyodu ile tetiklenen bir iaret gibi davranmaktadr.
telemeli yazma yerine Rader algoritmasnda olduu gibi iareti kaydrma yntemi
kullanlmtr.

46

ekil 4.26: 512 Nokta Cooley-Tukey FFT Algoritmas Blok Diyagram

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.

ekil 4.27: Cooley-Tukey FFT Blou k

48

Analog saysal dntrcden alnan giri iaretinin, FFT blounda kullanlabilecek


forma dntrlmesi iin bir evirici blok ve FFT blou knn saysal analog
eviriciye uyumlu forma getirilmesi iin bir evirici blok kullanlmaldr. Byle bir
evirici blok kullanldnda, frekans genliklerinde deiim meydana gelecektir ancak
spektrumun genel grntsnde byk bir deiim gzlenmeyecektir. Yeni
oluturulan frekans spektrumu ekil 4.28deki gibidir.

ekil 4.28 :Cooley-Tukey k eviricisi k

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

kullanm asndan Cooley-Tukey algoritmas FPGA zerinde ok fazla yk


oluturmasa da, blok RAM ve RAMe bal saat hatt kullanm yksektir. FPGA
zerinde kapladklar alan tablo 5.1 ile verilmitir.
Gereklenen algoritmalardan, FPGA zerinde en az yer tutan beklenildii gibi
Goertzel algoritmasdr. FPGA zerinde kaplad alan dnlrse, ayn FPGA
paralel olarak yaklak 100 frekans deerinin hesaplanmas iin kullanlabilir, ayrca
FFT bloklar seri olarak da kullanlp, rnekleme frekans ile devrenin saat frekansnn
oranna bal olarak bu say daha da arttrlabilir.
Rader algoritmas ile 17 frekans deerine ait genlikler hesapland halde, kaplad
alan Goertzel algoritmasnn kaplad alann on yedi katndan kktr. te yandan,
Rader algoritmas, asal sayda nokta iin uygulanabilir olduundan, gereklemede
genellenebilirlii dktr, nokta says arttka hesaplanmas gleir.

50

Tablo 5.1: FFT bloklarnn FPGA zerinde kapladklar alan

Kullanlan
Lojik Birimler

Mevcut
Goertzel Rader Cooley-Tukey

Dilimler

4656

28

714

1088

Dilimlerdeki Flip-Floplar

9312

32

3919

4976

Drt Girili LUTlar

9312

45

7357

7088

IOBler

232

12

18

12

Saat

24

Blok RAM

20

Ancak, Rader Algoritmas Cooley-Tukey algoritmas ile karlatrldnda, daha


temiz frekans spektrumlar verdii grlmektedir. Nokta saysnn yksek deerleri
iin Cooley-Tukey algoritmas dier ikisine gre avantajldr, bu algoritma daha kolay
genellebildiinden, uyarlanabilir FFT bloklar yapmaya uygundur; fakat bu
algoritmann gereklenmesinde blok RAMler kullanld srece, devrenin saat
frekansnn 50MHz ile snrl olduu unutulmamaldr. Saat frekans dtke, iki
rnek arasnda yaplabilecek maksimum ilem says da azalacaktr, bu da
eriilebilecek aama saynsn ayn zamanda da hesaplanabilecek frekans bileeni
genliini azaltacaktr. Aamalarn st ste altrld bir FFT blou iin, 8kHz
rnekleme frekansnda en fazla 512 nokta FFT hesaplanabilir.

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