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)