1. PEN G U JIA N SUBW O O FER
Sistem pengujian subwoofer yang biasa digunakan dapat dili- hat pada gambar 2-1.
GAMBAR 2-1
SISTEM PENGUJIAN SUBWOOFER
Sebagai alat ukur digunakan suatu spectrum analyzer yang dilengkapi dengan fasilitas sweep generator. Output dari sweep generator diumpankan ke subwoofer (device under test) dan sinyal output dari subwoofer ditangkap oleh microphone lalu diperkuat oleh suatu pream plifier sebelum diberikan ke spectrum analyzer.
Untuk mendapatkan hasil pengukuran yang baik, ruangan yang digunakan untuk pengujian ham s memcnuhi beberapa persyaratan antara lain : mempunyai efek pantulan suara dan gema yang mini
mum, serta kedap terhadap suara / noise dari luar. Jarak antara subwoofer dengan microphone biasanya diambil 1 m pada daya output subwoofer sebesar 1 Watt.
2. O V E R V IE W K ELUARG A TMS320
Digital signal processor keluarga TMS320 terdiri dari prosesor-prosesor 16 bit flxed-point dan 32 bit floating-point.
Prosesor-prosesor ini memiliki kemampuan operasional dari kon- troler berkecepatan tinggi dan kemampuan numeris dari array processor. Beberapa keunggulan dari keluarga TMS320 yang
menjadikannya serba guna dal am berbagai aplikasi antara lain :
□ Instruction set yang khas dan tlexibel
□ High-speed performance
□ Paralel arsitektur
□ Cost efektif
Digital signal processor yang pertama dalam keluarga ini, yaitu TMS32010 diluncurkan pada tahun 1982 dan merupakan model untuk generasi-generasi selanjutnya. Sampai saat ini, telah ada lima generasi yaitu C lx , C2x, C3x, C4x, dan CSx. Generasi C lx , C2x, C5x merupakan jenis fixed -p o in t, sedangkan C3x dan C4x adalah generasi floating-point. Baik jenis fix ed -p o in t mau- pun floating-point bersifat kompatibel ke atas dari generasi yang satu ke generasi berikutnya. Setiap generasi mempunyai konfigu- rasi internal CPU, memory dan peripheral sendiri-sendiri.
3. A R S IT E K T U R C O R E CPU CSX
Generasi CSx terdiri dari prosesor-prosesor C50, C51, dan CS3 yang merupakan generasi fixed-point terbaru. Setiap device tersebut mempunyai 2 I/O Port serial dan 64K I/O Port paralel, 16 diantaranya bersifat memory-mapped. Adapun kapasitas on-chip memory untuk masing-masing device tersebut adalah :
□ C50 mempunyai lOKword on-chip RAM dan 2Kword on-chip ROM
□ C51 mempunyai 2Kword on-chip RAM dan 8Kword on-chip ROM
□ C53 mempuyai 4Kword on-chip RAM dan 16 Kword on-chip ROM
Generasi CSx dirancang dengan arsitektur Harvard advanced, yang memisahkan program bus dan data bus untuk meningkatkan kecepatan dan keniarnpuan proses. Blok diagram hardware inter
nal dari prosesor CSx dapat dilihat pada gambar 2-2.
Arsitektur CSx dibangun di antara dua bus utama, yaitu pro
gram bus dan data bus. Program bus membawa kode-kode in- struksi dan immediate operand dari program memory, sedangkan data bus menghubungkan berbagai elemen, seperti C entral A rith
m etic Logic Unit (CALU) dan kelompok auxiliary reg ister ke data memory. Bersama-sama, program bus dan data bus dapat mem
bawa data dari on-chip memory dan program memoy ekstem al ke m ultiplier dalam satu cycle.
C5x melakukan operasi aritmetik 2s~complement menggu- nakan Arithm etic Logic Unit (ALU) dan accumulator sepanjang 32 bit. ALU adalah unit aritmetik serba guna yang memproses operand-operand 16 bit dari data memory atau instruksi
Program Bu> ( Addr— Bt « ( Det a) ' u * \
BM AR
S x \
| IPTR } I N T I [ t £ INTM | « f IMR } + f IFR |
PC(18) | | PASR || BRAF |
I . .
i 11 Compare UJ PAER |
(8x16)
1 BRCR 1
♦ 1--- j ---1
1
| MP/MC | C N F | R A M *"]
Program Memory
I
«* * «v . .n.V* . ' 6
I TREG2 I [TOEQt[T R E G t j T
\ M U X /
\ M U X / | C O U N T |
| Prwcater |
Tt
■TtoTI
I TR E G O I
Multiplier
I OVM I SXM
i „, 1 1
ALU(32)
A CCB(32) M--- ~ A CC(3 2) j Posl-Scalef 2 |
m
■ ■ t . .„ j
O V | T C | C
PREG(32)
| PM P-ScaJerI
DBMR♦ + r
T n m TiJr
Data Bus (Data)
£
T\ M U X /
I C B E R | ( i N O X | | ARCR |
ARP Tj r fT
\ M UX /
| NDX | j C B S R |
A U X R E G S
( 8 x 1 6 ) DP (9) dma(7)
ARB
\ MUX /
— I C B C R \ MU
\ ~ , AFtAU(i6if / \ M UX / I X F k D ata Bua (Addroea)
- j O a ta M e m o ry "" ]
^ C N F | OVLV |
G R E G
BR
GAMBAR 2-2°
B L O K DIAGRAM HARDW ARE IN TER N A L C5X
w TMS220C5x User's Ouide, (Houston: Texai Instruments Incorporated, 1993), hal. 3-4.
immediate, atau hasil 32 bit dari multiplier. Selain itu ALU juga dapat melakukan operasi-operasi Boolean. Accumulator menyim- pan output dari ALU dan juga merupakan input kedua ke ALU.
Accumulator dibagi menjadi high-order w ord (bit 31 sampai 16) dan low-order w ord (bit 15 sampai 0). Untuk menyimpan isi accu
mulator dengan cepat dan sementara, disediakan 32 b it accumula
tor buffer (ACCB).
Selain ALU, juga terdapat p a ra llel logic unit (PLU) yang mengeksekusikan operasi-operasi logika tanpa mempengaruhi isi dari accumulator, dan auxiliary register arithm etic unit (ARAU) yang juga dapat melakukan operasi arithmetic secara paralel.
M ultiplier melakukan perkalian 2s-complement 16 x 16 bit dan menghasilkan output 32 bit dalam satu cycle. M ultiplier ter- diri dari 3 elemen : multiplier array, PREG (product register), dan TREGO (temporary register). TREGO sepanjang 16 bit ber- fungsi menyimpan multiplicand temporer, sedangkan PREG menyimpan hasil operasi sepanjang 32 bit. Operand-operand dari m ultiplier dapat berasal dari data memory, program memory, atau tangsung dari instruksi multiply immediate (MPY #).
Scaling sh ifter mempunyai input 16 bit dari data bus dan out
put 32 bit ke ALU. Fungsinya untuk melakukan pergeseran data input sejauh 0 sampai 16 bit ke kiri, sesuai instruksi program. B it
bit LSB output diisi dengan nol, sementara MSB dapat diisi nol atau merupakan pengulangan dari tanda bilangan, tergantung bit SXM {stgn-extension mode) dari status register ST1.
Di dalam CPU C5x terdapat sekelompok register yang terdiri dari 8 buah auxiliary register (AR0-AR7). Register-register ini da
pat digunakan untuk indirect addressing dari data memory atau sebagai tempat penyimpanan data sementara. Register-register ini
direferensi oleh auxiliary register p o in te r (ARP) 3 bit yang diisi dengan nilai dari 0 sampai 7 untuk menunjuk ke ARO sampai AR7.
Auxiliary register dan ARP dapat diisi dari data memory, accumu
lator, product register, atau immediate operand, dan isinya dapat disimpan ke data memory atau digunakan sebagai input ke CALU.
Terdapat 8 level hardware stack untuk menampung isi dari program counter selama terjadi interrupt atau pemanggilan subrou
tine. Selain itu terdapat sebuah stack satu level untuk menyimpan isi dari register-register strategic (ACC, ACCB, ARCR, INDX, PM ST, PREG, STO, ST1, TREG) secara otomatis pada waktu ter
jad i interrupt.
4. K O N T R O L SISTEM
4.1 R eg ister S tatus D an K ontrol
Ada empat buah status dan control register inti untuk C5x, yaitu STO, ST1, PMST, dan CBCR. Register STO dan ST1 mengandung informasi mengenai berbagai kondisi dan mode yang kompatibel dengan C25, sedangkan PMST dan CBCR menyimpan informasi tambahan untuk kontrol CSx dalam berbagai feature yang istimewa.
Setiap register ini (kecuali CBCR) mempunyai pasangan stack satu level yang bersesuaian untuk mengamankan isinya secara otomatis pada saat terjadi interrupt. Stack tersebut secara otomatis akan di-pop setelah keluar dari interrupt (instruksi RETI atau RETE). Suatu pengecualian adalah bit INTM (in
terru p t mask) di STO yang selalu diset ke 1 pada waktu ter
jad i interrupt untuk mencegah interupsi lebih lanjut dan bit XF
(external fla g ) pada ST1 yang tidak disimpan agar dapat di- ubah oleh interrupt service routine.**
Register PMST dan CBCR terdapat di dalam lokasi memory- mapped register pada page 0 dari data memory. Karena itu keduanya dapat diakses secara langsung oleh CALU dan PLU, dan dapat disimpan seperti lokasi data memory lainnya.
Register STO dan ST1 dapat ditulisi dengan instruksi LST dan dibaca dengan instruksi SST, kecuali bit INTM dalam STO yang tidak dapat diubah oleh instruksi LST. Kedua register ini tidak terdapat dalam memory map, sehingga tidak dapat diak
ses oleh PLU. Sebagai gantinya, masing-masing bit dari register-register ini dapat juga diset atau direset dengan in
struksi SETC dan CLRC.
4.2 O perasi P ipeline
Prosesor CSX menggunakan operasi pipeline empat level da
lam mengeksekusikan instm ksi-instruksi program. Dalam op
erasi pipeline, instruction fetch, decode, operand fe tc h y dan operasi execute tidak tergantung satu sama lain, sehingga ek- sekusi instruksi secara keseluruhan dapat saling tumpang tindih.
Karena itu selama suatu cycle sebarang, satu sampai empat instruksi yang berbeda dapat aktif secara bersamaan, masing- masing pada tahap yang berbeda. Operasi pipeline empat level untuk instruksi-instruksi single-word single-cycle dapat dilihat pada gambar 2-3.
Operasi pipeline ini tidak tampak oleh user, kecuali dalam kasus-kasus tertentu seperti auxiliary register update, akses
*> b id ., hal. 3-38.
ke CPU register secara memory-mapped, instruksi NORM, dan perintah-perintah konfigurasi memory.
C lK tN
F E T C H
D E C O D E OPERAND
E X E C U T E
4.3 In te rru p t
Prosesor C5x menyediakan 16 buah user-m askable interrupt, yaituIN T 1-IN T 16, tetapi tidak semuanya perlu dipakai. Mi- salnya, C50, C51, dan C53 hanya memakai 9 dari interrupt- interrupt ini sementara yang lain mendapat logika high di da
lam device. Interrupt dapat dibangkitkan oleh serial port (RINT, XINT, TRNT, dan TXNT), oleh timer (TINT), dan oleh instruksi software interrupt (TRAP, NMI dan INTR). In
terrupt reset (RS) mempunyai prioritas tertinggi, dan IN T I6 mempunyai prioritas terendah.
Reset (RS) adalah nonmaskable external interrupt yang dapat dijalankan setiap waktu untuk menginisialisasi prosesor, dan khususnya dilalukan pada saat power-up. Agar sistem dapat beroperasi dengan benar setelah power-up, sinyal reset harus diberi logika low selama beberapa cycle supaya data line me- masuki kondisi high-impedance dan address line menjadi low.
N +7+
•4-
'4-
• N-1
N-2 N-3
> +
N+1 - N -
>r4-
N-1 N-2
N+2 N+1
- N -
-M-
->r4- N-1 +r4-
N + 3 ---
N + 2 ---
■N+1 --- ►
— N ---►
GAMBAR 2-33)
O PER A SI P IP E L IN E EM PA T LEV EL
b id .y hal. 3-35.
Pulsa reset akan di-latch dan device akan membangkitkan suatu pulsa reset internal yang cukup lama untuk menjamin terjadinya reset.
Kegiatan-kegiatan yang terjadi setelah sinyal RS diterima yaitu :
1. Bit CNF (kontrol konfigurasi) pada status register ST1 diberi harga 0 untuk memetakan dual-access RAM blok 0 ke data space.
2. Program Counter (PC) diset ke 0. Jika HOLD diaktifkan pada saat RS low, sinyal HOLDA dibangkitkan. Dalam kasus ini, address line akan menjadi high impedance sam- pai HOLD di-high-km lagi.
3. Semua interrupt (kecuali RS dan NMI) dimatikan dengan men-set bit INTM ke 1. Interrupt Flag Register (IFR) diclear.
4. B it-bit status diset sebagai berikut :
O V ^ O XF = 1 SXM =*= 1 TRM = 0 NDX = 0 HM = 1 CENB1 ® 0 CENB2 = 0 OVLY = 0 AVIS = 0 RAM = 0 BIG - 0 INTM * I BRAF = 0 IPTR = 0 CNF = 0 C - 1 PM = 0
dan MP/MC(pin) PMST(MP/MC)
Bit-bit status lainnya tidak didefinisikan dan harus diini- sialisasi sebagaimana mestinya.
5. Global memory allocation register (GREG) dinolkan se- hingga semua memory menjadi lokal,
6. Repeat Counter (RPTC) diclear.
7. Suatu sinyal reset yang sinkron (SRESET) digunakan un
tuk menginisialisasi rangkain-rangkaian peripheral.
Setelah sinyal RS d u h ig h -km lagi, eksekusi dimulai dari lo
kasi 0 pada program memory.
Nonmaskable interrupt yang kedua adalah NMI. NMI adalah soft reset, dan dapat diaktifkan pada saat interrupt service routine sekalipun. Semua interrupt dinonaktifkan pada saat NMI dijalankan. Perbedaannya dengan reset ialah NMI tidak mempengaruhi mode dari device
Interrupt-interrupt yang lain adalah maskable interrupt, yang dapat diaktifkan dengan men-set bit yang bersesuaian dari IMR (iinterrupt m ask register) pada saat INTM=0. IMR meru
pakan memory-mapped register 16 bit dan dapat dikenakan operasi baca maupun tulis.
4.3.1 O rganisasi I n te r r u p t Prosesor C5x mempunyai empat buah ekstem al, maskable user interrupt, yaitu INTI - INT4, yang dapat digunakan oleh device luar untuk meng-interrupt prosesor dan lima buah user maskable interrupt yang bersifat internal, yaitu RINT, XINT, TINT, TRNT, dan TXNT. Reset dan NMI adalah nonmaskable external interrupt. Semua in
terrupt ini juga dapat dibangkitkan secara software dengan in
struksi INTR, dan khusus untuk interrupt NMI tersedia sebuah instruksi NMI untuk mengaktifkannya. Selain itu ter
dapat sebuah software interrupt, yaitu TRAP yang tidak mem
punyai prioritas tetapi mempunyai vektor address sendiri.
Lokasi vektor dan prioritas dari berbagai interrupt dapat dili- hat pada tabel 2-1.
Lokasi vektor interrupt ditentukan oleh lima bit IPTR pada status register PMST dan nomor dari interrupt yang berse
suaian. Pada saat reset, semua bit IPTR diset ke 0, sehingga
memetakan interrupt vektor ke page 0 dari program memory.
Alamat vektor ini dapat dipindahkan ke setiap page sebesar 2K dari 64K lokasi program memory yang ada, dengan meng- isikan nilai tertentu ke IPTR. M isalnya, vektor interrupt 5 (RINT) dapat dipindahkan ke alamat 080Ah dengan mengisi DPTR dengan 1, seperti terlihat pada gambar 2-4.
TA BEL 2-10
P R IO R IT A S DAN LO K A SI IN T E R R U P T
Name Location Priority Function
Dec Hex
R S 0 0 1 (highest) External reset signal
RM1 36 24 2 Nonmaskable interrupt
I R T T 2 2 3 Externa! user interrupt U1
TRTZ 4 4 4 External user interrupt #2
TRT3 6 6 5 External user interrupt #3
T I N T 6 8 6 Internal timer interrupt
R IN T 10 A 7 Serial port receive interrupt
X IN T 12 C 8 Serial port transmit interrupt
T R N T 14 E 9 T O M port receive interrupt
T X N T 16 10 10 T D M port transmit interrupt
T R T J 16 12 11 External user interrupt #4
--- 2 0 -3 3 14-21 N/A Reserved
T R A P 34 22 N/A Tra p instruction vector
--- 3 8 -3 9 2 6 -2 7 N/A Reserved
--- 4 0 -6 3 2 8 -3 F N/A Software interrupts
IPTR =00001 /
Vector 0 0 0 0 1 0 0 0
Bit 15 14 13- 12 11 10 9 8
I N T - 5
0 0
6 5
1 0 1 0
3 2 1 0
GAMBAR 2-4J)
PEN EN TUA N ALAMAT V E K T O R IN T E R R U P T
4) b id ., hal.5-5.
® Jbid.,hal. 3-56.
5. P E R IP H E R A L
CPU CSx mempunyai 28 buah register yang dipetakan ke daerah data memory. Selain itu terdapat IS register peripheral dan 16 I/O port yang juga dipetakan ke data memory. Semua register ini bersifat memory-mapped.
Terdapat tujuh buah interface peripheral yang dihubungkan ke CPU C5x, yaitu serial port, TDM serial port, timer, software- program m able wait state generator, I/O port, divide-by-one clock, dan pin-pin XF dan BIO. Peripheral-peripheral ini dikontrol dengan menggunakan register-register kontrol yang terdapat dalam memory map. M en-set atau mereset bit-bit tertentu dapat mengak- tifkan, mematikan, atau menginisialisasi peripheral secara dinamis.
5.1 G eneral-P urpose I/O P in
CSX mempunyai dua buah pin general-purpose yang dapat dikontrol secara software. Pin BIO adalah pin input untuk branch control, dan pin XF adalah external fla g output pin.
Pin BIO memonitor status dari device peripheral, sebagai al- tem atif dari interrupt. Branching bersyarat dapat dilakukan jik a BIO aktif (low).
Pin XF dapat memberi sinyal ke device ekstem al melalui software. XF diset ke 1 pada saat reset, dan setelah itu dapat diubah dengan instruksi SETC dan CLRC.
5.2 S erial P o rt
Untuk berkomunikasi dengan peralatan-peralatan serial, terd a
pat on-chip serial port yang bersifat bidirectional (full
duplex). Port ini bersifat statis dan dapat beroperasi pada se- barang frekuensi clock yang rendah. Frekuensi maksimum se
rial port jik a menggunakan internal clock adalah (CLKOUT1) / 4 (5 M bit/s pada 50 ns, 7.14 M bit/s pada 35 ns).
TABEL 2-2#)
P IN -P IN SER IA L P O R T
Pins D escription
C LK X Transmit clock signal
C L X R Receive clock signal
D X Transmined serial data signal
D R Received serial data signal
F S X Transmit frame synchronization signal
F S R Receive framing synchronization signal
Pin-pin yang digunakan dalam operasi serial port dapat dilihat pada tabel 2-2. Untuk transmisi data, diperlukan tiga buah sinyal untuk menghubungkan pin-pin transmit dari device pe- ngirim dengan pin-pin receive dari device penerima. Pin DX (transm itted serial data signal) mengirim data yang sebe- namya, pin FSX transmit fra m e synchronization signal) menginisialisasi pengiriman tersebut, dan pin. CLKX (transm it clock signal) men-clock transfer bit-bit. Pin-pin yang berse- suaian pada device penerima adalah DR, FSR, dan CLKR.
Gambar 2-4 menunjukkan bagaimana pin-pin ini dihubungkan di antara port serial dua buah C5x untuk komunikasi satu arah dari device 0 ke device 1.
5.2.1 O perasi Serial P o rt. Serial port beroperasi melalui tiga buah memory-mapped register, yaitu
♦ SPC : Serial port Control Register
*> Ibid., hal. 5-15.
'C5x Device 0 'CSx Device 1
DX DR
FSX FSR
CLKX CLKR
GAMBAR 2~SP
TR A N SFER SER IA L P O R T SATU ARAH
DR CLKR CLKX DX
GAMBAR 2-68)
B L O K DIAGRAM SER IA L PO R T
Ib id , hat. 5-16.
•> hal. 5-17.
♦ DXR : D ata Transmit Register
♦ DRR : D ata Receive Register
dan dua buah register lainnya yang tidak dapat diakses tetapi memungkinkan double-buffering untuk operasi transmit dan receive, yaitu
♦ XSR : Transmit Shift Register
♦ RSR : Receive Shift Register
Pada gambar 2-6 terlihat konfigurasi pin-pin dan register pada serial port dan bagaimana double-buffering dilakukan.
D ata yang dikirim dituliskan ke DXR, dan data yang diterima dibaca dari DRR. Pengiriman dilakukan dengan menulis data ke DXR, yang menggandakannya ke XSR jik a XSR dalam keadaan kosong (data terakhir sudah dikirim secara serial melalui pin DX). XSR berfungsi menggeser data ke pin DX, sehingga DXR dapat diisi lagi segera sesudah isinya dicopy- kan ke XSR.
Dengan selesainya penulisan data dari DXR ke XSR, terjadi transisi 0 ke 1 pada bit XRDY (transmit ready) di SPC dan hal ini membangkitkan serial p o rt transm it interrupt (XINT), berarti DXR siap menerima data yang baru. Proses yang se- rupa terjadi di bagian penerima. D ata dari pin DR digeser masuk ke RSR, yang menggandakannya ke DRR darimana data tersebut dapat dibaca. Selesainya penulisan RSR ke DRR menimbulkan transisi 0 ke 1 pada bit RRDY (receive ready) di SPC dan hal ini mengaktifkan serial p o rt receive interrupt (RINT). Mekanisme di atas menunjukkan double-buffering pada serial port, karena data dapat ditulis ke DXR atau di
baca dari DRR sementara pengiriman atau penerimaan yang lain dilakukan.
5.2.2 Serial P o rt C ontrol R egister. SPC mengontrol operasi serial port. Register ini panjangnya 16 bit dan dapat di- lukiskan seperti pada gambar 2-7.
15 14
§
13 12 11 10 9 e 6 1
F R E E K O F T R S R F U L L X 5 H E W F T 7 X R D Y R R O Y IN1 INO R R S T X R S T TX M M CM FSM F O O L E R E S
R//W R/W R R
N o te : R ■ R ead, W • Write
R R/W R/W R/W R/W R/W R/W R/W R
GAMBAR 2-79)
SER IA L P O R T C O N TR O L R E G IS T E R
6. M EM O RY
Jangkauan alamat memory total untuk prosesor C5x adalah 224K x 16 bit yang terbagi ke dalam 4 segmen : 64K program, 64K data lokal, 64K I/O port, dan 32K data global. Segmen pro
gram terdiri dari instruksi-instruksi dan tabel-tabel yang digu- nakan untuk eksekusi. Lokasi data lokal menyimpan data-data yang digunakan oleh instruksi. Daerah data global dapat digu- nakan bersama-sama dengan prosesor lain dalam sistem untuk per- tukaran data, atau dapat berfungsi sebagai lokasi data tambahan.
Lokasi I/O berhubungan dengan memory-mapped peripheral ek- stemal dan juga dapat berfungsi sebagai tempat penyimpanan data ekstra.
Prosesor-prosesor C5x mempunyai memory on-chip yang cu- kup besar kapasitasnya. C50 mempunyai 2K boot ROM, 9K single-access RAM (SARAM) untuk program/data, dan 1056 word dual-access RAM (DARAM). B oot ROM terletak di dalam daerah program pada alamat 0 dan berfungsi untuk memboot -sistem
bid.y hal. 5-18.
secara internal. 9K SARAM dapat dipetakan ke daerah program maupun daerah data dan terletak pada alamat 0800h di kedua daerah. SARAM memerlukan satu machine cycle untuk melakukan operasi baca atau tulis. DARAM dapat dibaca dan ditulisi dalam cycle yang sama. 1056 word dari DARAM dibagi ke dalam tiga blok : blok 0 (BO) adalah 512 word pada alamat 0100h-02FFh di data memory lokal, atau OFEOOH-OFFFFh di daerah program. Blok 1 (B l) adalah 512 word pada alamat 0300h-04FFh di data memory lokal, dan blok 2 (B2) adalah 32 word pada alamat 060h di data memory lokal. Untuk lebih jelasnya, peta memory dari C50 dapat dilihat pada gambar 2-8.
Hex Proa ram Hex Proa ram Hex Data
0000 Interrupts and Reserved
0000 Interrupts and Reserved
0000 0 0 5 F 00-60
Memory-Mapped Registers 0 0 2 r
.0030
(External) 0 0 2 F (O n -C hip )
O n-C h ip D A R A M B2 External
0030 O n -C h ip 0 0 7 F
0 7 F F 0060 oeoo
0 7 F F R O M Reserved
0600 O n -C h ip S A R A M
(R A M -1 )
O n -C h ip S A R A M (R A M -1 )
0100
02 F F 0300
O n -C h ip D A R A M BO ( t N F - O ) Reserved (C N F -1 ) External
(R A M -0 )
External
(R A M -0 ) O n -C h ip
D A R A M fit 2 B F F
2C00
2 B F F 0500
2C 00 Reserved
External - External 0600
2 B B F
O n -C h ip S A R A M (O V L Y -1 ) External (O V L Y -O )
F D F F . F D F F 2 C O O
F E O O F F F F
O n -C h ip D A R A M BO (C N F « 1 ) External (C N F -0 )
FEOO
F F F F F F F F
External
'MP/KTC « 1 M P / M C -0
(Microprocessor Mode) (Microcomputer Mode)
GAMBAR 2-8I0) M EM ORY MAP C50
“ > Ibid., hal. 6r3.
6.1 K o n fieu rasi P ro g ram M emory
Daerah program memory pada C5x dapat menjangkau sampai 64K x 16 bit alamat, baik on-chip maupun off-chip. Setelah reset, konfigurasi ini diatur oleh level tegangan pada pin MP/MC di register PMST. Jika pin ini high, device berfungsi sebagai mikroprosesor, dan on-chip ROM tidak dialamati.
Jika pin ini low, device dikonfigurasikan sebagai mikrokom- puter, dan on-chip ROM diaktifkan. C5x mengambil vektor resetnya pada lokasi 0 di program memory, sehingga jik a de
vice beroperasi sebagai mikrokomputer, ia akan mulai be- kerja dari on-chip ROM. Kalau tidak, device akan mulai be- kerja dari memory off-chip.
TABEL 2-3*0
K O N FIG U R A SI PR O G RA M M EM O RY C50
C N F R A M M P/H C R OM S A R A M D A R A M B O O ff-C h lp
0 .0 0 0 0 0 0 -0 7 F F 0 8 0 0 -F F F F
0 0 1 0 0 0 0 -F F F F
0 1 0 0 0 0 0 -0 7 F F 0 8 0 0 -2 B F F 2 C 0 0 -F F F F
0 1 1 0 6 0 0 -2 B F F 0 0 0 0 -0 7 F F
2 C 0 0 -F F F F
1 0 0 0 0 0 0 -0 7 F F F E O O -F F F F 0 8 0 0 -F D F F
1 0 1 F E 0 0 -F F F F 0 0 0 0 -F D F F
1 1 0 0 0 0 0 -0 7 F F 0 8 0 0 -2 B F F F E O O -F F F F 2 C 0 0 -F D F F
1 1 1 0 8 0 0 -2 B F F F E O O -F F F F 0 0 0 0 -0 7 F F
2 C 0 0 -F D F F
Pada ^aat reset, SARAM dan 512 word program/data DA- RAM (BO) tidak terletak di daerah program memory. Untuk memetakannya ke dalam program memory, caranya adalah dengan men-set bit RAM di register PMST ke 1 (SARAM)
u> bid.y hal. 6-6.
dan men-set bit CNF di register ST1 ke 1 (BO). Konfigurasi program memory yang tersedia untuk prosesor C50 dapat dili- hat pada tabel 2-3.
6.2 K onfigurasi D ata M em ory
D ata memory lokal dapat terletak di dalam maupun di luar chip prosesor. Pada saat reset, 1056 word DARAM dipetakan ke daerah data lokal. SARAM dapat dipetakan ke daerah ini dengan men-set bit OVLY di register PMST ke 1. Semua lo- kasi dalam daerah 0h-800h yang tidak dipetakan ke on-chip memory merupakan lokasi reserved on-chip (80-FFh dan 500-7FFh). Alamat 0h-4Fh berisi memory-mapped register on- chip, dan alamat 50-5Fh berisi memory-mapped I/O port. S e
mua konfigurasi lokal data memory yang mungkin pada C50 ditunjukkan pada tabel 2-4.
TABEL 2-4lJ)
K O N FIG U RA SI DATA M EM ORY LO K A L C50
C N F O V L Y D A R A M BO D A R A M B1 D A R A M B2 S A R A M O ff-C h lp
0 0 1 0 0 h -2 F F h 300 h -4 FF h 6 0 b -7 F h 8 0 0 h -F F F F h
0 1 10 0 h -2 F F h 300h— 4FFh 6 0 h -7 F h 8 0 0 h -2 B FFh 2 C O O h -F F F F h
1 0 - 300h— 4FFh 6 0 h -7 Fh 8 0 0 h -F F F F h
1 1 - 300fr-4FFh 6 0 h -7 F h 8 0 0 h -2 B FFh 2 C 0 0 b -F F F F h
6.3 K onfigurasi G lobal M emory
Untuk aplikasi multiprosesor, C5x dapat menyediakan data memory global, di mana komunikasi dengan lokasi memory ini dilakukan dengan sinyal-sinyal kontrol BR (bus request) dan READY.
m Sbid.t hal. 6-12.
Kapasit&8 memory global ditentukan oleh global m em ory alio- cation register (GREG) yang terletak pada alamat Sh di data memory. Deiapan bit terendah dari register ini menentukan ukuran global memory antara 256 word dan 32K word, se- dangkan deiapan bit tertinggi tidak dipakai dan terbaca seba
gai logika 1. Nilai-nilai GREG yang bersesuaian dengan berbagai konfigurasi global memory dapat dilihat pada tabel 2-5.
TABEL 2-Sl3)
K O N FIG U R A SI DATA M EM ORY GLOBAL
G R E G Value Lo cal M em ory G lo b a l M e m o ry
R ange • Worda Range * W o rd s
ooooooxx Oh— O F F F F h 65,536 _ 0
. 1 0 0 0 0 0 0 0 Oh— 0 7 F F F h 32,768 0 8 0 0 0 h — O F F F F h 3 2 , 7 6 8
1 1 0 0 0 0 0 0 Oh— O B F F F h 49,152 o c o o o h -o r r F F h 16,384
1 1 1 0 0 0 0 0 Oh— O D F F F h 57,344 O E O O O h — O F F F F h 8,192
1 1 1 1 0 0 0 0 Oh— O E F F F h 61,440 O F O O O h — O F F F F h 4 , 0 9 6
1 1 1 1 1 0 0 0 O h— 0 F 7 F F h 63,488 0 F 8 0 0 h — O F F F F h 2, 0 4 8
1 1 1 1 1 1 0 0 O h— O F B F F h 64,512 O F C O O h - O F F F F h 1,024
1 1 1 1 1 1 1 0 O h— O F D F F h 65,024 O F E O O h — O F F F F h 512
1 1 1 1 1 1 1 1 Oh— O F E F r h 65,280 O F F O O h — O F r F F h 256
6.5 Boot L o ad er C50
Jika pin MP/MC dari C50 diberi logika low pada saat reset, eksekusi dimulai dari lokasi 0 pada on-chip ROM. ROM ini sudah diprogram oleh pabrik pembuatnya dengan boot load program. Fungsi utama dari boot loader adalah menentukan sumber dari kernel program, membaca, dan kemudian menu- liskannya ke daerah program memory. Kernel program inilah yang mengatur transfer kode dari user ke prosesor.
Program boot loader ini men-set status register CPU sebelum menginisialisasi boot load. Pada mulanya, semua interrupt di- matikan, DARAM BO dan on-chip SARAM dipetakan ke
°> b id ., hal. 6-29.
daerah program memory (CNF=1, R A M -1, GVLY=0), dan 32K global data memory dipetakan ke daerah data di alamat 08000h sampai OFFFFh. Boot routine kemudian membaca boot routine selection word pada lokasi OFFFFh di global data memory. 8 bit LSB dari word ini menentukan sumber dan mode transfer dari kernel program, apakah 8/16 bit serial mode, 8/16 bit parallel I/O mode, 8/16 bit paralel EPROM mode, atau warm boot.
Setelah transfer kode selesai, global memory ditiadakan sebe- lum kontrol diberikan ke alamat tujuan.
7. K O N SE P SINYAL DAN SISTEM
Konsep sinyal dan sistem ada dalam berbagai bidang. Walau- pun sifat fisiknya dapat berbeda-beda, semua sinyal mengandung informasi mengenai suatu fenomena. Sebagai contoh, tnekanisme vokal manusia menghasilkan suara dengan menciptakan fluktuasi dalam tekanan akustik. Pada gambar 2-9 dapat dilihat rekaman dari suatu sinyal suara, yang didapat dengan menggunakan sebuah microphone untuk mendeteksi variasi dalam tekanan akustik, dan kemudian mengubahnya ke dalam sinyal listrik. Bunyi yang ber
beda bersesuaian dengan pola yang berbeda dalam variasi tekanan akustik.
Secara matematis, sinyal didefinisikan sebagai fungsi dari satu atau lebih variabel yang independen / saling bebas. M isalnya, sinyal suara secara matematis menyatakan tekanan akustik seba- gai fungsi dari waktu. Dalam hat ini waktu merupakan varibel be*
bas dan tekanan akustik merupakan varibel terikat. Untuk
pembahasan selanjutnya, dianggap variabel bebas dalam represen tasi matematis dari suatu sinyal adalah waktu.
300 riMc
■ t < i i <
• I M
GAMBAR 2-9I4)
REKAM AN KATA "SH O U LD W E C H A SE"
Variabel bebas dalam representasi matematis dari suatu sinyal dapat bersifat kontinu ataupun diskrit. Sinyal kontinu mem
punyai variabel bebas yang kontinu, sedangkan sinyal diskrit hanya didefinisikan untuk nilai-nilai varibei bebas yang tertentu.
Sinyal kontinu disebut juga sinyal analog. Selain variabel bebas, amplitudo (besar) sinyal juga dapat bersifat kontinu atau diskrit.
M) Oppenheim, Willsky, with Young, Signals and System s (New Delhi : Prentice-Hall of India, 1990), hal. 8.
Sinyal digital adalah sinyal yang baik amplitudo maupun variabel bebasnya bersifat diskrit.
Untuk membedakan sinyal kontinu dan sinyal diskrit, bi- asanya digunakan simbol t untuk variabel kontinu dan n untuk variabel diskrit. Selain itu, variabel kontinu akan dilingkupi oleh tanda kurung (.), sedangkan variabel diskrit menggunakan kurung siku [.]. Ilustrasi sinyal kontinu x(t) dan sinyal diskrit x[n] dapat dilihat pada gambar 2-10.
X(t)
-1*1-
n( n ]
GAMBAR 2-1015>
<A) SINYAL K O N TIN U (B) SINYAL D IS K R IT
Sistem pengolahan sinyal juga dapat diklasifikasikan menurut cara di atas. Sistem waktu-kontinu (continuous-time system ) ada- iah sistem yang input dan outputnya merupakan sinyal kontinu,
w - "bid., hal. 11.
dan sistem waktu diskrit mempunyai input dan output sinyal diskrit. Demikian pula, sistem digital adalah sistem di mana input dan outputnya adalah sinyal digital. Pengolahan sinyal digital merupakan transformasi dari sinyal yang bersifat diskrit dalam amplitudo maupun waktu.
Suatu kelompok sistem yang penting adalah sistem yang ber
sifat linear dan tim e-invariant (sering disingkat LTI). Sistem lin
ear adalah sistem yang mempunyai sifat superposisi. Secara matematis, jik a y, dan y 2 adalah respon sistem untuk input xt dan x2, maka respon sistem untuk ax, + bxj adalah ay, + by2. Sistem tim e-invariant adalah sistem untuk mana pergeseran sinyal input akan mengakibatkan pergeseran output yang bersesuaian. Dengan kata lain, sistem time-invariant tidak terpengaruh oleh waktu.
Dengan sifat-sifat tersebut, jik a input suatu sistem LTI dapat dinyatakan dalam sinyal-sinyal basis tertentu, maka outputnya merupakan kombinasi respon sistem untuk sinyal-sinyal basis ter
sebut. Sebagai contoh, jik a sinyal input untuk sistem LTI diskrit merupakan sinyal eksponensial kompleks e,n, maka respon sistem juga merupakan sinyal kompleks eksponensial yang sama, hanya dengan amplitudo yang berbeda, yaitu HCs^e”*, di mana H(s) se
cara umum merupakan fungsi dari variabel kompleks s.
8. D E R E T F O U R IE R U N TU K SINYAL D IS K R IT P E R IO D IK
Secara umum, variabel s dalam eksponensial kompleks e>n berbentuk CT+jOO. Namun dalam analisis Fourier, s dibatasi berupa bilangan imajiner mumi, s = jCO sehingga kompleks eksponensial yang akan digunakan berbentuk ejwn, di mana w menyatakan frekuensi dari sinyal- diskrit dan n merupakan variabel bebas.
Suatu sinyal diskrit x[n] dikatakan periodik jik a terdapat be- berapa harga p ositif N sedemikian hingga x[n+N] = x[n] untuk setiap n. Nilai p ositif terkecil N dinamakan perioda fundamental dari x[n] dan dilambangkan dengan N0. Besaran 27C/N0 dinamakan frekuensi fundamental C0o.
Jika x[n] = ejC2x/K)n, maka 27C/N adalah frekuensi fundamen
tal dan perioda fundamental adalah N. Sinyal
x[n] = Y , a k e ^ ln}N^ (2.1) k=<N>
merupakan kombinasi linear dari beberapa kompleks eksponensial yang harmonis, artinya sinyal tersebut dibentuk oleh beberapa kompleks eksponensial yang frekuensinya merupakan kelipatan dari frekuensi fundamental 27I/N, dan semuanya periodik dengan perioda N. Suku untuk k=0 adalah suku DC atau konstan yang mempunyai frekuensi 0. Kedua suku untuk k~ +l dan k= -l mem
punyai frekuensi fundamental 27C/N dan dinamakan komponen- komponen fundamental, atau komponen harmonik pert-ama. Kedua suku untuk k=+2 dan k=-2 mempunyai frekuensi dua kali frekuensi komponen fundamental, dan dinamakan konponen har
monik kedua. Secara urnum, komponen-komponen untuk k=+N dan k --N dinamakan komponen harmonik ke-N.
Notasi k =<N> berarti penjumlahan tersebut dilakukan untuk N buah nilai bulat dari k. Hal ini merupakan sifat khusus dari sinyal kompleks eksponensial diskrit, yaitu hanya terdapat rJ buah kompleks eksponensial yang berbeda yang periodik dengan peri- ode N. Alasan untuk kenyataan ini adalah bahwa sinyal-sinyal kompleks eksponensial diskrit yang berbeda frekuensi sebesar 27C atau kelipatannya adalah identik, yaitu:
ej(a+2nr)n _ ej m eJlnm ^wn
Representasi sinyal periodik dalam bentuk persamaan (2.1) dinamakan representasi D eret Fourier. Koefisien diberikan oleh
a k = f t E (2.2)
H= <N>
Persamaan (2.1) sering disebut persamaan sintesis dan per
samaan (2.2) disebut persamaan analisis. Kedua persamaan ini membentuk pasangan deret Fourier untuk sinyal diskrit. Koefisien- koefisien ak dinamakan koefisien-koefisien D eret Fourier dari x[n], atau koefisien-koefisien spektral dari x[n]. Koefisien- koefisien ini menjelaskan dekomposisi x[n] sebagai jumlahan dari N kompleks eksponensial yang harmonis.
Representasi deret Fourier di atas berlaku untuk setiap sinyal diskrit yang periodik, karena setiap sinyal diskrit yang periodik dicirikan oleh tepat N buah nilai yang terhingga, yaitu nilai-nilai sinyal tersebut untuk satu periode. Persamaan analisis deret Fourier (2.2) semata-mata mentransformasikan kelompok N buah nilai ini ke kelompok lain yang ekuivalen, yaitu N buah koefisien deret Fourier, dan persamaan sintesis memungkinkan kita untuk mendapatkan deretan sinyal semula sebagai jumlahan dari suku-
suku yang terhingga.
9. IN T E R P R E T A S I TRANSFORM ASI F O U R IE R
Suatu interpretasi dari transformasi Fourier dilukiskan pada gambar 2-11 Terlihat bahwa inti transformasi Fourier adalah
menguraikan suatu sinyal ke dalam komponen-komponen sinusoi
dal yang berbeda-beda frekuensinya. Jika jumlah semua sinusoi
dal ini membentuk sinyal semula, transformasi Fourier dari sinyal semula telah didapatkan. Grafik transformasi Fourier menunjuk- kan amplitudo dan frekuensi dari setiap komponen sinusoidal.
GAMBAR 2 - l l 16)
IN T E R P R E T A SI F O U R IE R TRA N SFO RM
Dari gambar 2-11 terlihat juga bahwa sinyal semula yang peri
odik dapat diuraikan menjadi dua komponen sinusoidal dengan frekuensi yang berbeda. Jika sinyal semula tidak periodik , trans- formasi Fouriem ya akan merupakan fungsi frekuensi yang kontinu, artinya merupakan jumlahan sinusoidal dari segala frekuensi. Hal ini. dilukiskan oleh fungsi persegi pada gambar 2-12.
^ Brigham, E. Oran, The Fast Fourier Transform and i s Applications (New Jersey : Prentice- Hall Inc.,1988), hal. 5.
<•)
GAMBAR 2 -I2 17)
F O U R IE R TRANSFORM DARI PULSA P E R S E G I
Dapat disimpulkan bahwa transformasi Fourier merupakan representasi frekuensi-domain dari suatu sinyal. Representasi ini mengandung informasi yang tepat sama dengan kandungan infor- masi dari sinyal semula, hanya dari sudut pandang yang berbeda.
10. D IS C R E T E F O U R IE R TRANSFORM (D FT)
Representasi deret Fourier untuk sinyal diskrit yang periodik dapat diperluas dengan Discrete Fourier Transform, yang berlaku untuk sinyal-sinyal diskrit dengan durasi yang terhingga.
M isalnya x[n] adalah sinyal diskrit dengan durasi yang ter
hingga, artinya terd ap atsu atu bilangan bulat N, sehingga x[n] = 0,
^di luar interval 0£ n £ N, -1.
Untuk mendapatkan koefisien-koefisien deret Fourier dari sinyal ini> didefinisikan suatu sinyal periodik xfn] dengan periode N>N, sedemikian hingga
tT> b id ., hal. 7.
* [ n ] “ x[n]» 0< n < N-1
Koefisien-koefisien deret Fourier untuk x[n] diberikan oleh
ak = jj £ x[n]e-*C'dN>n
n ~ < N >
Dengan mengambil interval penjumlahan untuk mana x[n] = x[n], didapat
w-i
ak = ± E x[tt]e~jk(-'lxlN)’' (2.3) tt= 0
Koefisien-koefisien afc yang diberikan oleh persamaan (2.3) merupakan DFT dari x[n]. Biasanya, DFT dari x[n] dinotasikan sebagai X[k] dan didefinisikan sebagai
AM
X(k) = ak = i E x [ k ] « - > « " , * = 0 , 1 ...N - l
««= 0
(2.4)
Harga N dalam persamaan di atas dapat bervariasi, asalkan N lebih besar daripada durasi x[n]. Karena itu X[k] dalam p er
samaan di atas sering dinamakan DFT N titik untuk memperjelas banyaknya suku yang terlibat dalam proses penjumlahan.
DFT menjadi suatu alat analisis yang berguna karena dapat menghampiri transform asi Fourier untuk sinyal kontinu. Untuk memperjelas mengenai hal ini, perhatikan sinyal kontinu periodik h(t) dan transformasi Fouriem ya H(f) pada gambar 2-13a. Agar pasangan transformasi ini dapat diimplementasikan dengan kom- puter digital, fungsi-fungsi kontinu yang ada harus diubah menjadi diskrit, Hal ini diwujudkan dengan menggunakan D iscrete Fourier Transform.
-Ilf; f?
- H - ‘
hftUgftl
\
;fll; ° I I 1 t f 1
] /
#
1
# H P . 4 *.
>01
«
'}1 T.
\ 1T
X«)
•T I
}; /llh ° t y L J \
K
H J J
1- T”
'111' * "
A , It)
1. o -|lH ||iff
L
T,
•ii m u-
ft i
\ V
HI
*(kT| AT^
\
.4ltfh o i f i L j t
hi 'j Cln/NTl
ft
•... J
<
J
I n i r !
GAMBAR 2-13l8>
PENURUNAN G RA FIS D IS C R E T E F O U R IE R TRAN SFORM
Untuk mengubah sinyal h(t) menjadi diskrit, dilakukan proses sam pling terhadap h(t). Secara teoritis, sam pling terhadap h(t) di
lakukan dengan mengalikan h(t) dengan fungsi sampling yang
“ > S u d 'h a l. 102.
ditunjukkan pada gambar 2-13b. Ini adalah deretan impuls dengan amplitudo satu yang terpisah dengan interval (sampling) sejauh T.
Sinyal yang disampling dan transformasi Fouriemya ditunjukkan pada gambar 2-13c. Terlihat bahwa hasil transformasinya meru
pakan perulangan dari transformasi mula-mula yang terpisah pada jarak 1/T. Hal ini disebabkan perkalian dua buah sinyal dalam time-domain bersesuaian dengan konvolusi dari transformasi kedua sinyal tersebut di bidang frekuensi.
Pasangan^ transformasi Fourier pada gambar 2-13c belum da
pat diproses oleh komputer karena hasil sampling h(t) mempunyai juirrfah tak terhingga banyaknya. Untuk membatasi jum lah sample ini, dilakukan pemotongan dengan menggunakan sinyal persegi pada gambar 2-13d. Hasil kali dereten sample yang tak terhingga dengan fungsi pemotong ditunjukkan pada gambar 2-14e. Di sini dimisaikan panjang fungsi pemotong persegi yang dipakai tidak sama dengan4celipatan bulat dari periode sinyal semula.
Sampai d rsin i Iiasil yang diperoleh belum dapat diproses se
cara digital karena transformasi Fourier merupakan fungsi kontinu.
Karena itu iu n g si frekuensi tersebut harus disampling juga. Di sini digunakan interval sampling 1/T0. Perkalian dalam frekuensi do
main bersesuaian dengan konvolusi dalam time-domain, di mana kita membentuk sinyal diskrit periodik g(kT) yang sama dengan sinyal tersampling untuk satu periode. Hasilnya adalah pasangan transformasi C ourier diskrit pada gambar 2-13g. Terlihat bahwa fungsi -waktu sem ula dihampiri oleh N buah sample; Fourier trans
form semula juga dihampiri oleh N buah sample. Pasangan N buah sample ini merupakan pasangan transformasi Fourier diskrit yang mendekati pasangafl transformasi yang asli.
11. FAST F O U R IE R TRANSFORM
Untuk suatu sinyal diskrit x[n], DFT dari sinyal tersebut diberikan oleh persamaan (2.4) :
N-1
X(k) = £ £ x[n] k = 0,1, 1
«*o
Persamaan tersebut menghubungkan N buah sample waktu dengan N buah sample frekuensi. Faktor ekponensial dalam per
samaan tersebut dinamakan twiddle fa c to r yang bersifat periodik dengan periode N dan dilambangkan dengan WNnk, sehingga DFT dari x[n] dapat dituiiskan sebagai
AM
m = h £ * { » ] < ; * = 0 . 1 ...
« = 0
WNnfc =
Dalam persamaan tersebut, N menyatakan jumlah tit-ik data atau sample. M isalnya jik a N=4, persamaan tersebut dapat di- kalkulasi sebagai berikut:
X (0 )= x[0]W° + x[l]W ° + x[2]W° + x[3]W°
X ( l ) = x[0]W° + x [l]W ! + x[2]W2 + x[3]W 3 X(2) = x[0]W° + x [l]W 2 + x[2]W* + x[3]W*
J*T(3) = x[0]W° + x [l]W 3 + x[2]W* + x ^ W 9
Terlihat bahwa untuk menghitung persamaan tersebut secara langsung, diperlukan N2 perkalian kompleks dan N (N -l) penjum
lahan kompleks. Jika N besar, maka jum lah operasi aritmetika yang diperlukan menjadi sangat besar, sehingga DFT menjadi kurang praktis.
Suatu cara yang lebih cepat dan efisien untuk menghitung DFT adalah menggunakan algoritma Fast Fourier Transform (FFT). Algoritma ini pertama kali diperkenalkan oleh J. Cooley dan W. Tukey pada tahun 1965 dan menjadi sangat populer karena secara signifikan mengurangi jumlah operasi aritm etik yang diperlukan.
Dengan FFT, jum lah titik data N merupakan bilangan yang da
pat difaktorkan sehingga seluruh jum lah titik DFT dapat dipecah ke dalam kelompok-kelompok yang makin lama makin kecil. Ke
mudian dengan memanfaatkan sifat simetri dan periodisitas dari twiddle fa c to r, jumlah operasi aritmetika yang diperlukan dapat dikurangi. Jumlah transformasi terkecil yang didapatkan meru
pakan akar atau radix dari algoritma FFT yang dipakai.
Untuk algoritma FFT radix 2, N merupakan pangkat dari 2, atau N - 2” . Jumlah titik mula-mula N dibagi ke dalam 2 bagian, kemudian masing-masing N/2 titik yang dihasilkan dibagi dua lagi.
Demikian seterusnya, sampai kelompok terkecil yang masing- masing hanya terdiri dari 2 titik. Dengan cara seperti itu, jumlah perkalian kompleks yang diperlukan menjadi Nm/2 dan penjumla
han kompleks yang diperlukan dapat dikurangi menjadi Nm. Untuk N — 1024 = 210, jumlah operasi yang diperlukan berkurang lebih dari 200 kali.
Salah satu cara untuk menggambarkan FFT adalah menggu
nakan diagram alir (signal flo w graph) seperti pada gambar 2-14.
Vektor data/titik mula-mula, ^ (k ), diletakkan pada kolom p er
tama. Kolom kedua merupakan datay an g bersesuaian dengan vek
tor mula-mula setelah melalui operasi perkalian dan penjumlahan.
Demikian pula kolom ketiga. Pada umumnya, akan terdapat m buah kolom di mana N = 2m.
COMPUTATION ARRAYS
t *" \
0 «ti Arr«v A m y 1 A n y 2
•0<M *,(*» ■,»>
GAMBAR 2-1419)
F F T SIGNAL F L O W G RA PH, N=4
Diagram alir tersebut dapat diartikan sebagai berikut : setiap titik (node) dimasuki oleh dua jalu r dari titik-titik sebelumnya.
Jalur-jalur tersebut membawa hasil kali besar data dari node se
belumnya dengan twiddle fa k to r W* yang bersesuaian, ke node
node dalam kolom berikutnya. Jalur tanpa faktor W* dianggap mempunyai faktor pengali sama dengan 1. Jalur-jalur yang me- masuki node yang sama akan dijumlahkan. Contoh :
xi(2) = ^ ( 0 ) + W2Xq(2).
Diagram alir untuk N - 16 ditunjukkan pada gambar 2-15.
Terlihat bahwa dalam setiap kolom selain kolom data, selalu ter
dapat dua node yang jalur masukannya berasal dari pasangan node yang sama dari kolom sebelumnya. M isalnya, node x,(0) dan xt(8) dihitung dari node Xq(0) dan x0(8). Node-node seperti ini dinamakan dual-node. Perhitungan untuk suatu pasangan dual
node tidak tergantung pada pasangan lainnya, sehingga hasii perhi
tungan yang baru dapat ditempatkan pada lokasi penyimpanan
B id .,h a l. 136.
sebelumnya. Ini disebut in-place computation. Contohnya, x,(0) dan xt(8) dapat dihitung serentak dari x^O) dan x0(8) dan ha- silnya dikembalikan ke lokasi yang sebelumnya ditempati oleh x0(0) dan Xq( 8 ) . Dengan cara ini, kapasitas penyimpanan hanya di-
batasi oleh data x„(k) saja.
D A TA COMPUTATION ARRAYS
A R R A Y j - — *
/■I i-2 / • 3 ttt ■
GAMBAR 2 -I5 20) DUAL NODE
137.
Pada kolom kedua (kolom /=* 1), sepasang dual node, misal- nya x,(0) dan x,(8) dipisahkan oleh k = 8 = 16/2* = N /21. Dalam kolom / = 2, pasangan dual-node, misalnya x2(8) dan x2(12) terpisah sejauh k = 4 = 16/22 = N/21 . Demikian pula dalam kolom / = 3 dan / = 4, pasangan dual node terpisah sejauh k = N/2f.
D apat disimpulkan bahwa pasangan dual-node untuk node x,(k) adalah Xj (k+N/2*).
Perhitungan untuk pasangan dual-node membutuhkan hanya satu perkalian kompleks. Untuk jelasnya, perhatikan node x2( 8 ) dan dualnya Xj(12), Jahir-jalur transmisi yang berasal dari node Xj(12) dikalikan dengan W4 dan W12 sebelum masuk k e n o d e x2(8) dan x2(12). Tetapi W* = -W 12, sehingga hanya satu perkalian diperlukan dengan x ^ ^ ) . Secara umum, jik a twiddle fa c to r pada suatu node adalah Wp, maka twiddle factor untuk dual-nodenya adalah Wp+w/2. Dan karena W1* - -Wp+N/2, hanya satu: perkalian yang perlu dilakukan untuk menghitung pasangan dual-node. Kom- putasi untuk pasangan dual-node diberikan oleh sistem persamaan:
x,(k) = xM(k) + WpxM (k+N/2')
x,(k+N/2') = xM(k) - W x,., (k+N/2*) (2.5) Dalam menghitung data pada setiap kolom, biasanya dimulai dari k=0 dan bekerja urut ke bawah. Dengan mengetahui bahwa setiap pasangan dual-node terpisah sejauh N /21, dapat dilakukan lompatan setelah tiap N/21 node. M isalnya pada kolom / = 2, jik a kita mulai dengan node kr=0, kita tahu bahwa dual-nodenya terle- tak pada k=16/22=4, seperti dapat dilihat pada gambar. Demikian juga untuk node-node berikutnya sampai k~4. Di sini kita men- jum pai sekumpuian node yang telah dihitung, yaitu dual dari node- node dengan k= 0 ,l,2 ,3 . Karena itu kita dapat melompati node-
node untuk k -4 ,5 ,6 ,7 . Demikian pula untuk node-node selanjut- nya. Secara umum, jik a kita bekerja dari atas ke bawah dalam ar
ray /, kita menghitung persamaan 2.5 untuk N/2* node pertama, melompati N/2' node berikutnya, dan seterusnya. Proses selesai jik a dicapai node dengan indeks lebih dari N -l.
Untuk menentukan harga p, salah satu cara adalah menuliskan indeks k dalam bentuk biner m bit, kemudian digeser ke kanan se- jauh m -l dan terakhir urutan bit-bitnya dibalik.
*“ »4lk l«X U t Xlnl
0 »4I0000I • fc-« X100001
»s i — x i i i i i i
GAMBAR 2-1621)
O PE R A S! PEM B A LIK A N B IT , N=16
30 2>id., ha\. 142.
Langkah terakhir dalam komputasi FFT adalah mengembalikan urutan titik-titik data yang teracak pada kolom terakhir. Ini di- lakukan dengan menuliskan indeks k dalam bentuk biner kemudian membalik urutan bit-bitnya. Pengaturan seperti ini juga dapat di- lakukan pada titik-titik data awal, sehingga outputnya sudah teru- rut sebagaimana mestinya. Pengacakan pada hasil akhir FFT merupakan konsekuensi langsung dari proses penurunan FFT.
Pada gambar 2-16 ditunjukkan operasi pembalikan bit di atas, di mana x4(k) merupakan output yang teracak dan X(n) merupakan output yang diharapkan.
12. A L G O R ITM A F F T D-IT DAN D IF
Dalam menghitung FFT radiks 2 dengan algoritma Decimation In Time (DIT), data sebanyak N=2M dibagi menjadi dua bagian, yaitu data-data dengan indeks genap dan indeks ganjil. Kedua bagian ini membentuk dua buah DFT dengan N/2 titik. Masing- masing DFT dari N/2 titik ini dihitung dari dua buah DFT dengan N/4 titik, yaitu titik-titik dengan indeks genap dan indeks ganjil.
Demikian seterusnya, sampai dldapatkan kumpulan DFT dari 2 buah titik saja. Twiddle factor untuk DFT dengan 2 titik adalah 1 dan -1, sehingga perhitungannya dapat dilakukan dengan mudah.
Signal flow graph untuk FFT radiks 2 DIT 16 titik dapat dilihat pada gambar 2.17.
Pada algoritma FFT radiks 2 Decimation In Frequency, data sebanyak N=2M dibagi menjadi dua bagian, yaitu data dengan indeks 0 sampai N/2-1 dan data dengan indeks N/2 sampai N -l.
Dengan. komputasi dual-node, DFT dari N titik ini dapat dihitung.
Pangkat dari twiddle factor berjalan dari 0 sampai N/2-1.
xy/
/ x \ \s \ x / \ x x x / / x x x \
n//x\\
o—ie
o—k o—'s
§ o2"5 1 ”h*5HI 53
%555 I II I 1 I fSed<cq
s
<o aMHHHHHHQw.ao«<Hfa*&HZPWOh2
o*ou*ZoV5ff DeFatta, Lacas, nd Hodgjtiss, DigitaJ Signal Processing : A System Design Approach (New Y ork: John Wiley & Sons, Inc., 1988), haL 278
Kemudian hasil perhitungan tersebut dibagi menjadi dua bagian yang merupakan DFT dengan N/2 titik, dan dihitung dengan cara yang serupa. Proses tersebut diulangi sampai didapatkan stage yang merupakan kumpulan dari DFT dengan 2 titik di mana pangkat dari twiddle merupakan harga tunggal yaitu nol.
Signal flow graph untuk FFT radiks 2 DIF 16 titik dapat dili- hat pada gambar 2.18. Terlihat bahwa proses dekomposisi ber
jalan dari kiri ke kanan, di mana kelompok DFT terdiri dari jum lah titik yang makin lama makin kecil. Metode DIF ini meru- pakan cara altem atif untuk menghitung FFT. Namun secara kom- putasional, tidak ada perbedaan yang nyata dengan algoritma DIT.
GAMBAR 2-1823)
F F T RAD IKS 2 D IF 16 T IT IK
Xbid.hal. 290.
Pangkat dari twiddle factor yang digunakan pada setiap stage dapat ditentukan dengan menggunakan twiddle look-up table sep
erti pada tabel 2.6. Dalam tabel tersebut, ERF (Exponent Repeat Factor) menyatakan jum lah perulangan dari deretan pangkat ek- sponen untuk stage yang bersangkutan. M isalnya untuk stage m=3 dan N -1 6 , ERF=2. Ini berarti deretan pangkat (0,2,4,6) diulangi dua kali dalam seluruh perhitungan di stage ke tiga.
TABEL 2-624)
TW ID D LE L O O K -U P TABLE
PI-T2 T W ID D L E FACTOR EXPONENTS FOR N - 16. 64. 256. A N D 10:4 PO IN T F IT S .
N m E R F Radix 2 Twiddle Factor E xponents
16 1 8 0
2 4 0 4
3 2 0 2 4 - 6
4 I 0 1 2 3 4 5 6 7
64 1 32 0
2 16 0 16
3 8 0 8 \t 24
4 4 0 4 8 12 16 20 24 28
5 2 0 2 4 6 8 10 12 14 1:6 18 20 22 24 26 28 30
6 1 0 1 2 3 4 * 6 7 8 9 10 M 12 13 14 15 16 . . 31
256 1 128 0
2 64 0 64
' 3 32 0 32 64 96
4 16 0 16 32 -48 6 4 8 0 - 9 6 112
5 8 0 8 16. 24 32 40 48 56 64 72 80 88 96 104 112 120
6 4 0 4- 8 12 16 20 24 28 32 36 40 44 48 52 56 60 . . 124 7 2 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 . . 126 8 1 0 I 2 .3 4 5 6 ■ 7 8 9 10 11 12 13 14 15 . • 12?
1024 1 512 0
2 ■ 256 0 256 3 128 0 128 256 384
4 64 0 64 28 1:92 256 320-384 448
5 32- 0 32 64 W 1 2 8 160 192 2 2 4 256 288 320 352 384 . . 480 6 16 0 16 32 48 64 :80 96 112 128 144 160 176 192 . . 496 7 8 0 8 16 24 32 40 48 56 64 72 80 88 96 . . 504 8 4 0 A 8 12 16 20 24 *28 32 36 40 44 48 . . 508
9 2 0 2 4: 6 8 10 12 14 16 18 20 22 24 . . 510
10 1 0 1 2 J 4‘ 5 ■ 6 “7 8 9 10 11 12 . . 511
30 Ibid., hal. 285.