Kanal
Gelombang
Kode kelompok adalah salah satu kode yang dapat mengoreksi kesalahan
bit secara mandiri (self error correction = automatic error corection) , dimana :
bentuk kode terdiri atas :
o kode yang menggambarkan suatu kharakter (simbol , signal ,
atau data) , yang banyaknya k buah bit
o disamping kode untuk kharakter yang banyaknya = k tadi, pada
sistem kode blok ini :
ditambahkan dengan kode yang digunakan sebagai kode
uji paritas (untuk tujuan pengamanan kode) sebanyak q bit
Dapat diketahui bahwa :
o kemungkinan kharakter atau data yang mungkin terjadi = m
buah data = 2 k buah data
Pada kode kelompok :
o banyaknya bit keseluruhan (bit untuk kharakter + bit untuk paritas) atau
banyaklnya bit untuk kata kode , menjadi k + q = n bit
Jika salah satu urutan bit kharakter (= bit data) tersebut
adalah :
d d1 d2 dk …………………………..( II .1 )
d1 s.d. dk bernilai 0 atau 1
3
maka :
dengan memakai enkoder (alat untuk membuat kode) :
o kode kharakter atau kode data yang terdiri atas k bits tersebut
diubah menjadi kharakter baru yang terdiri atas n bits
o tambahan bit sebanyak q n k bits, merupakan bit uji paritas
Kata kode (word) –nya ditulis dengan kode (n , k)
Tujuan penambahan q bits paritas tersebut adalah :
o untuk membuat kode yang terdiri atas n bits , sehingga :
kode data tadi menjadi kode yang dapat mendeteksi dan
mengoreksi kesalahan bit secara mandiri (self
detection and correcting code)
Kesalahan bit tersebut dapat terjadi karena :
o signal-signal biner tersebut melalui media transmisi dalam
perjalanannya dari sumber (souce) ke tujuan (destination)
Data yang keluar dari encoder tersebut , yang disebut dengan kata kode (code
word), dinyatakan sebagai berikut :
x x1 x2 xk xk 1 xk 2 xk q
………..….( II . 2 )
data paritas
x x1 x2 xk xk 1 xk 2 xn
x1 d1 x2 d2 x3 d3 xk dk ………………( II . 3 )
Banyaknya bit uji paritas = q buah
Banyaknya seluruh bit setiap kode baru n k q …..( II . 4 )
Bit-bit uji paritas untuk kode sistimatis tersebut dibuat memenuhi hubungan
yang sesuai dengan persamaan berikut ini :
x k 1 h11 d1 h12 d2 h13 d3 h1k dk
xk 2 h21 d1 h22 d2 h23 d3 h2k dk
........................................................................
xk q xn hq1 d1 hq2 d2 hq3 d3 hqk dk
x H d
q
T
k
T
…………………………..( II . 5a )
Contoh :
Suatu kode (n,k) yaitu kode (15,11), salah satu data tersebut mempunyai kode data :
d 0 1 0 1 1 1 0 1 0 1 1 , dengan n = 15 ; q=4 dan k = 11 ;
Misalkan kode uji paritas dinyatakan dengan persamaan matrix sebagai berikut :
xk 1 x111 x12 h11 h12 h1k d1
x x x h h22 h2 k d 2
k 2 11 2
13 21
x11 3 x14
xn x11 4 x15 hq1 hq 2 hqk d k
h11 h12 h1k 1 1 1 1 0 1 0 1 1 0 0
h h22 h2 k 0 1 1 1 1 0 1 0 1 1 0
Dimisalkan
21
0 0 1 1 1 1 0 1 0 1 1
hq1 hq 2 hqk 1 1 1 0 1 0 1 1 0 0 1
x12 h11 h12 h1k d1 1 1 1 1 0 1 0 1 1 0 0 d1
x h h h2 k d 2 0 1 1 1 1 0 1 0 1 1 0 d 2
13 21 22
x14 0 0 1 1 1 1 0 1 0 1 1
x15 hq1 hq 2 hqk d k 1 1 1 0 1 0 1 1 0 0 1 d k
0
1
0
x12 1 1 1 1 0 1 0 1 1 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0
x 0 1
13 1 1 1 1 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 0 0 0
x14 0 1
0 1 1 1 1 0 1 0 1 1 0 0 0 0 1 1 1 0 1 0 1 1 0
x15 1 1 1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0 1 0 0 1 0
1
0
1
1
Maka kode sistimatis lengkap yang dikirimkan adalah :
x x1 x2 x11 x12 x13 x14 x15 0 1 0 1 1 1 0 1 0 1 1 0 0 0 0
Tugas :
Suatu kode (n,k) yaitu kode (15,11), salah satu data tersebut mempunyai kode data :
d 0 1 0 1 1 1 0 1 0 1 1 , dengan n = 15 ; q=4 dan k = 11 ;
h11 h12 h1k 1 1 1 1 0 1 0 1 1 0 0
h h22 h2 k 0
1 1 1 1 0 1 1 1 1 0
Dimisalkan H
21
1 0 1 1 1 1 0 1 0 1 1
hq1 hq 2 hqk 1 1 1 0 1 0 1 1 0 0 1
5
Jika m adalah salah satu dari 2k buah kode keseluruhan untuk data yang
mungkin terjadi, maka :
o salah satu kode data yang dimaksudkan adalah xm1 , xm2 ,.....,xmk .
o Jika setiap signal data terdiri atas k buah bit , maka signal data yang
mungkin terjadi = 2 k
o Contoh : k 3 signal data yang mungkin te rjadi 23 8 , yaitu :
000
001
010
011
100
101
110
111
Dengan kata lain salah satu kode untuk data , tanpa kode paritas (misalkan data
yang ke-m ) tesebut adalah :
Untuk membuat kode yang dapat mengoreksi secara mandiri jika akibat sesuatu hal
terjadi kesalahan data , maka :
o kode tersebut diberi tambahan dengan bit uji paritas ( parity checking bit )
yang banyaknya q buah bit
o dengan demikian keseluruhan bit keluaran dari enkoder (alat pembuat
kode) yang menggambarkan suatu kharakter + paritas, yang juga disebut
dengan :
kata kode (code word) , banyknya bit menjadi sebanyak n = k + q
bit, sehingga :
urutan bit untuk salah satu kata kode menjadi :
xdm xm1 xm 2 xmn ……………..( II . 7 )
Jika digambarkan secara blok diagram , maka akan terlihat sebagai berikut :
Masukan Keluaran
Enkoder
k bit n bit
Operasi enkoder (operasi pembuat kode) yang dikerjakan dalam suatu enkoder
blok biner linier dapat digambarkan sebagai :
o himpunan n buah persamaan dalam bentuk matrix dapat
dinyatakan sebagai berikut :
cm j xm1 g1 j xm 2 g 2 j xm j g k j ……………….( II . 8 )
dengan :
j 1, 2,, n ; m 1, 2, 2k
6
0
dimana nilai daripada g i j adalah atau
1
Contoh :
Kode (n, k)= kode ( 7, 4 ) ; maka m j adalah salah satu dari 2 4 kemungkina n kode
Data yang mungkin terjadi jika setiap data terdiri atas 4 bit = 24 =16
Kode-kode bit paritas yang terkait tergantung dari matrix H.
Kode data yang mungkin terjadi secara lengkap adalah sebagai berikut :
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
] 1 1 1 1
>> d=[0 0 0 0;0 0 0 1;0 0 1 0;0 0 1 1;0 1 0 0;0 1 0 1;0 1 1 0;0 1 1 1;1 0 0 0;1 0 0 1;1 0 1 0;1 0
1 1;1 1 0 0;1 1 0 1;1 1 1 0;1 1 1 1;]
d=
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1
8
G=
1 0 0 0 1 0 1
0 1 0 0 1 1 1
0 0 1 0 1 1 0
0 0 0 1 0 1 1
>> x=d*G
x=
0 0 0 0 0 0 0
0 0 0 1 0 1 1
0 0 1 0 1 1 0
0 0 1 1 1 2 1
0 1 0 0 1 1 1
0 1 0 1 1 2 2
0 1 1 0 2 2 1
0 1 1 1 2 3 2
1 0 0 0 1 0 1
1 0 0 1 1 1 2
1 0 1 0 2 1 1
1 0 1 1 2 2 2
1 1 0 0 2 1 2
1 1 0 1 2 2 3
1 1 1 0 3 2 2
1 1 1 1 3 3 3
Berdasarkan aturan penjumlahan modulo-2 , dimana jika bilangan biner
dijumlahkan , maka :
o apabila penjumlahan dari seluruh bit tersebut adalah :
genap , maka hasil penjumlahan tersebut = 0 , atau diberi bit “0”
ganjil , maka hasil penjumlahan tersebut = 1 , atau diberi bit “1”
Maka :
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 1 1 0 0 0 1 0 1 1
0 0 1 0 1 1 0 0 0 1 0 1 1 0
0 0 1 1 1 2 1 0 0 1 1 1 0 1
0 1 0 0 1 1 1 0 1 0 0 1 1 1
0 1 0 1 1 2 2 0 1 0 1 1 0 0
0 1 1 0 2 2 1 0 1 1 0 0 0 1
0 1 1 1 2 3 2 0 1 1 1 0 1 0
1 0 0 0 1 0 1 1 0 0 0 1 0 1
1 0 0 1 1 1 2 1 0 0 1 1 1 0
1 0 1 0 2 1 1 1 0 1 0 0 1 1
1 0 1 1 2 2 2 1 0 1 1 0 0 0
1 1 0 0 2 1 2 1 1 0 0 0 1 0
1 1 0 1 2 2 3 1 1 0 1 0 0 1
1 1 1 0 3 2 2 1 1 1 0 1 0 0
1 1 1 1 3 3 3 1 1 1 1 1 1 1
9
c dG d I k P dI k dP d dP c c p ……….…( II . 13 )
c p dP …………………………………( II . 14 )
Jika urutan bit yang diterima adalah kata kode yang tepat , maka :
dP c p 0
Urutan bit Urutan bit
yang dihitung uji paritas
di dekoder yang diterima
P
0 dP cp d cp ………………………..( II . 15 )
Iq
hal ini karena
c p I q c p
Jika tak terjadi kesalahan bit di pesawat penerima , maka :
dP c p 0 ……………………………( II . 16)
dengan P H T dan c d c p
Dengan demikian jika dihitung nilai daripada cH T , maka pada saat tidak
terjadi kesalahan bit , akan dapat diperoleh hasil sebagai berikut :
P
cH T d c p P d c p P 0P 0 ………………..( II . 17 )
I q
10
Syarat urutan bit yang diterima oleh dekoder tidak terjadi kesalahan bit
adalah :
cH T 0 …………………………………( II . 18 )
Didalam hal ini , sesuai dengan perhitungan diatas , yang dimaksudkan dengan H T adalah :
P
H PT I q H T
Iq
Dalam persamaan matrix
h11 h12 h1k
h h2k
12 h22
Matrix uji paritas H …………..( II . 19 )
hq1 hq2 hqk
Contoh :
Kode (7, 3) dengan matrix uji paritas :
1 1 0 0
0 1 1 0
1 0 1 1 0 0 0
1 1 1 0 1 0 0 1 1 1 1
Misalkan H T
p H 1 0 0 0
0 1 1 0 0 1 0
0 1 0 0
0 0 1 0 0 0 1
0 0 1 0
0 0 0 1
Kata kode : c dG (lihat rumus II. 10)
Bila tanpa kesalahan bit maka : cH T 0 (lihat rumus II . 18)
Bila terjadi kesalahan bit yang diterima di dekoder , maka :
r vektor kode yang diterima adalah :
r c e
Jika terjadi kesalahan bit , maka : r c e e 0 0 0
Jika tidak terjadi kesalahan bit , maka : r c e 0 0 0
Sindrome
Dapat dihitung bahwa rH T
c e H T cH T eH T
Yang dinamakan Syndrome adalah :
Syndrome s eH T ………………..………( II . 18 )
Kode blok telah dilakukan penyempunaan oleh Hamming pada tahun 1950
dan disempurnakan lebih lanjutoleh Slepian (1956)
Selanjutnya akan dibahas tentang kode Hamming
KODE HAMMING
Pada tahun 1950 Hamming menyempurnakan bentuk kode blok menjadi sistem kode
yang lebih baik , yang selanjunya disebut sebagai kode Hamming
Seperti diketahui bahwa suatu kode blok adalah kode yang kompak dan mengarah
pada pengimplementasaian (pewujudan atau penggunaan) perangkat keras enkoder
dan dekoder yang banyak
Kelemahan daripada kode blok adalah , kode blok tersebut :
o tidak dapat memberikan petunjuk bagaimana caranya mengambil
elemen-elemen daripada matrix pembantu (lihat rumus II . 5a :
xq T H dk T )
o Berdasarkan rumus ( II . 10 ) , matrix generator G I k P
o Berdasarkan rumus ( II . 11) didapatkan :
12
n 2q 1 …………………………( II . 21 )
Jadi jika q 3 n 23 1 7 ;
jika diambil n 7 banyaknya bit untuk data k n q 7 3 4
k nq
Efisiensi kode = nilai kode (code rate) , untuk kode Hamming = Rc
n n
q q 2 q 1
q
Rc 1 1 q
n 2 1 2q 1
Kurva efisiensi kode sebagai fungsi dari banyaknya bit uji paritas Rc f q ,
dapat dilukis dengan menggunaka n program Matlab yang perintahny a sebagai
berikut :
>> q = 0 : 0.01 : 15; r = (2.^ q - q - 1)./(2.^ q - 1); plot(q, r)
Rc
Berdasarka n kurva disamping kiri terlihat
bahwa Rc 1 jika q 12
Namun karena nilai n k q hanya bernilai 7 ,
maka tidak mungkin dipenuhi efisiensi Rc 1 .
Dengan banyaknya bit uji paritas q 3 , maka
n 2 q 1 23 1 7 ; k n q 7 3 4
q k 4
Efisiensi kode Rc 57%
n 7
Sudah diketahui bahwa sebelumnya bahwa d H min 2 t 1
Agar tidak ada ketergantungan terhadap q , maka dibuat nilai dmin 3 , berarti
bahwa banyaknya kesalahan bit = t = 1 ; jadi hanya terjadi kesalahan tunggal saja.
Jadi sebuah kode Hamming dapat digunakan untuk :
o mengoreksi kesalahan tunggal
o mendeteksi kesalahan ganda (double)
Untuk membuat kode Hamming yang sistematis , perhatikan matrix P
yang sesuai dengan rumus ( II . 11) adalah sebagai berikut :
h11 h21 hq1
h
12 h22 hq2
P H T h13 h23 hq3
h1k h2k hqn
Matrix P terdiri atas k buah baris dan q buah kolom
Per difinisi , kode Hamming adalah kode yang memenuhi persamaan n 2q 1 ,
dimana :
n k q banyaknya bit suatu kata kode ; k banyaknya bit untuk data
o
q banyaknya bit uji paritas
o Misalkan q 4 n 24 1 16 1 15 ambillah n 15
o k n q 15 4 1 1
14
dimana :
n n!
…………………..( II . 20)
t n t ! t !
Contoh soal :
1. Buktikanlah bahwa jarak minimum suatu kode linier adalah bobot Hamming
terkecil daripada vektor-vektor kode yang bukan nol didalam kode tersebut !
Bukti :
Dari hubungan jarak Hamming antara kode ci dan c j d ci , c j adalah sama
dengan :
bobot Hamming daripada kode ci c j wci c j , maka :
jarak Hamming dci ,c j wci c j
dmin min dci , c j min wci c j
ci c j ci c j
2. Buktikanlah bahwa suatu kode linier C dengan jarak minimum dmin dapat men-
deteksi s.d. t kesalahan , jika dan hanya jika :
dmin t 1
Bukti :
Misalkan e pattern kesalahan bukan nol didalam suatu kode linier C.
dengan bobot Hamming we t we dmin 1
Dengan adanya kesalahan kodenya menjadi c e ; jarak Hamming antara c
dengan c e adalah dc,c e .
Berdasarkan rumus d ci , c j wci c j , maka :
dc,c e wc, c e wc c e we t dmin
Maka kata kode yang diterima adalah r c e adalah bukan
didalam kode linier C . Karena itu C dapat mendeteksi kesalahan
e ; jadi C dapat mendeteksi s.d. t buah kesalahan , dimana
t dmin 1 , jika dan hanya jika : dmin t 1
3. Buktikanlah bahwa suatu kode linier C dengan jarak minimum dmin dapat me-
d 1
ngoreksi s.d. t buah kesalahan , jika dan hanya jika dmin 2t 1 t min
2
Bukti :
Misalkan e suatu pattern kesalahan yang bukan nol .
17
i m1
a. Hitunglah Pe jika p 0.01 untuk n 3, 5 dan 7
Jawab :
n
a. Probabilitas bit ke-i diterima salah adakah pi 1 p n - i
i
n
n
Jadi probabilitas kesalahan adalah Pe pi 1 p n - i
i m 1 i
n 1 3 1
b. untuk p 0.01 untuk n 3 dan m 1 , maka :
2 2
3
3 3 3
Pe 0.01 1 0.01 n - i 0.01 0.99 3 - 2 0.01 0.99 3 - 3
i 2 3
i
i 11 2
3
3! 3
10 - 4 0.99 3! 10 -6 1 1 2.97 10 4 1 0.000001
3 2! 2! 3 3! 3! 1 1
3 10- 4 berarti setiap dikirim 10000 buah bit , bit yang diterima maximal
hanya boleh terj adi 3 kesalahan
18
n 1 7 - 1
untuk p 0.01 untuk n 7 dan m 3 , maka :
2 2
7
7
i 0.01 1 0.01
i n -i
Pe
i m 1
7 7 7 7
10 - 2 0.99 10 - 2 0.99 10 - 2 0.99 10 - 2
4 3 5 2 6 1
0.99
7 0
4 5 6 7
n n!
Karena , maka:
t n t ! t !
10 8 0.99 10 10 0.99 10 12 0.99
7! 7! 7!
Pe
3 2 1
7 7 ! 7 !
567 10 8 0.993 67 10 10 0.992 7 10 12 0.993 1 10 14 1
123 12 1 1
10 0.99 10 0.99 7 10 12 0.99 10 14
210 8 42 10
3 2
6 2
350.97 10 8 210.9810 10 70.99 10 12 10 14
3.395 10 7 0.02058 10 7 0.0000693 10 7 3.4156493 10 7
3.41610 7
Ini berarti bahwa setiap dikirim 10 7 bit , yang salah adalah 3.416 bit
atau BER Bit Error Rate 0.342 x 10 -6
Ketidaksamaan Hamming :
d H 2 t 1 d H min 2 t 1
t
n t n!
Hamming bound [lihat persamaan (II . 19 ) : 2 nk dan
i 0 t i 0 n t ! t!
n n!
( II . 20 ) : ], dapat digunakan untuk menentukan :
t n t ! t !
o Kode dengan kesalahan yang lebih besar dari 1 , misalnya bila
terjadi kesalahan t bit , yang mana :
salah satunya yang khusus adalah rumus ketidak samaan
Hamming 2 q q 1 k
o Banyaknya pattern (corak) bit uji paritas yang mungkin terjadi harus :
setidak-tidaknya sama dengan banyaknya cara , dimana :
kesalahan dapat terjadi sampai dengan t buah kesalahan bit
o Untuk kode ( n, k ) berlaku hubungan untuk Hamming Bound sebagai berikut :
t
n t n!
2 nk
i 0 i i 0 n i ! i !
dimana :
n n!
i n i ! i !
Untuk kode (7, 4) dan t 3 , berarti bahwa :
7! 7! 7! 7!
2n k 27 4 8
7 0! 0! 7 1!1! 7 2! 2! 7 3! 3!
1 7
67 567 8 21 35 64
2 6
Karena 8 64 Kode tersebut tidak dapat mengoreksi 3 buah kesalahan
Contoh :
dimana :
t banyaknya bit yang salah dan dapat dikoreksi
21
Jenis kode data yang terdiri atas 4 bit , banyaknya jenis kode adalah 2k = 24 = 16 buah .
Semua jenis kode data yang masing-masing terdiri atas 4 bit , terlihat pada gambar dihalaman
sebelumnya
W x
d c non zero weight
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 1 0 1 1 3
0 0 1 0 0 0 1 0 1 1 0 3
0 0 1 1 0 0 1 1 1 0 1 4
0 1 0 0 P 0 1 0 0 1 1 1 4
Ik
0 1 0 1 0 1 0 1 1 0 0 3
0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 0 1 3
0 1 1 1 0 1 0 0 1 1 1 0 1 1 1 0 1 0 4
1
0 0 0 0 0 1 0 1 1 0 1 0 0 0 1 0 1 3
1 0 0 1 0 0 0 1 0 1 1 1 0 0 1 1 1 0 4
1 0 1 0 1 0 1 0 0 1 1 4
1 0 1 1 1 0 1 1 0 0 0 3
1 1 0 0 1 1 0 0 0 1 0 3
1 1 0 1 1 1 0 1 0 0 1 4
1 1 1 0 1 1 1 0 1 0 0 4
1 1 1 1 7
1 1 1 1 1 1 1
W x non-zero weight = pembobot bukan nol = banyaknya bit bukan nol dalam 1 kata
kode
W x min dH min dmin
dHmin 2 t 1 3
jika terjadi kesalahan bit , maka banyaknya kesalahan min adalah t 1
dHmin dmin 3
Untuk kode blok (n, k) ; berarti q= n - k
Misalkan n = 7 ; k = 4 , berarti q = 3 ; khusus kode ini memenuhi hubungan :
n 2 q 1 7 23 1 8 1
23
O Tidak semua jenis kode blok memenuhi hubungan itu ; misalnya kode
blok (7, 3)
O jika diterapkan rumus diatas , maka n 2 q 1 2 4 1 16 1 15 7
k nq q
Efisiensi kode = code rate = 1
n n n
k q
O Untuk kode blok khusus sebagaimana contoh diatas : 1 q
n 2 1
Perhatikanlah bahwa untuk kode khusus ini telah disebutkan sebelumnya
bahwa kode khusus tersebut berlaku hubungan n 2 q 1 sehingga
k q
diperoleh hubungan 1 q
n 2 1
k
O Untuk efisiensi kode 1 1
n
k q q
O Untuk kode blok khusus 1 1 q q 0 2q 1 2q
n 2 1 2 1
Berarti bahwa kode khusus ini hanya bisa terjadi jika q 1
(Note : ini bertentangan dengan kode blok biasa , dimana agar efisiensi
kode mendekati 1 atau 100 % , maka banyaknya bit paritas q 0)
Kata kode yang ke-i adalah xi yang terdiri atas :
o mi buah bit berita , dimana i = 1, 2, 3 …… k
o ci - k buah bit koreksi, dimana i = k+1, k+2, ……n.
Sebagai contoh adalah sebuah kata kode ( 7,4 )
o ini berarti n = 7 dan k = 4 ; q = banyaknya bit uji paritas = 3
o Dengan 7 bit per kata kode berarti bahwa :
banyaknya kode yang bisa terjadi adalah = 27 = 128 jenis kata kode
yang berbeda satu sama lain
o Namun karena kode untuk data hanya terdiri atas 4 bit
saja, maka :
hanya terdapat 24 = 16 jenis kata kode saja yang
digunakan, dari 128 buah jenis kata kode yang mungkin terjadi
o Bentuk kata kode tersebut adalah :
x [m1 m2 m3 m4 c1 c2 c3 ] T
o Jika H = matrix uji paritas, maka :
H adalah matrix persegi q x n yang bentuknya sebagai berikut :
k q
hq1 hq 2 hqk 0 0 0 1
dimana:
bagian kanan dari matrix tersebut adalah matrix satuan (unit matrix) q x q
Dengan demikian :
hq1 hq 2 hqk 0 0 0 1
m1
m
2
h11 h12 h1k 1 0 0 0 0
h
h22 h2 k 0 1 0 0 mk 0
21
c1
hq1 hq 2 hqk 0 0 0 1 c 2 0
c q
Maka : h j1 m1 h j 2 m2 h jk mk c j 0 ; j 1, 2, q
Contoh 2 :
Didalam suatu enkoder (pembuat kode) komunikasi , setiap bit data yang dikirim diulangi
5 kali dan pada penerima :
- pilihan mayoritas (mayority vote) memutuskan :
o nilai setiap bit data , jika probabilitas kesalahan bit yang tak dibuat kode
atau kata kode tersebut adalah tanpa tambahan bit paritas (unencoded bit
3
error probibility) adalah p 10
o hitunglah probabilitas kesalahan bit yang dibuat kode (coded bit error
probibility) jika digunakan 5 kode yang terbaik (the best five-code)
Jawab :
Sebuah kesalahan kode akan dibuat jika 3 atau lebih ulangan diterima salah
Pe = Probabilitas kesalahan kata kode yang dikode (kata kode yang mengandung bit-bit
uji paritas )
n banyanyapengulangan pengirimantotal 5 ; m banyaknyajenis bit 2
i 3 s/d 5 pengulangan minimals/d maximal
25
5 5
5i p 1 p ni 3 1103 53 4 1103 54
n 5
n i n i
10 3 10 3
i
Pe p p
i m 1 i i 2 1 3 4
5 5 5 5
10 3 5 1103 55
10 9 110 3 2
10 12 110 3 10 15 10 3 0
5 3 4 5
5!
5 3 !3!
9
10 1 5!
5 4 ! 4! 10
12
1
5!
5 5 !5! 10
15
1
120
2 6
9
10 10
12
10
15
10
8
Contoh 3 :
d1 d 2 d k C1 0
a. Untuk k 3 , tentukanlah semua kata kode yang mungkin terjadi untuk kode
(4, 3)
b. Corak kesalahan (error pattern) yang dapat mendeteksi kode (4, 3) ?
c. Hitunglah probabilitas kesalahan simbol yang tak dikode , dengan
menganggap bahwa semua kesalahan simbol adalah bebas dan bahwa
probabilitas kesalahan simbol adalah p 0.01
Jawab :
a. Karena banyaknya kode untuk data = k = 3 , maka kata kode yang mungkin
terjadi adalah k 3
2 2 8
Dengan demikian dapat dibuat tabel tentang bit data dan bit paritas yang
mungkin terjadi pada data dengan banyaknya bit = 3 tersebut , sebagai
gambar dibawah ini :
Urutan bit yang Bit paritas yang mungkin Kata kode yang
mungkin terjadi terjadi mungkin terjadi
d 1 d 2 d 3 c1
d1 d 2 d 3 d1 d 2 d 3 c1 0 c1 ?
0 0 0 0
0 0 0 0 0 0 c1 0 c1 0
0 0 1 1
0 0 1 0 0 1 c1 0 c1 1
0 1 0 1
0 1 0 0 1 0 c1 0 c1 1
0 1 1 0
0 1 1 0 1 1 c1 0 c1 0
1 0 0 1
1 0 0 1 0 0 c1 0 c1 1
1 0 1 0
1 0 1 1 0 1 c1 0 c1 0
1 1 0 0
1 1 0 1 1 0 c1 0 c1 0
1 1 1 1
1 1 1 1 1 1 c1 0 c1 1
26
c. Probabilitas suatu kesalahan simbol yang tak dikode Pue , adalah sama
dengan probabilitas bahwa 2 atau 4 kesalahan terjadi dimanapun pada
suatu kata kode
n 4
Rumus probabilitas kesalahan simbol tak dikode = Pue ni pi 1 pni ,
i 2
24
4
2 2 10 0.99
2
24
1 24
8
108 1 6 104 0.9801 10 5.8806 104
Contoh 4 :
Buktikan bahwa kata kode c 0 0 0 , 111 adalah suatu kode linier !
Bukti :
Karena kesemua 4 penjumlahan :
0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0
adalah didalam c , maka c adalah kode linier
Contoh 5 :
Dengan demikian
q
h11 h12 h1k 1 0 0 0
hHc = 0h( dimana
c =h
kode 0 1yang0dikirim)
tertentu 0 0
H
21 22 2k
q
hq1 hq2 hqk 0 0 0 1
Dengan demikian :
1
d d2 dk c1 c2 cq T
hq1 hq2 hqk 0 0 0 1
d1
d
2
h11 h12 h1k 1 0 0 0 0
h
h22 h2 k 0 1 0 0 d k 0
Hc
21
c1
hq1 hq 2 hqk 0 0 0 1 c 2 0
c q
Hc h j1d1 h j 2 d 2 h jk d k c j 0 ;
j 1, 2, q
Untuk : q 3 ; k 4 ; d1 0 d 2 1 d3 1 d 4 0
j 1 h11 0 h121 h131 h14 0 c1 0 h121 h131 c1 0
Matrix Uji Paritas adalah :
28
4
c5 h11d1 h12 d 2 h13 d 3 h14 d 4
c6 h21d1 h22 d 2 h23 d 3 h24 d 4
c7 h31d1 h32 d 2 h33 d 3 h34 d 4
Nilai syndrome atau s ini sama dengan isi kolom ke-j dari kolom matrix uji
h11 h12 h1k
h h22 h2 k
paritas = H isi kolom ke-j
21
hq1 hq 2 hqk
Karena itu syndrome memberikan informasi bahwa seolah-olah tidak ada
kesalahan yang terjadi (no error) , maka ini sama saja artinya jika :
o posisi sebuah kesalahan ada ,asalkan :
berbeda
semua kolom matrix uji paritas H
bukan nol
Dengan demikian didapatkan kode pengoreksi kesalahan tunggal ( jika kesalahan
yang terjadi hanya 1, maka langsung dikoreksi )
Jika digunakan dengan model ini, maka suatu kode (n,k) akan mempunyai Probabilitas
Kesalahan :
Pe , word Pn 2
2 Pn 2 k n 1 c 2
k
Pe , bit
n
Namun jika kesalahan-kesalahan yang terjadi berulang-ulang (multiple errors)
maka akan menyebabkan keruwetan atau komplikasi :
o karena meskipun kesalahan-kesalahan yang sebenarnya itu bisa
dihilangkan, tapi akibatnya akan salah didalam membetulkan
digit berita lainnya
yang mana menyebabkan beritanya akan menjadi lebih jelek
o Akibatnya dikehendaki kode yang lebih kuat (kode dengan efisiensi kode
yang tinggi)
kecuali jika banyaknya bit uji patitas = c sedemikian
kecilnya sehingga :
kesalahan-kesalahan yang berulang akan amat
jarang terjadi
29
Sayangnya dengan melengkapi suatu syndrome dan matrix uji paritas yang
tepat untuk mengoreksi kesalahan yang berulang-ulang adalah :
o suatu pekerjaan yang jauh lebih ruwet
o oleh karena itu kode pengoreksi dua kesalahan yang pertama kali dibuat
orang :
lebih didasarkan pada coba-coba (trial-and-error) daripada dirancang
berdasarkan metode tertentu.
Akhirnya Slepian pada tahun 1956 mengambil teori koding yang berdasarkan
sepenuhnya pada matematika, pada saat dia :
o berhasil menemukan relasi konsep koding dengan aljabar modern.
Segera setelah itu , dengan memakai teori medan Galois, para ahli yang bernama :
o Bose, Chaudhuri dan Hocquenghem mengembangkan kelompok kode yang
dapat mengoreksi kesalahan yang berulang-ulang (sekarang disebut
dengan kode BCH (singkatan dari Bose-Chaudhuri-Hocquenghem) yang :
efisien
mempunyai hubungan relative sederhana dengan persyaratan
coding
perangkat keras bagi
dekoding
Syndrome Decoding
Teori :
Jika urutan bit yang dikirim adalah vektor kode 𝑿 dan urutan bit yang
diterima adalah vektor kode 𝒀 , maka :
o akan terjadi kesalahan transmisi jika 𝒀 ≠ 𝑿
o dekoder akan mendeteksi atau mengoreksi kesalahan yang terjadi
vektor kode 𝒀 , menggunakan :
informasi yang tersimpan tentang kode
Cara langsung didalam mendeteksi kesalahan adalah :
o dengan membandingkan vektor kode 𝒀 dengan setiap vektor yang
terdapat pada kode (maksudnya setiap vektor kode yang mungkin
terjadi dan tersimpan di rangkaian memory)
o metode ini memerlukan 2𝑘 vektor kode dibagian penerima dan mela-
kukan 𝟐𝒌 kali pembandingan
o namun kode yang efisien biasanya menggunakan nilai
𝒌 𝒚𝒂𝒏𝒈 𝒃𝒆𝒔𝒂𝒓 , yang berarti :
memerlukan perangkat keras dekoding yang mahal
Sebagai misal :
Jika digunakan kode dengan 𝑞 ≥ 5 𝑢𝑛𝑡𝑢𝑘 𝑚𝑒𝑛𝑑𝑎𝑝𝑎𝑡 𝑘𝑜𝑑𝑒
𝑑𝑒𝑛𝑔𝑎𝑛 𝑒𝑓𝑖𝑠𝑖𝑒𝑛𝑠𝑖 80 % dengan memakai kode Ham-
ming
Maka untuk kata kode dengan 𝑛 ≥ 31 dengan 𝑞 ≥ 5
tersebut perangkat kerasnya harus menangani signal
yang terdiri atas 𝑘 ≥ 26
Ini berarti bahwa pesawat penerima harus mampu
menyimpan bit sebanyak 𝑛(2𝑘 ) ≥ 31(226 ) ≫ 109 buah
30
Metode dekoding yang lebih praktis untuk kode dengan 𝒌 𝒚𝒂𝒏𝒈 𝒃𝒆𝒔𝒂𝒓 yang
mencakup pula informasi uji paritas , diturunkan dari :
o matrix bantunya kode 𝑷
Hubungannya dengan setiap kode blok linier simetrik , adalah dengan
suatu matrix 𝑯 𝒒𝒙𝒏 , yang disebut dengan 𝑚𝑎𝑡𝑟𝑖𝑥 𝑢𝑗𝑖 𝑝𝑎𝑟𝑖𝑡𝑎𝑠
Kode Siklis
Difinisi :
σn(c) = c
o c dikatakan kode siklis jika pergeseran siklis daripada setiap kata
kode adalah kata kode juga
Meskipun sebagian besar daripada teknik penkodean (coding) yang telah dipelajari
sudah mencakup tentang :
o Apa-apa yang berkaitan dengan kode-kode FEC = Forward Error Correction
code , namun :
pendeteksian kesalahan (error detection) juga dipakai secara luas
didalam komunikasi data modern
Pendeteksian kesalahan tersebut biasanya memerlukan :
o lintasan catubalik (feedback path) dari sisi penerima informasi ke sisi
pemancar , yang mana lintsan catu balik tersebut dapat memberi tahu bahwa :
telah terjadi kesalahan bit yang diterima , yaitu bahwa :
urutan bit informasi tidak cocok dengan urutan bit paritasnya
o Selanjutnya pemancar akan mengirim ulang urutan bit katakode
yang benar
Beberapa versi implementasi FEC (= Forward Error Correction) adalah dengan cara :
o Pengenalan negatip (NAKs = Negative Acknowledments) berarti :
lintasan catubalik hanya diterapkan terhadap signal yang diterima
salah saja , dimana :
31
Jika dilakukan pengujian siklis , hasil yang sederhana adalah 2 q kejadian kesalahan
tak dapat dideteksi (hal ini dilakukan dengan menganggap panjang lonjakan b > q ,
atau q >> 1
Probabilitas kesalahan blok keseluruhan dapat didekati dengan :
Pe np 2 q
Contoh :
500 105
1. p 105 ; n 500 bits ; q 8 bits Pe 500 105 28 256 2 x105
p 10 5 ; n 1000 bits ; q 32 bits Pe 1000 10 5 2 32
4 10 4 10 4 x10
1000 10 5 5 14 12
2. 2
8 4
2563
64
Rangkuman
- Dari probabilitas distribusi yang diketahui dapat diperoleh prosedur pemrosesan opti-
mum , yang terdiri atas peningkatan pengaturan perbandingan kemungkinam (like-
lihood ratio) dan menentukan apakah perbandingan tersebut lebih besar atau lebih kecil
dibandingkan dengan suatu konstanta yang diketahui
- Sebagai alternatip , prosedur optimum terdiri atas sample-sample signal terima ruang
berdimensi-m , yang dapat dibagi menjadi 2 daerah untuk pengambilan keputusan yang
tidak tumpang tindih (disjoint decision regions)
- Dengan melakukan pensignalan multidimensi yang menggunakan signal-signal ortho-
gonal M-susun , maka :
o dapat diperoleh penurunan probabilitas kesalahan , namun :
memerlukan lebarpita yang lebih lebar
rangkaian memjadi bertambah komplex
- Cara diatas adalah hal yang khusus daripada teorema kapasitas kanal Shanon ,
dimana :
secara teoritis dapat dibuat sistem komunikasi dengan probabilitas kesalahan
rendah , meskipun terdapat adanya noise AWGN , sehingga :
o dapat dilakukan operasi pengkodean dan pendekodean seca-
ra memuaskan
o Hal diatas dimungkinkan asalkan :
kecepatan transmisi bit = R bps tidak melebihi kapasitas kanal , yang
mana :
kapasitas kanal tersebut ditentukan oleh :
lebarpita kanal transmisi , daya signal rata-rata dan kerapatan
spektral
- Penggunaan metode-metode untuk mendeteksi dan mengoreksi
kesalahan bit adalah :
o sebagai suatu cara untuk memperbaiki kinerja sistem komunikasi digital
- Cara yang umum dilakukan untuk mendeteksi dan mengoreksi kesalahan bit adalah :
o dengan jalan menyisipkan bit-bit uji paritas dalam aliran biner (binary stream) ,
sehingga dimungkinkan untuk :
mendeteksi dan mengoreksi kesalahan dalam jumlah tertentu
- Langkah yang diambil dalam hal ini adalah :
o memilih kode yang mendekati kinerja kesalahan yang diramalkan oleh Shanon
m
PEMBUATAN KODE SIKLIS
Deret generator g x langsung dapat digunakan untuk pembuatan kode siklis
Pembuatan kode secara serial dapat dilakukan dengan mengimplementasikan register
geser
Dasar pemikirannya sebagai berikut :
Berdasarkan rumus untuk deret katakode = cx axg x , dimana :
o deret urutan data : d x d1 x k 1 d k 1 x d k ; derajat (pangkat tertinggi)
deret ini adalah k 1
o namum derajat deret urutan data bisa menjadi kurang dari k 1 jika d1 0
hal ini tergantung pada nilai-nilai bit data
o operasi x n k d x akan menghasilkan deret berderajat n k k 1 n 1 ,
atau lebih kecil bila koefisien dari suku deret yang berpangkat n 1 adalah 0
37
x n k d x
o hasil pembagian sisa hasil pembagian qx r x
g x
x nk d x
o Derajat deret adalah :
g x
n k k 1 pangkat te rtinggi gx q n 1 q k 1
o Deret kata kode = cx ax g x x n k d x r x
x n k d x x n k d x
r x rem sisa hasil pembagian
g x g x
Contoh :
Buktikan bahwa kode 7, 3 jika kode datanya = d 111 , maka kata kodenya
adalah : c 1110100
Bukti :
d 111 d x x x 1
2
x n k d x x7 3 x 2 x 1 x6 x5 x 4
r x rem rem 4
g x x x3 x 2 1 x 4 x3 x 2 1
x2
x 4 x3 x 2 1 x 6 x5 x 4
x6 x5 x 4 x 2
rem x 2
x n k d x
r x rem x 2 1x 2 0 x 01
g x
Jadi c d , koefisien - koefisien rem 1110, 100 1110100
Arithmatika polynomial
Sebelum menentukan deret generator g x , akan dibahas lebih dahulu tentang arithmatika
(perhitungan aljabar) perkalian dan pembagian polynomial sebagai berikut :
Misalkan wD w0 w1 D w2 D 2 wk 1 D k 1 adalah deret ukur , dimana nilai
setiap w j 0 atau 1
j 0, 1, 2k 1
o Jika k 4 wD 1 D D 2 D 3
o w0 1 ; w1 1 ; w2 0 ; w3 0 ; w4 1 ; w5 1 , maka :
wD 1 D w4 D 4 w5 D 5
38
Polynomial tersebut memberi gambaran yang sesuai dengan vektor informasi – k bit :
w w0 w1 w2 wk 1
Perhatikanlah beberapa polynomial berikut :
g D g 0 g1 D g 2 D 2 g n 1 D n 1
y D y 0 y1 D y 2 D 2 y n 1 D n 1
xD x0 x1 D x 2 D 2 x n 1 D n 1
eD e0 e1 D e2 D 2 en 1 D n 1
Penjumlahan modulo-2 daripada 2 buah polynomial , misalnya :
yD xD eD
y D x0 x1 D x 2 D x n 1 D n 1 e0 e1 D e2 D 2 en 1 D n 1
2
y D y 0 y1 D y 2 D 2 y n 1 D n 1 x0 e0 x1 e1 D x 2 e2 D 2 x n 1 en 1 D n 1
Jadi :
y 0 x 0 e0
y1 x1 e1
y n 1 x n 1 en 1
Secara umum : y j x j e j
Perkalian daripada 2 polynomial , misalnya :
g D wD g 0 g1 D g 2 D 2 g n 1 D n 1 w0 w1 D w2 D 2 wn 1 D n 1
g D wD g 0 w0 g 0 w1 D g 0 w2 D 2 g 0 wn 1 D n 1 g1 w0 D g1 w1 D 2 g1 w2 D 3 g1 wn 1 D n
g n 1 w0 D n 1 g n 1 w1 D n g n 1 w2 D n 1 g n 1 wn 1 D 2 n 2
g DwD g 0 w0 D 0 g 0 w1 g1 w0 D g 0 w2 g1 w1 g 2 w0 D 2 g 0 w3 g1 w2 g 3 w0 D 31 wn1 D n
g 0 wn 1 g1 wn 2 g 2 wn 2 g n 1 w0 D n 1 g 0 wn2 g1 wn 3 g 2 wn 4 D n2
Dapat ditulis :
g D wD g n k wk 1 D n 1
g n k wk 2 g n k 1 wk 1 D n 2
g n k wk 3 g n k 1 wk 2 g n k 2 wk 1 D n 3
g 0 w0 D 0
Kata kode keluaran adalah :
q
xq wi g q i
i 0
dimana perhitungan dan rangkaian berikut ini secara konsep dapat digunakan untuk me-
nggambarkan perkalian xD wDg D
q 0 x0 w0 g 0
q 1 x1 w0 g1 w1 g 0
q 2 x2 w0 g 2 w1 g1 w2 g 0
q 3 x3 w0 g3 w1 g 2 w2 g1 w3 g 0
q 4 x4 w0 g 4 w1 g3 w2 g 2 w3 g1 w4 g 0
39
Keluaran
x0 , x1 , , xn2 , xn1
1 2 3 n-k
Masukan
w0 , w1 , , wk 2 , wk 1
k
Cara kerjanya :
D3 D 2 1
D3 D 1
D 2 D Sisa
Perlu untuk diperhatikan bahwa hampir dalam semua kasus , hasil bagi polynomial
menghasilkan sisa
Sisa hasil bagi ini ditulis dengan : Rg D xD D
Untuk setiap kode siklis n, k , semua vektor kode ( deret ukur kode = code-
polynomial ) dapat dinyatakan sebagai :
o Hasil kali dari suatu deret generator g D , yang mempunyai derajat q n k
dengan deret berita wD yang mempunyai derajat k 1
o Hasilkali xD wDg D mempunyai derajat k 1 n k n 1
o Karena setiap berita terdiri atas k buah bit , maka akan terdapat 2 k buah
kemungkinan berita , sehingga akan terjadi 2 k buah deret ukur yang berbeda
wD w0 w1D w2 D 2 wk 1D k 1 , sesuai dengan semua bilangan biner
yang mungkin terjadi untuk mengisi nilai koefisien w j
o Terdapat 2 k buah katakode yang munkin terjadi
Kata kode untuk suatu kode siklis biner dapat mudah dihasilkan dengan menggunakan
rangkaian sebagai berikut : Keluaran
x0 , x1 , , xn2 , xn1
1 2 3 n-k
Masukan
w0 , w1 , , wk 2 , wk 1
Beberapa sifat penting daripada deret generator adalah sebagai berikut :
o Deret generator untuk setiap kode siklis adalah suatu faktor daripada D n 1
o Karena itu akan tidak terdapat sisa jika dilakukan proses pembagian yang
panjang daripada D n 1 oleh g D
o Setiap deret berderajat n k , yang mana adalah sebuah faktor daripada
D n 1, adalah generator polynomial untuk suatu kode siklis n, k
o Derajat dari deret generator selalu n k
o Pergeseran siklis ke-q daripada suatu katakode , adalah sisa daripada hasilbagi
D q xD oleh D n 1
Deret generator g D g 0 g1D g n k D n k untuk kode siklis , adalah matrix
generator k x n sebagai berikut :
g 0 g1 g n k 0 0 0
0 g g g gnk 0 0
0 1 n k 1
o G 0 0 g 0 g1 g n k 1 gnk 0
0 0 0 0 0 g0 g1 g n k
Matrix uji paritas untuk kode siklis adalah :
41
hk hk 1 h0 0 0 0
0 h hk 1 h1 h0 0 0
k
o H 0 0 hk hk 1 h1 0 0
0 0 0 0 0 hk hk 1 h0
Dimana hD h0 h1D hk D k , adalah hasil pembagian daripada D n 1
oleh g D
o tidak terdapat sisa jika dilakukan proses pembagian yang panjang daripada
D n 1 oleh g D (sesuai dengan sifat 2 )
2k 2
hk hk 1 h0 0 0 0
0 hk hk 1 h1 h0 0 0
H 0 0 hk hk 1 h1 0 0 k 1
0 0 0 0 0 hk hk 1 h0
2q
g0 g1 g nk 0 0 0
0 g0 g1 g n k 1 g nk 0 0
G0 0 g 0 g1 g n k 1 g nk 0 q
0 0 0 0 0 g0 g1 g n k
xD 1 D D2 D4 D5 dibagi g D 1 D D3
j k n R k /n
3 4 7 57 %
4 11 15 73 %
5 26 31 84 %
6 57 63 90 %
7 120 127 94 %
8 247 255 97 %
9 502 511 98 %
10 1013 1023 99 %
Kode-kode Hamming selalu ditentukan oleh matrix uji paritas H , yang banyak
kolomnya = n k j dan banyak barisnya = n
Kolom-kolom tersebut terdiri atas semua vektor komponen - j yang bukan nol
Contoh :
o Matrix uji paritas untuk kode Hamming (7,4) adalah :
1 0 0 1 0 1 1
H 0 1 0 1 1 1 0
0 0 1 0 1 1 0
o Matrix generator untuk kode-kode Hamming diperoleh dengan menggunakan
hubungan :
x m x m, 0 x m,1 x m,n k 1 wm,0 wm,1 wm,k 1
g 0, 0 g 0,1 g 0,n k 1 1 0 0 0
g g1,1 g1,n k 1 0 1 0 0
1,0
x m wm,0 wm,1 wm,n 1 g 2,0 g 2,1 g 2,n k 1 0 0 1 0
g k 1,0 g k 1,1 g k 1,n k 1 0 0 0 1
x m wm,0 wm,1 wm,n 1 G
asalkan kode-kodenya linier sistematis
Generator polynomial g D adalah :
o Anggota dari kelas polynomials tertentu yang disebut dengan polynomials
primitip
o Tabel singkat daripada polynomial primitip yang dapat digunakan sebagai
generator bagi kode-kode Hamming , sampai dengaan panjang = n 2 k 1
adalah sebagai beri-kut :
j j
3 1 + D + D2 14 1 + D + D6 + D10 +
4 1 + D + D4 15 D14
5 1 + D + D5 16 1 + D + D15
6 1 + D + D6 17 1 + D + D3 + D12 +
7 1 + D3 + D7 18 D16
8 1 + D2 + D3 + D4 +D8 19 1 + D3 + D17
9 1 + D4 + D9 20 1 + D7 + D18
10 1 + D3 + D10 21 1 + D2 + D3 + D4 +D8
11 1 + D2 + D11 22 1 + D3 + D20
12 1 + D + D4 + D6 + 23 1 + D3 + D21
13 D12 24 1 + D + D22
1 + D + D3 + D4 + 1 + D5 + D23
43
Enkoder yang digunakan bagi kode-kode Hamming terdiri dari berbagai bentuk :
o Jika kecepatan pengenkodean tidak kritis , maka :
Enkoder dapat diimplementasikan / dilakukan dalam software , dengan
jalan menghitung perkalian ma-trix generator secaaara langsung
o Jika kecepatan pengenkodean kritis , biasanya diguna-kan implementasi yang
lain
Gambar berikut ini melukiskan implementasi secara langsung bagi suatu enkoder
Hamming , yang dapat dibuat dengan memakai rangkaian logika berkecepatan tinggi
Register geser k 1bits dipuncak gambar menerima bit-bit in-formasi dari sumber
data
Setelah register masukan terisi , maka keluaran modulo-2 adders adalah simbol-simbol
kata kode yang benar
Setiap simbol adalah suatu “penjumlahan modulo-2” daripada bit-bit informasi
tertentu , yang ditentukan oleh matrix gene-rator
Generator matrix dapat diperoleh daari generator polynomial , dengan cara sebagai
berikut :
Biasanya, banyaknya bit uji paritas < banyaknya bit kharakter, agar efisiensi kode >
50 %
Dengan demikian daya yang digunakan untuk pengiriman kode sebagian besar
digunakan untuk keperluan pengiriman kode kharatter.
Bit uji paritas tersebut isinya tergantung pada kode kharakter
Tiap-tiap kharakter mempunyai bit-bit penguji sendiri-sendiri
Banyaknya bit uji paritas tersebut paling sedikit sebanyak 3 bit
Banyaknya perbedaan bit tersebut disebut dengan jarak Hamming (Hamming
distance)
Jadi untuk kode ( 7,4 ), dimana :
o banyaknya bit seluruhnya n 7
o banyaknya bit untuk kharakter k 4
o banyaknya bit uji paritas adalah q n k 3
o karena itu untuk kode ( 7 , 4 ), jarak Hammingnya adalah k q 4 3 1
Kode yang mengikuti aturan ini disebut dengan kode Hamming
Syndrome s pada kode belitan (convolution code) terdiri atas q bit
Sebagai contoh jika :
o banyaknya bit keseluruhan n 7
o banyaknya bit uji paritas = q 4
o maka banyknya bit kharakter k n q 7 4 3 .
Jika tanpa kesalahan penerimaan bit, maka :
o syndrome nya adalah = s 000
o Jika syndromnya = s 001 maka terjadi kesalahan pada bit ke-1 (dari yang
paling kiri atau LSB)
44
Dengan hanya 1 kesalahan digit, misalkan digit yang ke-j, maka syndrome s
kolom ke-j matrix H
Untuk kata kode Hamming ( 7, 4 ), maka sebagai contoh matrix uji paritas = H adalah
:
0 0 0 1 1 1 1
H 0 1 1 0 0 1 1 Banyaknya baris = q = 7 – 4 = 3
1 0 1 0 1 0 1
Banyaknya kolom = n = 7
Dibandingkan dengan matrix uji paritas pada kode blok sebelumnya, dapat dilihat
bahwa
o kode Hamming ini bukan kode yang sistematis
o Hal ini disebabkan bahwa posisi-posisi digit uji paritas harus sesuai dengan
kolom-kolom H yang hanya mempu-nyai sebuah digit 1
dalam hal ini, jika dilihat dari matrix H diatas , maka kolom-kolom
yang memenuhi syarat adalah kolom ke-1 dan kolom ke-2 saja
Untuk lebih jelas, perhatikan kata kode ( 7, 4 ) berbentuk sebagai berikut :
x [c1 c2 m1 c3 m2 m3 m4 ] T
Digit-digit paritasnya adalah sesuai dengan persamaan beikut :
c1 m1 m 2 m4
c 2 m1 m3 m4
c3 m2 m3 m4
Contoh : Untuk kata kode dengan :
m1 0 ; m2 1 ; m3 1 ; m4 1
c1 0 1 1 10 diambil 0
c 2 0 1 1 10 diambil 0
c3 1 1 1 11 diambil 1
Jika penulisan kode berita dilakukan secara pembacaan terbalik, artinya jika kode
untuk menyatakan nilai suatu level amplitudo, misalnya amplitudo yang terdiri atas 4
level, yang biasanya bilangan binernya adalah 0100 dibalik penulisannya menjadi dari
arah sebelah kanan sehingga menjadi 0010 , maka :
o tabelnya akan berubah menjadi tabel kode Hamming berikut ini :
Jika kata kode untuk berita nomor 2 yaitu 0110100 dikirimkan dan kesalahan
terjadi pada posisi 1, 2 dan 4, maka :
signal yang salah tersebut adalah :“1011100” , yang mana berarti sama
dengan kata kode untuk berita nomor 3
Karena itu detektor akan menganggap berita nomor 2 sebagai berita nomor
3
Jadi dengan terjadinya 3 kesalahan, maka detektor tidak dapat mendeteksi
kesalahan tersebut
Jika kesalahan lebih dari 3 bit, maka hanya akan dapat mende-teksi
kesalahan jika kata kode yang diterima (atau vetor yang diterima) tidak
47
Berdasarkan tabel kata kode yang terdapat pada halaman sebelum-nya, maka dapat dilihat
bahwa setiap kata kode yang digunakan un-tuk menyatakan sebuah berita, maka :
Setiap kata kode yang berturutan nilainya berbeda 3 posisi
Berita berbeda dapat mempunyai bit uji paritas yang sama
Bit uji paritas ditulis mendahului bit data
Dengan demikian 1 atau 2 kesalahan transmisi tidak akan dapat mengubah suatu kata
kode menjadi kata kode yang lain
Karena itu dekodernya akan dapat memberitahukan kepada pengguna bahwa telah
terjadi kesalahan transmisi (meskipun tidak dapat mengoreksi kesalahan tersebut
Namun jika terjadi 3 kesalahan transmisi maka akan dapat mengubah kata kode yang
dipan-carkan menjadi sebuah blok yang sama dengan kata kode yang memenuhi syarat
Karena itu dekodernya tidak akan dapat mendekti dan mengo-reksi kesalahan.
Tabel tertentu yang dibuat sebagai contoh tersebut adalah termasuk kelompok kode Hamming
Pada tabel tersebut terdapat 3 buah jarak Hamming minimum
Ketiga jarak Hamming minimum tersebut dapat digunakan untuk mengoreksi sebuah
kesalahan transmisi tunggal didalam setiap blok kata kode yang dipancarkan
Hasil penjumlahan kedua kata kode yang berturutan ini dinamakan dengan jarak
Hamming.
Jadi :
Kata kode nomor 2 = x2 = 0110100
Kata kode nomor 3 = x3 = 1011100 +
Contoh :
Kode Hamming ( 7,4 ) sebagaimana diberikan pada tabel kode Hamming diatas, misalkan
mempunyai keluaran kanal simetrik biner seperti yang dituliskan berikut ini :
y = 1011010
Detektor menghitung jarak-jarak Hamming antara y dan semua kata kode yang mungkin
terjadi xm .
Keluaran dekoder mengistimasikan x adalah x m yang mempunyai jarak minimum dari y.
Dari tabel kode Hamming, kata kode nomor lima adalah :
x5 = 0011010.
Jarak Hamming antara y dan x5 adalah pertambahan modulo-2 antara y dengan kata kode x5,
yaitu 1011010 + 0011010 = 1000000.
Bobot Hamming-nya = 1 = jarak Hamming minimum.
48
Jadi jarak Hamming minimum antara y dan xm akan terjadi antara y dengan kode berita untuk
x5 = 0011010 .
Vektor Kesalahan
Jika kata kode xm ditransmisikan menggunakan Kode Simetrik Biner ( BSC = Binary Sym-
metric Code ) , maka selama transmisi kesalahan dapat terjadi.
Vektor kesalahannya dapat ditulis sebagai e e0 e1 e2 en1
Jika salah satu atau lebih dari nilai vektor tersebut adalah “1”, maka telah terjadi kesalahan
transmisi diposisi bit tersebut.
Contoh :
Vektor kata kode xm 0 1 1 0 1 0 0
Vektor kesalahan e 1 1 0 1 0 0 0
Vektor yang diterima y 1 0 1 1 1 0 0
Jika kanal dianggap tak bermemory, maka probabilitas terjadinya kesalahan pada setiap sim-
bol tertentu adalah tak tergantung pada semua simbol yang lainnya.
Jadi pada kode simetrik biner, probabilitas-probabilitas transisi ( transition probabilities
BSC ) adalah konstan untuk seluruh transmisi.
Maka :
Pr [ y x] Pr y n ' xn'
n 1
n'
n
Kode asli tersebut secara seri digeser melalui register geser sehingga pada
setiap penggeseran akan menghasilkan kode yang terdiri atas n buah bit
Hal ini dapat dicapai dengan jalan membuat rangkaian tertentu yang dapat memenuhi
kebutuhan yang diinginkan
Teknik yang diterapkan untuk mencapai keinginan itu adalah dengan menggunakan
rangkaian sebagai berikut :
KODE BLOK
Suatu blok yang terdiri atas k buah bit informasi dinyatakan dalam k-vektor, sebagai :
wm wm 0 wm1 wm 2 wm k 1
semua wmi bernilai 0 atau 1
Subcript m menyatakan berita tertentu yang sedang diperhatikan dari 2k buah berita yang
mungkin terjadi jika setiap berita terdiri atas k buah bits.
Jadi banyaknya kode untuk informasi atau kode untuk data yang mungkin terjadi = 2k
buah.
Jadi m = 1, 2, 3, ………………2k
Q
M(m) = probilitas berita yang keluar adalah berita ke-m.
Jika berita yang keluar mempunyai kemungkinan keluar yang sama , maka QM(m) = 2-k
Contoh :
Jika k =3, maka berita yang mungkin keluar adalah m = 2k = 23 = 8, yaitu
w0 = 000
w1 = 001
w2 = 010
w3 = 011
w4 = 100
w5 = 101
w6 = 110
w7 = 111
Jika m = 5, maka berita yang dimaksudkan adalah wm –1 = w4 = 1 0 0
Enkoder akan memetakan setiap berita tertentu , yaitu wm (yang terdiri atas k bits) , menjadi n
buah vektor biner tertentu atau berita yang terdiri atas n bits = ( k + q ) bits , yaitu :
x m x m 0 x m1 x m 2 x m n 1
Disini yang dimaksud dengan n = jumlah bit berita ( = k bits) ditambah dengan bit paritas
( = m bits ).
Pemetaan ini adalah satu berita ke satu peta, sehingga setiap berita mempunyai satu peta
tersen-diri.
Kode blok (n,k) adalah himpunan dari semua simbol xm ( yang banyaknya 2n buah anggota
himpunan )
Dalam kode blok ini k < n, yang berarti banyaknya bit kode asli lebih kecil daripada banyak
seluruh bit dari kode blok.
Banyaknya bit paritas atau bit penguji = q = n – k
Banyaknya berita yang mungkin terjadi = 2k
Banyaknya kata kode yang mungkin terjadi jika setiap berita terdiri atas n bits = 2n > 2k
Maka tidak semua kata kode yang mungkin terjadi digunakan sebagai kata kode
( dari 2n buah kata kode yang mungkin terjadi hanya 2k buah saja yang digunakan sebagai
kata kode )
51
k
Efisiensi kode = Nilai kode (code-rate) R 1
n
Singkatan :
1. Disain sistem baik harus efisien didalam hal :
- pemakaian sumber dayanya
- lebarpita frekuensinya
- kompak
- menghasilkan komunikasi informasi yang andal dari sumber informasi ke tujuan
informasi
o Untuk itu ukuran keandalannya adalah :
besarnya probabilitas kesalahan adalah harus kecil dan dibawah nilai
max yang diijinkan.
2. Sumber koding harus :
- menggunakan kode redundance sekecil mungkin untuk memini-malkan penggunaan bit
untuk setiap kode yang dikomunikasi-kan
- Hal ini berarti dapat menghemat kebutuhan akan lebarpita frekuensi.
3. Kode kanal digunakan untuk memperbaiki sebanyak mungkIn kesalahan kode yang
terjadi pada kanal tersebut, yang pada gilirannya dapat memperbaiki keandalan
komunikasi.
4. Sumber signal diskrit tanpa menggunakan memory menggambarkan informasi yang
menggunakan urutan simbol-simbol bebas, wo , w1 , ….yang sesuai dengan simbol abjad
W = [0,1,2,…….qw – 1 ]. Probabilitas bahwa simbol keluaran DMS adalah = j eselama
interval I adalah Qw(j).
5. Kandungan informasi suatu simbol keluaran DMS tunggal j , adalah I(j) = -log2Qw(j).
Simbol-simbol keluaran DMS yang banyak kesamaannya mempunyai kandungan
informasi yang kecil dibandingkan dengan simbol-simbol yang sedikit kesamaannya.
Entropy sumber informasi adalah :
q w 1
H W Qw j log 2 Qw j
j 0
yang mana adalah kandungan informasi rata-rata sumber. Intropy sumber adalah
banyaknya bit rata-rata minimum per simbol keluaran DMS, yang harus dipancarkan
lewat kanal. Jadi informasi sumber tidak dapat dikomunikasikan dengan memakai
jumlah bit rata-rata per simbol DMS yang lebih sedikit jumlahnya dibandingkan dengan
entropynya.
6. Prosedur Huffman adalah sesuatu yang secara intuitip memenuhi koding sumber.
Prosedur ini menggunakan urutan biner yang lebih panjang terhadap simbol-simbol
DMS yang rendah probabilitasnya, dibandingkan dengan simbol-simbol yang lebih
tinggi probabilitasnya.Simbol-simbol DMS dapat dibuat menjadi kode Huffman sebagai
simbol-simbol tunggal ataupun dalam kelompok-kelompok. Kode Huffman daripada
kelompok-kelompok simbol-simbol DMS menghasilkan hasil yang terbaik.
7. Kapasitas suatu kanal, yaitu C , adalah jumlah bit per detk yang teoritis dapat dipancar-
kan tanpa salah. Kapasitas tersebut adalah fungsi dari lebar pita kanal dan SNR (Signal
to Noise Ratio) yang diterima. Kapasitas Shannon adalah :
P
C B log 2 1
N o
B
Jika kecepatan transmisi yang dinginkan adalah Rm<C, maka akan diperoleh nilai
kesalalahan yang rendah jika menggunakan forward error correction, tanpa menambah
daya. Untuk Rm yang hampir sama debgan C , forward error correction yang lebih rumit
dapat dipertimbangkan.
52
Eb
8. yang diterima harus lebih tinggi dibanding dengan –1.6 dB. agar komunikasi andal
N0
E
sembarang dimungkinkan untuk dilakukan. Jika b < -1.6 dB maka tidak ada kode yang
N0
serumit apapun yang dapat menolong terjadinya komunikasinya.
9. Kapasitas kanal diskrit tanpa memory yang dinyatakan dengan CN adalah menyatakan
jumlah bit informasi maximum daripada informasi yang dikomunikasikan untuk setiap
simbol DMC yang dipancarkan.
Penyandian Belitan
(Convolution Coding)
Salah satu metode untuk mengontrol kesalahan didepan (forward error control) adalah dengan
menggunakan penyandian belitan.
Pada teknik penyandian ini :
simbol-simbol tidak dikelompokkan kedalam kelompok yang berbeda-beda
kemudian disandi (encoded) , namun :
urutan bit-bit informasi yang kontinyu dipetakan kedalam urutan kontinyu
simbol-simbol keluaran penkoder (enkoder)
Pemetaan ini disusun secara khusus, yang memungkinkan :
metode pengdekodean (dekoding) sangat berbeda dibandingkan dengan metode
pengdekodean kelompok
Dapat dibuktikan bahwa penyandian belitan dapat mencapai :
gain penyandian yang lebih besar dibandingkan dengan yang dicapai dengan
menggunakan kode kelompok (block code) dengan keruwetannya (koplexitasnya)
yang serupa
Apapun teknik yang digunakan, baik dengan penyandian kelompok maupun penyandian
belitan :
mana yang lebih baik untuk digunakan adalah tergantung pada perincian (details)
dari penggunaannya serta teknologi yang ada pada saat itu.
+
Urutan
wD kode
keluaran
g1 D 1 D 2 +
x1 D
Gbr. Pengkode belitan ½ kecepatan
(Rate ½ convolution encoder)
53
w(D) = w0 + w1D + w2D 2 +………..+ wjD j + ……. = urutan bit informasi masukan ;
wj [ 0, 1]
x1(D) = Keluaran adder modulo –2 bagian atas adalah hasil kali antara w(D) dengan
g1(D)
w2 (D) = Keluaran adder modulo-2 bagian bawah adalah hasil kali antara w(D) dengan
g2 (D)
Kode konvolusi disebut juga dengan kode sekuensial ataupun kode berulang-ulang
(recurrent codes)
Pada kode konvolusi ini digit-digit uji paritas terus-menerus disisip-kan kedalam arus
bit (bit stream)
Karena itu prosedure enkoding dan dekoding adalah proses yang kontinyu, yang
menghilangkan (eliminiting) pemisah (buffering) ataupun penyimpanan (storage)
perangkat keras yang diperlukan dengan kode-kode blok
Prinsip kode konvolusi dapat disederhanakan dengan menggu-nakan prinsip rangkaian
enkoder konvolusi sebagai berikut ini :
mi
( m)
mi mi - 1
xi
mi - 2 mi - 3 mi - 4
mi 4 mi 2 mi
(c)
xi
+ +
xic mi 4 m1 2 mi
xi 4 xi 2 xi
( m) (m) ( m)
Jadi banyaknya digit yang dipancarkan menjadi 2 kali digit data yang masuk
Hal ini dinamakan dengan “kode bercadangan tinggi “ (high redundancy codes)
Sebagai akibatnya efisiensi kode konvolusi adalah rendah, yaitu R 50 %
Di dekorder, dibuat digit syndrome ke-i dari dari urutan berita yang diterima dan
mungkin mengalami kesalahan, menggunakan rumus :
si y i 4 y i 2 y i y i ; i5
( m) ( m) ( m) (c)
Disini jika syndrom si 1, maka berarti pada digit tersebut mengalami kesalahan
digit-digit yang benar ditandai dengan digit syndrome bernilai 0
Untuk gejala peralihan awal (start up transient), ambillah 1 i 4
Maka sindrome-nya adalah :
s1 e1 e1 s3 e1 e3 e3
(m) (c) (m) (m) (c)
s 2 e2 e2 s 4 e2 e4 e4
(m) (c) ( m) (m) (c)
s2
X X
s3
X
X X
s4 X
X
X X X
s5
X X X X
X
X
s6
Dengan mempelajari gambar diatas dapat dilihat bahwa jika terdapat 2 atau 3 buah bit
“1” di s1 , s3 dan s5 , maka :
1 , yang berarti y1
(m) (m)
vektor kesalahan e1 mengan-dung kesalahan
dan harus dikoreksi
(m)
Dengan cara serupa, y 2 harus dikoreksi jika terdapat lebih banyak bit “1” daripada
bit “0”; demikian seterusnya
Algorithme seperti diatas dinamakan dengan pengdekodean ambang (threshold
decoding)
55
pada pengdekodean ini akan dapat mengoreksi sampai 4 buah kesalahan berturutan
(termasuk juga digit uji paritas) asalkan 8 buah digit yang lain tidak mengalami
kesalahan
Pengdekodean ambang ini efektip terutama jika kanal-kanalnya terisolasi dari dadakan
kesalahan (error burst) yang disebabkan oleh noise denyut, dan masalah utama
terjadinya kesalahan adalah berasal dari noise denyut tersebut.
Algorithme pengdekodean yang lain untuk kode-kode konvolusi adalah :
dengan menggunakan metode algorithme probabilistic atau metode algorithme
berurutan (sequential).
Oleh karena teori kode-kode konvolusi tidak dikembangkan sebaik teori kode-kode
blok, maka :
sulit untuk membuat tafsiran yang teliti relatip terhadap ke-baikannya.
Soal –soal :
P[ yt m ] :
1 1 1
4 2 4
Tabel diatas berlaku juga untuk bit yang dikirimkan “0”, apabila A diganti dengan – A .
(a). Dengan menganggap noisenya jenis Gaussian, carilah Pe !
A
(b). Carilah Pe untuk 4.0 jika 0.05 dan 0.25 !
A
Bandingakan dengan Pe untuk = 0 !
JARAK BEBAS
(FREE DISTANCE)
&
PEROLEHAN PENYANDIAN
(CODING GAIN)
56
Sebelumnya telah pernah dibahas bahwa daya pengontrol kesalahan (error control po-
wer) kode blok tergantung pada :
jarak minimum yang ditentukan dari bobot-bobot kata kode (banyaknya bit 1
didalam setiap kata kode)
Suatu kode konvolusi tidak dibagi lagi (subdivided) menjadi kata-kata kode ,
sehingga
ALGORITHME VITERBI
Algorithme Viterbi adalah :
suatu metode yang sangat bagus untuk melakukan pendekodean (decoding =
membuat signal yang menggunakan urutan bit-bit menjadi pulsa tersampling
kembali) dengan kemungkinan kebenaran maximum terhadap kode-kode
konvolusi
Pendekodean Kemungkinan Maximum = Pendekodean Dengan Kemungkinan
Benar Maximum = Maximum Likelihood Dekoding , mencakup :
pencarian seluruh ruang kode
biasanya tidak praktis , sebab adanya masalah banyaknya perhitungan yang
harus dilakukan
Pengkodean yang mengikuti algorithme Vitebri memberikan :
prosedur yang praktis untuk digunakan untuk :
kode-kode konvolusi yang panjang kendalanya pendek
Hal ini disebabkan bahwa enkoder (alat yang berfungsi untuk membuat kode
yang berupa orutan bit-bit) konvolusi adalah suatu peralatan keadaan yang
tertentu (finite state divice)
Oleh A.J. Viterbi pada tahun 1967 algorithme tersebut telah digambarkan
secara mathematis
Sejak itu algorithme tersebut terus menerus berkembang , misalnya apa yang
telah dilakukan oleh Forney, dimana dia membuat tulisan yang luas
wawasannya dan tinggi mutunya terhadap apa yang telah dilakukan oleh
Vitebri, baik :
mengenai algorithmenya itu sendiri
maupun tentang bagaimana pemakaiannya.
Dengan meninjau kembali terhadap fungsi dari suatu detektor dengan
kemungkinan kebenaran yang maximum, maka :
apa yang dilakukan oleh Forney adalah :
mencari urutan kode yang paling mirip dengan kode yang telah
dipancarkan sebelumnya ke kanal transmisi , sehingga membentuk
urutan kode keluaran kanal yang memenuhi syarat
57
Kode itu mungkin diterima salah, sehingga harus secara otomatis dikoreksi (self
correction)
Ini berarti bahwa :
harus mencari lintasan dengan melalui trellis (terali) yang akan
dibahas kemudian , yang mana :
urutan kodenya mempunyai fungsi kemungkinan logarith-
mis tertinggi
Secara mathematis , rumus “kemungkinan log” (log-likehood) ditulis
sebagai berikut :
ln Pr y xm ln Pr yn ' xm ,n '
n 1
Untuk BSC (Binary Symetric Code) :
pemaximalan fungsi ini sama saja artinya dengan :
mencari lintasan melalui teralis (trellis) yang urutan
kodenya paling dekat dengan jarak Hamming ke
urutan kode yang diterima
Dengan algorithme Vitebri ini , dapat dilakukan pendekodean kode konvolusi
dengan jalan :
memilih lintasan di diagram teralis sehingga :
urutan kode yang sesuai dengan lintasan pilihan , adalah :
berjarak minimal dari urutan kode yang diterima
Algorithme pendekodean Vitebri sebenarnya menampilkan jarak minimum
dari urutan kode yang diterima
Algorithme Vitebri ini dapat mengurangi banyaknya beban yang dialami
untuk melakukan perhitungan dengan jalan :
mengambil keuntungan daripada struktur khusus pada tralis kode
Dari diagram teralis berikut ini :
t1 t 2 00 t3 00 t 4 00 t t6
a 00 00 5 00
Dapat dilihat bahwa masing-
11 11 11 11 11
masing daripada keadaan (a,
b 10 11 11 11
b, c , d) dapat dicapai hanya
00
dengan 2 keadaan saja.
00 00
01
c 01
01
01
01
Jadi hanya lintasan yang paling
10 10 10 10 10 10 10
d 11 01 01 01
cocok dengan r = urutan bit yang diterima (lintasan jarak minimum) perlu
untuk ditetapkan (retained) untuk setiap keadaan.
Lintasan yang ditetapkan (reatained path) disebut dengan survivor di
keadaan tersebut
Dekoder Viterbi memberi tugas kepada setiap cabang daripada lintasan
penyelamat (suviving path) suatu ukuran (metric) , yang sama dengan
jarak Hamming , dari cabang r yang berkaitan
Dengan menjumlahkan ukuran cabang , maka akan menghasilkan ukuran
lintasan dan :
r akhirnya didekode sebagai lintasan penyelamat , dengan ukuran
yang paling kecil
58
b 10 11 11 11
00 00 00
01
c 01
01
01
01
10 10 10 10 10 10 10
d 11 01 01 01
3. m
59
Kedalaman 1 2 3 4 5 6 8
Urutan 7
yang diterima 10 10 10 11 11 10 01 11
00 00 00 00 00 00 00 00
00 11 11 11 11 11 11 11 11
11 11
11 11
01 X X X X
10 10
10 10 10 10
10 01 01 01 01 01
01 01 01 01 01
10
11 10 10 10
00 00 00 00 00 00 00 00
00
11 11 11 11 11 11 11 11 11 11 11 11
01 X X X X 10
10 10 10 10 10
10
01 01 01 01 01 01 01 01
11 10 10
Misalkan enkoder terpotong bagian atas yang sama dengan yang digunakan untuk VA (
Viterbi Algorithm ) keputusan keras , diguna-kan pada sistem komunikasi keputusan lunak .
Masukan biner DMC (Discrete Memoryless Channel) tergambar se-bagai berikut :
0.80 0
0 0.15
0.04 1
0.01
0.01
0.04 2
0.15
3 0.80 3
Gambar-gambar terali tersebut mencakup urutan keputusan lunak yang diterima , maupun
ukuran-ukuran cabangnya (branch metrics).
Ukuran-ukuran cabang tersebut dihitung dari urutan yang diterima dan fungsi kemungkinan-
log diatas .
Sebagai contoh :
Ukuran cabang untuk cabang diantara kedalaman keadaan nol (depth zero state) 00 dan
keadaan keadaan satu (depth one state) 10 , adalah :
ln Pr31 ln Pr2 3 0.22 1.90 2.12
Ukuran cabang adalah nomor diantara kurung (parenthesis) pada cabang .
Semua cabang diberi label.
Untuk penggambaran yang lebih jelas daripada proses penkodean itu , maka digambar lagi
berikut :
1. Kode konvolusi berbeda sangat mendasar dibanding kode blok . Proses kode konvolusi ini
melalui urutan bit-bit informasi yang semi-infinite
2. Kode konvolusi dapat digambarkan dengan enkoder register ge-sernya , diagram transisi
keadaanya atau diagram teralisnya
3. Kemungkinan (Likelihood) maximum dekoder , menggunakan di-finisi kode, urutan simbol
yang diterima dan kharateristik kanal , untuk memperkirakan urutan simbol yang
dikirimkan , yang se-tara dengan untuk memperkirakan lintasan (path) yang diikuti
melewati teralis oleh enkoder . Perkiraan keluaran dekoder ada-lah urutan , yang mana :
ln Pr y x m ln Pr y n ' x mn'
n'
adalah maximum
Urutan informasi keluaran dekoder adalah urutan yang membangkitkan urutan keluaran
enkoder yang diperkirakan
4. Fungsi generator T(D , L , N) daripada kode konvolusi menggam-barkan bobot Hamming
(ukuran N = power of N ) , panjang Ham-ming ( ukuran L ) dan banyaknya informasi 1s
(ukuran N ) , untuk semua lintasan teralis , yang menyebar dari kembali memusat ke-
adaan teralis nol .
Fungsi generator dapat diperoleh dengan menyelesaikan himpun-an persamaan keadaan
untuk diagram transisi keadaan yang dimodifikasi .
4. Algorithme Vitebri (VA) memberikaan cara-cara yang mudah bagi pendekodean dengan
kemungkinan kebenaran maximum untuk kode-kode konvolusi
63
5. Probabilitas bahwa VA memilih lintasan yang salah (mengelemi-nasi lintasan yang benar)
pada setiap kedalaman ke teralis diba-tasi oleh :
Probabilitas Kesalahan :
PE a
k d free
k Pk
x t
yang mana nilai absolutnya adalah lebih kecil dibandingkan dengan nilai suku pertama
diabaikan
Untuk nilai x yang moderat (tidak terlalu besar), terdapat bebe-rapa pendekatan yang
rational. Salah satu pendekatan tersebut adalah :
1 Qx Px 1 Z x b1t b2 t b3t b4 t b5t x
x
erf x
2
t2
e dt 1 2Q 2 x
0
9. Fungsi kesalahan pelengkap (complementary error function) dapat didekati serupa
dengan fungsi-Q
Tabel : tabel singkat nilai-nilai Q(x) dan Z(x)
x Q(x) Z(x) x Q(x) Z(x)
x
Note : tabel diatas berdasarkan pada rumus untuk Probabilitas Kesalahan Pe x Q x
1
erfc
2 2
Contoh jika x 2 ; untuk mencari besarnya probabilitas kesalahan dapat diselesaikan dengan program
Matlab , dengan perintah sebagai berikut :
>> 0.5.*erfc(2./(2.^0.5))
ans =
0.0228 ; hasilnya boleh dikatakan sama dengan 0.02275 (yang terdapat pada tabel)
10. Probabilitas Kesalahan Bit untuk pendekodean Vitebri terhadap kode-kode konvolusi ,
dibatasi dengan persyaratan sebagai beri-kut :
Pb c
k d free
k Pk
11. Diketahui banyak kode konvolusi yang bagus , dimana sebagian besar diperoleh dengan
mencari lewat komputer .
Gain pengkodean untuk kode konvolusi yang bagus dapat setinggi nilai pendekatan ,
yaitu 6 dB , dengan cara memakai pengdekodean keputusan lunak .
Beberapa yang terbaik adalah kode konvolusi bernilai 1/2 dan dan bernilai 1/3 , telah
dibuat petanya .
12. Kode-kode konvolusi dapat didekode memakai pendekodean sekuensial .
Keruwetan pendekodean sekuensial adalah bebas dari panjang kendala , sehingga kode-
kode dengan panjang kendala yang tinggi , dapat didekode .
13. Pendekodean blok daripada kode konvolusi berentetan (con-cantenated convolution)
serta kode Reed-Solomon dapat digu-nakan jika dikehendaki untuk yang gain
penkodeanya besar (large coding gain) .
Sistem-sistem penkodean berentetan telah digunakan misi ruang angkasa .
65
Soal-soal tentang VA :
1. Dengan menggunakan kode yang ditentukan oleh teralis sebagai gambar berikut :
Kombinasi
w0 w1 w2 w3 Linier
0 0 0 0 0000000
1 0 0 0 1101000
0 1 0 0 0110100
1 1 0 0 1011100
0 0 1 0 1110010
1 0 1 0 0011010
0 1 1 0 1000110
1 1 1 0 0101110
0 0 0 1 1010001
1 0 0 1 0111001
0 1 0 1 1100101
1 1 0 1 0001101
0 0 1 1 0100011
1 0 1 1 1001011
0 1 1 1 0010111
1 1 1 1 1111111
t t xt xt
0 0
66
ht e j 2 f t e j 2 f t A cos 2 f t
A A
2 2
f ) f 0 e df e f f e
j 2 f t 2 f t j 2 f t
Note : dan 0 df e j 2 f t
Jadi A cos 2 f t f f 0 f f 0
A
2
Jika kendala panjang (length constraint) = M , relatip pendek , yaitu jika M 8 , maka :
dekoder dapat melakukan “pendekodean” secara optimal relatip dengan sedikit
perhitungan saja .
Pengdekodean yaang dilakukaan adalah :
pengdekodean keputusaan keras (hard dececion decoding)
pengdekodean keputusaan lunak (soft dececion decoding)
- Dekoder keputusaan keras : menerima keputusan bit (bit dececion) dari demodulator .
Setiap bit yang diterima diputus-kan “0” ataau “1”
- Dekoder keputusaan lunak : meliputi pemakaian dari keluaran demodulator yang
sebanding dengan “kemungkinan log” (log- likehood) daripada bit yang dimodulasi ,
baik yang “0” maupun “1” .
- Kemungkinan log (loglikehood) adalah : logarithme dari proba-bilitas menjadi suatu
bit 0 ataupun 1
- Rumus : loglikehood = log (Pr< x = 0z = 1 >)
- Sebagai misal , jika bit yang didemodulasi adalah 1 , maka bit hasil demodulasi adalah
0.
- Jika bit yang dipancarkan adalah variable x dan yang didemo-dulasi adalah variabel z ,
maka expresi ini adalah loglikehood , bahwa x adalah 0 asalkan z adalah 1 .
Pendekodean keputusaan lunak biasanya menghasilkan kinerja yang lebih baik , namun
lebih komplex
i 1
1 1 9
LB1 LB 2 10 2 10
2 1 1
Transfer Probability P LB1.LB 2 0 P LB 2.LB3 0
1
P LB1.LB 2 0 5 5 15
P LB 2.LB3 0 1
3
1 3 7
16 8 8 16
APLIKASI FFT
Jika fungsi e t dihitung dengan menggunakan pendekatan FFT , untuk transfomasi Fourienya
, maka :
Langkah ke-1 didalam penggunaan DFT adalah :
Menentukan N = tinggi maximum sample dan T = interval sample
68
Sebagai contoh , N = 32 , maka setiap sample dinyatakan dengan 5 buah bit ; jika T
= 0.25 detik , maka pada waktu tersebut nilai e t 0
Hal tersebut digambarkan dengan kurva e t , yang dilukis berdasarkan program
Matlab berikut ini :
» t=0:0.01:7;
» x=[exp(-t)];
» plot(t,x);
» plot(t,x)
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0 1 2 3 4 5 6 7
e 6 0.0025 0 )
Koding sumber :
Konversi keluaran DMS = Discrete Memoryless Signal menjadi suatu urutan
symbol biner (kata kode biner = binary code word) dinamakan dengan :
koding sumber
- Alat yang melakukan proses konversi ini disebut dengan encoder sumber
- Tujuan digunakannya koding sumber adalah :
o Meminimalkan kecepatan bit rata-rata yang digunakan untuk
menyatakan sumber , dengan mengurangi berlebihannya (redun-
dancy) sumber informasi
Panjang Kode
69