Anda di halaman 1dari 29

1

Hamming Code
Kode ini dikenalkan oleh Richard Hamming (1950) sebagai kode tunggal pengoreksi kesalahan (single error-correcting code). Bit parity ditambahkan ke dalam bit-bit informasi, jika suatu saat ada perubahan bit-bit data ketika proses transmisi, maka bit-bit informasi asli masih bisa diselamatkan. Kode ini dikenal pula sebagai parity code Bit parity tambahan diberikan pada bit-bit informasi sebelum ditransmisikan, sedangkan pada sisi penerima dilakukan pengecekan dengan algoritma yang sama dengan pembangkitan bit parity tambahan

Hamming Code
Cara pengisian bit tambahan pada bit-bit informasi x

Untuk bit data 4-bit, bit-bit data terletak pada posisi 3, 5, 6 dan 7 Bit pengisi terletak pada posisi 1, 2, 4 (2K) K = jumlah bit data -1
3

Hamming Code
Jumlah bit informasi = (n jumlah bit cek)

Bit pengisi / cek bit informasi 2 1 3 4 4 11 5 26


4

Tabel hamming untuk informasi 4 bit

Hamming Code
Nilai bit pengisi / cek: (untuk informasi 4-bit)

Hamming Code
Untuk informasi n-bit, nilai bit pengisi / cek adalah:

Bit-bit masing-masing posisi yang disertakan di Ex-OR kan

Hamming Code
Contoh: Bagaimana bentuk data yang ditransmisikan dengan kode Hamming, jika diketahui bit data = 1010 ? Jawab: a1 = a3 + a5 + a7 a1 = 1 + 0 + 0 = 1 a2 = a3 + a6 + a7 a2 = 1 + 1 + 0 = 0 a4 = a5 + a6 + a7 a3 = 0 + 1 + 0 = 1 Sehingga bentuk data yang ditransmisikan menjadi: 1011010
8

Hamming Code
Cara penge-cekan disisi penerima: (untuk informasi 4-bit)

Jika nilai e = 0, maka seluruh data yang diterima adalah benar


9

Hamming Code
Untuk informasi n-bit, cara pengecek an adalah:
1. Tanda semua posisi bit yang merupakan pangkat dua sebagai bit parity (posisi 1, 2, 4, 8, 16, 32, 64, ...) 2. Posisi yang lain digunakan sebagai bit data yang akan dikodekan (posisi 3, 5, 6, 7, 9, 10, 11, 12, 13, ...)

10

Hamming Code
3. Masing-masing bit pengecek menghitung bit setiap posisi dengan cara menge-cek dan melewati, sebagai berikut: Posisi 1 : cek 1 bit, lewat 1 bit, cek 1 bit, lewat 1 bit dsb (1,3,5,7,9,11,13,15) Posisi 2 : cek 2 bit, lewat 2 bit, cek 2 bit, lewat 2 bit dsb (2,3,6,7,10,11,14,15,) Posisi 4 : cek 4 bit, lewat 4 bit, cek 4 bit, lewat 4 bit dsb (4,5,6,7,12,13,14,15,20,21,22,23, ) Posisi 8 :cek 8 bit, lewat 8 bit, cek 8 bit, lewat 8 bit dsb (8-15,24-31,40-47,...) Posisi 32 : cek 32 bit, lewat 32 bit, cek 32 bit, lewat 32 bit, dsb (32-63,96-127,160-191,...)
11

Hamming Code
Bernilai bit parity = 1 jika total bit 1 diposisi yang dicek adalah ganjil (Odd) dan berinilai 0 jika total bit 1 adalah genap (Even)

12

Hamming Code
Contoh: Sebuah urutan data diterima: 0010011 Dengan: e1 = 0 e2 = 1 e4 = 0 Tentukan bit diposisi mana yang salah? Berapa nilai data asli (sebelum ditambah bit parity)?
13

Hamming Code
Jawab:
e1 = a1 + a3 + a5 + a7 = 0 + 1 + 0 + 1 = 0 e2 = a2 + a3 + a6 + a7 = 0 + 1 + 1 + 1 = 1 e3 = a4 + a5 + a6 + a7 = 0 + 0 + 1 + 1 = 0 a1 = a3 + a5 + a7 = 1 + 0 + 1 = 0 a2 = a3 + a6 + a7 = 1 + 1 + 1 = 1 a3 = a5 + a6 + a7 = 0 + 1 + 1 = 0 benar salah benar

sama dengan yang dikirim tidak sama dengan yang dikirim sama dengan yang dikirim

Berarti bit diposisi 2 yang salah, seharusnya yang diterima adalah: 0110011 Nilai data asli= a3 a5 a6 a7 = 1011
14

Matriks Generator Kode Hamming


Kode ini dapat dibentuk dengan sebuah algoritma yang sederhana matriks parity check, Contoh kode (7, 4), dibentuk dengan cara berikut: Biner 1 sampai 7: 1 2 3 4 5 6 7 001 010 011 100 101 110 111
15

Parity Check
Dalam matriks parity check berikut, urutan kolom dari kiri ke kanan dibentuk dengan urutan: 7, 6, 5, 3, 1, 2 dan 4, dengan pembacaan bit dari bawah ke atas.

H = P

T kx ( n k )

Ik

Matriks Parity check

16

Matriks Generator
Generator dibangkitkan dari:

G = Ik

T kx ( n k )

17

ENCODING
Pembentukan Codeword:

c = d.G
untuk kode (7,4):

1000 | 111 0100 | 011 c = (d1 , d 2 , d 3 , d 4 ) 0010 | 101 0001 | 110


18

CODEWORD
Jika d = 1101, maka:

1000111 0100011 = (1101010) C = (1101) 0010101 0001110


7 bit codeword : (d1, d2, d3, d4, p1, p2, p3). Terdiri dari : 4 bit data (d1, d2, d3, d4) dan 3 bit parity (p1, p2, p3).
19

DECODING
Untuk men-dekode codeword yang telah diterima (r), harus diketahui syndrome. Dimana syndrome didapat dari : 1 1 1 0 1 1 s = r . HT 1 0 1 s = ( r1 , r2 , r3 , r4 , r5 , r6 , r7 ) 1 1 0 1 0 0 0 1 0 0 0 1

s = (r1 + r3 + r4 + r5 , r1 + r2 + r4 + r6 , r1 + r2 + r3 + r7 )
20

DECODING
Jika semua elemen s adalah 0, maka codeword telah diterima dengan benar. Tapi jika s berisi bit 1, maka bit error dapat ditentukan dengan menganalisis parity check yang mana yang salah,

21

Kode Hamming (15,11)


Matriks Parity check H

22

Kode Hamming (15,11)


Matriks generator (15,11)
1 0 0 0 0 G = 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 1 0 1 0 1 0 1 1 0 1 1 0 1 1 0 0 1 1 0 1 1 1 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1
23

Check bit
Persamaan Check bit dapat diperoleh dengan mengalikan bit data dengan matriks parity check Pkx(n-k), yaitu sebagai berikut: c = d . Pkx(n-k) Dimana matriks P diperoleh dari matriks generator tanpa menyertakan matrik I. d terdiri dari bit-bit datadan c terdiri dari check bit (1, 2, 3, ...n), dimana dalam kode sistematik adalah bit n k yang terakhir dari codeword, ada empat bit. check bit di buat dari product (modulo-2) antara 24 message dan matriks P

Check bit
1 1 0 1 1 ( 1 , 2 , 3 ) = (d1 , d 2 , d 3 , d 4 , d 5 , d 6 , d 7 , d 8 , d 9 , d10 , d11 ) * 0 1 0 1 0 1 1 0 0 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0 1 0 1 1 0 1 1 1 1 1 1 1 1
25

Check bit
Sehingga check bit untuk codeword (15,11)
1 = d1 d 2 d 4 d 5 d 7 d9 d11 2 = d1 d3 d 4 d 6 d 7 d10 d11 3 = d 2 d3 d 4 d8 d 9 d10 d11 4 = d5 d 6 d 7 d8 d9 d10 d11

Codeword: C = 1+ 2+ 3+ 4
26

Shift Register
Implementasi Shift Register dari suatu kode Generator menjadi kode Hamming (15,11)

27

Syndrome
Syndrome s = r . HT s = (c + e) HT Karena : c.HT = 0 S = e.HT

28

Tabel syndrome dan coset leader


Syndrome
s1 s2 s3 s4 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 1 0 1 0 0 1 0 1 0 1 1 1 0 1 0 0 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1

Coset Leader (correctable error pattern):


r1 r2 r3.r15 tidak ada error 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1

29

Anda mungkin juga menyukai