Penyandian Kanal

31
 37 PENYANDIAN ISYARAT DIGITAL Penyandian isyarat digital berguna untuk meningkatkan kinerja komunikasi dengan meningkatkan ketahanan sinyal terhadap berbagai gangguan saluran, seperti derau ( noise  ), pelemahan sinyal (  fading  ), perusakan sinyal oeh sinyal lain (  jamming  ). Penyandian dikelompokkan dalam dua jenis, penyandian gelombang ( waveform coding  ) dan urutan terstruktur ( structured sequences/structured redundancy  ). Waveform coding berhubungan dengan pengubahan bentuk gelombang menjadi bentuk gelombang yang “lebih baik”, sehingga mengurangi terjadinya galat ( error  ). Sedangkan structured sequences berhubungan dengan pengubahan urutan data menjadi urutan yang “lebih baik” dan mempunyai bit berlebih ( redundant bit  ), yang digunakan untuk mendetek si dan mengkor eksi error . 4.1. Penyandian Gelombang (Waveform Coding ) 4.1.1. Sinyal Antipodal dan Sinyal Ortogonal Sinyal antipodal adalah negatif dari sinyal yang lainnya. Dengan kata lain, sinyal antipodal adalah cermin dari sinyal lain. Dalam hal sinyal sinusoida, maka sepasang sinyal antipodal adalah sinyal-sinyal yang berbeda fasa 180°. Gambar 4.1 memperlihatkan sepasang sinyal antipodal sinusoida. Gambar 4.1. Contoh sinyal antipodal.  Contoh sinyal orto gonal diperlihatkan p ada gambar 4.2. Dari gambar terlih at bahwa sinyal s 1 ( t  ) menempati area waktu yang berbeda dengan s 2 ( t  ),  p( t  ) merupakan fungsi pulsa dengan durasi  = T /2 . Sinyal pada gambar 4.2 tidak saling mengganggu, karena tidak muncul dalam waktu yang sama. Sinyal dengan fungsi sinusoida, sin x dan cos x , juga merupakan sinyal ortogonal. Demikian juga sin mx dan sin nx , dengan m dan n adalah bilangan bulat, dan m   n . Gambar 4.2. Contoh sinyal ortogonal biner.

Transcript of Penyandian Kanal

37 PENYANDIAN ISYARAT DIGITAL Penyandianisyaratdigitalbergunauntukmeningkatkankinerjakomunikasi dengan meningkatkan ketahanan sinyal terhadap berbagai gangguan saluran, seperti derau (noise),pelemahansinyal(fading),perusakansinyaloehsinyallain(jamming).Penyandian dikelompokkandalamduajenis,penyandiangelombang(waveformcoding)danurutan terstruktur(structuredsequences/structuredredundancy).Waveformcodingberhubungandengan pengubahanbentukgelombangmenjadibentukgelombangyanglebihbaik,sehingga mengurangiterjadinyagalat(error).Sedangkanstructuredsequencesberhubungandengan pengubahanurutandatamenjadiurutanyanglebihbaikdanmempunyaibitberlebih (redundant bit), yang digunakan untuk mendeteksi dan mengkoreksi error. 4.1. Penyandian Gelombang (Waveform Coding) 4.1.1. Sinyal Antipodal dan Sinyal Ortogonal Sinyal antipodal adalah negatif dari sinyal yang lainnya. Dengan kata lain, sinyal antipodaladalah cermindarisinyallain.Dalamhal sinyalsinusoida,makasepasang sinyalantipodaladalahsinyal-sinyalyangberbedafasa180.Gambar4.1 memperlihatkan sepasang sinyal antipodal sinusoida. Gambar 4.1. Contoh sinyal antipodal. Contohsinyalortogonaldiperlihatkanpadagambar4.2.Darigambarterlihat bahwasinyals1(t)menempatiareawaktuyangberbedadengans2(t),p(t)merupakan fungsipulsadengandurasit=T/2.Sinyalpadagambar4.2tidaksaling mengganggu,karenatidakmunculdalamwaktuyangsama.Sinyaldenganfungsi sinusoida,sinxdancosx,jugamerupakansinyal ortogonal.Demikianjugasinmx dan sin nx, dengan m dan n adalah bilangan bulat, dan m = n. Gambar 4.2. Contoh sinyal ortogonal biner. 38 Secaraumum,satusetsinyalenergiyangsamasi(t),dengani=1,2,...,M, dikatakan ortogonal, jika dan hanya jika, ( ) ( )= =}0110dt t s t sEzTj i ij zijadalahkoefisienkorelasisilang(cross-correlationcoefficient),danEadalahenergi sinyal. 4.1.2. Penyandian Gelombang dengan Deteksi Korelasi Penyandiangelombangmengubahsatusetgelombangmenjadisatuset gelombangyanglebihbaik.Pengubahanpalingpopuleradalahdengansandi ortogonal dan sandi biortogonal. Tujuan dari prosedur penyandian ini adalah untuk membuatsetiapbentukgelombangsinyaltersandisebedamungkin,ataumembuat zij dari setiap pasangan sinyal sekecil mungkin. Nilai terkecil darizij terjadi jika satu sinyalmerupakanantikorelasidarisinyalyanglain(zij=-1).Tetapihalinidapat tercapaijikajumlahsimboldalamkelompoksinyaladalahdua(M=2)dansetiap simboladalahantipodal.Secaraumumzijdapatdibuatsamadengannol,dan kelompoksinyaldisebutortogonal.Satusetsinyalantipodaladalahoptimum,jika setiapsinyalberadapadajarakterjauhdengansinyalyanglain.Padagambar4.1, jarakdantaravektorsinyaladalahd=2\E,denganEadalahenergisinyalselama durasi T. Satu set sinyal ortogonal pada gambar 4.2 mempunyai jarak d = \(2E). Korelasi silang (cross-correlation) antara dua sinyal merupakan ukuran jarak antara vektor-vektorsinyal.Semakinkecilkorelasisilang,jarakantarvektorsemakin panjang.Darigambar4.1,terlihatbahwasinyal-sinyalantipodal(denganzij=-1) digambarkansebagaivektordenganjarakterjauhnya(arahberlawanan),sedangkan pada gambar 4.2 sinyal ortogonal (dengan zij=0) digambarkan sebagai vektor dengan jarak yang lebih dekat. Jarak antar sinyal yang identik (dengan zij = 1) adalah nol. Gambar 4.3 memperlihatkan satu set data 2-bit yang diubah menjadi kelompok katasandi ortogonal. Data asli dan kata sandi pengganti terdiri dari digit biner (1, 0). Terlihatjugagelombangyangterdiridaripulsabipolar(+1,-1)yang menggambarkan kata sandi.

Gambar 4.3. Perubahan satu set data dengan katasandi ortogonal dan gelombang bipolar. untuk i = j untuk i = j (4.1) 39 Persamaan(4.1)ditulisdalambentukgelombang,tetapijikakelompoksinyal diwakili oleh digit biner, maka persamaan tersebut dapat disederhanakan menjadi ==01ijijzz dengani,j=1,2,...,M,danMadalahukurankatasandi.Pengirimandatadengan penggantiandatadengankatasandiortogonalmembuatjarakantarsinyaltersandi menjadi semakin jauh. 4.1.3. Sandi Ortogonal Data1-bitdapatdiubahmenjadikatasandiortogonalyangmasing-masing terdiri dari 2-bit. Hal ini dapat dijelaskan dengan matrikss H1 sebagai berikut: DataKatasandi Ortogonal 0 1 ((

=1 00 01H Untukmenyandikandata2-bit,makadatasebelumnyadiperluassecara horisontal dan vertikal, sehingga menghasilkan matrikss H2 sebagai berikut: DataKatasandi Ortogonal 0 0 0 1 ((

=(((((((

=1 11 120 1 | 1 01 1 | 0 01 0 | 1 00 0 | 0 0H HH HH1 0 1 1 Kuadran kanan bawah adalah komplemen dari katasandi sebelumnya. Dengan cara yang sama, dapat dihasilkan katasandi ortogonal untuk data 3-bit sebagai berikut: Data Katasandi Ortogonal 0 0 0 0 0 1 0 1 0 0 1 1 ((

=(((((((((((((

=2 22 231 0 0 1 | 0 1 1 00 0 1 1 | 1 1 0 00 1 0 1 | 1 0 1 01 1 1 1 | 0 0 0 0|0 1 1 0 | 0 1 1 01 1 0 0 | 1 1 0 01 0 1 0 | 1 0 1 00 0 0 0 | 0 0 0 0H HH HH1 0 0 1 0 1 1 1 0 1 1 1 jumlah digit yang sama jumlah digit yang tidak sama jumlah total digit untuk i = j untuk i = j (4.2) 40 Secaraumum,matrikskatasandi(HadamardMatrix),Hk,dengandimensi2kx2k untuk data k-bit dapat dibangun dari matrikss Hk 1, sebagai berikut: ((

= 1 11 1k kk kkH HH HH Setiapkatasandidalammatriksmempunyaidigityangsamasebanyakdigityang tidak sama, sehingga sesuai dengan persamaan (4.2), zij = 0 (untuk i = j). 4.1.3. Sandi Biortogonal Sandi biortogonal dengan M katasandi dapat dibangun dari katasandi ortogonal sebanyak M/2 sebagai berikut: ((

=11kkkHHBSebagai contoh, data 3-bit dapat diubah menjadi katasandi biortogonal berikut: Data Katasandi Ortogonal 0 0 0 0 0 1 0 1 0 0 1 1 (((((((((((((

=1 0 0 10 0 1 10 1 0 11 1 1 10 1 1 01 1 0 01 0 1 00 0 0 03B1 0 0 1 0 1 1 1 0 1 1 1 Sandibiortogonalmerupakanduakelompoksandiortogonaldengansetiap katasandimerupakanantipodaldarikatasandilainnya.Sehinggasandibiortogonal terdiridarikombinasisinyal-sinyalortogonaldanantipodal.Sesuaidengan persamaan (4.1) dan (4.2), sandi biortogonal dapat ditulis sebagai =011ijz Salah satu kelebihan dari sandi biortogonal dibanding sandi ortogonal adalah jumlah bitpadakatasandibiortogonalhanyasetengahdarijumlahbitpadakatasandi ortogonal.Sehinggapemakaianbandwidthuntuksandibiortogonalhanyasetengah bandwidth yang diperlukan untuk pengiriman sandi ortogonal. Karenakebutuhanbandwidthbertambahsecaraeksponensialsebesarksesuai denganjumlahdigitpadakatasandi,makacarapenyandiandiatashanyaefektif untukketersediaanbandwidthyanglebar.Jikabandwidthyangtersediatidakterlalu lebar,makapenyandiandenganstructuredsequences/redundancylebihefisien.Jika bandwidth sangat sempit, maka perlu kombinasi teknik modulasi dan penyandian. untuk i = j untuk i = j, |i j| = M/2 untuk i = j, |i j| = M/2 (4.3) 41 4.2. Jenis-jenis Pengendalian Galat (Error Control) Sebelummembahaslebihdalamtentangstructuredredundancy,adabaiknya membahasduametodadasarpengendalianerror.Metodayangpertamaadalah deteksierrordanpengirimankembali(errordetectionandretransmission)menggunakan bit-bitparitas(paritybitbitberlebih/redundantyangditambahkankedalamdata) untuk mendeteksi terjadinya error. Terminal penerima tidak mengkoreksi error, tetapi memintapemancarmengirimkandatakembali.Saluranduaarahdiperlukanuntuk dialog antara pemancar dan penerima. Metodakeduaadalahforwarderrorcorrection(FEC),yanghanyamemerlukan saluran satu arah, karena bit paritas dirancang untuk deteksi dan koreksi error. 4.2.1. Sambungan Komunikasi Antar Terminal Berbagaijenissambungandiperlihatkanpadagambar4.4.Gambar4.4.a memperlihatkansambungansimplex,saluransatuarah.Pengirimandatahanya terjadidariterminalAketerminalB,tidakpernahdariarahyangberlawanan. Sambungan half-duplexpadagambar4.4.b, adalahsalurandimanapengirimandata dapatdilakukandarikeduaterminal,duaarah,tetapitidaksecarasimultan(dalam waktuyangbersamaan).Terakhiradalahsambunganfull-duplexpadagambar4.4.c adalah saluran dua arah, di mana pengiriman data terjadi dua arah secara simultan. Gambar 4.4. Sambungan (a)Simplex. (b)Half-duplex. (c)Full-duplex. 4.2.2. Automatic Repeat Request Jikapengendalianerrorhanyaterdiridarideteksierrorsaja,makasistem komunikasi harus bisa memberikan cara untuk memberitahu pemancar bahwa error telahterdeteksidanmemerlukanpengirimandatakembali.Prosedurinidisebut automaticrepeatrequestatauautomaticretransmissionquery(ARQ).Gambar4.5 memperlihatkantigaprosedurARQyangpalingpopuler.Padasetiapdiagram waktu berjalan dari kiri ke kanan. Prosedur pertama (gambar 4.5.a) disebut stop-and-waitARQ.Prosedurinimembutuhkansaluranhalf-duplex,karenapemancar menunggu pemberitahuan (acknowledgement ACK) dari setiap pengiriman sebelum melanjutkan dengan pengiriman data selanjutnya. Pada gambar terlihat bahwa blok dataketigaditerimadenganerror,sehinggapenerimamemberitanggapandengan 42 negativeacknowledgement(NAK),danpemancarmengirimkankembaliblokpesan ketiga sebelum mengirimkan pesan selanjutnya. Gambar 4.5. ARQ (a)Stop-and-wait ARQ.(b)Continuous ARQ with pullback. (c)Selective repeat ARQ. ProsedurkeduadisebutcontinuousARQwithpullback(gambar4.5.b).Prosedur ini membutuhkan saluran full-duplex, karena pemancar mengirimkan data bersamaan denganpenerimamengirimkanpemberitahuan(ACK/NAK).Urutanangka menunjukkan urutan blok data. Pada contoh gambar 4.5.b ada pemisahan sebanyak empatblokantarapesanyangdikirimolehpemancardenganpemberitahuan tentangpesanterkirimyangsampaidipemancar.Sebagaicontoh,saatpesan8 terkirim,NAKdaripesan4diterima.Pemancarakanmengirimkankembalidata mulai dari pesan 4. ProsedurterakhiradalahselectiverepeatARQ(gambar4.5.c).Sepertiprosedur kedua,prosedurinimembutuhkansaluranfull-duplex.Jikaterjadierror,makapesan yangterkenaerrorsajayangdikirimkankembali,kemudianpemancarmelanjutkan pengiriman pada urutan pesan yang belum terkirim, dan tidak mengulagi dari awal. PemilihanjenisARQharusmempertimbangkanefisiensipenggunaansaluran komunikasidanbeayapenyediaanjenissambungan.Full-duplexlebih efisiendalam penggunaan saluran, tetapi memakan beaya lebih banyak dalam membangun sistem. KelebihanARQdibandingFECadalahpadadeteksierroryangmemerlukan peralatanpengawasandi(decoder)yangjauhlebihsederhanadanbitparitasyang lebih sedikit karena tanpa koreksierror. Selain itu ARQ adalah sistem yang adaptif, informasidikirimkankembalihanyajikaterjadierror.Dilainpihak,FECsering digunakan karena alasan berikut: 1.Hanya tersedia saluran simplex atau tunda waktu untuk ARQ terlalu lama. 2.Strategi pengiriman data kembali tidak mudah diterapkan. 3.Kemungkinan terjadi error besar, sehingga perlu pengiriman data yang sama secara berulang-ulang. 43 4.3. Urutan Terstruktur (Structured Sequences) Padabagianiniakandibahasprosedurpenyandianyangdikenaldenganparity-checkcodes(penyandianujiparitas).Prosedurinidiklasifikasikandalamurutan terstruktur karena menyisipkan struktur berlebih pada data asal sehinggaerror yang muncul dapat terdeteksi atau terkoreksi.Urutan terstruktur terbagi dalam dua sub-katagori,yaitublockcoding(penyandianblok)danconvolusionalcoding(penyandian konvolusi).Teknikpenyandianiniakanmenurunkanprobabilitaserrordengan kebutuhan bandwidth yang rendah. 4.3.1.Model Saluran/Kanal 4.3.1.1. Discrete Memoryless Channel (DMC) Secarasederhana,DMCmempunyaimaknakanaltanpaprosesmemori, sehingga keluaran sama dengan masukan. Setiap simbol keluaran hanya tergantung padamasukanyangbersesuaian.Jadijikamasukanberupaderetanpulsadengan panjang N, yaitu X = (X1, X2, X3, ..., XN), maka keluaran merupakan deretan pulsa dengan panjan sama N, misal Y = (Y1, Y2, Y3, ..., YN) dan dinyatakan sebagai: ( ) ( )[==NnN NX Y P X Y P1 4.3.1.2. Binary Symetric Channel (BSC) BSCadalahDMCdengankondisikhusus,masukandankeluaranterdiridari elemenbiner(0dan1).Hubunganinput-outputdapatdinyatakandengan probabilitas sebagai berikut: P(0|1) = P(1|0) = p P(1|1) = P(0|0) = 1 p Persamaan(4.5)menyatakanprobabilitastransisikanal.Jikasuatusimbol dikirim,probabilitasditerimadenganerroradalahp,danprobabilitasditerima dengan benar adalah 1 p. 4.3.2.Laju Sandi (Code Rate) dan Sandi Berlebih (Redundant Code) Padasandiblok,dataasliterbagidalamblok-blokdatak-bitdandisebutbit informasiataubitpesan.Setiapblokmerupakansatudari2kpesanyangberbeda. Penyandimerubahsetiap blokdatak-bitmenjadin-bitblokyanglebihbesaryang disebutbitsandiatausimbolkanal.Bitsebanyaknk(yangditambahkanoleh penyandipadadataasli)disebutbitberlebih(redundantbits),bitparitas(paritybits), ataucheckbits.Bit-bitinitidakmembawainformasibaru.Sandisepertiinidisebut dengansandi(n,k).Rasiobitparitasdibandingbitdata,(nk)/k,disebut redundancy sandi. Rasio dari bit data dibanding bit total, k/n, disebut laju sandi (code rate).Lajubitdapatdiartikansebagaibagiandaribitsandiyangmembawa informasi.Misalnyapadasandidenganlaju,setiapbitsandimembawabit informasi. Padababiniakanditunjukkanbahwapertambahanbitparitasmenyebabkan pertambahankebutuhanbandwidth.Jikalajusandi(100%redundancy)akan membutuhkanbandwidthduakalilipat.Jikalajusandi(33%redundancy), pertambahan bandwidth hanya 4/3. (4.4) (4.5) 44 4.3.3.Sandi Uji Paritas (Parity-Check Code) 4.3.3.1.Sandi Uji Paritas Tunggal (Single-Parity-Check Code) Sandiinimenggunakanpenjumlahanlineardaribit-bitinformasi,yangdisebut simbol-simbol paritas atau bit-bit paritas, untuk deteksi atau koreksi error. Sandi uji paritastunggaldibangundenganmenambahkanbitparitastunggalpadasebuah blok yang berisi bit-bit data. Bit paritas bernilai 1 atau 0 untuk memastikan bahwa penjumlahansemuabitpadakatasandimenghasilkannilaiganjil(ataugenap). Operasipenjumlahandilakukandenganaritmetikamodulo-2.Jikaparitasyang ditambahkan dirancang untuk menghasilkan nilai genap, metoda ini disebut paritas genap,danjikadirancanguntukmenghasilkannilaiganjildisebutparitasganjil. Gambar4.6memperlihatkanpengirimandataserial(bitpalingkananadalahbit palingawal).Bitparitastunggalditambahkan(bitpalingkirisetiapblok)untuk menghasilkan nilai genap. Gambar 4.6. Uji paritas. (a) Pengiriman serial. (b) Pengiriman paralel. Padaterminalpenerima,prosedurpengawasandian(decoding)terdiridari pengujianbahwapenjumlahanmodulo-2daribit-bitkatasandimenghasilkannilai nol(paritasgenap).Jikahasilnya1,makakatasandimengandungerror.Lajusandi dapatdinyatakandengank/(k1).Pengawasanditidakdapatsecaralangsung mengkoreksierrorhanyamendeteksimunculnyabiterror.Jikasemuabiterror dianggapsamadantidaksalingtergantung(independent),makaprobabilitasjerror pada blok dengan n simbol adalah: ( ) ( )j n jp pjnn j P||.|

\|= 1 , p adalah probabilitas simbol diterima dengan error, dan( )! !!j n jnjn=||.|

\| (4.6) 45 menyatakanbanyaknyakemungkinanbahwajbitdaritotalnterkenaerror.Jadi untuk sandi deteksi error paritas tunggal, probabilitas error yang tidak terdeteksi, Pnd dalam satu blok n bit dapat dihitung dengan: ( )( ) ( )( )j n jnganjil nngenap njndp pjnP2 22 / 12 /112=||.|

\|= Contoh 4.1 Sandi dengan Peritas Genap Susunsandi(4,3)dengandeteksierrorparitasgenapsedemikiansehinggasimbol paritas muncul sebagai simbol paling kiri pada kata sandi! Pola error yang bagaimana yangdapatdideteksiolehsandi?Hitungprobabilitaserrorpesanyangtak terdeteksi, jika probabilitas error simbol pada saluran adalah p = 10 3 Penyelesaian PesanParitasKata sandi 00000 000 10011 100 01011 010 11000 110 00111 001 10100 101 01100 011 11111 111 paritas pesan Sandi mampu mendeteksi semua pola error tunggal maupun tiga error. Probabilitas error yang tak terdeteksi sama dengan probabilitas munculnya dua atau empat error dimanapun dalam kata sandi, yaitu ( )4 2 244124p p p Pnd||.|

\|+ ||.|

\|== 6p2(1 p)2 + p4 = 6p2 12p3 + 7p4 = 6(10 3)2 12(10 3)3 + 7(10 3)4 = 6 x 10 6

4.3.3.2.Sandi Kotak (Rectangular Code) Sandikotakatauseringjugadisebutsandiproduk(productcode)merupakan pengirimandataparalel(gambar4.6.b).Pertamadibangunbit-bitpesankotak denganMbarisdanNkolom.Kemudianujiparitashorisontalditambahkanke setiap baris dan uji paritas vertikal ditambahkan ke setiap kolom menghasilkan larik dengandimensiyanglebihbesar(M+1)x(N+1).Lajusandikotak,k/n,dapat ditulis sebagai ( )( ) 1 1 + +=N MMNnk (4.7) (4.8) 46 Setiapbiterrorakanmenyebabkankegagalanujiparitaspadasatudarikolom larikdansatudaribarislarik.Jadisandikotakdapatmengkoreksierrortunggal karena error tersebut terletak secara unik pada interseksi antar baris deteksi error dan kolom deteksi error. Gambar 4.6.b menunjukkan larik dengan dimensiM = N = 5 yangmerupakansandi(36,25)yangdapatmengkoreksierrortunggaldimanapun pada posisi 36 bit. Padasandiblokkoreksierror,probabilitasbloktersandimempunyaierroryang tidak terkoreksi ditentukan dengan menghitung semua kemungkinan terjadinya error pesan.Probabilitasdarijerrorpadansimboldinyatakanpadapersamaan(4.6).Probabilitasdarierrorpesanatauseringdisebuterrorblok,PM,untuksandiyang dapat mengkoreksi error sebanyak t atau kurang adalah: ( )j n jnt jMp pjnP+ =||.|

\|= 11 4.4. Sandi Blok Linear (Linear Block Code) Sandi blok linear adalah salah satu jenis sandi uji paritas yang mempunyai notasi (n,k)sepertisebelumnya.Penyandimengubahblokkdigitpesan(vektorpesan) menjadi blok yang lebih panjang dengan n digit katasandi (vektor sandi), terbangun darielemenalpabetyangdiberikan.Jikaalpabetterdiridariduaelemen(0dan1), sandi adalah sandi biner yang terdiri dari digit-digit biner (bit). Pembahasan tentang sandi blok linear dibatasi pada sandi biner. Pesank-bitdari2kurutanpesanyangberbedadisebutsebagaik-tuples(urutan darikdigit).Blokn-bitdapatmembentuk2nurutanyangberbedadisebutn-tuples. Prosedurpenyandianmengalokasikansetiap 2kpesank-tuplesuntuksatudari2nn-tuples.Sandiblokmemberikankorespondensisatu-satu,sehingga2kpesank-tuples secaraunikdipetakanmenjadi2kkatasandin-tuples.Pemetakandilakukandengan apa yang disebut tabel look-up. 4.4.1.Vector Space Satusetn-tuplesbiner,Vn,disebutvectorspacedarimedanbinerduaelemen(0 dan 1). Medan biner mempunyai dua operasi, penjumlahan dan perkalian, sehingga hasilsemuaoperasisamadenganelemenbiner.Operasiaritmetikapenjumlahan danperkalianditentukandenganmedanaljabaryangdisepakati.Dalammedan biner, aturan untuk penjumlahan dan perkalian adalah sebagai berikut: PenjumlahanPerkalian 0 0 0 = 0 0 0 = -1 1 0 = 0 1 0 = -1 0 1 = 0 0 1 = -0 1 1 = 1 1 1 = - Operasipenjumlahandenganlambangmenunjukkanoperasipenjumlahan modulo-2. 4.4.2.Vector Subspace SuatusubsetSdarivectorspaceVndisebutsubspacejikaduasyaratini terpenuhi: 1.Vektor dengan semua elemen nol berada di dalam S. 2.Penjumlahan dua vektor di dalam S juga terdapat di dalam S (closure property). (4.9) 47 Duahaldiatasadalahsyaratfundamentaldarikarakterisasialjabarsandiblok linear.JikaVidanVjadalahduakatasandi(vektorsandi)dalamsandiblok biner(n,k),makasandiinidisebutlinearjika,danhanyajika,(Vi Vj)juga merupakanvektorsandi.Jadisandibloklinearadalahsandiyangtidakdapat menghasilkanvektor-vektordiluarsubspacedaripenjumlahanvektorsandiyang benar (anggota subspace). Contoh, vector space V4 terdiri dari 24 = 16 katasandi 4-tuples: 00000001001000110100010101100111 10001001101010111100110111101111 Dan contoh subset V4 yang membentuk subspace adalah: 0000010110101111 Terlihatbahwapenjumlahansetiapduavektorpadasubspacehanya menghasilkansatudarianggotasubspaceyang lain.Satuset2kn-tuplesdisebutsandi bloklinearjika,danhanyajikasubspacedarivectorspaceVndarisemuan-tuples. Gambar4.7memperlihatkananalogigeometrissederhanastruktursandiblok linear.DapatdibayangkanbahwavectorspaceVnterdiridari2nn-tuples.Didalam vectorspaceterdapatsubset2kn-tuplesyangterdiridarisatusubspace.Vektor-vektor (titik-titik) 2k yang tersebar di antara titik-titik 2n menggambarkan penunjukkan kata sandiyangdiijinkan(yangbenar).Pesandisandikanmenjadisatudari2kvektor sandiyangdiijinkankemudianbarudikirimkan.Karenaderau(noise)padakanal, vektor sandi yang terdistorsi (satu dari 2n vektor dalam n-tuple) kemungkinan sampai padapenerima.Jikavektorterdistorsitidakbegituberbedadenganvektorsandi yang benar, pengawasandi dapat mengawasandi pesan dengan benar. Tujuan dasar daripemilihansanditertentu,samadengantjuanpemilihanmodulasigelombang, dan dapat dinyatakan dalam konteks gambar 4.7 sebagai berikut: Gambar 4.7. Struktur sandi blok linear. 48 1.UntukmendapatkanefisiensipenyandiandenganmengepakVnspace dengansebanyakmungkinvektorsandi.Dengankatalain,menggunakan sedikit mungkin kelebihan bit untuk menekan kebutuhan bandwidth. 2.Mendapatkanvektorsandiyangsejauhmungkindenganvektorsandi lainnya,sehinggawalaupunvektor-vektortersebutterkenaerrorselama transmisi, tetapi masih dapat diawasandi (decoded) dengan benar. 4.4.3.Cantoh Sandi Blok Linear (6, 3) Berikut adalah contoh dari sandi blok linear (6, 3) yang mempunyai 2k = 23 = 8 vektorpesanataudelapanvektorsandi,dan2n= 26=646-tupledalamvectorspace V6. Vektor PesanVektor Sandi 0 0 00 0 0 0 0 0 1 0 01 1 0 1 0 0 0 1 00 1 1 0 1 0 1 1 01 0 1 1 1 0 0 0 11 0 1 0 0 1 1 0 10 1 1 1 0 1 0 1 11 1 0 0 1 11 1 10 0 0 1 1 1 DelapanvektorsandidiatasmembentuksubspaceV6(terdapatvektordengan semuaelemennol,danpenjumlahansetiapduavektorsandimenghasilkanvektor sandilainyangmerupakananggotadarisubspace).Jadivektorsandiinimerupakan sandi blok linear. 4.4.4.Matrik Generator Jika nilai k besar, maka penerapan tabellook-up pada penyandian menjadi sulit. Misalnyauntuksandi(127,92)akanmempunyai292atausekitar5x1027vektor sandi.Jikaprosedurpenyandianmenggunakantabellook-upsederhana,maka ukuran memori yang diperlukan untuk menyimpanjumlah vektor sandi akan sangat besar.Untukmengatasi,dapatdilakukanpembangkitanvektorsandiyang dibutuhkan saja. Hal ini akan mngurangi kerumitan dalam menyimpan vektor sandi yang banyak.Karenasatusetvektorsandiyangmembentuksandibloklinearmempunyai subspace berdimensi k dari vector space biner berdimensi n (k < n), akan selalu ada satu setn-tuple,kurangdari2k,yangdapatmembangkitkansemua2k vektoranggota darisubspace.Satusetvektorpembangkitdisebutsebagaiperentangsubspace.Set independen linear terkecil yang merentangkan subspace disebut basis dari subspace, dan jumlah vektor dalam basis sama dengan dimensi dari subspace. Setiap set basis dari k n-tupleyangindependenlinearV1,V2,,Vkdapatdigunakanuntuk membangkitkanvektor-vektorsandibloklinearyangdiperlukan,karenasetiap vektor sandi merupakan kombinasi linear dari V1, V2, , Vk. Artinya setiap set dari 2k vektor sandi U dapat ditulis sebagai: U = m1V1 + m2V2 + + mkVk dengan mi = (0 atau 1) adalah digit pesan dan i = 1, 2, , k. 49 Secara umu matrik generator dapat ditentukan dengn larik k x n: (((((

=(((((

=kn k knnkv v vv v vv v vVVVG2 12 22 211 12 1121 Vektorsandibiasanyaditunjukkanolehvektorbaris.Jadipesanm, urutan/deretanbitpesank,dituliskansebagaivektorbaris(matrik1xkyang mempunyai satu baris dengan k kolom). m = m1, m2, , mk Pembangkitan vektor sandi U, ditulis dalam notasi matrik sebagai hasil kali dari matrik m dan G: U =mG Sebagai contoh kita gunakan vektor sandi pada bagian sebelumnya: ((((

=((((

=1 0 0 1 0 10 1 0 1 1 00 0 1 0 1 1321VVVG dengan V1, V2, dan V3 adalah vektor independen linear (subset dari delapan vektor sandi)yangdapatmembangkitkansemuavektorsandi.Penjumlahandaridua vektor pembangkit tidak menghasilkan vektor pembangkit yang lain. Pembangkitan vektorsandiuntukvektorpesan110,menggunakanmatrikgeneratorpersamaan (4.11) adalah sebagai berikut: | |3 2 13210 1 1 0 1 1 V V VVVVU - + - + - =((((

= = 1 1 0 1 0 0 + 0 1 1 0 1 0 + 0 0 0 0 0 0 = 1 0 1 1 1 0 (vektor sandi untuk vektor pesan 1 1 0) Jadivektorsandiyangsesuaidenganvektorpesanadalahkombinasilineardari baris matrik G. Karena sandi ditentukan oleh G, penyandi hanya perlu menyimpan kbarisdarimatrikG(tidaktotal2kvektorsandi).Perludiperhatikanbahwalarik pembangkit berdimensi 3 x 6 menggantikan larik vektor sandi asli berdimensi 8 x 6, dan ini berarti mengurangi kerumitan sistem. 4.4.5.Sandi Blok Linear Sistematis Sandibloklinearsistematisadalahpemetaanvektorpesanberdimensikke vektor sandi berdimensi n dengan urutan/deretan yang dibangkitkan serupa dengan kdigitpesan.Digit(nk)sisanyamerupakandigitparitas.Sandibloklinear sistematis mempunyai matrik generator dalam bentuk sebagai berikut: (4.10) (4.11) (4.12) 50 | |( )( )( ) ((((((

==1 0 00 1 00 0 1, 2 1, 2 22 21, 1 12 11 k n k k kk nk nkp p pp p pp p pGI P G denganPadalahbagianlarikparitasdarimatrikgenerator,pij=(0atau1),danIk adalah matrik identitas (nilai semua elemen adalah nol kecuali pada diagonal utama samadengansatu)kxk.Daripersamaan(4.11)dan(4.13),setiapvektorsandi dapat dinyatakan sebagai berikut: | |( )( )( ) ((((((

=1 0 00 1 00 0 1, , , , , ,, 2 1, 2 22 21, 1 12 112 1 2 1 k n k k kk nk nk np p pp p pp p pm m m u u u denganui = m1p1i + m2p2i + + mkpki untuk i = 1, 2, , (n k) = mi n + kuntuk i = (n k + 1), , n Jika pesan k-tuple adalah m = m1, m2, , mk dan vektor sandi n-tuple secara umum adalah U = u1, u2, , un maka vektor sandi sistematis dapat dinyatakan sebagai U = p1, p2, , pn k, m1, m2, , mk denganp1, p2, , pn k adalah bit-bit paritas m1, m2, , mk adalah bit-bit pesan p1 = m1p11 + m2p21 + + mkpk1 p2 = m1p12 + m2p22 + + mkpk2 pn k = m1p1,(n k) + m2p2,(n k) + + mkpk,(n k) Untuk sandi (6,3) pada contoh di bagian 4.4.3, vektor sandi dapat ditulis sebagai berikut: | |((((

=1 0 0 1 0 10 1 0 1 1 00 0 1 0 1 1, ,3 2 1m m m UU =m1 + m3, m1 + m2, m2 + m3, m1, m2, m3 = u1, u2 ,u3,u4,u5,u6 (4.13) (4.14) (4.15) (4.16) (4.17) 51 Daripersamaan(4.17)terlihatbahwadigitberlebih(redundant)dihasilkan denganbanyakcara.Bit paritaspertama adalahjumlahdaribitpesanpertamadan ketiga,bitparitaskeduaadalahjumlahdaribitpesanpertamadankedua,danbit paritasketigaadalahjumlahdaribitpesankeduadanketiga.Denganstruktur sepertiini,makasandibloklinearsistematismempunyaikemampuandeteksidan koreksi error yang lebih baik dari uji paritas tunggal. 4.4.6.Matrik Uji Paritas (Parity Check Matrix) Matrikujiparitas,H,digunakanuntukmengawasandi(decode)vektorsandi yang diterima. Untuk setiap matrik generator (k x n), G, terdapat matrik H (n k) x n, sedemikian sehingga baris pada G ortogonal dengan baris H, dan GHT = 0.HT adalahtransposdariHdan0adalahmatriknolkx(nk).Untukmemenuhi orgonalitas, komponen matrik H ditulis: H = [In k|PT] dan matrik HT dapat ditulis: ( )( )( )((((((((((((

=((

=k n k k kk nk nk n Tp p pp p pp p p PIH, 2 1, 2 22 21, 1 12 111 0 00 1 00 0 1 Perkalian UHT untuk setiap vektor sandi U yang dihasilkan G, dengan matrik HT, menghasilkan vektor nol: UHT = p1 + p1, p2 + p2, ..., pn k + pn k = 0 denganp1,p2,...,pnkadalahbit-bitparitasdaripersamaan(4.15).Jadimatrikuji paritas,H,yangdibangununtukmemenuhiortogonalitasdiatasdapatdigunakan untuk menguji apakah vektor yang diterima adalah anggota dari set kata sandi yang benar.MatrikUadalahvektorsandiyangdibangkitkanolehmatrikGjika,dan hanya jika, UHT = 0. 4.4.7.Pengujian Sindrom (Syndrome Testing) Jika r = r1, r2, ..., r3 adalah vektor sandi yang diterima (satu dari 2n n-tuples) yang merupakanhasildaripengirimanU=u1,u2,...,uk(satudari2kn-tuples),makar dapat ditulis sebagai berikut: r = U + e dengane=e1,e2,...,enadalahvektorgalat(errorvector)ataupolaerroryangterjadi pada kanal. Dalam 2n n-tuples, terdapat pola error tidak nol potensial dengan total 2n 1. Sindrom dari r didefinisikan sebagai: S = rHT (4.19) (4.18) (4.20) (4.21) 52 Sindrom adalah hasil uji paritas yang dilakukan pada r untuk menentukan apakah r merupakan anggota set kata sandi yang benar. Jikar adalah anggota set kata sandi, makaSakansamadengan0.Danjikarmengandungerroryangdapatterdeteksi, makaSmempunyaielemenbernilaitidaknolyangdapatmenendaiadanyapola error tertentu. Substitusi persamaan (4.20) dan (4.21), menghasilakn sindromr yang terlihat sebagai berikut: S = (U + e)HT = UHT + eHT karena UHT = 0 untuk semua anggota set kata sandi, maka S = eHT Pengujuansindromyangdilakukandaripersamaan(4.20)sampai(4.23),yang dilakukanpadavektorsanditerkenaerror,maupunpadapolaerroritusendiri menghasilkan sindrom yang sama. Dalam matrik uji paritas terdapat dua hal yang penting: 1.TidakadakolomHyangsemuaelemenbernilainol,atauerroryangterjadi padaposisivektorsandiyangbersesuaiantidakakanmemberikanefekpada sindrom dan tidak dapat terdeteksi. 2.Semua kolomH harus unik. Jika ada dua kolom yang sama, makaerror pada dua posisi vektor sandi yang bersesuaian tidak dapat dibedakan. Contoh 4.2 Pengujian Sindrom Vektor sandi U = 1 0 1 1 1 0 dari bagian 4.4.3adalahvektorterkirimdanvektor r = 0 0 1 1 1 0 adalah vektor yang diterima dengan error pada bit paling kiri. Hitung nilai vektor sindrom dan periksa apakah nilainya sama dengan eHT. Penyelesaian S = rHT | |(((((((((

=1 0 11 1 00 1 11 0 00 1 00 0 10 1 1 1 0 0 = [ 1, 1 + 1, 1 + 1 ] = [ 1 0 0 ](sindrom dari vektor terkena error) S = eHT = [ 100000 ]HT = [ 100 ] (sindrom dari pola error) 4.4.8.Koreksi Galat (Error Correction) Telahdibahasbahwagalattunggal(singleerror)dapatdideteksidantelah ditunjukkanbahwapengujiansindromyangdilakukanpadavektorsanditerkena error,maupunpadapolaerroryangmenyebabkannya,menghasilkansindromyang sama. Karena terdapat korespondensi satu-satu antara pola error dan sindrom, maka ini merupakan petunjuk bahwa pola error dapat dikoreksi. (4.22) (4.23) 53 Berikut ini disajikan larik standar (standard array) yang merupakan 2n n-tuple yang mewakilikemungkinanvektoryangditerima.Barispertamalarikiniyangterdiri darisemuavektorsandi,dimulaidenganvektornol(semuaelemenadalahnol). Kolom pertama terdiri dari semua pola error yang dapat dikoreksi. Vektor nol pasti anggota dari set kata sandi (bag. 4.4.2.). Setiap baris, disebut coset, mengandung pola error dari kolom pertama (coset leader), diikuti dengan vektor sandi yang terkena pola error. Format larik standar untuk sandi (n, k) adalah: U1U2UiU2k e2U2 + e2 Ui + e2 U2k + e2 e3U2 + e3 Ui + e3 U2k + e3 ejU2 + ej Ui + ejU2k + ej e2n k U2 + e2n kUi + e2n kU2k + e2n k Larik di atas mengandung semua 2n n-tuple dalam space Vn (setiap n-tuple hanya muncul pada satu lokasi). Setiapcoset terdiri dari 2k n-tuple, sehingga terdapat 2n/2k = 2n k coset. Jika vektor sandi Ui dikirimkan melalui kanal dengan derau (noise), dan jikapolaerrorakibatkanaltersebutadalahcosetleader,makavektoryangditerima akandiawasandikan(decoded)denganbenarmenjadivektorsanditerkirimUi.Jika pola error bukan coset leader, akan dapat menyebabkan pengawasandian yang salah. 4.4.8.1.Sindrom dari Coset Jika ej adalah coset leader atau pola error pada coset ke-j, maka Ui + ej adalah n-tuple pada coset ini. Sindrom dari n-tuple ini dapat ditulis: S = (Ui + ej)HT = UiHT + ejHT Karena Ui adalah vektor sandi, UiHT = 0 dan seperti persamaan (4.23): S = (Ui + ej)HT = ejHT Dari persamaan (4.25) terlihat bahwa samua anggota coset mempunyai sindrom yang samadansindromdigunakanuntukestimasipolaerror.Sedangkansindromuntuk setiap coset berbeda. 4.4.8.2.Pengawasandian Koreksi Galat (Error Correction Decoding) Prosedur pengawasandian koreksi galat adalah sebagai berikut: 1.Hitung sindrom r dengan S = rHT. 2.Tentukan lokasi coset leader (pola error), ej, dengan sindrom = rHT. 3.Pola error ini diasumsikan berasal dari kanal. 4.Vektoryangditerimadenganbenar,atauvektorsandi,diidentifikasikan sebagai U = r + ej. 4.4.8.3.Menentukan Lokasi Pola Galat (Error Pattern) Kembalipadacontohbagian4.4.3,larikstandaruntuk266-tupleditunjukkan pada gambar 4.8. Vektor sandi yang benar (valid) adalah delapan vektor pada baris pertama, dan pola error adalah delapan coset leader pada kolom pertama. Perlu dicatat bahwapolaerror1-bitdapatdikoreksi.Perlujugadicatatbahwasetelah (4.24) (4.25) 54 menghabiskan semua pola error, masih tersisa kemampuan untuk mengkoreksi error, karena belum semua dari 64 6-tuple dihitung. Ada satu coset leader yang tidak terpakai, jadimasihtersisasatukemampuanuntukmengoreksisatupolaerrortambahan. Pemilihanpolaerrordapatfleksibel,sembarangdarin-tupledalamcosettersisa.Pada gambar 4.8 polaerror terakhir yang dapat dikoreksi ini dipilih sembarang, untuk 2-bit pola error 0 1 0 0 0 1. Pengawasandian akan benar jika, dan hanya jika, pola error akibat kanal merupakan salah satu dari coset leader. 000000110100011010101110101001011101110011000111 000001110101011011101111101000011100110010000110 000010110110011000101100101011011111110001000101 000100110000011110101010101101011001110111000011 001000111100010010100110100001010101111011001111 010000100100001010111110111001001101100011010111 100000010100111010001110001001111101010011100111 010001100101001011111111111000001100100010010110 Gambar 4.8. Contoh larik standar untuk sandi (6, 3) Sindromyangbersesuaianuntuksetiapderetanerroryangdapatdikoreksi, ditentukan dengan menghitung ejHT untuk setiap coset leader, sebagai berikut: (((((((((

=1 0 11 1 00 1 11 0 00 1 00 0 1je S Hasil perhitungan diatas diperlihatkan pada tabel 4.1. Karena setiap sindrom di dalam tabel adalah unik, maka pengawasandi dapat mengidentifikasi pola error e. Tabel 4.1. Tabel look-up sindromPola errorSindrom 0 0 0 0 0 00 0 0 0 0 0 0 0 11 0 10 0 0 0 1 00 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 0 00 0 10 1 0 0 0 00 1 0 1 0 0 0 0 01 0 00 1 0 0 0 11 1 1 4.4.8.4.Contoh Koreksi Galat Polaerroryangdiidentifikasikanmerupakanestimasidarierroryang sesungguhnya,dengannotasi.Pengawasandikemudianmenambahkanpadar untuk mendapatkan estimasi dari vektor sandi . 55 = r + = (U + e) + = U + (e + ) Jika estimasi pola error sama dengan pola error aktual, maka estimasi vektor sandi sama dengan vektor sandi terkirim. Jika estimasi polaerror tidak sama dengan pola erroraktual,makapengawasandiakanmenghasilkanestimasivektorsandiyang salah,halinidisebutkesalahanpengawasandianyangtidakterdeteksi(undetectable decoding error). Contoh 4.3 Koreksi Galat Vektor sandi U = 1 0 1 1 1 0 dari bagian 4.4.3adalahvektorterkirimdanvektor r=001110adalahvektoryangditerimadenganerrorpadabitpalingkiri. Tunjukkanbagaimanapengawasandidapatmengkoreksierror!Gunakantabellook-up sindrom pada tabel 4.1. Penyelesaian Sindrom dari r adalah: S = [ 001110 ]HT = [ 100 ] Dengantabel4.1,polaerrorestimasiyangsesuaidengannilaisindromdiatas adalah: = 100000 Estimasi vektor terkoreksi adalah: = r + = 001110 + 100000 = 101110 Karena estimasi pola error sama dengan pola error aktual dalam contoh ini, maka prosedur koreksi error menghasilkan = U. 4.5. Kekuatan Penyandian (Coding Strength) 4.5.1.Bobot dan Jarak dari Vektor Biner Harusdipahamibahwatidaksemuapolaerrordapatdiawasandidenganbenar. Kemampuankoreksierrordarisuatusandidapatdiketahuidenganmenentukan strukturnya.BobotHamming(HammingWeight),w(U),darivektorUdidefinisikan sebagaijumlahelementidaknoldalamU.Untukvektorbiner,berartijumlah elemen satu dalam vektor. Contoh, untuk U = 1 0 0 1 0 1 1 0 1, w(U) = 5. JarakHamming(HammingDistance)antaraduavektorsandiUdanV,d(U,V), adalah jumlah elemen yang berbeda, contoh: U = 1 0 0 1 0 1 1 0 1 V = 0 1 1 1 1 0 1 0 0 d(U, V) = 6 Dengansifatpenjumlahanmodulo2,penjumlahandariduavektorbiner adalahvektorlaindenganangkasatuterletakpadaposisidimanaduavektor tersebut berbeda, contoh: U + V = 1 1 1 0 1 1 0 0 1 (4.26) 56 TerlihatbahwajarakHammingantaraduavektorsandimerupakanbobot Hammingdaripenjumlahannya,d(U,V)=w(U+V).Terlihatpulabahwabobot Hamming dari vektor sandi sama dengan jarak Hammingnya dari vektor nol. 4.5.2.Jarak Minimum dari Sandi Linear Jikaterdapatsatuset(kelompok)jarakantarsemuapasanganvektor-vektor sandi dalam space Vn, maka anggota terkecil dari set tersebut adalah jarak minimum darisandi,dmin.Jarakminimummenunjukkankemampuanminimumdarisandi, sehingga menunjukkan kekuatan sandi. Sifat dari sandi linear adalah: jikaU dan V adalah vektor sandi, maka W = U + V juga merupakan vektor sandi. Sehingga jarak antara dua vektor sama dengan bobot dari vektor sandi ketiga, d(U, V) = w(U + V) =w(W).Jadijarakminimumdarisandilineardapatdipastikantanpamenghitung jarakantarsemuakombinasidaripasanganvektorsandi,tetapihanyaperlu mengetahuibobotsetiapvektorsandi(tidaktermasukvektornol)dalamsubspace. Bobotminimumsesuaidenganjarakminimum,dmin.Dengankatalain,dminsesuai dengan set terkecil dari jarak antara vektor sandi nol dan vektor sandi yang lain. 4.5.3.Deteksi dan Koreksi Galat Tugaspengawasandisetelahmenerimavektorr,adalahmelakukanestimasi vektorsanditerkirimUi.Strategipengawasandiyangoptimaldapatdinyatakan denganistilahalgoritmakemungkinanmaksimum(maximumlikelihoodalgorithm) sebagai berikut: Ui ditentukan jika P(r|Ui) = maks P(r|Uj) dari semua Uj Karenauntukkanalsimetrisbiner(BSC=BinarySymmetricChannel), kemungkinanUisehubungandenganrberbandingterbalikdenganjarakantarar dan Ui, maka: Ui ditentukan jika d(r, Ui) = min d(r, Uj) dari semua Uj Dengankatalain,pengawasandimenentukanjarakantarardengansetiap vektor sandi yang mungkin dikirimkan Ui, dan memilih yang paling mendekati Ui, dengand(r, Ui) s d(r, Uj)untuk i, j = 1, 2, , M dan i = j denganM=2kadalahbesardarisetkatasandi.Jikanilaiminimumtidakunik, maka pemilihan kata sandi dengan jarak minimum adalah sembarang. Dalamgambar4.9,jarak antaradua vektorUdan Vditunjukkandengangaris yangmenggambarkanjarakHamming.Setiaptitikhitammenggambarkanvektor sandiyangterkenaerror.Gambar4.9.amemperlihatkanpenerimaandarivektorr1 dengan jarak 1 dari U dan 4 dari V. Pengawasandi koreksi error akan memilih U saat menerima r1. Jika r1 adalah hasil dari error 1-bit pada vektor sandi terkirim U, maka pengawasandiberhasilmengkoreksierror.Tetapijikar1adalahhasildarierror4-bit pada vektor sandi terkirimV, maka terjadi kesalahan pengawasandian.Error ganda pada pengiriman U dapat menghasilkan penerimaan vektor r2 dengan jarak 2 dari U dan3dariV(gambar4.9.b).Disini,pengawasandijugaakanmemilihUsaat menerimar2.TigabiterrorpadapengirimanUdapatmenghasilkanpenerimaanr3 dengan jarak 3 dariU dan 2 dari V (gambar 4.9.c). Pengawasandi akan memilihV saat menerima r3 sehingga terjadi kesalahan pengawasandian. (4.27) (4.28) (4.29) 57 Gambar 4.9. Deteksi dan koreksi error. (a) Vektor r1 diterima.(b) vektor r2 diterima. (c) Vektor r3 diterima. Secara keseluruhan gambar 4.9 memperlihatkan bahwa jika pengawasandi hanya melakukandeteksierror,makavektoryangterkenaerrorakanlangsungterdeteksi. Tetapi jika 5-bit error terjadi, maka seolah-olah akan menerima vektor sandiV saat vektor sandi U dikirim. Error seperti ini tidak dapat terdeteksi. Darigambar4.9terlihatbahwakemampuandeteksidankoreksierrorsuatu sanditergantungdarijarakminimumantaravektor-vektorsandi.Dalamcontoh gambar4.9,kriteriakeputusanuntukmemilihUjikarberadapadaarea1dan memilih V jika r pada area 2, menggambarkan bahwa sandi tersebut dengan dmin = 5, dapat mengkoreksi dua error. Secara umum, kemampuan mengkoreksi error, t, dari suatusandiditentukanolehjumlahmaksimumerroryangdapatdikoreksiperkata sandi, dan ditulis sebagai: ((

=21mindt dengan x berartibilanganbulatterbesaryangtidaklebihdarix.Seringterjadi, suatu sandi yang dapat mengkoreksi semua deretan error t (atau kurang), dapat juga mengkoreksi deretan error t + 1. Ini terlihat pada gambar 4.8. Dalam contoh ini dmin =3.Daripersamaan(4.30),semuat=1-biterrordapatdikoreksi.Juga,satut+1 atau 2-bit error dapat dikoreksi. Secara umum, sandi linear (n, k) pengoreksit-error mampu mengkoreksi 2nk pola error. Jika sandi blok pengkoreksit-error digunakan untukkoreksierrorpadaBSCdenganprobabilitastransisip,makaprobabilitas bahwapengawasandimelakukankesalahanpengawasandian,danbahwan-bitblok mengalami error, dapat dihitung dengan persamaan (4.9) sebagai batas atas: ( )j n jnt jMp pjnP+ =||.|

\|s 11 (4.30) (4.31) 58 Batastersebutdapatmenjadipersamaanjikapengawasandimengkoreksisemua kombinasierrormencapaiterror,tidaklebih.Pengawasandiinidisebut pengawasandi dengan jarak terbatas (bouded distance decoder). Probabilitas bit-error yang terawasandi(decoded)tergantungdaripengawasandidansanditertentu.Inidapat dinyatakan dengan pendekatan berikut: ( )j n jnt jBp pjnjnP+ =||.|

\|~111 Sandidapatdigunakanuntukmendeteksierrorsebelummengkoreksinya.Dari gambar4.9,terlihatbahwasetiapvektoryangditerimaditandaidengantitik hitam dapatdiidentifikasikansabagaierror.Olehkarenaitu,kemampuandeteksierror,e, dalam dmin adalah: e = dmin 1 Sandiblokdenganjarakminimumdminmenjaminbahwasemuapolaerrordari dmin1ataukurangdapatterdeteksi.Padakenyataannya,sandi(n,k)mampu mendeteksi2n2kpolaerrordenganpanjangn.Penjelasannyaadalahsebagai berikut. Di dalamspace 2n n-tuple terdapat total 2n 1 kemungkinan polaerror tidak nol. Walaupun pola bit dari kata sandi yang benar menggambarkan polaerror yang potensial. Jadi ada 2k 1 pola error yang identik dengan 2k 1 kata sandi tidak nol. Jika satu dari 2k 1 pola error terjadi, akan merubah kata sandi terkirim Ui menjadi katasandiyanglainUj.JadiUjakanditerimadengansindromsamadengannol. PengawasandimenerimaUjsebagaikatasanditerkirimsehinggamelakukan kesalahanpengawasandian.Olehkarenaitu,terdapat2k1polaerroryangtidak dapatdideteksi.Jikapolaerrortidakidentikdengansatupundari2kkatasandi, pengujiansindrompadavektoryangditerimarmenghasilkansindromtidaknol, sehinggaerrordapatterdeteksi.Jadi,ada2n2kpolaerroryangdapatdideteksi. Untuknyangbesar,dengan2k o + | + 1 Saat t error atau kurang muncul, sandi mampu mendeteksi dan mengkoreksinya. Saaterrormuncullebihdarittetapikurangdarie+1,makasandimampu mendeteksinya tetapi hanya mengkoreksi subsetnya. Contoh, sandi dengan dmin = 7 dapatdigunakanuntukmendeteksidanmengkoreksierrorsecarasimultandengan salah satu cara berikut: Deteksi (|)Koreksi (o) 33 42 51 60 Dari contoh di atas, saat tiga error muncul, maka semuanya dapat dideteksi dan dikoreksi.Saatlimaerrormuncul,semuanyadapatdideteksi,tetapihanyasatu subset yang dapat dikoreksi. 4.6. Sandi Siklis (Cyclic Codes) Sandi siklis biner merupakan subklas dari sandi blok linear yang penting. Sandi inidapatdenganmudahdiimplementasikandenganregistergeserumpanbalik (feedback shift register), demikian juga dengan perhitungan sindrom. Sandi linear (n, k) disebut sandi siklis jika mempunyai sifat-sifat berikut. Jika n-tuple U = (u0, u1, u2, , un 1) adalah vektor sandi dalam subspace S, maka U(1) = (un 1, u0, u1, , un 2), yang diperoleh dengan pergeseran melingkar (end-arround shift), juga vektor sandi dalam S. Secara umum, U( i ) = (un i, un i + 1, , un 1, u0, u1, , un i 1), yang diperoleh dengan i pergeseran siklis/melingkar, juga vektor sandi dalam S. KomponendarivektorsandiU=(u0,u1,u2,,un1)dapatditulissebagai koefisien polinomial U(X) berikut: U(X) = u0 + u1X + u2X2 + + un 1Xn 1 Fungsi polinomial U(X) dapat ditinjau sebagai tempat dari digit vektor sandi U, sehingga vektor n-tuple dinyatakan sebagai polinomial dengan pangkat n 1 atau kurang. Ada atau tidaknya suku polinomial menyatakan digit 1 atau 0 dengan lokasi yangsesuaipadan-tuple.Jikakomponenun1tidaknol,makapangkatpolinomial adalah n 1. (4.35) (4.36) 60 4.6.1.Struktur Aljabar Sandi Siklis JikaU(X)adalahpolinomialkatasandidenganpangkat(n1),makaU(i)(X), yang merupakan sisa hasil bagi Xi U(X) dengan Xn + 1, juga merupakan katasandi, yaitu: ( )( )()( )1 1 ++ =+niniXX UX qXX U X atau Xi U(X) = q(X)(Xn + 1) + U( i )(X) sisa atau dengan aritmetika modulo U( i )(X) = Xi U(X) modulo (Xn + 1) denganxmoduloysisahasilbagixolehy.Akanditunjukkanvaliditaspersamaan (4.39) dalam kasus i = 1. U(X) = u0 + u1X + u2X2 + + un 2Xn 2 + un 1Xn 1 XU(X) = u0X+ u1X2 + u2X3 + + un 2Xn 1 + un 1Xn dengan aritmetika modulo-2, un 1 dapat ditambahkan dua kali menjadi XU(X) = un 1 + u0X+ u1X2 + u2X3 + + un 2Xn 1 + un 1Xn+ un 1 U(1)(X) = U(1)(X) + un 1(Xn + 1) karena U(1)(X) mempunyai pangkat n 1, maka tidak dapat dibagi dengan Xn + 1, sehingga U(1)(X) = X U(X) modulo (Xn + 1) Contoh 4.5 Pergeseran Siklis dari Vektor Sandi JikaU=1101,untukn=4,makanyatakanvektorsandidalambentuk polinomialdangunakanpersamaan(4.39)untukmenyelesaikanketigapergeseran melingkar dari vektor sandi tersebut! Penyelesaian U(X) = 1 + X + X3(polinomial ditulis dari pengkat terendah) XiU(X) = X3 + X4 + X6,dengan i = 3 Bagi X3U(X) dengan X4 + 1 dengan pembagian polinomial: 1123 4 6 4++ + +XX X X XX6+ X2 X4 + X3+ X2 X4 + 1 X3+ X2+ 1[sisa, U(3)(X)] Sisaditulisdaripangkatterendah:1+X2+X3,sehinggaU(3)(X)=1011 merupakan tiga pergeseran siklis dari U = 1101. (4.37) (4.38) (4.39) 61 4.6.2.Sifat sifat Sandi Siklis Biner Sandisiklisdapatdibangkitkandenganpolinomialpembangkit(generator polynomial),sepertipembangkitansandibloklineardenganmatrikpembangkit. Polinomial pembangkit, g(X) untuk sandi siklis (n, k) adalah unik dengan bentuk: g(X) = g0 + g1X + g2X2 + + grXr dengang0dangrharussamadengan 1.Setiappolinomialkatasandidalamsubspace mempunyaibentukU(X)=m(X)g(X),denganU(X)adalahpolinomialdengan pangkat n 1 atau kurang. Polinomial pesan m(X) dapat ditulis sebgai berikut: m(X) = m0 + m1X + m2X2 + + mn r 1Xn r 1 Terdapat 2n r polinomial kata sandi dan 2k vektor sandi dalam sandi (n, k). Karena setiap vektor sandi mempunyai satu polinomial kata sandi, maka n r = k atau r = n k Jadig(X)harusmempunyaipangkatnkdansetiappolinomialkatasandidalam sandi siklis (n, k) dapat dinyatakan sebagai U(X) = (m0 + m1X + m2X2 + + mk 1Xk 1)g(X) Udikatakansebagaivektorsandiyangbenar(valid)darisubspaceSjika,danhanya jika U(X) dibagi g(X) tanpa sisa. Dan jika g(X) adalahpolinomial dengan pangkat nkdanmerupakanfaktordariXn+1,makag(X)secaraunikdapat membangkitkan sandi siklis (n, k). 4.6.3.Penyandian dalam Bentuk yang Sistematis Sepertipadabagian4.4.5,sifat-sifataljabarsandisiklisdapatdigunakanuntuk membangunprosedurpenyandianyangsistematis.Vektorpesandapatdinyatakan sabagai polinomial sebagai berikut: m(X) = m0 + m1X + m2X2 + + mk 1Xk 1 Dalam bentuk sistematis, digit-digit pesan dapat digunakan sebagai bagian dari vektorsandi.Halinidapatdilakukandenganmenggeserdigit-digitpesankek tingkatyangpalingkanandariregisterkatasandidanmenambahkandigit-digit paritasyangdiletakkanpadanktingkatyangpalingkiri.Jikam(X)dikalikan dengan Xn k, maka didapatkan polinomial pesan yang tergeser ke kanan: Xn km(X) = m0Xn k + m1Xn k + 1 + + mk 1Xn 1 Jika persamaan (4.44) dibagi dengan g(X), maka Xn km(X) = q(X)g(X) + r(X) dengan r(X) = r0 + r1X + r2X2 + + rn k 1Xn k 1 atau (4.40) (4.41) (4.42) (4.43) (4.44) (4.45) (4.46) 62 r(X) = Xn km(X) modulo g(X) Denganmenambahkanr(X)padakeduasisidaripersamaan(4.45)dengan aritmetika modulo-2, maka diperoleh r(X) + Xn km(X) = q(X)g(X) = U(X) Sisikiripersamaan(4.48)merupakanpolinomialkatasandiyangvalid,karena mempunyaipangkatn1ataukurang,danjikadibagidengang(X)makasisanya adalah nol. Kata sandi ini dapat dinyatakan sebagai polinomial berikut: r(X) + Xn km(X) = r0 + r1X + r2X2 + + rn k 1Xn k 1 + m0Xn k + m1Xn k + 1 + + mk 1Xn 1 Polinomial kata sandi di atas sesuai dengan vektor sandi U = (r0, r1, , rn k 1, m0, m1, , mk 1) (n k) bit paritas k bit pesan Contoh 4.6 Sandi Siklis dalam Bentuk Sistematis Dengan polinomial pembangkit g(X) = 1 + X + X3, susun vektor sandi sistematis dari set kata sandi (7, 4) untuk vektor pesan m = 1011! Penyelesaian m(X) = 1 + X2 + X3,n = 7,k = 4,n k = 3 Xn km(X) = X3 + X5 + X6 Bagi Xn km(X) dengan g(X), maka X3 + X5 + X6 = (1 + X + X2 + X3) (1 + X + X3) + 1 hasil bagi q(X)pembangkit g(X) sisa r(X) Dari persamaan (4.48),U(X) = r(X) + X3m(X) = 1 + X3 + X5 + X6 U = 1001011 bit paritas bit pesan 4.6.4.Rangkaian Pembagi PolinomialRangkaian pembagian polinomial seperti di atas dapat dengan mudah dibangun dari rangkaian pembagi yang menggunakan register geser umpan balik (feedback shift register). Jika ada dua polinomial V(X) dan g(X), dengan V(X) = v0 + v1X + v2X2 + + vmXm g(X) = g0 + g1X + g2X2 + + grXr untukm> r,rangkaianpembagigambar4.10melakukanlangkahpembagian polinomial, membagi V(X) dengan g(X), menghasilkan (4.47) (4.48) (4.49) 63 ( )( )( )( )( ) X gX rX qX gX V+ = Gambar 4.10. Rangkaian pembagi polinomial Padaawalnyasetiaptingkatpadaregisterterisidengannol.rpergeseran pertamamemberikankoefisienV(X)yangpalingsignifikan(denganorde/pangkat yanglebihtinggi).Setelahpergeseranker,diperolehhasilbagigr-1vm,yang merupakanhasilbagidenganordetertinggi.Untuksetiapkoefisienhasilbagiqi, polinomialqig(X)harusdikurangidaripolinomialyangdibagi(dividen). Pengurangan ini dilakukan dengan umpan balik rangkaian.Selisih antara r suku paling kiri yang tersisa dalam dividen dan hasil umpan balik qig(X), terbentuk pada setiap pergeseran rangkaian dan muncul sebagai isi register. Padasetiappergeseranregister,selisihyangadadigesersatutingkat.Ordeyang palingtinggidigeserkeluar,sedangkankoefisiensignifikanselanjutnyadariV(X) digesermasuk.Setelahtotalm+1pergeserankedalamregister,hasilbagi diletakkan secara serial pada output dan sisa terletak pada register. Contoh 4.7 Rangkaian Pembagi Gunakan rangkaian pembagi pada gambar 4.10 untuk membagi V(X) = X3 + X5 + X6 (V = 0001011) dengan g(X) = 1 + X + X3, hitung hasil bagi dan sisa. Penyelesaian Rangkaian pembagi harus dapat melakukan operasi berikut: ( )( )3 36 5 31 1 X XX rX qX XX X X+ ++ =+ ++ + Register geser dengan umpan balik yang diperlukan ditunjukkan pada gambar 4.11. Gambar 4.11. Rangkaian pembagi untuk contoh 4.7. 64 Isi awal dari register diasumsikan nol. Tahap-tahap operasi rangkaian adalah sebagai berikut: Antrian InputNo. PergeseranIsi RegisterOutput 00010110000 00010111000 0001021100 000130110 00040111 0051111 061011 71001 Setelahpergeserankeempat,koefisienhasilbagi{qi}yangsecaraserialkeluardari outputadalah1111,atauhasilbagipolinomialq(X)=1+X+X2+X3. Koefisiensisa{ri}adalah100,ataupolinomialsisar(X)=1.Secarasingkat, komputasi V(X)/g(X) dari rangkaian adalah 33 236 5 31111 X XX X XX XX X X+ ++ + + + =+ ++ + Sedangkan tahap-tahap pembagian polinomial adalah sebagai berikut: Output setelah pergeseran ke-: 45 6 7 ++++ 112 33 5 6 3+ + ++ + + +X X XX X X X XX6 X4 + X3 u.b. setelah pergeseran ke 4 X5 + X4 reg. setelah pergeseran ke 4X5 + X3 + X2 u.b. setelah pergeseran ke 5 X4 + X3 + X2 reg. setelah pergeseran ke 5 X4+ X2 + Xu.b. setelah pergeseran ke 6 X3 + Xreg. setelah pergeseran ke 6 X3 + X + 1u.b. setelah pergeseran ke 7 1reg. setelah pergeseran ke 7 (sisa) Catatan: u.b. = umpan balik reg. = register 4.6.5.Penyandian Sistematis dengan Register Geser (n k)-TingkatPenyandian sandi siklis dalam bentuk sistematis telah dibahas pada bagian 4.6.3, denganmelibatkanperhitunganbitparitassebagaihasildariXnkm(X)modulo g(X), atau pembagian dari polinomial pesan yang tergeser ke kanan oleh polinomial pembangkit g(X). Pergeseran dilakukan untuk memberi tempat kepada bit paritas, yangditambahkanpadabitpesan,untukmenghasilkanvektorsandidalambentuk sistematis.Penggeseranbitpesansebanyaknkposisimerupakanoperasiyang mudahdantidakbenar-benardilakukansebagaibagiandarirangkaianpembagi. Malahan,hanyabit-bitparitasyangdihitung,dankemudianditempatkanpada lokasi yang sesuai sepanjang bit-bit pesan.Polinomialparitasadalahsisasetelahdibagidenganpolinomialpembangkit, dantersediadidalam register setelah pergeseran ken pada register umpan balik 65 (n k)-tingkat seperti gambar 4.11. n k pergeseran pertama hanya mengisi register dantidakdiperolehumpanbalik,sampaitingkatpalingkananterisi.Siklus pergeserandapatdiperpendekdenganmemberikandatainputkeoutputtingkat terakhirsepertigambar4.12.Umpanbalikyangdiberikanketingkatpalingkiri adalahjumlahdariinputdantingkatpalingkanan.Penjumlahaninidihasilkan dengang0=gnk=1untuksetiappolinomialpembangkitg(X).Sambungan umpan balik rangkaian berhubungan dengan koefisien dari polinomial pembangkit, yang dapat ditulis g(X) = 1 + g1X + g2X2 + + gn k 1Xn k 1 + Xn k Gambar 4.12. Penyandian dengan register geser (n k)-tingkat. Tahap-tahap berikut adalah prosedur penyandian yang menggunakan penyandi pada gambar 4.12. 1.Saklar 1 tertutup selama k pergeseran pertama, agar bit-bit pesan dapat terkirim ke register geser penyandian n k tingkat. 2.Saklar2padaposisikebawah,agarbit-bitpesanterkirimlangsungkeregister output selama k pergeseran pertama. 3.Setelah pengiriman bit pesan kek, saklar 1 terbuka dan saklar 2 berpindah ke posisi atas. 4.nkpergeseranyangtersisamembersihkanregisterpenyandidengan memindah bit-bit paritas ke register output. 5.Jumlahtotalpergeseransamadengann,danisidariregisteroutputadalah polinomial kata sandi r(X) + Xn km(X). Contoh 4.8 Penyandian Sistematis dari Sandi Siklis Gunakanregsitergeserdenganumpanbaliksepertigambar4.12untuk menyandikanvektorpesanm=1011menjadivektorsandi(7,4)dengan polinomial pembangkit g(X) = 1 + X + X3. Penyelesaian m(X) = 1 + X2 + X3 Xn km(X) = X3m(X) = X3 + X5 + X6 Xn km(X) = q(X)g(X) + r(X) r(X) = X3 + X5 + X6 modulo (1 + X + X3) (4.50) 66 Gambar 4.13. Contoh penyandian sandi siklis (7, 4) dengan register geser (n k)-tingkat. Untuk (n k) = 3 tingkat register geser penyandi seperti gambar 4.13, tahap-tahap operasi penyandian adalah Antrian InputNo. PergeseranIsi RegisterOutput 10110000 10111101 1021011 131000 41001 Setelah pergeseran ke-4, saklar 1 terbuka, saklar 2 berpindah ke posisi atas dan bit-bit paritas yang beradadi register digeser ke output.Vektorsandioutput adalah U = 1001011, atau dalam bentuk polinomial U(X) = 1 + X3 + X5 + X6. 4.6.6.Deteksi Galat (Error) dengan Register Geser (n k)-TingkatJikaU(X)adalahpolinomialkatasandiyangdikirimkandanZ(X)adalah polinomial yang diterima, maka U(X) = m(X)g(X) danZ(X) = U(X) + e(X) dengane(X)adalahpolinomialgalat(error).PengawasandimengujiapakahZ(X) adalah polinomial kata sandi yang benar (sama dengan yang terkirim), apakah dapat dibagi dengan g(X) tanpa sisa. Hal ini dilakukan dengan menghitung sindrom dari polinomialyangditerima.SindromS(X)samadengansisahasilbagiZ(X)oleh g(X), Z(X) = q(X)g(X) + S(X) denganS(X)adalahpolinomialpangkatnk1ataukurang.Jadisindrom merupakan (n k)-tuple. Kombinasi persamaan (4.51) dan (4.53) menghasilkan e(X) = [m(X) + q(X)]g(X) + S(X) Membandingkanpersamaan(4.53)dan(4.54),terlihatbahwasindromS(X), yang merupakan sisa dari Z(X) modulo g(X), adalah sama dengan polinomial yang merupakan sisa dari e(X) modulo g(X). Jadi sindrom dari polinomial yang diterima Z(X)mengandunginformasiyangdibutuhkanuntukmengkoreksipolaerror. (4.52) (4.51) (4.53) (4.54) 67 Penghitungansindromdilakukandenganrangkaianpembagiyanghampirsama dengan rangkaian penyandi pada pemancar. Contohperhitungansindromdenganregistergesernkdiperlihatkanpada gambar4.14menggunakanvektorsandiyangdibangkitkandalamcontoh4.8. Awalnya,saklar1tertutup,dansaklar2terbuka.Vektoryangditerimadigeserke input register dengan semua tingkat di-set nol pada awalnya. Setelah semua vektor yang diterima dimasukkan ke dalam register, isi dari register adalah sindrom. Saklar 1kemudianterbukadansaklar2tertutup,sehinggavektorsindromdapatdigeser keluar dari register. Tahap-tahap operasi dari pengawasandi adalah: Antrian InputNo. PergeseranIsi Register 10010110000 1001011100 100102110 10013011 1004011 105111 16101 7000 Gambar 4.14. Contoh perhitungan sindrom dengan register geser (n k)-tingkat. Jikasindromadalahvektornol,makavektoryangditerimadianggapsebagai vektorsandiyangbenar.Jikasindrombukanmerupakanvektornol,makavektor yangditerimamerupakanvektorsandiyangterganggudanerroryangmengganggu telahterdeteksi.Errorinidapatdikoreksidenganmenambahkanvektorerror(yang sesuai dengan sindrom) ke vektor yang diterima. (sindrom)