40
•Với mọi số nguyên dương m ≥ 3, tồn tại mã Hamming với các thơng số sau: Chiều dài từ mã: n = 2m – 1.
Chiều dài phần tin: k = 2m – m – 1. Chiều dài phần kiểm tra: m = n –k Khả năng sửa sai: t = 1
• Cấu trúc ma trận kiểm tra H với các cột là một vector m chiều khác khơng.
• H = [Imxm | P(n-k)k]
Ví dụ: với m = 3, ma trận kiểm tra của mã (7,4) được viết dưới dạng
(1)
Trong thực tế để việc tạo và giải mã Hamming một cách đơn giản người ta đổi vị trí các cột trong ma trận H. Khi đĩ các bit kiểm tra xen kẽ với các bit mang tin chứ khơng cịn tính chất khối, từ (1) ta cĩ:
(2) H(3,7) = 1 0 0 1 0 1 1 0 1 0 1 1 1 0 0 0 1 0 1 1 1 H = 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 41
Để việc tạo mã đơn giản ta chọn các bit kiểm tra x, y, z ở các vị trí tương ứng 2i với i = 0, 1, 2, . . ., nghĩa là các vị trí thứ nhất, thứ hai & thứ tư của các ký hiệu từ mã: t = (x, y, u0, z, u1, u2, u3) (3) Tạo mã:
t.HT= (x, y, u0, z, u1, u2, u3) x
0 0 10 1 0 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 = 0 42
t = (x, y, u0, z, u1, u2, u3)
(2)
x.0 +y.0 +u0.0 +z.1 + u1.1 + u2.1 + u3.1 =0 ⇒ z = u1 + u2 + u3 x.0 +y.1 +u0.1 +z.1 + u1.0 + u2.1 + u3.1 =0 ⇒ y = u0 + u2 + u3 x.1 +y.0 +u0.1 +z.1 + u1.1 + u2.0 + u3.1 =0 ⇒ x = u0 + u1 + u3
Tin cần phát đi:
U = (u0, u1, u2, u3) = (1 0 1 1) x = u0 + u1 + u3 = 1+ 0+1= 0 y = u0 + u2 + u3 = 1+1+1 = 1 z = u1 + u2 + u3 = 0+1+1 = 0
⇒ Vậy từ mã phát đi sẽ là: t = ( 0 1 1 0 0 1 1) khơng cĩ dạng mã khối.
Giải mã Haming cũng giống như giải mã khối tuyến tính nhưng đơn giản hơn nhờ sử dụng ma trận kiểm tra H cĩ dạng 2. Khi đĩ việc xác định vị trí ký hiệu sai tương đối thuận tiện.
Ví dụ: