BAB 2 DASAR TEORI FFT-IFFT - digilib.itb.ac.id · Desain dan Implementasi 2k Pipeline FFT-IFFT Core...
Transcript of BAB 2 DASAR TEORI FFT-IFFT - digilib.itb.ac.id · Desain dan Implementasi 2k Pipeline FFT-IFFT Core...
BAB 2
DASAR TEORI FFT-IFFT
Pada Bab ini dibahas tentang hubungan antara Discrete Fourier Transform (DFT) dan
algoritma Fast Fourier Transform (FFT), dan hubungan antara algoritma FFT dan
IFFT. Dua tipe algoritma FFT dibahas yaitu Decimation in Frequency dan Decima-
tion in Time. Kedua tipe algoritma ini dapat diimplementasikan kedalam beberapa
algoritma FFT seperti Cooley-Tukey dan Sande-Tukey. Pembahasan berlanjut men-
genai perbandingan algoritma radix yang umum digunakan juga dibahas yaitu algo-
ritma Radix-2, Radix-4, dan Radix-8. Selain itu juga dibahas tetang konstanta twiddle
factor dan bagaimana cara membangkitkannya. Pada bagian akhir dibahas tentang
penggunaan algoritma FFT dan IFFT dalam sistem OFDM baik dalam sistem pengi-
rim maupun penerima.
2.1 DFT dan FFT FFT adalah algoritma yang efisien untuk melakukan komputasi DFT. DFT sendiri
adalah nama untuk transformasi matematis untuk suatu sinyal waktu diskrit, sedang-
kan FFT lebih merujuk kepada algoritma untuk melakukan komputasi tersebut. Algo-
ritma FFT dan inverse-nya (IFFT), menfasilitasi proses transformasi yang cepat dan
efisien antara domain frekuensi da ain waktn dom u dan sebaliknya.
DFT untuk N-point sekuens data dengan 0,1, . . , 1 didefinisikan pada
persamaan (2.1).
(2.1)
Dengan 0,1, … , 1 dan . Nilai sering pula disebut sebagai pan-
jang transformasi (N-point) dan indeks dan adalah indeks domain waktu dan do-
main frekuensi.
8
Kebalikann
didefinisik
Untuk 0Dari (2.1
tak pada d
)
u
nensial unt
digunakan
1. Me
2. Me
Modifikasi
pat diguna
Persamaan
lukan impl
kan
tasi untuk
untuk men
tima yang
mengekspl
dan algorit
form (FFT
Transform
nya, inverse
kan pada per
0,1, … , 1dan (2.2) te
ua hal, yaitu
tuk . Kar
n pula untuk
embalik inpu
embagi outp
i ini ditunju
akan sebagai
n (2.1) dan (
lementasi pe1 penjum
N-point DF
ngurangi kom
dapat meng
loitasi karak
tma komput
T) dan algo
m (IFFT).
Desain dan
e DFT untu
rsamaan (2.2
1 .
erlihat bahw
u adanya fak
rena kemirip
menghitung
ut dan outpu
put dari FFT
ukkan oleh G
i FFT Core d
Gambar 2-
(2.2) merup
erangkat ker
mlahan dan
FT adalah
mpleksitas p
gurangi kom
kteristik sime
tasi DFT lai
oritma komp
n Implementas
uk sekuens
2).
1wa perbedaan
ktor skala 1⁄pan ini, algo
g IFFT deng
ut FFT Core
T Core denga
Gambar 2-1.
dan IFFT Co
-1 IFFT Core b
akan kompu
ras yang bes1 pe
. Oleh
perhitungan.
mpleksitas k
etri dari kom
nnya kemud
putasi IDFT
si 2k Pipeline F
data
n antara kom⁄ pada IDF
oritma dan ar
an dua mod
e an ilatara n i
an 1⁄ .
Dengan dem
ore[3].
berbasis FFT C
utasi yang s
sar. Komput
erkalian. Se
h karena itu
. Coley-Tuk
komputasi m
mputasi DFT
dian disebut
T disebut de
FFT-IFFT Co
dengan
mputasi DFT
FT dan tand
rsitektur dar
ifikasi kecil
i real dan im
mikian sebu
Core
angat komp
tasi DFT dan
hingga kom
diperlukan
key memberi
menjadi
T[4]. Algorit
t dengan Fas
engan Inver
ore untuk DVBB-T | 9
0,1, … , 1
(2.2)
T dan IDFT
da pangkat e
ri FFT Core
sebagai ber
terle-
ekspo-
dapat
rikut,
majiner.
uah FFT Corre da-
pleks dan m
n IDFT mem
mpleksitas ko
algoritma k
ikan solusi a
de
tma Coley-T
st Fourier T
rse Fast Fo
emer-
merlu-
ompu-
khusus
algor-
engan
Tukey
Trans-
ourier
Desain dan Implementasi 2k Pipeline FFT-IFFT Core untuk DVB-T | 10
Gambar 2-2 Perbandingan kompleksitas komputasi antara DFT dan FFT
2.2 Algoritma FFT Desain prosesor FFT, sangat tergantung kepada komputasi matematis yang digunakan
pada algoritma yang dipilih. Pemilihan algoritma tepat akan mempengaruhi kecepatan
komputasi, kompleksitas perangkat keras, dan konsumsi daya yang diperlukan.
2.2.1 Algoritma Cooley-Tukey
Algortima FFT didasarkan pada prinsip yang disebut dengan divide-and-conquer un-
tuk mengurangi jumlah komputasi (penjumlahan atau perkalian) untuk mendapatkan
hasil yang sama dengan DFT. Teknik ini secara rekursif membagi DFT yang besar
menjadi beberapa komputasi DFT yang lebih kecil. Tiap-tiap DFT kemudian dikerja-
kan secara independen dan hasilnya digabungkan untuk mendapatkan DFT keseluru-
han[5].
Cooley dan Tukey mendemonstrasikan keunggulan metode ini dengan menggunakan
algoritma yang kemudian disebut dengan algoritma radix-2. Algoritma ini secara
efektif membagi komputasi DFT menjadi 2 pada setiap tahap rekursi sehingga pada
akhirnya didapatkan 2-point DFT. Karena panjang data harus dibagi menjadi dua pa-
da setiap tahap rekursi, maka DFT awal harus merupakan bilangan pangkat dari dua.
DFT dengan panjang bukan bilangan pangkat dua harus dilakukan penambahan den-
gan nilai nol (zero padding).
Tipe algoritma seperti yang digunakan oleh Coley-Tukey disebut sebagai Decimation
in Time (DIT). Hal ini karena algoritma ini menghitung setiap blok kecil DFT pada
Desain dan Implementasi 2k Pipeline FFT-IFFT Core untuk DVB-T | 11
domain waktu dan pada akhirnya akan didapatkan DFT utuh pada domain frekuensi.
Algoritma ini memiliki persyaratan dalam implementasi ke perangkat keras yaitu in-
put dari DIT memiliki indeks bit-reversed. Sebagai contoh untuk 8-point DFT, input
data pertama adalah tetap indeks ke-0, tetapi input data kedua adalah indeks ke-4 ka-
rena bit-reversed dari indeks “001” adalah “100” dan seterusnya.
Gambar 2-3 Radix-2 butterfly untuk algoritma Cooley-Tukey
2.2.2 Algoritma Sande-Tukey
Input data bit-reversed tidak terlalu disukai untuk implementasi. Oleh karena itu, di-
gunakan tipe algoritma lain yang disebut dengan Decimation in Frequency (DIF).
Tipe algoritma ini merupakan kebalikan dari DIT karena ukuran komputasi DFT pada
tahap berikutnya selalu lebih kecil dibanding tahapan sebelumnya. DIF mensyaratkan
output dari FFT memiliki indeks bit-reversed sedangkan inputnya indeksnya tetap.
Gambar 2-4 Radix-2 butterfly untuk algoritma Sande-Tukey
Algoritma Sande-Tukey memiliki kompleksitas komputasi yang sama dengan Coley-
Tukey. Namun, algoritma ini dan DIF pada umumnya, lebih disukai daripada DIT
untuk diimplementasikan ke perangkat keras. Struktur butterfly dari DIF yang mela-
kukan komputasi perkalian dengan twiddle factor dan pemotongan bit (bit-truncation)
setelah penjumlahan butterfly memberikan nilai SNR yang lebih baik dibanding DIT
yang melakukan hal sebaliknya[6].
Desain dan Implementasi 2k Pipeline FFT-IFFT Core untuk DVB-T | 12
2.3 Algoritma Mode Decimation in Frequency
2.3.1 Algoritma Radix-2
Seperti telah dijelaskan sebelumnya, algoritma Sande-Tukey adalah algoritma FFT
Radix-2 bertipe DIF. Algoritma Radix-2 membagi data menjadi dua sama besar. Se-
tiap kombinasi data akan dieksekusi dengan operasi yang disebut dengan butterfly.
Butterfly adalah unit terkecil FFT [7]. Gambar 2-3 dan Gambar 2-4 memperlihatkan
satu unit butterfly Radix-2 bertipe DIT dan DIF. Seluruh komputasi FFT dapat ditun-
jukkan/digambarkan dengan menggambar unit radix secara repetitif untuk setiap out-
put radix tahap sebelumn a. y
Pada algoritma Radix-2, dan , pada Gambar 2-4 merupakan data dengan indeks
yang terpisah 2⁄ . Maka apabila memiliki indeks maka memiliki indeks 2⁄ . Demikian pula dengan dan , mereka juga memiliki indeks dengan
pola yang sama sehingga implementasi pada perangkat keras menjadi lebih sederha-
na. Pengalamantan data yang sama antara input dan output ini disebut dengan pola in-
place addressing karena data output dapat menempati posisi yang sama dengan yang
digunakan oleh input. Proses ini diulangi terus menerus hingga tahap terakhir.
Gambar 2-5 menunjukkan contoh signal flowgraph dari 8-point DFT yang dikompu-
tasi dengan menggunakan 3 tahap Radix-2 FFT. Tahap pertama membagi data men-
jadi 2 blok dengan panjang masing-masing 4. Tahap kedua membagi output dari ta-
hap pertama menjadi 2 lagi dengan panjang 2 dan tahap terikhir merupakan satu unit
Radix-2 FFT.
Gambar 2-5 Contoh signal flowgraph untuk 8-point DFT
Desain dan Implementasi 2k Pipeline FFT-IFFT Core untuk DVB-T | 13
Pada perkembangannya, disadari bahwa proses faktorisasi tidak harus dengan nilai 2,
setiap DFT dapat pula difaktorisasi dengan nilai lain asalkan tetap memenuhi syarat
bahwa perkalian seluruh nilai faktor adalah besar DFT itu sendiri. Misalnya, 64-point
DFT dapat dipecah menjadi 6 tahap 2-point DFT atau 3 tahap 4-point DFT atau 2 ta-
hap 8-point DFT. Bahkan beberapa kombinasi DFT dapat digunakan, misalnya
menggunakan radix-2 diteruskan dengan radix-4 dan radix-8 untuk menyusun 64-
point DFT tersebut. Selain algoritma radix-2, terdapat dua tipe radix yang biasa digu-
nakan yaitu radix-4 dan radix-8.
2.3.2 Algoritma Radix-4
Algoritma Radix-4 membagi data menjadi 4 blok data. Dengan demikian setiap tahap
komputasi akan membagi tahap sebelumnya menjadi 4. Pada kenyataannya, Radix-4
merupakan dua tahap Radix-2 FFT untuk 4-point DFT. Oleh karena Radix-4 hanya
merupakan generalisasi dari Radix-2, maka seluruh sifat dari Radix-2 juga dimiliki
oleh Radix-4 termasuk struktur yang regular, in-place addressing, dan pipelining.
Gambar 2-6 Radix-4 node
Gambar 2-7 Signal flow graph Radix-4 butterfly
Keunggulan Radix-4 dibandingkan dengan Radix-2 adalah adanya trivial twiddle fac-
tor yang dapat dikeluarkan dari daftar multiplikasi twiddle factor. Trivial twiddle fac-
tor adalah nilai twiddle factor yang tidak memerlukan multiplikasi untuk diimplemen-
Desain dan Implementasi 2k Pipeline FFT-IFFT Core untuk DVB-T | 14
tasikan. Algoritma Radix-4 dapat mengeluarkan nilai twiddle untuk dan yang
masing-masing bernilai – dan . Jika data kompleks dikalikan dengan – ,
maka yang perlu dilakukan hanya menjadikan nilai sebagai data real dan – seba-
gai data imajiner sehingga didapatkan . Demikian pula dengan perkalian
dengan . Maka yang perlu dilakukan hanya menjadikan nilai sebagai data
imajiner dan nilai – sebagai nilai realnya sehingga didapatkan – . Dengan
demikian salah satu keuntungaan adalah, presisi dapat ditingkatkan dibanding perka-
lian dengan nilai – dan dengan nilai bit-precission.
Radix-4 memerlukan 4 input pada setiap tahapnya, oleh karenanya, panjang FFT
yang dikalkulasi haruslah merupakanbilangan pangkat dari 4. Maka terdapat beberapa
nilai FFT yang dapat dikerjakan dengan Radix-2 namun tidak dapat dengan Radix-4.
Salah satu metode untuk mengatasi hal ini adalah dengan menggabungkan komputasi
Radix-4 dengan Radix-2 untuk menghasilkan FFT mixed-radix.
2.3.3 Algoritma Radix-8
Algoritma Radix-8 membagi data menjadi 8 blok data. Dengan demikian setiap tahap
perhitungan akan membagi data tahap sebelumnya menjadi 8. Seperti halnya Radix-4,
Radix-8 juga merupakan turunan dari Radix-2. Pada kenyatannya, gambar flowgraph
Radix-8 merupakan 3 tahap Radix-2 FFT untuk 8-point DFT.
Gambar 2-8 Radix-8 node
Desain dan Implementasi 2k Pipeline FFT-IFFT Core untuk DVB-T | 15
Gambar 2-9 Signal flow graph Radix-8 butterfly
Algoritma Radix-8 menambahkan dua buah trivial twiddle factor yang dapat dikelua-
rkan dari daftar multiplikasi twiddle factor. Nilai trivial twiddle factor tersebut adalah 1 √2⁄ dan 1 √2⁄ . Karena terdapat faktor pembagian dengan √2 maka
diperlukan unit scaling. Unit ini dapat diimplementasikan dengan menggunakan sir-
kuit shift-and-add nilai konstan yang tidak memerlukan kebutuhan perangkat keras
yang tinggi. Selain itu nilai presisi untuk kedua twiddle factor ini dapat ditingkatkan
dengan menambahkan level sirkuit shift-and-add.
2.4 Twiddle Factor Twiddle factor adalah konstanta trigonometri yang akan dikalikan dengan data pada
algoritma FFT. Dari persamaan (2.1) konstanta twiddle factor adalah , sehingga
2048-point FFT memerlukan 2048 nilai konstanta kompleks twiddle factor. Nilai
konstanta ini dapat diperoleh dengan melakukan sampling satu siklus nilai cosinus
dan nilai sinus untuk twiddle factor real dan twiddle factor imajiner seperti yang di-
tunjukkan oleh (2.3).
cos 22048 sin 22048
(2.3)
Desain dan Implementasi 2k Pipeline FFT-IFFT Core untuk DVB-T | 16
Untuk menyimpan seluruh nilai twiddle factor ini memerlukan ROM yang besar.
Oleh karena itu tidak seluruh nilai twiddle factor disimpan. Gambar 2-10 menunjuk-
kan bahwa hanya 1 8⁄ nilai twiddle factor awal saja yang perlu disimpan (dari indeks 0 sampai dengan 256), sedangkan nilai twiddle factor lainnya dapat dihasil-
kan dari nilai ini[8].
Gambar 2-10 Seperdelapan siklus nilai cosinus (kiri) dan sinus (kanan)
2.5 FFT-IFFT dalam OFDM Ortogonal Frequency Division Multiplexing (OFDM) merupakan teknik multiplexing
dengan cara membagi sebuah kanal lebar menjadi beberapa kanal sempit, yang dapat
mengirimkan informasi secara parallel pada waktu yang bersamaan. Keunggulan
OFDM dibandingkan dengan teknik modulasi lainnya adalah kemampuannya untuk
mengatasi multipath. Pengiriman data secara parallel memungkinkan tiap bit dikirim-
kan dengan rate yang lebih kecil. Rate yang lebih kecil berarti perioda simbol yang
lebih panjang. Jika delay spread yang terjadi akibat multipath cukup kecil jika diban-
dingkan dengan perioda simbol, maka efek dari multipath tidak akan terlalu signifi-
kan lagi[9].
Perbedaan antara OFDM dengan FDM (Frequency Division Multiplexing) adalah
bentuk spektrumnya yang berupa sin ⁄ diatur sedemikian rupa sehingga sinyal-
sinyal carrier yang ada secara matematis bersifat ortogonal sehingga spektrum-
spektrum dari subcarrier dimungkinkan tumpang tindih tanpa saling mengganggu.
Suatu siny
Dengan
dan adal
DFT mem
ini algoritm
dan algorit
demodulas
diimpleme
Sedangkan
dulator bas
yal disebut or
merupaka
lah periode s
iliki sifat ort
ma IFFT) un
tma FFT unt
si kembali.
entasikan de
n OFDM dem
seband.
Desain dan I
Gambar 2
rtogonal jika
an kompleks
simbol OFD
togonal. Ole
ntuk memba
tuk mengem
Dengan de
engan meng
modulator d
Implementasi
2-11 Spektrum
a memenuhi
s konjugat d
DM.
eh karena itu
angkitkan sin
mbalikan tran
mikian, sec
ggunakan sa
diimplement
2k Pipeline F
m Sinyal OFDM
i persamaan
, jika p0, jika pdari ,
u OFDM me
nyal ortogon
nsformasi ke
cara sederha
atu IFFT cor
tasikan deng
FFT-IFFT Cor
M[9]
n (2.4).
adalah kon
enggunakan
nal yang aka
e domain fre
ana OFDM
re dan mod
gan satu FFT
re untuk DVB-T | 17 -
(2.4)
stanta bukann nol,
IDFT (dala
an ditransmis
ekuensi, untu
modulator
dulator base
T core dan d
am hal
sikan,
uk di-
dapat
eband.
demo-
Desain dan Implementasi 2k Pipeline FFT-IFFT Core untuk DVB-T | 18
Gambar 2-12 Sistem OFDM berbasis IFFT dan FFT
Proses pembangkitan sinyal OFDM pada umumnya menggunakan IFFT dengan pan-
jang yang lebih besar dibanding jumlah subcarrier yang digunakan. Sebagai contoh,
untuk modulasi OFDM yang digunakan pada DVB-T, dari 2048 subcarrier yang
mungkin digunakan hanya 1705 subcarrier yang dipakai, sedangkan sisanya diberi
nilai nol (zero padding). Hal ini bermanfaat untuk menghindari terjadinya efek alias-
ing pada saat sinyal OFDM diubah ke bentuk analog dengan DAC. Selain itu, input 0
juga diberikan pada masukan dari IFFT pada frekuensi 0, yang berguna untuk meng-
hilangkan komponen DC pada sinyal OFDM.
Input IFFT berasal dari blok frame adaptation (Gambar 1-1). Blok frame adaptation
menerima data dari modulator (QPSK, 16-QAM, atau 64-QAM) dan menambahkan
data pilot dan TPS carrier untuk dibentuk menjadi simbol OFDM. Masing-masing
modulator memiliki range output yang berbeda-beda yang ditunjukkan pada Tabel
2-1. Dari tabel tersebut, 64-QAM memiliki range yang terbesar. Untuk mengkode-
kannya dalam format fixed point maka paling tidak diperlukan satu buah sign bit, satu
buah integer bit, dan bit sisanya untuk mengkodekan nilai pecahan. Dari persamaan
(2.2), diperoleh bahwa range output dari IFFT akan sama dengan range inputnya se-
hingga sistem pengkodean yang sama dapat diterapkan pada output IFFT.
Desain dan Implementasi 2k Pipeline FFT-IFFT Core untuk DVB-T | 19
Tabel 2-1 Nilai output dari tiap tipe modulasi
Modulasi MAX MIN N . orm Range Output
QPSK 1 -1 √2 0.707 s.d -0.707
16-QAM 3 -3 √10 0.949 s.d -0.949
64-QAM 7 -7 √42 1.080 s.d -1.080
Pada kenyatannya, untuk input berupa simbol OFDM, apabila IFFT dilakukan dengan
menggunakan faktor normalisasi 1⁄ seperti yang ditunjukkan dengan persamaan
(2.2) maka output akan memiliki amplitudo yang sangat kecil. Sehingga beberapa
faktor normalisasi lain diperkenalkan seperti menggunakan faktor normalisasi gain
tetap 1 √⁄ , automatic data scaling[10][11], dan sebagainya. Implikasinya, IFFT
yang terjadi menjadi tidak standar lagi. Untuk mengurangi kompleksitas rancangan
dan tetap menjaga standarisasi komputasi, maka 2k FFT-IFFT Core yang dirancang
akan menggunakan sistem pengaturan gain manual. Faktor normalisasi dapat diatur
secara manual dengan nilai standar adalah gain standar (1⁄ ).
Input FFT berasal dari data hasil digitalisasi ADC. Data ini terlebih dahulu harus me-
lalui tahap Automatic Gain Control untuk menghilangkan penguatan yang diperoleh
sinyal dari kanal. Dengan demikian sinyal yang diterima oleh FFT dianggap tidak
mendapat penguatan oleh kanal. Output dari FFT akan di-demodulasi menggunakan
demodulator yang sesuai dengan modulator pengirim. Oleh karena itu sinyal output
FFT akan memiliki range yang sama dengan input IFFT. Sehingga, lebar bit dan
pengkodean bit yang sama dapat dipergunakan.
Pengaturan gain yang sama dengan IFFT juga harus digunakan agar simbol OFDM
dapat ditransformasi dengan sempurna. Karena FFT dan IFFT adalah sistem linier,
maka penguatan di satu domain dapat dihilangkan dengan membagi output transfor-
masi dengan nilai yang sama. Dengan demikian, apabila pada output IFFT dilakukan
penguatan sebesar , maka output dari FFT harus dikalikan dengan 1⁄ .