TUGAS AKHIR SIMULASI PENYANDI DAN PENGAWASANDI SANDI BIORTHOGONAL 8 BIT DENGAN MATLAB
TUGAS AKHIR
SIMULASI PENYANDI DAN PENGAWASANDI
SANDI BIORTHOGONAL 8 BIT
DENGAN MATLAB
Diajukan untuk memenuhi salah satu syarat memperoleh gelar Sarjana Teknik pada Program Studi Teknik Elektro
Jurusan Teknik Elektro Fakultas Sains dan Teknologi Universitas Sanata Dharma
disusun oleh :
LIA MELINA
NIM : 035114039
PROGRAM STUDI TEKNIK ELEKTRO
JURUSAN TEKNIK ELEKTRO
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
FINAL PROJECT
ENCODER AND DECODER SIMULATION
OF 8 BIT BIORTOGONAL CODES
WITH MATLAB
In partial fulfillment of the requirements for the degree of Sarjana Teknik Electrical Engineering Study Program
Electrical Engineering Departement Science and Technology Faculty Sanata Dharma University
LIA MELINA
NIM : 035114039
STUDY PROGRAM OF ELECTRICAL ENGINEERING
DEPARTMENT OF ELECTRICAL ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP
MOTTO : “
YESTERDAY IS A HISTORY
TOMORROW IS A MYSTERY
BUT
TODAY IS A GIFT”
Skripsi ini kupersembahkan untuk : Yesus Kristus dan Bunda Maria yang selalu MemberkatikuPakde dan Bude Totok yang selalu mendukungku Mbak Lus, Mamayo, Om Kelik dan Yudha yang selalu menyemangatiku
INTISARI
Sandi biorthogonal adalah penyandian bentuk gelombang yang dapat digunakan untuk memperbaiki sinyal pesan. Tujuannya untuk membuat sinyal pesan menjadi lebih handal jika ada gangguan, seperti noise, fading dan jamming. Jika ada kesalahan, maka penerima mampu mendeteksi dan mengkoreksi kesalahan sendiri.
Pada tulisan ini, penyandi dan pengawasandi sandi biorthogonal 8 bit akan disimulasikan menggunakan MATLAB. Sandi biorthogonal 8 bit disusun menggunakan matrik Hadamard H . Matrik katasandi biorthogonal ini terdiri dari 256 katasandi dengan
7
panjang 128 bit. Dengan matrik ini, sebuah masukan 2 digit akan diubah menjadi katasandi 128 bit. Proses pengawasandi terdiri dari proses deteksi dan koreksi error. Pendeteksian error menggunakan nilai Zij. Jika Zij = 1, maka kata terima tidak mengalami kesalahan. Jika 0 < Zij < 1, maka dapat dipastikan bahwa kata terima mengalami kesalahan. Jika Zij = 0, maka tidak dapat dipastikan bahwa kata terima tidak mengalami kesalahan. Proses koreksi error menggunakan proses Look up table. Program simulasi pengawasandi ini mampu mendeteksi 64 bit error dan mengkoreksi 31 bit error.
Hasil simulasi menunjukkan bahwa berapapun jumlah error yang terjadi, program mampu mendeteksi error. Sedangkan pada proses koreksi, program mampu mengkoreksi dengan jumlah error kurang atau sama dengan 31 bit. Jika jumlah error lebih dari
error 31 bit, program tidak selalu mampu mengkoreksi error.
Kata kunci : Sandi biorthogonal, matrik Hadamard, pengawasandi
ABSTRACT
Biorthogonal codes is a waveform coding that can be used to repair the information waveform. The goal of repairing the information waveform is to make the waveform more reliable to face the disturbance, such as noise, fading and jamming. If there was an error, the receiver will be able to detect and correct the error by itself.
In this paper, the biorthogonal codes 8-bit encoder and decoder will be simulated with MATLAB. Biorthogonal codes 8-bit was constructed by using Hadamard matrix H
7 .
This biorthogonal codeword matrix consist of 256 codewords with length of 128 bits. With this matrix, 2 digits input will be transformed to codeword 128 bits. The decoding process consist of error detection and error correction. The error detection used Zij value. If Zij = 1, there is no error in the received word. If 0 < Zij < 1, the received word is disturbed by an error. If Zij = 0, it can not be sure that there is no error in the received word. The error correction uses look-up-table process. Decoder simulation program is able to detect 64 bits error and to correct 31 bits error.
From the result, the simulation shown that the program was able to detect the error for all of error patern. In the error correction process, the program was able to correct the error when the error were 31 bits or less. If the error more than 31 bits, the program was not always able to correct the error.
Keywords : Biorthogonal codes, Hadamard matrix, decoding
LEMBAR PERNYATAAN PERSETUJUAN
PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS
Yang bertanda tangan dibawah ini, saya mahasiswa Universitas Sanata Dharma : Nama : Lia Melina Nomor Mahasiswa : 035114039 Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan Universitas Sanata Dharma Karya Ilmiah saya yang berjudul :
SIMULASI PENYANDI DAN PENGAWASANDI
SANDI BIORTHOGONAL 8 BIT
DENGAN MATLAB
beserta perangkat, yang diperlukan (bila ada). Dengan demikian saya memberikan kepada Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikan secara terbatas dan mempublikasikannya di Internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencantumkan nama saya sebagai penulis. Demikian pernyataan ini saya buat dengan sebenarnya. Dibuat di Yogyakarta Pada tanggal : 28 April 2009 Yang menyatakan (Lia Melina)
KATA PENGANTAR
Syukur dan terima kasih kepada Tuhan Yesus Kristus atas segala karuniaNya sehingga tugas akhir ini dapat diselesaikan dengan baik.
Penelitian yang berupa tugas akhir ini merupakan salah satu syarat bagi mahasiswa Jurusan Teknik Elektro untuk memperoleh gelar Sarjana Teknik di Universitas Sanata Dharma Yogyakarta. Penelitian ini dapat diselesaikan dengan baik atas bantuan, gagasan dan dukungan dari berbagai pihak. Oleh karena itu, peneliti ingin mengucapkan terima kasih kepada : 1.
Bapak Yosef Agung Cahyanta S.T., M.T., selaku Dekan Fakultas Sains dan Teknologi Universitas Sanata Dharma Yogyakarta.
2. Ibu Ir. Th. Prima Ari S., M.T., selaku Dosen Pembimbing tugas akhir yang telah banyak meluangkan waktu untuk menberikan bimbingan.
3. Bapak A. Bayu Primawan, S.T., M.Eng., selaku Dosen Pembimbing tugas akhir yang telah banyak meluangkan waktu untuk menberikan bimbingan.
4. Ibu Wiwien Widyastuti, S.T., M.T., selaku Dosen Penguji tugas akhir yang telah memberikan masukan dan saran.
5. Bapak Damar Widjaja, S.T., M.T., selaku Dosen Penguji tugas akhir yang telah memberikan masukan dan saran.
6. Pakde dan Bude Pamuji Sugiharto yang telah memberikan dukungan baik moril maupun materiil.
DAFTAR ISI
Halaman Sampul (Bahasa Indonesia) …………………………..........…...… i
Halaman Sampul (Bahasa Inggris) ................................................................ ii
Halaman Persetujuan …..............................................…....……….....……. iii
Halaman Pengesahan ……...............……………….....…...……...…......... iv
Pernyataan Keaslian Karya ….....…........................................……..….....… v
Halaman Persembahan …...................…………………….....……........…. vi
Intisari ……………………….......…...……………………......…...…....... vii
Abstract…………….......…………………….....………………...……... viii Lembar Pernyataan Persetujuan Publikasi Karya Ilmiah Untuk
Kepentingan Akademis ................................................................................. ix
Kata Pengantar ………….............……......……….....……………………... x
Daftar Isi ……………………………...…........……….....……………….. xii
Daftar Gambar ………….....…...........………………….......……………. xvi
Daftar Tabel ……………….....……..............………...….........……….. xviii
Daftar Lampiran ……………......................………………….…......…… xix
BAB I : PENDAHULUAN 1.1. Judul ........................................................................................ 1 1.2. Latar Belakang Masalah …………...............………......…… 1
1.4. Batasan Masalah …….………....................………......…..… 2 1.5.
Metodologi Penelitian ……......…………..………….........… 2 1.6. Sistematika Penulisan ............................................................. 3
BAB II : DASAR TEORI
2.1. Penyandian Kanal (Channel Coding) …......……...…..…...… 5
2.1.1. Penyandian Runtun Struktur (Structured Sequences) ... 5
2.1.2.Penyandian Bentuk Gelombang (Waveform Coding) .. 7 2.1.2.1.
Sinyal Antipodal dan Sinyal Orthogonal ...... 7 2.1.2.2. Penyandian Gelombang dengan Deteksi Korelasi ......................................................... 9
2.2. Sandi Biorthogonal ................................................................. 9 2.3.
Penyandian Sandi Biorthogonal ........................................... 11 2.4. Pengawasandi Sandi Biorthogonal ....................................... 13 2.4.1.
Bobot dan Jarak Hamming ......................................... 13 2.4.2. Jarak Minimum Suatu Sandi Linear ........................... 14 2.4.3. Deteksi dan Koreksi Error ......................................... 15 2.5. MATLAB ............................................................................. 15 2.5.1.
Window utama MATLAB .......................................... 16 2.5.1.1.
Command Window ………........…..……… 16 2.5.1.2. Current Directory Window …...…..……… 17 2.5.1.3.
2.5.1.4. Command History Window …….....……… 18
2.5.2. MATLAB Editor ……....……....…………….... 18
2.5.3. Graphic User Interface (GUI) …................…… 19
BAB III : PERANCANGAN 3.1. Proses Penyandian ................................................................ 22 3.2. Pembuatan Error .................................................................. 25 3.3. Pengawasandi ....................................................................... 28 BAB IV : PEMBAHASAN 4.1. Tampilan Awal MATLAB …………......…………………. 33 4.2. Pembuatan Matrik Katasandi ……....…..….………………. 34 4.3. Proses Memasukkan Data ……………....…..……….…….. 35 4.4. Proses Penyandian ………………..…........…………….…. 37 4.5. Proses Pembuatan Error …......…………...……………..… 38 4.6. Proses Pengawasandi …………......….……...…………..… 40 4.6.1. Proses Deteksi Error ………................…………..… 40 4.6.2. Proses Koreksi Error …………......…..……….……. 44 4.7. Analisis Hasil Uji Coba Program ……..............…..………. 46 4.7.1. Hasil Uji Coba I ……............……..…...……………. 46 4.7.2. Hasil Uji Coba II ……………........…....…………… 49 BAB V : KESIMPULAN DAN SARAN 5.1.
5.2. Saran ……………………………….....…............……...… 54
DAFTAR PUSTAKA ………….....….......……..………………….…… 55
LAMPIRAN
DAFTAR GAMBAR
Halaman
Gambar 2.1. Contoh dari sinyal antipodal …………......……………......……...……… 7Gambar 2.2 Contoh dari sinyal orthogonal ................................................................... 8Gambar 2.3 Window utama MATLAB ……......………….........….………….....….. 16Gambar 2.4 Command Window ……………............…………………….....…....…. 16Gambar 2.5 Current Directory Window ………............………...…..……...…..…… 17Gambar 2.6 Workspace Window …………......……….........………………...….….. 17Gambar 2.7 Command History Window ………......………........…………………… 18Gambar 2.8 MATLAB editor …......………………………...…........……………….. 18Gambar 2.9 Form designer ......................................................................................... 20Gambar 2.10 Property Inspector .................................................................................... 20Gambar 3.1 Diagram alir program ............................................................................... 21Gambar 3.2 Tampilan dari menu utama ....................................................................... 22Gambar 3.3 Diagram alir proses penyandian .............................................................. 24Gambar 3.4 Tampilan proses memasukkan data ……......……......………………….. 25Gambar 3.5 Tampilan hasil dari proses penyandian .................................................... 25Gambar 3.6 Diagram alir pembuatan error .................................................................. 26Gambar 3.7 Tampilan katasandi pada pembuatan error .............................................. 27Gambar 3.8 Tampilan untuk mengubah-ubah error .................................................... 27Gambar 3.9 Tampilan kata terima pada pembuatan error ........................................... 27Gambar 3.10 Tampilan posisi bit yang diubah .............................................................. 28Gambar 3.12 Diagram alir proses deteksi dan koreksi error ......................................... 30Gambar 3.13 Tampilan kata terima pada pembuatan error ........................................... 31Gambar 3.14 Tampilan nilai Zij .................................................................................... 31Gambar 3.15 Tampilan pesan proses Look up table …………......……….......……... 31Gambar 3.16 Tampilan hasil deteksi ............................................................................. 31Gambar 3.17 Tampilan untuk data yang diterima ........................................................ 32Gambar 3.18 Tampilan jumlah error ........................................................................... 32Gambar 3.19 Tampilan untuk data yang diterima ......................................................... 32Gambar 4.1 Tampilan awal MATLAB…………………......………............………... 34Gambar 4.2 Tampilan title dari program ...........……......….........…..…...………… 34Gambar 4.3 Tampilan untuk memasukkan data. ....................…......……….……… 35Gambar 4.4 Tampilan tanda perhatian. ……………………….......…......…..………. 36Gambar 4.5 Tampilan data yang telah dimasukan ....................................................... 36Gambar 4.6 Tampilan dari data yang telah disandikan ................................................ 37Gambar 4.7 Tampilan dari proses pembuatan error .................................................... 39Gambar 4.8 Tampilan katasandi pembanding .............................................................. 41Gambar 4.9 Tampilan dari hasil proses deteksi ........................................................... 43Gambar 4.10 Tampilan hasil dari proses koreksi ........................................................... 45
DAFTAR TABEL
Halaman
Tabel 4.1 Hasil uji coba dengan masukan data ‘8B’ (heksadesimal) …..........……… 46Tabel 4.2 Hasil uji coba dengan masukan data ‘06’ (heksadesimal) ………......…… 49Tabel 4.3 Perbandingan hasil uji coba ........................................................................ 52DAFTAR LAMPIRAN
Halaman
Listing Program ................................................................................................................ L1
Tabel Hasil Uji Coba ....................................................................................................... L6
Look Up Table ................................................................................................................ L16
BAB I PENDAHULUAN 1.1. Judul Simulasi Penyandi dan Pengawasandi Sandi Biorthogonal 8 Bit dengan Matlab (Encoder and Decoder Simulation of 8 Bit Biorthogonal Codes with Matlab).
1.2. Latar Belakang Masalah
Kesalahan (error) merupakan masalah pada sistem komunikasi, sebab dapat mengurangi kinerja dari sistem. Untuk mengatasi masalah tersebut diperlukan suatu sistem yang dapat mengkoreksi error. Oleh karena itu pada sistem komunikasi diperlukan penyandian Beberapa studi mengatakan, jika sistem komunikasi menggunakan
.
penyandian, maka dapat diperoleh kemampuan yang sangat handal untuk mengkoreksi kesalahan.
Contoh beberapa sandi yang digunakan dalam proses penyandian adalah sandi
orthogonal , sandi biorthogonal, sandi transorthogonal dan lain-lain. Sandi-sandi yang
terkenal dalam penyandian bentuk gelombang (waveform coding) adalah sandi orthogonal dan biorthogonal [1].
Sandi yang akan dibahas pada tulisan ini adalah sandi biorthogonal (biorthogonal
code ). Sebuah program untuk menyimulasikan matrik pembangkit dari sandi
biorthogonal 8 bit, proses penyandian, pembuatan error serta deteksi dan koreksi error
dibuat untuk mengetahui keunggulan dari sandi biorthogonal.
1.3. Tujuan dan Manfaat Penelitian
Tujuan dari penulisan tugas akhir ini adalah untuk membuat program simulasi penyandian dengan sandi biorthogonal serta mengetahui kemampuan deteksi dan koreksi
error dari sandi biorthogonal.
Manfaat dari pembuatan program ini adalah mempermudah kalangan akademisi untuk memahami penyandian dan pengawasandi sandi biorthogonal.
1.4. Batasan Masalah
Program simulasi Penyandi dan Pengawasandi Sandi Biorthogonal dibuat dengan batasan-batasan masalah sebagai berikut :
1. Program akan diimplementasikan menggunakan Matlab.
2. Masukan ( input ) berupa pesan 8 bit yang direpresentasikan menggunakan bilangan heksadesimal 2 digit.
3. Memasukkan input melalui keyboard.
4. Kemampuan deteksi error maksimal 63 bit.
5. Kemampuan koreksi error maksimal 31 bit.
1.5. Metodologi Penelitian
Metode penelitian untuk membuat program simulasi Penyandi dan Pengawasandi Sandi Biorthogonal adalah : 1.
Dengan mempelajari referensi-referensi yang berhubungan dengan sandi biorthogonal dan Matlab.
2. Membuat program untuk simulasi pembangkitan matrik sandi biorthogonal, proses penyandian, pembuatan error, deteksi dan koreksi error.
3. Menguji program untuk mengetahui apakah program sudah berjalan sesuai dengan apa yang diinginkan.
1.6. Sistematika Penulisan
Penulisan laporan pra tugas akhir ini terdiri dari lima bab yang masing-masing berisi tentang :
1. Bab I Pendahuluan
Bab pendahuluan ini berisi tentang latar belakang masalah, rumusan masalah, batasan masalah, tujuan penulisan, manfaat penelitian, metodologi penelitian, dan sistematika penulisan.
2. Bab II Dasar Teori
Bab ini berisi dasar teori tentang sandi yang dibahas dalam tulisan ini yaitu sandi biorthogonal serta perangkat lunak (software) yang digunakan dalam merancang program simulasi.
3. Bab III Perancangan
Bab ini menjelaskan tentang bagaimana membuat program simulasi matrik pembangkitan sandi biorthogonal 8 bit, proses penyandian, pembuatan error, deteksi dan koreksi error yang dilengkapi dengan flow chart.
4. Bab IV Pembahasan
Bab ini membahas tentang hasil akhir dari perancangan, juga membahas tentang proses penyandian sandi biorthogonal, pembuatan error serta deteksi dan koreksi error.
5. Bab V Kesimpulan dan Saran
Bab ini berisi tentang kesimpulan yang ditulis berdasarkan keseluruhan dari proses perancangan dan pembuatan program, dan saran untuk perbaikan program.
BAB II DASAR TEORI Gangguan pada sistem komunikasi, misalnya noise, fading, dan lain-lain
merupakan masalah yang sering terjadi. Penyandian kanal (channel coding) adalah proses pengubahan sinyal pesan. Penyandian kanal (channel coding) dilakukan untuk mengatasi permasalahan di atas dengan cara memperbaiki sinyal pesan yang akan ditransmisikan agar menjadi lebih handal jika terkena gangguan-gangguan. Jika sampai terdapat kesalahan bit, maka penerima mampu untuk mendeteksi dan mengoreksi kesalahan sendiri.
Penyandian kanal dibagi dalam dua kategori, yaitu penyandian bentuk gelombang (waveform coding) dan penyandian runtun struktur (structured sequences). Waveform
coding berhubungan dengan penggunaan bentuk sinyal baru yang meningkatkan deteksi
sinyal asli. Structured sequences berhubungan dengan penggunaan redundant bit untuk menentukan ada tidaknya noise pada kanal [1].
2.1 Penyandian Kanal (Channel Coding)
2.1.1 Penyandian Runtun Struktur (Structured Sequences)
Penyandian Structured Sequences menggunakan redundant bit yang ditambahkan pada data asli sehingga mudah untuk mendeteksi dan mengkoreksi error.
Salah satu contoh dari penyandian Structured Sequences adalah block coding. Pada penyandian block codes, sejumlah bit pariti ditambahkan pada bit informasi sehingga informasi dikodekan kedalam n bit kode. Dengan demikian jumlah bit redudansi yang ditambahkan pada data informasinya sebanyak n-k bit. Block code yang dihasilkan dapat direpresentasikan dalam bentuk (n,k).
Sandi blok mempunyai matrik generator yang digunakan untuk menghasilkan katasandi sebagai berikut : G = P I k (2.1) dengan P = matrik pariti bit.
I k = matrik identitas. Vektor kode U dihasilkan dari perkalian data m dengan matrik generator G seperti pada persamaan berikut :
U = mG (2.2) dengan U = katasandi Sebagai contoh sebuah data 1 1 0, dengan menggunakan persamaan (2.2) akan dihasilkan katasandi sebagai berikut : jika ,
1
1
1 ⎡ ⎤ ⎢ ⎥
G =
1
1
1 ⎢ ⎥ ⎢ ⎥
1
1
1 ⎣ ⎦
maka , U = mG
1
1
1 ⎡ ⎤ ⎢ ⎥
U = [1 1 0]
1
1
1 ⎢ ⎥ ⎢
1
1 1 ⎥ ⎣ ⎦
= 1 1 0 1 0 0 + 0 1 1 0 1 0 + 1 0 1 0 0 1
Dengan cara yang sama diperoleh katasandi untuk data 3 bit yang lain yaitu :
Message vector Code vector
0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 0 0 0 1 0 0 1 1 0 1 0 1 1 0 1 0 1 1 1 0 0 0 1 1 0 1 0 0 1 1 0 1 0 1 1 1 0 1 0 1 1 1 1 0 0 1 1 1 1 1 0 0 0 1 1 1
2.2.2. Penyandian Bentuk Gelombang (Waveform Coding)
2.1.2.1 Sinyal Antipodal dan Sinyal Orthogonal
Sinyal-sinyal antipodal adalah sinyal-sinyal yang berbeda 180 atau dengan kata lain salah satu sinyal adalah negatif dari sinyal yang lain. Contoh dari sinyal-sinyal antipodal ditunjukkan pada Gambar 2.1.
Analytic Waveform Vector representation representation representation
S (t)
1 T
S
1 (t) = sin ω 0 t t d =
2 E E E
S (t) S2 0 S1
2 Ψ t 1 ( )
(c) S
2 (t) = - sin ω 0 t t ≤ t ≤ T T
(a) (b)
Gambar 2.1 Contoh dari sinyal antipodal. (a) Persamaan gelombang. (b) Sinyal dalamContoh dari sinyal orthogonal ditunjukkan pada Gambar 2.2. Sin x dan cos x merupakan fungsi orthogonal karena berbeda fasa sebesar 90 . Demikian juga dengan sin mx dan cos nx, dengan m dan n adalah bilangan bulat dan m ≠ n. Gambar 2.2 menunjukkan bahwa gelombang kotak dideskripsikan sebagai :
S
1 (t) = p(t) ≤ t ≤ T (2.3) T
⎞ ⎛ −
S
2 (t) = p t ≤ t ≤ T
⎜ ⎟
2 ⎝ ⎠ dengan p(t) adalah gelombang dengan durasi λ = T/2, dan T adalah durasi simbol.
Analytic Waveform Vector
representation representation representation
S (t)
1
1 T S (t) = p(t) 0 t
1 T/2 T E S d = 2 E
2 E Ψ ( ) t 1
0 S
1 S 2 (t) (c)
1 T t
T
⎞ ⎛ −
S
2 (t) = p t
0 T/2 T ⎜ ⎟
2 ⎝ ⎠
(a) (b)
Gambar 2.2 Contoh dari sinyal orthogonal. (a) Persamaan gelombang. (b) Sinyal dalam bentuk gelombang. (c) Sinyal dalam bentuk vektor.2.1.2.2 Penyandian Gelombang dengan Deteksi Korelasi
Penyandian gelombang mengubah satu set gelombang menjadi satu set gelombang yang lebih baik. Yang paling populer dari waveform codes adalah
orthogonal dan biorthogonal codes. Tujuan dari penyandian ini adalah untuk membuat
setiap gelombang dari sinyal yang dikodekan sebeda mungkin atau membuat nilai koefisien cross-correlation (z ) dari setiap pasangan sinyal sekecil mungkin. Nilai
ij
terkecil dari koefisien cross-correlation (z ij ) dihasilkan jika satu sinyal merupakan antikorelasi (z ij = -1) dari sinyal lainnya, tetapi hal ini hanya dapat dicapai jika jumlah simbol dalam kelompok sinyal adalah dua (M=2) dan setiap simbol adalah antipodal.
Cross-correlation antara dua sinyal merupakan ukuran jarak antara vektor-
vektor sinyal. Semakin kecil nilai cross-correlation maka jarak antar vektor semakin panjang. Hal ini dapat dibuktikan pada Gambar 2.1 yang menunjukkan sinyal-sinyal antipodal (dengan z ij = -1) yang digambarkan dengan vektor yang memiliki jarak yang berjauhan antara satu dengan yang lain dan pada Gambar 2.2 yang menunjukkan sinyal- sinyal orthogonal (dengan z ij = 0) yang digambarkan dengan vektor yang memiliki jarak yang lebih dekat satu dengan yang lain jika dibandingkan dengan vektor-vektor antipodal.
2.2 Sandi Biorthogonal
Sebuah himpunan sinyal biorthogonal dari M total sinyal atau katasandi dapat disusun dari M/2 sinyal orthogonal ditambah dengan negatif dari setiap sinyal, dengan kata lain sandi biorthogonal terdiri dari sandi orthogonal dengan setiap katasandi orthogonal pada satu bagian memiliki katasandi antipodal pada bagian lain.
Karakteristik dari sandi biorthogonal adalah sebagai berikut :
( ) ( )
(2.5) ⎪ ⎪ ⎪ ⎩ ⎪ ⎪ ⎪ ⎨ ⎧
Nilai Zij = 1, jika semua digit dari katasandi yang diterima sama dengan semua digit dari katasandi pembanding.
Nilai-nilai koefisien cross-corelation (Zij) ini dapat dikelompokkan menjadi : 1.
Koefisien cross-corelation antara dua sinyal merupakan ukuran jarak antara kedua vektor sinyal. Semakin kecil nilai cross-corelation, jarak antar vektor semakin panjang.
M = ukuran katasandi.
j i j i untuk M j i j i untuk j i untuk z ij dengan i,j = 1, ..., M.
1 M
1
2 ,
2 ,
= =
≠ − ≠ = − ≠ −
− =
⎪ ⎪ ⎪ ⎩ ⎪ ⎪ ⎪ ⎨ ⎧
digit total jumlah sama tidak yang digit jumlah sama yang digit jumlah z ij
Persamaan (2.4) merupakan persamaan koefisien cross-corelation secara umum untuk sinyal biorthogonal. Jika bentuk gelombang sinyal biorthogonal merupakan gelombang biner, maka persamaan (2.4) dapat disederhanakan menjadi :
(2.4) dengan E = energi sinyal.
j i j i untuk M j i j i untuk j i untuk dt t s t s E z T j i ij
1 M
1
1
2 ,
2 ,
∫
= = =
≠ − ≠ = − ≠ −
2. Nilai 0 < Zij < 1, jika jumlah digit yang berbeda tidak sama dengan jumlah digit yang sama. Katasandi yang diterima ini bukan merupakan sinyal orthogonal.
3. Nilai Zij = 0, jika jumlah digit yang berbeda sama dengan jumlah digit yang sama, atau jumlah digit yang berbeda dan yang sama masing-masing adalah 64 digit.
Katasandi yang diterima ini merupakan sinyal orthogonal, tetapi belum tentu merupakan sandi biorthogonal.
Kelebihan sandi biorthogonal dibandingkan sandi orthogonal adalah untuk data yang sama sandi biorthogonal membutuhkan setengah katasandi dari sandi orthogonal, sehingga bandwidth yang dibutuhkan untuk sandi biorthogonal adalah setengah dari kebutuhan bandwidth sandi orthogonal [1].
2.3 Penyandian Sandi Biorthogonal
Himpunan katasandi biorthogonal disusun menggunakan setengah dari katasandi
orthogonal , dengan matrik katasandi biorthogonal ini berdimensi 2 k
×2
(k-1)
. Sebagai contoh, untuk data 3 bit dapat ditransformasikan ke dalam katasandi biorthogonal sebagai berikut : data katasandi biorthogonal
0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0
B
3
= 1 0 0 1 1 1 1 1 0 1 1 0 1 0 1 1 0 1 1 0 0 1 1 1 1 0 0 1 Sebagai perbandingan data 3 bit dapat ditransformasikan ke dalam katasandi orthogonal sebagai berikut : data katasandi orthogonal 0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 1 1 0 0 1 1 0 1 1 0 1 1 0 0 1 1 0
H
3 =
1 0 0 0 0 0 0 1 1 1 1 1 0 1 0 1 0 1 1 0 1 0 1 1 0 0 0 1 1 1 1 0 0 1 1 1 0 1 1 0 1 0 0 1
Secara umum, matrik katasandi biorthogonal B k dengan data k-bit dapat disusun dari matrik H , sebagai berikut :
k-1 H
⎡ ⎤ k
−
1 B = k
⎢ ⎥
(2.6)
H ⎢ ⎥ k
−
1 ⎣ ⎦
dengan matrik H adalah :
1
data katasandi orthogonal
⎡ ⎤ H =
1 ⎢ ⎥
1
1 ⎣ ⎦
Dengan diketahuinya matrik H
1 maka matrik H 2 dapat disusun sebagai berikut :
data katasandi orthogonal 0 0 0 0 0 0 0 1 0 1 0 1
H
2 =
1 0 0 0 1 1 k k
Secara umum, matrik katasandi, H k , dengan dimensi 2 × 2 untuk k-bit data dapat disusun dari matrik H k-1 , seperti di bawah ini :
H H ⎡ k k ⎤
−
1 −1 H = k
⎢ ⎥
(2.7)
H H k k
−
1 −1 ⎣ ⎦
Pada penyandian sandi orthogonal data yang berjumlah k-bit akan disandikan
k
menjadi katasandi dengan jumlah bit 2 . Sebagai contoh, data yang berjumlah 3 bit akan
3
disandikan menjadi katasandi dengan jumlah bit 2 atau sama dengan 8 bit. Sedangkan untuk penyandian sandi biorthogonal, karena merupakan setengah dari sandi orthogonal, maka data yang berjumlah k-bit akan disandikan menjadi katasandi dengan jumlah bit
k
2 /2. Sehingga jika data 3 bit akan disandikan dengan sandi biorthogonal, maka data akan
3 menjadi katasandi dengan jumlah bit 2 /2 atau sama dengan 4 bit.
2.4 Pengawasandi Sandi Biorthogonal
2.4.1 Bobot dan Jarak Hamming
Bobot Hamming (Hamming weight) dari suatu vektor U didefinisikan sebagai jumlah elemen nonzero di dalam U. Untuk suatu vektor biner, bobot
Hamming adalah setara dengan jumlah bit 1 pada vektor biner tersebut. Sebagai contoh,
jika U = 001010011, maka :
w ( U ) =
4 dengan w(U) = bobot Hamming Sedangkan jarak Hamming (Hamming distance) antara dua vektor sandi didefinisikan sebagai banyaknya elemen yang berbeda, contohnya : U = 0 0 1 0 1 0 0 1 1 V = 1 0 1 0 0 0 1 1 1 d(U,V) = 3
Dengan penambahan modulo-2, diketahui bahwa penjumlahan dua vektor sandi biner menghasilkan vektor baru. Dalam vektor baru ini bit 1 terletak pada posisi saat kedua vektor tersebut berbeda seperti ditunjukkan pada contoh di bawah ini : U + V = 1 0 0 0 1 0 1 0 0 Sehingga jarak Hamming antara dua vektor sandi sama dengan bobot Hamming dari penjumlahan kedua vektor tersebut yaitu :
V ) = w ( U
- d ( U ,
V ) (2.8)
2.4.2 Jarak Minimum Suatu Sandi Linear
Penjumlahan dua vektor sandi akan menghasilkan vektor sandi baru yang tetap merupakan anggota subspace. Jika U dan V adalah vektor sandi maka W = U + V harus pula merupakan vektor sandi, sehingga jarak antara dua vektor sandi sama dengan bobot vektor sandi yang baru, yaitu :
V ) = w ( U
- d ( U ,
V ) = w ( W ) (2.9)
Jadi jarak minimum suatu sandi linear dapat diketahui hanya dengan menguji bobot dari
2.4.3 Deteksi dan Koreksi Error
Kemampuan deteksi kesalahan (error) dari suatu sandi dapat dirumuskan sebagai berikut : e = d min – 1 (2.10) dengan d = jarak minimum dari sandi
min .
Besarnya kemampuan koreksi kesalahan (error) dari suatu sandi tergantung dari sandi tersebut. Untuk sandi yang berdasarkan bit, kemampuan koreksi kesalahan dituliskan dalam rumus berikut :
d
1
−
⎢ ⎥
min t =(2.11)
2
⎢⎣ ⎥⎦
Pada rumus tersebut tampak bahwa kemampuan koreksi kesalahan dari sandi yang berdasarkan bit, ditentukan oleh jarak minimum dari sandi tersebut [2].
2.5 MATLAB
MATLAB adalah pemrograman level tinggi yang dikhususkan untuk komputasi teknis. MATLAB merupakan singkatan dari MATrix LABoratory. Bahasa ini mengintegrasikan kemampuan komputasi, visualisasi dan pemrograman dalam sebuah lingkungan yang mudah digunakan [3].
Sebagaimana bahasa pemrograman lainnya, MATLAB juga menyediakan lingkungan kerja terpadu yang sangat mendukung dalam pembangunan aplikasi.
Lingkungan terpadu ini terdiri dari beberapa form/window yang memiliki kegunaan
2.5.1 Window utama MATLAB
Window ini adalah window induk yang melingkupi seluruh lingkungan kerja
MATLAB. Terdiri dari beberapa window, antara lain Command Window, Current
Directory Window , Workspace Window dan Command History Window yang memiliki
fungsinya masing-masing. Namun yang terpenting adalah Command Window, yang merupakan tempat untuk berinteraksi dengan MATLAB.
Gambar 2.3 Window utama MATLAB2.5.1.1 Command Window
Command Window berfungsi sebagai penerima perintah dari pengguna untuk menjalankan seluruh fungsi-fungsi yang disediakan oleh MATLAB.
2.5.1.2 Current Directory Window
Gambar 2.5 Current Directory WindowWindow ini berfungsi sebagai browser direktori aktif, yang hampir sama dengan . window explorer
2.5.1.3 Workspace Window
Gambar 2.6 Workspace WindowWorkspace Window berfungsi sebagai navigator bagi pemakai dalam
menyediakan informasi mengenai variable yang sedang aktif dalam workspace pada saat pemakaian. Workspace adalah suatu lingkungan abstrak yang menyimpan seluruh
variable dan perintah yang pernah digunakan selama penggunaan MATLAB berlangsung.
2.5.1.4 Command History Window
Gambar 2.7 Command History WindowWindow ini berfungsi sebagai penyimpan perintah-perintah yang pernah dikerjakan pada suatu workspace.
2.5.2 MATLAB Editor
Window ini berfungsi untuk membuat skrip program MATLAB. Ketika window
utama MATLAB muncul, window MATLAB editor tidak akan muncul dengan sendirinya. Cara memanggil window MATLAB editor adalah dengan mengetikkan edit pada prompt MATLAB, atau dengan cara mengklik pada ikon file < new < M-file.
2.5.3 Graphic User Interface (GUI) Graphic User Interface (GUI) adalah media tampilan grafis sebagai pengganti
perintah teks untuk pengguna (user) berinteraksi. Untuk keperluan pemrograman
Window , MATLAB telah menyediakan komponen-komponen standar, seperti pushbotton,
edit , text, combo, checkbox dan lain-lain untuk digunakan sebagai media disain.
MATLAB menyediakan sebuah GUI Designer yang dibungkus dalam fungsi GUIDE. Untuk menjalankan fungsi ini user harus mengetikkan pada Window MATLAB, sebagai berikut :
Selanjutnya MATLAB akan merespon dengan menampilkan Form designer seperti ditunjukkan pada Gambar 2.9. Form designer adalah bagian yang digunakan untuk meletakkan komponen-komponen window yang dibutuhkan.
Gambar 2.10 adalah form property inspector, melalui form ini komponen- komponen yang digunakan dapat dikontrol. Tampilan window ini terbagi dua, bagianpertama (sebelah kiri) adalah daftar property yang dimiliki oleh komponen tersebut. Setiap komponen akan memiliki property yang berbeda satu dengan yang lainnya. Bagian kedua (sebelah kanan) adalah daftar nilai parameter (value property) yang dapat diatur sesuai keinginan.
Gambar 2.9 Form designerGambar 2.10 Property InspectorBAB III PERANCANGAN Program penyandi dan pengawasandi sandi biorthogonal 8 bit ini akan dibuat
menggunakan MATLAB. Diagram alir (flowchart) dari program ini ditunjukkan pada Gambar 3.1.
mulai Input data