Implementasi Proses Pembacaan Data ECG Implementasi Pengiriman Data Sandi Menggunakan Kanal AWGN

38

BAB IV IMPLEMENTASI

Pada bagian ini, penulis akan memaparkan proses implementasi sistem pengujian yang telah dirancang ke dalam bahasa yang dapat dimengerti mesin. Spesifikasi perangkat lunak yang digunakan dalam melakukan implementasi sistem pengujian adalah sebagai berikut : 1. Sistem operasi : Windows 7 Ultimate Edition. 2. MATLAB Version 7.10.0.499 R2010a.

4.1. Implementasi Proses

Subbab berikut akan menampilkan proses implementasi masing-masing proses utama yang terdapat dalam sistem pengujian, antara lain proses pembacaan data ECG, penyandian data ECG, pengiriman data yang telah disandikan melalui kanal AWGN, dan pengawasandian data sandi yang diterima dari kanal.

4.1.1. Implementasi Proses Pembacaan Data ECG

Proses pembacaan data ECG merupakan proses yang akan mengolah data mentah, yaitu data ECG menjadi data-data yang siap dipakai di dalam tahap penyandian data. Proses pembacaan data akan mengkonversi data ECG yang bertipe data unsigned integer menjadi data array bertipe integer. Proses pembacaan data akan menggunakan tiga file yaitu file “.dat”, file “.hea”, dan file .”atr”. Setelah data berhasil dibaca, data disimpan ke dalam file “.mat”. Kode program yang digunakan untuk membaca data ECG dapat dilihat pada lampiran 1. Data ECG yang digunakan untuk pengujian adalah data ECG yang diunduh dari MIT-BIH Arryhtymia Database. Data ECG akan dibaca dengan fungsi yang diunduh dari physionet.org. Fungsi pada program dinamakan Rddata. Rddata akan menghasilkan data seperti pada Lampiran 1. Data pada tabel tersebut akan menjadi data penguji untuk proses penyandian.

4.1.2. Implementasi Penyandian Data ECG

Setelah data ECG dibaca dan disimpan, selanjutnya data akan disandikan ke dalam sebuah Indeks. Pada bagian ini, data ECG hasil pembacaan akan melewati beberapa proses, yaitu proses pengubahan data ECG menjadi data biner dan proses penyandian data dengan kode konvolusi. Proses penyandian akan menggunakan tiga jenis rate, yaitu rate 1 2 � , 1 3 � , dan 1 4 � yang performanya akan diuji dalam tugas akhir ini.

4.1.2.1. Proses Pengubahan Data ECG Menjadi Data Biner

Listing program berikut merupakan kode program dengan nama fungsi Convertdec2bin. Data ECG yang telah dibaca nilainya akan dibulatkan terlebih dahulu. Kemudian data hasil pembulatan dikonversi menjadi data biner dengan ukuran 12 bit. Data hasil konversi tersebut kemudian diubah ke dalam bentuk baris agar dapat masuk ke dalam penyandi. function message=Convertdec2bindata data=int16data; proses pembulatan data convertmessage=dec2bindata,12; proses konversi decimal menjadi biner dengan ukuran 12 bit message=Ecgbarisconvertmessage; data diubah menjadi bentuk baris

4.1.2.2. Penyandian Data Dengan Kode Konvolusi

Rate � � � Listing program berikut merupakan kode program pembangkit sandi konvolusi rate 1 2 � . Penyandi konvolusi rate 1 2 � menggunakan tiga register dan generator polinomial yang dipakai adalah adalah � 1 = [101] dan � 2 = [111] . Hasil dari penyandian berupa deretan data biner bertipe “double”. function [hasil1,hasil2]=Generator12isiRegister1,isiRegister2,isiRegister3 r1=isiRegister1; r2=isiRegister2; r3=isiRegister3; u1=r1+r3; u2=r1+r2+r3; h1=modu1,2; h2=modu2,2; hasil1=h1; hasil2=h2; Penyandi konvolusi dengan rate � � � digunakan untuk menyandikan data ECG yang berbetuk data biner. Satu data biner akan disandikan menjadi empat data, yang meliputi dua data sandi dan dua data paritas. Listing program berikut merupakan kode program fungsi penyandi konvolusi dengan rate � � � . function [hasil,jumlah]=Encoder12message m=message; mp=Paritasm; R1=zeros; R2=zeros; R3=zeros; h=zeros; for i=1:sizemp,2 R3=R2; R2=R1; R1=mp1,sizemp,2-i+1; [h1,h2]=Generator12R1,R2,R3; hi,1=h1; hi,2=h2; end ha=zeros; count=1; for i=1:sizeh,1 ha1,count=hi,1; count=count+1; ha1,count=hi,2; count=count+1; end jumlah=sizeha,2; hasil=ha1,1:end-4; hasilpenyandian=hasil; savefile = hasilpenyandian12.mat; savesavefile, hasilpenyandian;

4.1.2.3. Penyandian Data Dengan Kode Konvolusi

Rate � � � Listing program berikut merupakan kode program pembangkit sandi konvolusi rate 1 3 � . Penyandi konvolusi rate 1 3 � menggunakan tiga register dan generator polinomial yang dipakai adalah adalah � 1 = [101], � 2 = [111], dan � 3 = [111]. Hasil dari penyandian berupa deretan data biner bertipe “double”. function [hasil1,hasil2,hasil3]=Generator13isiRegister1,isiRegister2,isiRe gister3 r1=isiRegister1; r2=isiRegister2; r3=isiRegister3; u1=r1+r3; u2=r1+r2+r3; u3=r1+r2+r3; h1=modu1,2; h2=modu2,2; h3=modu3,2; hasil1=h1; hasil2=h2; hasil3=h3; Penyandi konvolusi dengan rate � � � digunakan untuk menyandikan satu data biner menjadi sembilan data. Sembilan data tersebut meliputi tiga data sandi dan enam data paritas. Listing program dibawah ini merupakan fungsi penyandi konvolusi dengan rate � � � . function [hasil,jumlah]=Encoder13message m=message; mp=Paritasm; R1=zeros; R2=zeros; R3=zeros; h=zeros; for i=1:sizemp,2 R3=R2; R2=R1; R1=mp1,sizemp,2-i+1; [h1,h2,h3]=Generator13R1,R2,R3; hi,1=h1; hi,2=h2; hi,3=h3; end ha=zeros; count=1; for i=1:sizeh,1 ha1,count=hi,1; count=count+1; ha1,count=hi,2; count=count+1; ha1,count=hi,3; count=count+1; end jumlah=sizeha,2; hasil=ha1,1:end-6; hasilpenyandian=hasil; savefile = hasilpenyandian13.mat; savesavefile, hasilpenyandian;

4.1.2.4. Penyandian Data Dengan Kode Konvolusi

Rate � � � Listing program berikut merupakan kode program pembangkit sandi konvolusi rate 1 4 � . Penyandi konvolusi rate 1 4 � menggunakan tiga register dan generator polinomial yang dipakai adalah adalah � 1 = [101] , � 2 = [111] , � 3 = [111], dan � 4 = [111]. Hasil dari penyandian berupa deretan data biner bertipe “double”. function [hasil1,hasil2,hasil3,hasil4]=Generator14isiRegister1,isiRegister 2,isiRegister3 r1=isiRegister1; r2=isiRegister2; r3=isiRegister3; u1=r1+r3; u2=r1+r2+r3; u3=r1+r2+r3; u4=r1+r2+r3; h1=modu1,2; h2=modu2,2; h3=modu3,2; h4=modu4,2; hasil1=h1; hasil2=h2; hasil3=h3; hasil4=h4; Penyandi konvolusi dengan rate 1 4 � digunakan untuk menyandikan satu data biner menjadi dua belas data. Dua belas data tersebut meliputi empat data sandi dan delapan data paritas. Listing program dibawah ini merupakan fungsi penyandi konvolusi dengan rate 1 4 � . function [hasil,jumlah]=Encoder14message m=message; mp=Paritasm; R1=zeros; R2=zeros; R3=zeros; h=zeros; for i=1:sizemp,2 R3=R2; R2=R1; R1=mp1,sizemp,2-i+1; [h1,h2,h3,h4]=Generator14R1,R2,R3; hi,1=h1; hi,2=h2; hi,3=h3; hi,4=h4; end ha=zeros; count=1; for i=1:sizeh,1 ha1,count=hi,1; count=count+1; ha1,count=hi,2; count=count+1; ha1,count=hi,3; count=count+1; ha1,count=hi,4; count=count+1; end jumlah=sizeha,2; hasil=ha1,1:end-8; hasilpenyandian=hasil; savefile = hasilpenyandian14.mat; savesavefile, hasilpenyandian;

4.1.3. Implementasi Pengiriman Data Sandi Menggunakan Kanal AWGN

Listing program berikut merupakan kode program untuk proses pengiriman menggunakan kanal AWGN. Masukan dari program ini berupa data ECG yang telah disandikan dan nilai SNR yang digunakan untuk simulasi pengiriman data. Ukuran sinyal constellationí yang digunakan adalah sebesar 16 dan SNR yang digunakan yaitu 0 sampai 20. Jenis modulator yang digunakan adalah QAM-16. Data sandi akan di kirim sebanyak 21 kali dengan nilai SNR yang menjadi masukan. Keluaran dari program ini berupa 21 baris data sandi yang telah mendapat nilai error. function [messagefromkanal,yrx,nsamp]=AWGNmessage,SNR tic Setup Define parameters. M = 16; Size of signal constellation k = log2M; Number of bits per symbol n = 3e4; Number of bits to process nsamp = 1; Oversampling rate hMod = modem.qammodM; Create a 16-QAM modulator [a,b]=strreadSNR,dd,delimiter,:; snr=a:b; Signal Source Create a binary data stream as a column vector. x = message; Random binary data stream Bit-to-Symbol Mapping Convert the bits in x into k-bit symbols. xsym = bi2dereshapex,k,lengthxk.,left-msb; Modulation y = modulatemodem.qammodM,xsym; Modulate using 16-QAM. Transmitted Signal ytx = y; hx = waitbar0,Harap tunggu ...; steps = sizesnr,2; for i=1:steps ynoisy = awgnytx,snr1,i,measured; Received Signal yrx = ynoisy; Demodulation Demodulate signal using 16-QAM. zsym = demodulatemodem.qamdemodM,yrx; Symbol-to-Bit Mapping Undo the bit-to-symbol mapping performed earlier. z = de2bizsym,left-msb; Convert integers to bits. Convert z from a matrix to a vector. zTrans=z; dataTerimai,:=reshapezTrans,1,lengthzTrans1,:lengthzTran s:,1; waitbaristeps; end closehx; messagefromkanal=dataTerima; message=messagefromkanal; savefile = hasilpengiriman.mat; savesavefile, message; toc

4.1.4. Implementasi Pengawasandi