2.1 Pengolahan Sinyal Digital
Suatu sinyal didefinisikan sebagai besaran fisik yang berubah- ubah menurut, waktu, ruang atau variabel- variabel lainnya. Sinyal dapat dideskripsikan sebagai fungsi dari satu atau lebih variabel. Sebagai contoh, fungsi- fungsi :
s1(t) = 5t (2.1)
s2(t) = 20 t2 (2.2)
mendeskripsikan dua buah sinyal, sinyal s1 berubah secara linear menurut variabel t dan sinyal s2 berubah secara kuadratik menurut varibel t. Untuk sinyal yang dipengaruhi oleh dua variabel atau lebih diberikan oleh contoh persamaan berikut ini :
s(x,y) = x + 3xy + 2x2 (2.3)
persamaan (2.3) mendeskripsikan dua variabel bebas x dan y yang dapat mewakili dua sumbu koordinat dalam bidang dua dimensi.
Sinyal-sinyal yang dideskripsikan pada persamaan (2.1), (2.2) dan (2.3) termasuk dalam sinyal-sinyal yang dapat dideskripsikan menjadi suatu fungsi matematis presisi yang tergantung pada satu, dua atau lebih variabel. Namun ternyata pada penggunaan praktisnya sinyal terdiri atas beragam bentuk yang sebagain besar ternyata sangat sulit untuk dapat dideskripsikan menjadi suatu fungsi matematis, sinyal-sinyal ini biasa disebut sebagai sinyal natural.
Secara matematis manusia telah mengembangkan berbagai bentuk pendekatan dengan ketelitian yang cukup tinggi untuk perhitungan sinyal-sinyal natural. Salah satu contoh sinyal natural yang sering kita temukan adalah sinyal suara manusia seperti pada Gambar 2.1.
2.1.1. Penjelasan Umum Sinyal Kontinu dan Sinyal Diskrit
Berdasarkan selang waktu pengambilannya, sinyal dapat dibedakan menjadi dua kelompok besar, yaitu :
2.1.1.1. Sinyal Kontinu
Sinyal kontinu atau sering disebut sinyal analog, didefinisikan untuk selang kontinu (a,b) dengan harga a dapat mencapai harga -~ (negatif tak hingga) dan b dapat mencapai ~ (tak hingga).
Secara matematis sinyal kontinu dideskripsikan dengan fungsi matematis dari satu atau lebih variabel dengan selisih yang sangat kecil antara variabel satu dengan lainnya atau mendekati harga nol.
Sinyal-sinyal yang didefinisikan pada persamaan (2.1) dan (2.2) di atas adalah contoh-contoh sinyal kontinu dengan persyaratan t terletak antara negatif tak hingga dan tak hingga (-~ < t < ~) seperti pada Gambar 2.2.
Gambar 2.1. Sinyal Suara Manusia
Gambar 2.2. Contoh Sinyal Kontinu
2.1.1.2. Sinyal Diskrit
Pendefinisian sinyal dilakukan antara (a,b) dengan a dan b adalah bilangan integer yang terdefinisi pada harga tertentu. Secara matematis sinyal diskrit dideskripsikan dengan fungsi matematis dari satu atau lebih variabel di mana harga variabel pada sinyal diskrit selalu berupa bilangan bulat. Persamaan (2.1) dan (2.2) dapat menjadi sinyal diskrit dengan persyaratan variabel t merupakan kelipatan dari bilangan bulat atau t = -n, -n+1, ..., -2, -1, 0, 1, 2, ..., n-1, n. Contoh sinyal diskrit seperti pada Gambar 2.3.
Gambar 2.3. Contoh Sinyal Diskrit
2.1.2. Konsep Dasar Sampling Sinyal
Untuk memudahkan proses perhitungan dalam pengolahan sinyal maka perlu dilakukan proses pensamplingan atau pengambilan harga sinyal kontinu pada harga-harga variabel tertentu dengan selang bedasarkan kelipatan bilangan integer sehingga sinyal kontinu yang ada menjadi sinyal diskrit.
Pensamplingan yang dilakukan pada suatu sinyal sangat tergantung pada frekuensi dari sinyal yang akan disampling. Untuk bisa mendapatkan nilai- nilai sinyal pada variabel tertentu dalam selang harga tertentu maka pada proses sampling harus diambil sebanyak mungkin harga sinyal untuk setiap kelipatan bilangan bulat dari variabelnya. Aturan Nyquist menjelaskan bahwa frekuensi sampling (Fs) untuk suatu sinyal adalah lebih dari dua kali frekuensi maksimum (Fmaks) sinyal yang akan disampling. Sehingga
Fs > 2*Fmaks (2.4) 1
Sebagai contoh, sebuah sinyal cosinus dengan persamaan matematisnya :
xa(t) = A cos (2pF0t + ?0) + B cos (2pF1t + ?1) + C cos (2pF2t + ?2) (2.5)
1 Proakis, John G. and Manolakis, Dimitris G. Digital Signal Procesing : Principles, Algorithms, and Applications 3e. New Jersey : Prentice Hall, Inc., 1995.
untuk mendapatkan sampling sinyal diskrit dari persamaan sinyal di atas maka akan diambil harga frekuensi sampling (Fs) yang lebih besar dari dua kali harga frekuensi maksimum sinyal tersebut (Fmaks), jika F0 < F1 < F2 maka F2 sama dengan Fmaks, sehingga sesuai dengan persamaan (2.4) harga FS > 2 F2.
Persamaan umum untuk mendapatkan sinyal diskrit dari sinyal analog fungsi trigonometri cosinus :
x(t) = A cos (2 p Fmaks t) (2.6)
yang disampling dengan Fs > 2Fmaks adalah :
x(n) = A cos((2 p Fmaks /Fs) n + ?) (2.7)
n adalah bilangan bulat antara negatif tak hingga sampai tak hingga, harga ? merupakan pergeseran phasa.
2.1.3. Sinyal Digital
Hasil sampling sinyal kontinu menjadi sinyal diskrit digunakan sebagai dasar pengola han sinyal digital, karena sinyal-sinyal diskrit inilah yang disebut sebagai sinyal digital. Seperti telah dijelaskan di depan, sinyal diskrit merupakan fungsi dari variabel yaitu suatu integer. Sinyal diskrit tidak didefinisikan dan tidak sama dengan nol di antara dua buah sampling yang diambil. Atau dapat disimpulkan sinyal diskrit tidak terdefinisi dan tidak sama dengan nol untuk variabel yang tidak sama dengan bilangan bulat. Representasi sinyal digital dapat dilakukan dalam beberapa bentuk, yaitu :
a. bentuk grafis
Data-data sinyal digital direpresentasikan ke dalam grafik baik secara 2 dimensi maupun 3 dimensi seperti contoh pada Gambar 2.4.
Gambar 2.4. Representasi Sinyal Digital Dalam Bentuk Grafik
b. fungsional
Data-data sinyal digital diberikan dalam bentuk rumus matematik seperti contoh pada persamaan (2.)
sin(2 pi*n) , untuk –2 < n < 3
x(n) = 0.9*n , untuk 3 = n = 7 (2.8) n , untuk 8 < n < 10
c. tabel
Presentasi data-data sinyal diberikan dalam tabel, seperti pada Gambar 2.5.
N . . . -2 -1 0 1 2 3 4 5 . . .
X(n) . . . 0 0 0 1 4 1 0 0 . . .
Gambar 2.5. Representasi Sinyal Digital Dalam Bentuk Tabel
d. barisan, seperti contoh berikut ini
x(n) = [ . . . 0, 0, 1, 2, 4, 6, 7, 2, 0, 0, . . .]
Dalam perhitungan-perhitungan sinyal diskrit dikenal beberapa sinyal elementer yang sering digunakan antara lain :
{
• Unit impulse d(n), dengan persamaan umum
d(n) ={1 untuk n = 0 ; 0 untuk n?0} (2.9)
didefinisikan sebagai fungsi sinyal bernilai nol (0) untuk semua n integer kecuali pada n = 0, d(n) bernilai satu satuan seperti pada Gambar 2.6.
Gambar 2.6. Unit Impulse
• Sinyal step u(n), dengan persamaan umum
u(n) = {1 untuk n = 0 ; 0 untuk n < 0} (2.10) didefinisikan sebagai fungsi sinyal bernilai nol untuk semua integer n yang kurang dari 0 dan bernilai satu satuan untuk semua nilai n integer yang lebih dari sama dengan nol seperti ditunjukkan pada Gambar 2.7.
Gambar 2.7. Unit Step
• Sinyal ramp ur(n), dengan persamaan umum
ur(n) = {n untuk n = 0 ; 0 untuk n < 0} (2.11) didefinisikan sebagai fungsi sinyal bernilai nol untuk semua integer n yang kurang dari 0 dan bernilai n untuk semua nilai n integer yang lebih dari sama dengan nol seperti ditunjukkan pada Gambar 2.8.
Gambar 2.8. Unit Ramp
• Sinyal exponensial, dengan bentuk umum
x(n) = an ; untuk semua harga n (2.12)
a dapat berupa bilangan real maupun imajiner, pada tugas akhir ini hanya akan dibahas untuk harga a berupa bilangan real. Beberapa tipe grafik untuk macam batasan harga a seperti pada Gambar 2.9.
Gambar 2.9. Fungsi Exponensial, (a) –1 < a < 0, (b) a < -1, (c) 0 < a < 1, (d) a > 1
2.1.4. Operasi-operasi Dasar Sinyal Digital
Telah banyak konsep operasi sinyal digital yang dikembangkan untuk aplikasi dalam kehidupan sehari- hari maupun untuk penelitian ilmu pengetahuan, dan ada beberapa lagi konsep yang masih dikembangkan untuk mendapatkan hasil yang lebih maksimal.
Semua konsep yang dikembangkan dalam pengolahan sinyal digital memerlukan berbagai operasi dasar pengolahan sinyal. Dengan penerapan operasi- operasi dasar yang tepat maka akan dihasilkan suatu konsep yang praktis , cepat dan efisien dalam proses pengolahan sinyal digital.
Operasi-operasi dasar dalam pengolahan sinyal antara lain, operasi arithmetik, konvolusi, korelasi, transformasi, dan filter sederhana. Pada bab ini akan dibahas operasi-operasi dasar arithmetik, konvolusi dan korelasi.
(a) (b)
(c) (d)
2.1.4.1. Operasi Arithmetik Sinyal Digital.
Operasi yang akan dijelaskan adalah penjumlahan dan perkalian dua buah sinyal diskrit dengan selang variabel yang dibatasi pada harga-harga integer tertentu, seperti ditunjukkan oleh persamaan (2.13) dan (2.14). Operasi penjumlahan dan perkalian pada sinyal dilakukan sama seperti operasi penjumlahan dan perkalian biasa untuk dua buah bilangan. Karena operasi dilakukan pada deretan konstantan sinyal digital, maka setiap komponen pada satu sinyal dioperasikan dengan setiap komponen bersesuaian pada sinyal yang lain, seperti ditunjukkan pada persamaan (2.15) dan (2.16).
x(n) = {x0, x1, x2, ..., xn-2, xn-1, xn} (2.13) y(n) = {y0, y1, y2, ..., yn-2, yn-1, yn} (2.14) x(n) + y(n) = {x0 + y0, x1 + y1, x2 + y2, . . ., xn-2 + yn-2, xn-1 + yn-1, xn + yn} (2.15) x(n) * y(n) = {x0 * y0, x1 * y1, x2 * y2, . . ., xn-2 * yn-2, xn-1 * yn-1, xn * yn} (2.16)
2.1.4.2. Operasi Konvolusi
Konvolusi (diberi simbol : V) digunakan untuk mendapatkan sequence output suatu sistem atas input sequence yang diberikan pada sistem. Biasanya output dari suatu sistem atas inputan yang diberikan berupa penundaan dan atau pembesaran/pengecilan amplitudo sinyal inputnya. Output suatu sistem sangat dipengaruhi oleh karakteristik sistem terebut. Karakteristik sistem diberikan oleh impulse responsenya. Rumus umum operasi konvolusi pada sinyal kontinu diberikan oleh persamaan(2.17) yang biasa disebut dengan konvolusi integral.
y(t) =
∫
−
~
~
(
x ?)h(t-?)d? (2.17) 2
pada bab ini hanya akan dibahas proses konvolusi untuk data-data digital dan terhingga pada batas-batas tertentu. Dua buah data sequence h(n1) dan x(n2) dengan jumlah data masing- masing M1 dan M2 dapat dianggap sebagai impulse response sistem dan input yang diberikan pada sistem yang akan dilakukan operasi konvolusi menurut persamaan (2.18) dan (2.19) yang akan menghasilkan output y(k).
2 Ifeachor, Emmanuel C. and Jevis, Barrie W. Digital Signal Processing : A Practical Aproach.
Edinburgh : Addison-Wesley, 1993
y(k) =
∑
= ) −
2 , 1 max(
0
) ( ) (
M M
i
i x i k
h = h(k) V x(k) (2.18) 3
atau
y(k) =
∑
= ) −
2 , 1 max(
0
) ( ) (
M M
i
i k x i
h = x(k) V h(k) (2.19)
di mana harga k mulai dari k = 0 sampai k = M1+M2-1. Untuk data sequence yang tak hingga maka harga m dan n mencapai ~ dan -~.
Impulse response suatu sistem dapat dicari dengan proses konvolusi pada sistem dengan memberikan inputan berupa sua tu unit impulse. Sesuai dengan persamaan (2.18) maka
y(0) = h(0)x(0)
y(1) = h(1)x(0) + h(0)x(1)
y(2) = h(2)x(0) + h(1)x(1) + h(0)x(2)
y(3) = h(3)x(0) + h(2)x(1) + h(1)x(2)+ h(0)x(3) M
y(n) = h(n)x(0) + h(n-1)x(1) + … + h(0)x(n) (2.20) Sehingga akan dihasilkan output sama dengan impulse response dari sistem tersebut yaitu h(n) seperti pada Gambar 2.10., Gambar 2.11, Gambar 2.12.
Gambar 2.10. Input h(n)
3 Ibid
Gambar 2.11. Impulse Response System
Gambar 2.12. Output = h(n)
Dari impulse response yang dimiliki oleh sistem tersebut di atas jika sistem diberikan input sequence terhingga dengan nilai 1 untuk tiap sampling seperti Gambar 2.13., maka sesuai dengan persamaan (2.20) akan didapat grafik sinyal output seperti pada Gambar 2.14.
Gambar 2.13. h(n) = 1 untuk semua n
Gambar 2.14. Output Konvolusi
Sesuai dengan perhitungan matematiknya, baik itu untuk sinyal kontinu maupun digital, proses konvolusi memiliki karakteristik yang memenuhi hukum- hukum matematika sebagia berikut :
1. hukum komutatif
h(n) V x(n) = x(n) V h(n) (2.21) 4
2. hukum distribusi
x1(n) V [x2(n) + x3(n)] = x1(n) V x2(n) + x1(n) V x3(n) (2.22)5 3. hukum asosiatif
x1(n) V [x2(n) V x3(n)] = [x1(n) V x2(n)] V x3(n) (2.23) 6 proses konvolusi sangat berperan penting dalam disain filter yang akan dibahas pada sub bab selanjutnya. Proses konvolusi lain yang tidak dijelaskan pada bab ini adalah circular convolution dan fast linear convolution.
2.1.4.3. Operasi Korelasi
Pada dua buah data yang akan diproses dapat dicari hubungan keterkaitan antara keduanya dengan cara mencari derajat korelasi antara dua data sequence tersebut. Derajat korelasi adalah jumlah total dari perkalian dot antara data-data yang berpasangan pada dua data sequence atau dapat dituliskan sebagai persamaan (2.24)
r12 =
∑
= ) 2 , 1 max(
0
2
1( ) ( )
M M
n
n x n
x (2.24)7
hasil perhitungan derajat korelasi tergantung pada jumlah sampling data (N) yang diambil. Hasil yang di gunakan setelah normalisasi menjadi persamaan
r12 =
∑
= ) 2 , 1 max(
0
2
1( ) ( )
1 M M
n
n x n
N x (2.25)
untuk dua buah sinyal diskrit yang terdiri atas M1 dan M2 data sequence, maka harga N = 2*maks(M1,M2), dalam penerapannya sering kali kita mendapatkan suatu sinyal yang telah mengalami suatu pergeseran fasa setelah melalui suatu sistem yang dapat disebabkan oleh delay effect pada sistem seperti ditunjukkan pada Gambar 2.15.
4 Ibid
5 Ibid
6 Ibid
7 Ibid
dari Gambar 2.15.a. kita lihat bahwa dua buah data yang berbeda fasa 100%, semua hasil kali dot antara data-data yang bersesuaian adalah sama dengan nol, sehingga hasil korelasinya sama dengan nol. Untuk data yang berbeda fasa sebesar j seperti Gambar 2.15.b. maka perlu dilakukan pergeseran data dalam proses perhitungan.
Sehingga persamaan(2.25) menjadi r12(j) = r21(-j) =
∑
= ) +
2 , 1 max(
0
2
1( ) ( )
1 M M
n
j n x n
N x =
∑
= ) −
2 , 1 max(
0
1
2( ) ( )
1 M M
n
j n x n
N x (2.26)8
pada perhitungan korelasi data yang mengalami delay akan dihasilkan suatu efek yang disebut the end effect seperti ditunjukkan pada Gambar 2.16.
8 Ibid
n
n x1(n)
x2(n)
n x x1 = n + x1 = n
j
j
(a)
(b)
Gambar 2.15. Dua Sinyal Berbeda Phasa, (a) beda phasa 100%, (b) beda phasa j
The end effect disebabkan oleh data terhingga yang mengalami delay effect sehingga point sampling selanjutnya yang akan dikorelasikan dengan sampling dari data lainnya bernilai nol. Untuk mengatasi hal ini dilakukan dengan melipat gandakan data sampling sehingga setelah mengalami delay data sampling tidak ada yang bernilai nol.
2.1.5. Z Transform dan Inverse Z Transform
2.1.5.1. Z Transform
Z transform merupakan salah satu tools dalam DSP yang digunakan untuk merubah suatu sequence sinyal digital dari domain real ke dalam domain z yang merupakan variabel kompleks. Rumus umum transformasi z diberikan oleh
X(z) =
∑
∞−∞
=
− n
z
nn
x( ) (2.27) 9
Pada penerapannya transformasi z dilakukan pada n = 0 sampai dengan n = ~ sehingga persamaan (2.27) menjadi
X(z) =
∑
∞=
− 0
) (
n
z
nn
x (2.28)
9 Ibid
0 j n
r12(j) r12(j)true
r12(0) r12
Gambar 2.16. The End Effect
2.1.5.2. Invers Z Transform
Invers Z Transform digunakan untuk mendaptkan data sequence dari polynomial fungsi z dari suatu sinyal digital yang diberikan oleh persamaan umum
X(z) =
z b z
b z b b
z a z
a z a a
N N
N N
−
−
−
−
−
−
+ + +
+
+ + +
+
K K
2 2 1 1 0
2 2 1 1
0 (2.29)
Ada 3 metode yang dapat dipakai untuk mencari invers Z transform : a. metode pembagian panjang
b. metode pembagian partial c. metode residu
pada tugas akhir ini hanya akan dibahas metode pembagian panjang karena metode ini paling mudah untuk diterapkan ke dalam algoritma perhitungan bahasa pemrograman komputer.
Dengan metode pembagian panjang suatu polynomial sinyal hasil z transform, X(z), akan dijabarkan menjadi deret tak hingga
X(z) =
z b z
b z b b
z a z
a z a a
N N
N N
−
−
−
−
−
−
+ + +
+
+ + +
+
K K
2 2 1 1 0
2 2 1 1 0
= x(0) + x(1)Z-1 + x(2)Z-2 + x(3)Z-3 + . . . + x(n)Z-n (2.30) harga x(0), x(1), x(2), K, x(n) diberikan oleh
x(0) = a0/b0
x(1) = [a1-x(0)b1]/b0
x(2) = [a2-x(1)b1- x(0)b2]/b0
M
x(n) =
[
an -∑
= n −
i
bi
i n x
1
)
(
]/
b0, n = 1, 2, 3, ... (2.31) 10 harga x(0), x(1), x(2), K, x(n) merupakan sequence data hasil Inve rs Z transform.2.1.6. Fourier Transform
Fourier Transform digunakan untuk mengubah data dari domain waktu ke domain frekuensi. Untuk data analog / kontinu persamaan transformasi fourier diberikan oleh persamaan
10 Ibid
F(j? ) =
∫
−∞∞f(t)e−jωtdt (2.32) 11Fourier Transform untuk data-data diskrit biasa disebut dengan Transformasi Fourier Diskrit dengan rumus umum
X(k) =
∑
−= 1 − 0
/
) 2
(
N
n
N nk
e j
n
x π (2.33)
Pada tugas akhir ini hanya akan dibahas transformasi diskrit untuk data-data digital.
Sesuai dengan aturan euler
e-j2pnk/N = cos (2pnk/N) – j sin (2pnk/N)
dari persamaan (2.33) kita dapatkan bahwa untuk data sequence yang cukup banyak akan memerlukan proses perkalian dan penjumlahan yang sangat banyak, sehingga dapat menyebabkan semakin lambatnya proses perhitungan komputer.
Saat ini telah dikembangkan banyak metode perhitungan fourier transform untuk sinyal diskrit dengan proses yang lebih singkat dan efektif, yang paling banyak digunakan adalah Fast Fourier Transform (FFT). Metode FFT terdiri dari berbagai macam cara perhitungan. Yang akan dibahas pada tugas akhir ini adalah metode Butterfly.
2.1.6.1. Metode Butterfly untuk FFT
Ide dasar metode Butterfly dengan memisahkan data-data sinyal digital menjadi dua kelompok yaitu data dengan urutan n genap dan data dengan n ganjil, sehingga persamaan (2.33) dapat dijabarkan menjadi persamaan (2.34)
X(k) =
∑
− +∑
−ganjil n
N nk j genap
n
N nk
j x n e
e n x
_
/ 2
_
/
2 ( )
)
( π π (2.34) 12
Ambil harga n = 2r untuk komponen genap dan n=2r+1 untuk data komponen ganjil sehingga persamaan (2.34) menjadi
X(k) =
∑ ∑
−=
+
− −
=
− +( /2)1 +
0
/ ) 1 2 ( 2 1
) 2 / (
0
/
4 (2 1)
) 2 (
N
r
N k r j N
r
N rk
j x r e
e r
x π π
=
∑ ∑
−=
−
− −
=
− + ( /2)1 +
0
) 2 / /(
2 /
2 1
) 2 / (
0
) 2 / /(
2 (2 1)
) 2 (
N
r
N rk j N
k j N
r
N rk
j e x r e
e r
x π π π (2.35)
11 Ibid
12 Kuc, Roman. Introduction to Digital Signal Processing. Singapore : McGraw-Hill Book Company, 1982
Gambar 2.17. Reorder Data Proses Butterfly
0 8 4 12 2 10 6 14 1 9 5 13 3 11 7 15 0 8 4 12 2 10 6 14 1 9 5 13 3 11 7 15 0 4 8 12 2 6 10 14 1 5 9 13 3 7 11 15 0 2 4 6 8 10 12 14 1 3 5 7 9 11 13 15 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Data awal
Data reorder untuk proses FFT Butterfly
jika kita anggap xgenap(n) adalah komponen genap data sinyal digital dan xganjil(n) adalah komponen ganjil data sinyal digital maka Xgenap(k) adalah hasil Fourier Transform dari xgenap(n) untuk data sampling sebanyak N/2 dan Xganjil(k) adalah hasil Fourier Transform dari xganjil(n) untuk data sampling sebanyak N/2 yang akan periodik dengan periode N/2, kombinasi / jumlah Xgenap(k) dan Xganjil(k) akan membentuk X(k), sehingga persamaan (2.35) dapat disederhanakan menjadi
X(k) = (Xgenap(k)) + e-j2pk/N (Xganjil(k)) (2.36) Dengan menggunakan persamaan (2.36) berulang kali, metode Butterfly di operasikan untuk mengubah sistem perhitungan FFT untuk sebuah sinyal digital dengan data sebanyak N menjadi N buah siyal digital dengan data tiap sinyal adala h satu buah atau berupa spektrum tunggal. Proses pembentukan ulang (dekomposisi) sinyal ini dilakukan dengan konsep pemisahan data-data dengan n genap dan n ganjil seperti telah diuraikan di atas, di mana akan terjadi sebanyak 2Log (N) kali proses dekomposisi untuk menghasilkan N buah sinyal dengan spektrum tunggal seperti ditunjukkan oleh Gambar 2.17.
Sumber : Digital Signal Processing by Steven W. Smith
Data hasil dekomposisi inilah yang akan digunakan untuk proses Butterfly, jika diperhatikan lebih lanjut data hasil dekomposisi bisa didapatkan dengan suatu sistem pencerminan bit-bit biner urutan data awal, sepeti ditunjukkan oleh Tabel 2.1.
Tabel 2.1. Tabel Reorder Data untuk N = 16
Sebelum reorder Setelah reorder Desimal Binari Desimal Binari
0 0000 0 0000
1 0001 8 1000
2 0010 4 0100
3 0011 12 1100
4 0100 2 0010
5 0101 10 1010
6 0110 6 0100
7 0111 14 1110
8 1000 1 0001
9 1001 9 1001
10 1010 5 0101
11 1011 13 1101
12 1100 3 0011
13 1101 11 1011
14 1110 7 0111
15 1111 15 1111
Sumber : Digital Signal Processing by Steven W. Smith
Selanjutnya adalah mencari hasil FFT untuk N buah sinyal yang masing- masing terdiri atas satu buah data, di mana sesuai dengan persamaan (2.36) kita dapatkan hasil FFT dari N buah sinyal tersebut adalah sama dengan sinyal itu sendiri, sehingga jumlah sinyal sekarang menjadi N/2 buah dengan masing- masing sinyal memiliki dua buah data sequence. Untuk langkah selanjutnya perhitungan FFT dipengaruhi oleh keofisien e-j2pk/N yang sangat tergantung pada jumlah data (N) sinyal. Setelah dilakukan proses FFT sebanyak 2Log (N) kali dekomposisi maka hasil akhirnya inilah sebagai hasil FFT untuk sebuah sinyal dengan data sebanyak N.
2.1.6.2. Invers Fourier Transform
Teori invers fourier transform digunakan untuk mengembalikan domain data sinyal dari domain frekuensi ke domain waktu. Untuk data analog / kontinu Invers FFT diberikan oleh rumus
f(t) =
∫
− ππ
ω ω
π F(ω)ej nd 2
1 (2.37) 13
13 Ifeachor, Emmanuel C. and Jevis, Barrie W. Digital Signal Processing : A Practical Aproach.
Edinburgh : Addison-Wesley, 1993
x(n) (Input sequence)
y(n)
(Output sequence) Filter Digital
Gambar 2.18.Filter Digital dengan Sinyal Input dan Output h(k),k=0,1,…
(Impulse response)
sedangkan untuk data-data digital persamaan invers FFT diberikan oleh x(n) =
∑
−= 1 − 0
/
) 2
1 N (
k
N nk
e j
k N X
π (2.38)
pada tugas akhir ini hanya akan dibahas invers FFT untuk data-data digital.
2.1.7. Filter Digital
Filter merupakan suatu sistem dengan tujuan utamanya untuk mengubah karakteristik suatu sinyal yang diinputkan ke sistem filter tersebut. Dikenal dua macam filter yang sering digunakan, yaitu filter analog dan filter digital, kedua sistem ini memiliki fungsi secara umum yang sama, yang berbeda hanya terletak pada metode kerja, dan efektifitas kerja masing- masing filter untuk menangani inputan, artinya ada output yang lebih optimal dengan filter analog dan ada sinyal output yang lebih optimal dengan filter digital.
Pada tugas akhir ini hanya akan dibahas filter digital, suatu sistem filter digital disusun atas koefisien-koefisien sebagai karakteristik filter atau sering disebut dengan Impulse response filter seperti ditunjukkan oleh Gambar 2.18.
Menurut jumlah koefisiennya, filter dibagi menjadi dua kelompok besar, yaitu Infinite Impulse Response (IIR) dan Finite Impulse Response (FIR). Persamaan umum fungsi filter diberikan oleh persamaan (2.39) untuk IIR dan persamaan (2.40) untuk FIR.
y(n) =
∑
∞=
−
0
) ( ) (
k
k n x k
h (2.39) 14
y(n) =
∑
−= 1 −
0
) ( ) (
N
k
k n x k
h (2.40)
14 Ibid
Dalam prakteknya perhitungan untuk IIR tidak dapat diselesaikan karena jumlah koefisien yang tak hingga. Pada tugas akhir ini hanya akan dibahas tentang FIR. Ada beberapa metode perhitugan FIR yang sering digunakan, antara lain : window, optimal, dan frequency sampling. Pada tugas akhir ini hanya akan dibahas metode disain FIR dengan metode window. Beberapa spesifikasi filter akan digunakan sebagai inputan untuk perhitungan dalam metode window. Spesifikasi-spesifikasi untuk lowpass, highpass, bandpass dan bandstop filter seperti ditunjukkan pada Gambar 2.19.
Gambar 2.19. Spesifikasi Filter (a) Lowpass, (b) Highpass, (c) Bandpass, (d) Bandstop
(a) (b)
(d) (c)
T w T w
2ds 2ds
dp dp
2ds
dp dp
Fc_bawah Fc_atas
2ds
dp
2ds
Fc_atas Fc_bawah
T w T w T w
T w
Metode window menggunakan teori dasar Fourier Transform. Impulse response suatu filter dijabarkan dalam frekuensi responnya menurut rumus untuk invers fourier transform sesuai dengan persamaan (2.37). Sebagai contoh akan diambil sebuah filter Lowpass yang memiliki koefisien filter hD(n) dengan harga n mulai dari nol sampai tak hingga, memiliki frekuensi response HD(? ) yang diatur oleh persamaan
hD(n) =
∫
− π πω ω
π HD(ω)ej nd 2
1 (2.41) 15
dengan menganggap magnitude frekuensi filter ideal atau sama dengan satu (HD(? ) = 1) maka persamaan (2.41) dapat dijabarkan sebagai berikut
hD(n) = 21π
∫
−ππ1*ejωndω =∫
−ccd ej n
ω ω
ω ω
π 2
1
=
c c c
n n f
ω ω ) sin(
2 ,semua n (2.42)
menurut teori L’Hopital untuk n = 0 maka hD(n) = 2fc
dengan cara yang sama untuk Highpass filter didapatkan frekuensi response idealnya adalah
hD(n) =
c c c
n n f
ω ω ) sin(
−2
, semua n (2.43) 16
menurut teori L’Hopital untuk n = 0 maka hD(n) =1- 2fc
dengan cara yang sama untuk Bandpass filter didapatkan frekuensi response idealnya adalah
hD(n) =
1 1 1
2 2
2sin( ) 2 sin( )
2
ω ω ω
ω
n n f n
n
f − , semua n (2.44) 17
menurut teori L’Hopital untuk n = 0 maka hD(n) =2(f1- f2)
15 Ibid
16 Ibid
17 Ibid
dengan cara yang sama untuk Bandstop filter didapatkan frekuensi response idealnya adalah
hD(n) =
2 2 2
1 1
1sin( ) 2 sin( )
2
ω ω ω
ω
n n f n
n
f − , semua n (2.45) 18
menurut teori L’Hopital untuk n = 0 maka hD(n) =1-2(f2- f1) di mana fc, f1 dan f2
adalah frekuensi cutoff filter.
Dari koefisien filter ideal di atas, langkah selanjutnya adalah menghitung koefisien dengan beberapa metode window yang telah dikembangkan. Aturan-aturan untuk mendapatkan koefisien-koefisien dengan metode window (w(n)) yang sering digunakan ada beberapa, antara lain :
• Rectangular, semua koefisien filter ini sama dengan satu , jumlah koefisen filternya diberikan oleh persamaan (2.46)
Jumlah Koefisien = (0.9*sampling frekuensi)/transition width (2.46) Dengan Stopband attenuation maksimum filter yang dapat didesain adalah 21 dB.
• Hanning, persamaan untuk mencari koefisien filter diberikan oleh persamaan (2.47), dan jumlah koefisien filter Hanning diberikan oleh persamaan (2.48).
w(n) = 0.5 + 0.5 cos N πn
2 (2.47) 19
Jumlah Koefisien = (3.1*sampling frekuensi)/transition width (2.48) Dengan Stopband attenuation maksimum filter yang dapat didesain adalah 44 dB.
• Hamming, persamaan untuk mencari koefisien filter diberikan oleh persamaan (2.49), dan jumlah koefisien filter Hamming diberikan oleh persamaan (2.50).
w(n) = 0.54 + 0.46 cos N πn
2 (2.49) 20
Jumlah Koefisien = (3.3*sampling frekuensi)/transition width (2.50) Dengan Stopband attenuation maksimum filter yang dapat didesain adalah 53 dB.
• Blackman, persamaan untuk mencari koefisien filter diberikan oleh persamaan (2.51), dan jumlah koefisien filter Blackman diberikan oleh persamaan (2.52).
w(n) = 0.42 + 0.5 cos 1 2
− N
πn
+ 0.08 cos 1 4
− N
πn
(2.51) 21
18 ibid
19 Ibid
20 Ibid
Jumlah Koefisien = (5.5*sampling frekuensi)/transition width (2.52) Dengan Stopband attenuation maksimum filter yang dapat didesain adalah 74 dB.
• Kaiser, persamaan untuk mencari koefisien filter diberikan oleh persamaan (2.53), dan jumlah koefisien filter Kaiser diberikan oleh persamaan (2.54).
w(n) = Io ( )
1 1 2
2 / 2 1
β
β Io
N n
− − (2.53) 22
Io merupakan fungsi Bessel, Io diberikan oleh persamaan (2.54) Io(x) = 1 +
2
1 !
) 2 /
∑
(=
L
k k
x (2.54) 23
Harga ß ditentukan oleh beberapa karakteristik filter yang akan didesain, ß diberikan oleh persamaan (2.55).
0 ; A = 21 dB
ß = 0.5842(A-21)0.4 + 0.07886(A-21) ; 21 < A < 50 dB (2.55) 24 0.1102(A-8.7) ; A = 50 dB
di mana
A = -20 Log (ds) (2.56)
Passband ripple = 20 Log (1+dp) (2.57)
Di mana A adalah Stopband attenuation alternatif setelah hasil perhitungan, d adalah nilai minimum antara passband deviation (dp) dan stopband deviation (ds).
Jumlah Koefisien =
f tenuation StopbandAt
∆
− 36
. 14
95 .
7 (2.58)25
Dengan ? f adalah transition width ternormalisasi
? f = transition width / sampling frekuensi (2.59) Stopband attenuation maksimum filter yang dapat didesain adalah 90 dB.
21 Ibid
22 Ibid
23 Ibid
24 Ibid
25 Ibid
{
HD( ? )
W ( ? )
|H(?)|
hD(n)
w(n)
h(n) = hD(n)w(n)
Dari Keofisien filter ideal dan koefisien window method yang didapat akan dicari hasil akhir koefisien filter yang didesain, “melalui pendekatan praktisnya koefisien filter sesungguhnya didapatkan dengan perkalian langsung antara koefisien filter ideal yang bersesuaian dengan koefisien dari metode window”26 seperti ditunjukkan pada Gambar 2.20.
Gambar 2.20. Koefisien Filter h(n) = hD(n)w(n)
Sumber : Digital Signal Processing : A Practical Aproach oleh Ifeachor, Emmanuel C. dan Jevis, Barrie W.
sinyal output suatu filter untuk suatu sinyal input didapat dengan teori konvolusi sesuai dengan persamaan (2.40).
2.2. Bahasa Pemrograman Visual C++
Visual C++ atau C merupakan salah satu bahasa pemrograman tingkat tinggi, disamping bahasa pemrograman tingkat tinggi lainnya seperti : Basic, Pascal, cobol, fortran, dan lainnya. Dalam bidang teknik elektronika bahasa C digunakan untuk aplikasi yang sangat luas. Pada sub bab ini akan dibahas beberapa bagian / komponen bahasa Visual C++, antara lain : Object Oriented Programming dan class.
26 Ibid
Data Fungsi
Data Fungsi
Data Fungsi
Gambar 2.21. Paradigma OOP 2.2.1. Object Oriented Programming (OOP)
OOP merupakan suatu sistem pemrograman dengan melakukan pengelompokan pada beberapa intruksi / fungsi penyusun program menjadi satu kesatuan bagian yang disebut sebagai object. Bebrapa object saling berinteraksi untuk mengirimkan dan menerima data-data hasil pengolahan, dapat digambarkan seperti Gambar 2.20.
Sumber : Bahan Mata Kuliah Pemrograman Berorientasi Objek
2.2.2. Class
Class merupakan kumpulan dari beberapa object, dalam satu class ada tiga macam golongan variabel maupun fungsi yang dapat digunakan, yaitu :
• Private : variabel maupun fungsi pada golongan ini hanya dapat digunakan di dalam class itu sendiri.
• Protected : variabel maupun fungsi pada golongan ini hanya dapat digunakan di dalam class itu sendiri dan class-clas yang diturunkannya (akan dijelaskan kemudian).
• Public : variabel maupun fungsi pada golongan ini dapat pula digunakan di class lain.
Microsoft Visual C++ menyediakan Microsoft Foundation Class (MFC) yang merupakan hierarki class-class yang akan digunakan dalam membangun suatu aplikasi program, MFC Class Library 6.0 diberikan pada Lampiran 1.