You are on page 1of 108

CHƯƠNG 4

MÃ HOÁ KÊNH
MÃ HOÁ CHỐNG NHIỄU
 Trọng số Hamming
Trọng số Hamming của một dãy kí hiệu v = a1a2...an ,
trong đó mỗi ai ∈ {0, 1, ..., m–1}, là số kí hiệu khác 0
của dãy, và thường được kí hiệu là w(v).
Ví dụ: Mã nhị phân:
- chuỗi bit v = 010111000 thì w(v) = 4
Cách viết khác: w(10100) = 2, w(01120) = 3
MÃ HOÁ CHỐNG NHIỄU
 Khoảng cách Hamming
Khoảng cách Hamming của hai dãy ký hiệu x và y với
chiều dài bằng nhau là số vị trí khác nhau của hai dãy,
và thường được kí hiệu d(x,y).
Ví dụ: Mã nhị phân có hai chuỗi bit x = 11010101 và
y = 10011011. Khoảng cách Hamming giữa x và y là
d(x,y) = 4 (sai ở bit thứ hai , năm, sáu, bảy)
x 11010101
y 10011011
MÃ HOÁ CHỐNG NHIỄU
 Khoảng cách Hamming của bộ mã A
Ký hiệu là d(A), là khoảng cách Hamming nhỏ nhất
trong tất cả các khoảng cách giữa hai từ mã bất kỳ của
A.
Ví dụ: Bộ mã A có 04 từ mã là 00, 01, 10 và 11. Khoảng
cách Hamming giữa các từ mã là:
d(00,01) = 1, d(00,10) = 1, d(00,11) = 2, d(01,10) = 2,
d(01,11) = 1, d(10,11) = 1.
Do khoảng cách Hamming nhỏ nhất bằng 1 nên khoảng
cách Hamming của bộ mã bằng 1: d(A) = 1.
MÃ HOÁ CHỐNG NHIỄU
 Phép cộng cơ số m
- Xét  a, b    0,1, 2,..., m  1 thì

a  b  a  b mod m

- Nếu v1  a1a2 a3 ...an và v2  b1b2b3 ...bn thì


v1  v2  c1c2 ...cn
với
ci  ai  bi  i  1, 2,..., n 
MÃ HOÁ CHỐNG NHIỄU
 Phép cộng cơ số m
Ví dụ:
- Với m = 2, ta có: 0 ⊕ 0 = 0, 0 ⊕ 1 = 1, 1 ⊕ 0 = 1,
1 ⊕ 1 = 0.
- Với m = 2: 1011 ⊕ 1101 = 0110.
- Với m = 3 thì 1021 ⊕ 2120 = 0111.
MÃ HOÁ CHỐNG NHIỄU
 Định lý: Bộ mã nhị phân có khoảng cách Hamming d
thì có thể phát hiện sai được t bit ( d  t  1 ) và sửa
sai được v bit ( d  2v  1 )

- Ví dụ: Bộ mã có khoảng cách Hamming bằng 5 thì bộ


mã này có thể phát hiện được tối đa 4 lỗi (t=4) và sửa
được nhiều nhất 02 lỗi sai (v=2)
- Ví dụ: Bộ mã có khoảng cách Hamming bằng 2 thì bộ
mã này chỉ phát hiện được 1 lỗi (t=1) và không sửa
sai được (v=0)
MÃ HOÁ CHỐNG NHIỄU
 Trường Galois GF(2)
- Trường GF(2) bao gồm hai phần tử {0, 1} với hai phép
cộng ‘+’ và nhân ‘*’ như sau:

- Ghi chú: x + y = 1 nếu x ≠ y, và x + y = 0 nếu x = y


- x*y = 1 khi x = y = 1
- Các ký hiệu khác của phép nhân: x.y, x × y
MÃ HOÁ CHỐNG NHIỄU
 Đa thức trên trường Galois GF(2)
- Một đa thức trên trường GF(2), chẳng hạn kí hiệu là
f(x), là đa thức có dạng:
f  x   a0  a1 x  a2 x  ...  an x
2 n

- Bậc của đa thức: bậc lớn nhất của đa thức.


- Ví dụ:
Đa thức f(x) = 1 + x + x3 có bậc 3
Đa thức g(x) = x + x2 + x5 có bậc 5.
MÃ HOÁ CHỐNG NHIỄU
 Phép cộng và nhân đa thức trên trường Galois
GF(2)
Ví dụ:

Cho f(x) = 1 + x + x3, g(x) = x + x2 thì

f(x) + g(x) = (1 + x + x3) + (x + x2) = 1 + x2 + x3


f(x) * g(x) = (1 + x + x3) * (x + x2) = x + x3 + x4 + x5
MÃ HOÁ CHỐNG NHIỄU
 Phép chia đa thức trên trường Galois GF(2)
- Nếu g(x) có bậc khác 0 ta có thể chia f(x) cho g(x) như
sau: f(x) = q(x)*g(x) + r(x), trong đó q(x) là đa thức
thương còn r(x) là đa thức dư có bậc nhỏ hơn đa thức
chia g(x).
Ví dụ: f(x) = 1 + x + x4 + x5 + x6 chia cho g(x) = 1 + x +
x3, ta có:
1 + x + x4 + x5 + x6 = (x2 + x3) * (1 + x + x3)
+ (1 + x + x2)
MÃ HOÁ CHỐNG NHIỄU
 Phân tích đa thức thành nhân tử trên trường Galois
GF(2)
Ví dụ
- 1 + x + x3 + x5 = (1 + x)(1 + x3 + x4)
- 1 + x7 = (1 + x)(1 + x + x3)(1 + x2 + x3)
MÃ HOÁ CHỐNG NHIỄU
 Phân tích đa thức thành nhân tử trên trường Galois
GF(2)

- Một đa thức trên GF(2) được gọi là tối giản nếu nó


không phân tích được thành tích của hai đa thức có bậc
nhỏ hơn.
MÃ HOÁ CHỐNG NHIỄU
 Phân tích đa thức thành nhân tử trên trường Galois
GF(2)
MÃ HOÁ CHỐNG NHIỄU
 Mã hoá chống nhiễu (Mã hoá kênh )
• Mã hoá kênh (channel coding)
 Phát hiện và sửa các ký tự hay bit thu được bị lỗi
 Đưa thêm các dữ liệu dư vào dữ liệu phát
 Bên thu có thể phát hiện lỗi và sửa lỗi
MÃ HOÁ CHỐNG NHIỄU
 Các phương pháp điều khiển lỗi
- Tăng công suất phát
- Phân tập: phát, thu
- Truyền song công (kiểm tra echo)
- Yêu cầu lặp lại tự động ARQ (Automatic repeat
request)
- Mã hóa sửa lỗi không phản hồi FECC(Forward Error
Correction Coding)
MÃ HOÁ CHỐNG NHIỄU
 Phân loại mã điều khiển lỗi
Mã Hóa Kênh
 Mã khối
- Mã kiểm tra tổng khối
- Ký tự trong khối bị lỗi xem như cả khối bị lỗi
- Thêm bit P cho từng khối: Parity hàng và parity cột
Mã Hóa Kênh
 Phân loại mã điều khiển lỗi
- Mã khối: Ký hiệu C(n,k)
MÃ HOÁ CHỐNG NHIỄU
 Mã kiểm tra chẵn lẻ (Parity)
- Dùng phổ biến trong truyền số liệu dạng ASCII
- Thêm vào các Bit parity (P)
- Mã Parity chẵn (Even): thêm 01 bit vào thông tin gốc để
được một từ mã có số bit 1 là số chẵn
Ví dụ: thông tin gốc m = 10011 thì từ mã w = 100111, 
bit 1 thêm vào sau thông tin gốc để số bit 1 trong w là
số chẵn
Ví dụ: thông tin gốc m = 10001 thì từ mã w = 100110.
MÃ HOÁ CHỐNG NHIỄU
 Mã kiểm tra chẵn lẻ (Parity)
- Mã Parity lẻ (Odd): thêm 01 bit vào thông tin gốc để
được một từ mã có số bit 1 là số lẻ
Ví dụ: thông tin gốc m = 1100 thì từ mã w = 11001, 
bit 1 thêm vào sau thông tin gốc để số bit 1 trong w là
số lẻ
Ví dụ: thông tin gốc m = 1000 thì từ mã w = 10000.
MÃ HOÁ CHỐNG NHIỄU
Bài tập 4.1: Giả sử thông tin gốc chỉ có 02 bit và được mã
hoá bằng mã Parity chẵn (C(2,3))
a) Tìm tất cả các từ mã có thể có của bộ mã
b) Tìm khoảng cách Hamming của bộ mã.
c) Bộ mã này có thể phát hiện được bao nhiêu lỗi và sửa
sai được bao nhiêu lỗi?
Mã Hóa Kênh
 Mã Hamming
 Mã Hamming có khoảng cách Hamming d=3, có khả
năng sửa được 1 lỗi.
 Từ mã Hamming được biểu diễn dưới dạng tổng quát
c c i c i i i c i …. , i là các bit tin và c là các bit kiểm
tra.
 Các bit c chính là kết quả của phép XOR giá trị chỉ vị
trí của các bit 1 với nhau. Quá trình kiểm tra lỗi bên
thu diễn ra tương tự như bên phát.
 Nếu kết quả của phép XOR khác 0 thì đó là vị trí của
bit lỗi.
Mã Hóa Kênh
 Mã Hamming
Ví dụ: mã hoá thông tin gốc m = 1010101 bằng mã
Hamming C(11,7).
Từ mã có dạng: w = c1 c2 1 c4 0 1 0 c8 1 0 1, trong đó c1,
c2, c4, c8 là các bit thêm vào được đặt ở các vị trí 1, 2, 4,
8 của từ mã.
Xét từ mã w: bit 1 ở các vị trí thứ 3, 6, 9 và 11.
Đổi các vị trí thành số nhị phân:
3  0011, 6  0110, 9  1001, 11  1011
Mã Hóa Kênh
 Mã Hamming
X-OR các vị trí: 0 0 1 1 Từ mã
 0110 w=11110100101
1001
1011 c1 c2 c4 c8
------------
0111

c8 c c1
4 c2
Mã Hóa Kênh
 Mã Hamming
 Giả sử từ mã nhận được sai ở bit thứ 3
r =w+e
=11110100101+00100000000
=11010100101

Bit sai
Trong r có 6 bit 1 và vị trí của các bit 1 này là 1, 2, 4, 6, 9
và 11
Mã Hóa Kênh
 Mã Hamming
 Chuyển 1, 2, 4, 6, 9 và 11 thành nhị phân và X-OR lại:
1 0001
- Kết quả sau phép X-OR 0011 ≠
2 0010
0000 nên từ mã nhận được r là từ mã
4 0100 sai.
6 0110 -00112 = 3 nên từ mã nhận được sai
9 1001 ở bit thứ 3.
11  1011 -Tiến hành sửa sai bit thứ 03 của r
---------- để được từ mã đúng:
0011
r=11110100101
MÃ HOÁ CHỐNG NHIỄU
Bài tập 4.2:
a) Hãy mã hoá thông tin gốc m = 0101 bằng mã
Hamming C(7,4)
b) Giả sử từ mã nhận được sai ở bit thứ sáu, hãy tiến hành
các bước phát hiện sai và sửa sai
MÃ HOÁ CHỐNG NHIỄU
Bài tập 4.3:
a) Hãy tất cả các từ mã có thể có của mã Hamming C(6,3)
b) Tìm khoảng cách Hamming của bộ mã này
Mã Hóa Kênh
 Mã khối
- Mã khối được ký hiệu C(n,k)
- Mã khối có ma trận sinh G có kích thước kxn
- Ví dụ: Mã khối C(7,4) có ma trận sinh G4x7 như sau

1 0 0 0 1 1 1
0 1 0 0 0 1 
1
G4 x 7 
0 0 1 0 1 0 1
 
0 0 0 1 1 1 0
Mã Hóa Kênh
 Mã khối
- Từ mã đạt được bằng cách nhân thông tin gốc với ma
trận sinh
- Ví dụ: thông tin gốc là m = 1010, thì từ mã là w = mG
1 0 0 0 1 1 1 
0 1 0 0 0 1 1 
w  mG  [1010]   
1442 443  0 0 1 0 1 0 1 
m
 
0 0 0 1 1 1 0
144444444442 44444444443
G
 [1010010]
Mã Hóa Kênh
 Mã khối tuyến tính
- Một mã khối tuyến tính C(n,k) là một không gian con k
chiều của vector không gian V.
- Một mã gọi là tuyến tính nếu C là không gian con có
tính chất sau:

ci , c j  C  ci  c j  C
ci  C , a  F  aci  C
Mã Hóa Kênh
 Mã khối tuyến tính
- Cơ hệ bộ mã khối tuyến tính thõa mãn 2 tính chất
- c  C tồn tại các i  F, sao cho:

c  1c1  2 c2  ...  k ck

k

 c
i 1
i i  0  1  2  ...  k  0
Mã Hóa Kênh
 Mã khối tuyến tính
- Ma trận sinh: Ma trận sinh của một mã tuyến tính
C(n,k) là một ma trận kxn với tất cả các hàng là độc
lập tuyến tính
 g 0   g 00 g 01 L g 0 n 1 
 g   g g11 L g1 n 1 


Gkxn   
1 10

 ...   M M M 

  
 g k 1   g k 1 0 g k 1 1 L g k 1  n 1 

với gi   gi 0 gi1 ...gi n 1 


 
Mã Hóa Kênh
 Mã khối tuyến tính
- Bất kỳ k từ mã độc lập tuyến tính đều có thể dùng làm
ma trận sinh. Nghĩa là một bộ mã tuyến tính có thể có
nhiều ma trận sinh khác nhau và ngược lại.

- Nhắc lại: từ mã tương ứng với thông tin gốc m là


w = mG.
Mã Hóa Kênh
 Mã khối tuyến tính
Bài tập 4.4:
Tìm các từ mã có thể có của các ma trận sinh sau:

0 1 1 0
a) G2 x 4  
 1 1 0 1 

1 1 0 0 0 
b) G3x5  1 0 1 0 1 
0 0 0 1 1 
Mã Hóa Kênh
 Mã khối tuyến tính
- Một mã tuyến tính C(n,k) được gọi là mã tuyến tính
hệ thống nếu mỗi từ mã có một trong hai dạng sau:
- Dạng 1: Từ mã bao gồm phần thông tin k bit đi trước
và phần còn lại (n-k) bit kiểm tra theo sau.
- Dạng 2: Ngược lại với dạng 1.
- Để tạo ra các từ mã hệ thống cần có các ma trận sinh
hệ thống
Mã Hóa Kênh
 Mã khối tuyến tính
Ví dụ: Mã khối tuyến tính C(7,4) có ma trận sinh hệ
thống dạng 1 như sau:
1 0 0 0 1 1 1 
0 1 0 0 0 1 1 
G4 x 7   
0 0 1 0 1 0 1 
 
0 0 0 1 1 1 0 
 Ma trận P là 1 1 1 
 
0 1 1
P 
1 0 1 
 
1 1 0 
Mã Hóa Kênh
 Mã khối tuyến tính
Ví dụ: Nếu thông tin gốc là m = 1011, ta được từ mã hệ
thống dạng 1:

1 0 0 0 1 1 1
0 1 0 0 0 1 1 
w  mG  [1011]  
0 0 1 0 1 0 1
 
0 0 0 1 1 1 0
 1011100
{
m
Mã Hóa Kênh
 Mã khối tuyến tính
- Phép toán sơ cấp trên hàng
- Biến đổi sơ cấp trên hàng của một ma trận nhị phân có
được bằng cách cộng hàng đó với một hàng bất kì của
ma trận sinh.
- Nhân một hàng với một hệ số khác không.
- Phép hoán vị cột của ma trận sinh.
Mã Hóa Kênh
 Mã khối tuyến tính
Ví dụ: Ma trận sinh sau không phải là ma trận sinh hệ
thống:
0 1 0 1 1 1 0
 
 0 1 0 0 0 1 1
G4 x 7 
0 1 1 0 1 0 0
 
1 0 0 0 1 1 0 
Hoán vị cột để được ma trận sinh hệ thống:
Chuyển Cột 4 thành cột 1, Cột 7 thành cột 2, Cột 1 thành
cột 4, Cột 2 thành cột 7
Mã Hóa Kênh
 Mã khối tuyến tính
Ví dụ: Sau khi hoán vị các cột, ta được ma trận sinh hệ
thống dạng 1 như sau:

1 0 0 0 1 1 1
0 1 0 0 0 1 1 
G4 x 7 
0 0 1 0 1 0 1
 
0 0 0 1 1 1 0
Mã Hóa Kênh
 Mã khối tuyến tính
Ví dụ: Biến đổi các ma trận sinh dưới đây về dạng ma
trận sinh hệ thống dạng 1
0 0 1 1 
G3 x 4   0 1 1 0 
1 1 0 0 
Áp dụng cả phương pháp biến đổi sơ cấp trên hàng và
phương pháp hoán vị cột.
Mã Hóa Kênh
 Mã khối tuyến tính
Ví dụ: Giữ nguyên hàng 2 và hàng 3, thay thế hàng 1
bằng hàng 1 + hàng 2, ta có hàng 1 mới sẽ là 0101
0 0 1 1  0 1 0 1
0 1 1 0  0 1 1 0
   
1 1 0 0  1 1 0 0 
Bây giờ, ta có thể thực hiện phép hoán vị cột để được ma
trận sinh hệ thống dạng 1:
Cột 4  Cột 1, Cột 3  Cột 2, Cột 1  Cột 3, Cột 2 
Cột 4
Mã Hóa Kênh
 Mã khối tuyến tính
Ví dụ: Cột 4  Cột 1, Cột 3  Cột 2, Cột 1  Cột 3,
Cột 2  Cột 4

0 0 1 1  0 1 0 1  1 0 0 1
 0 1 1 0   0 1 1 0   0 1 0 1
     
1 1 0 0  1 1 0 0  0 0 1 1
Mã Hóa Kênh
 Bài tập 4.5: Biến đổi các ma trận sinh dưới đây về
dạng ma trận sinh hệ thống dạng 1

0 0 0 0 1
G3 x 5  0 0 1 1 1
1 1 1 1 1
Mã Hóa Kênh
 Mã khối tuyến tính
- Ma trận kiểm tra chẵn lẻ H của một bộ mã tuyến tính
C(n,k) có ma trận sinh là G thì thõa mãn điều kiện sau
T
GH  0

- Ở đây HT là ma trận chuyển vị của ma trận H và 0 ký


hiệu là ma trận 0.
Mã Hóa Kênh
 Mã khối tuyến tính
- Nếu G là ma trận sinh hệ thống dạng 1 thì H xác định
bởi:

H   P , I 
T

- PT là ma trận chuyển vị của ma trận P


Mã Hóa Kênh
 Mã khối tuyến tính
- Nếu w là một từ mã được sinh ra từ ma trận sinh G và
ma trận kiểm tra chẵn lẻ H thì

T
wH  m GH  T
 0
Mã Hóa Kênh
 Mã khối tuyến tính
Ví dụ: Cho ma trận sinh:
0 1 1
G 
 1 0 1

- Thực hiện hoán đổi cột 1 và cột 2, và giữ nguyên cột 3,


ta được ma trận sinh hệ thống dạng 1:
1 0 1
G 
 0 1 1
1
Ma trận P: P  1 và P T
  11

Mã Hóa Kênh
 Mã khối tuyến tính
Ví dụ: Ma trận H

H   PT , I   [111]

Nhân G với HT để kiểm tra có đúng bằng ma trận 0:


1
T 0 1 1   0 
GH     1   
1 0 1 1 0 

Mã Hóa Kênh
 Bài tập 4.6:
a) Cho ma trận sinh hệ thống dạng 1, hãy tìm ma trận
kiểm tra H
b) Kiểm tra tích GHT

1 0 0 0 1 1 1
0 1 0 0 0 1 1 
G4 x 7 
0 0 1 0 1 0 1
 
0 0 0 1 1 1 0
Mã Hóa Kênh
 Mã khối tuyến tính
- Mã khối tuyến tính C(n,k) có khoảng cách Hamming
bằng trọng số Hamming nhỏ nhất khác 0 của các từ
mã.
- Ví dụ: Mã khối tuyến tính C(3,2) có ma trận sinh hệ
thống dạng 1 như sau:
1 0 1
G 
 0 1 1
Mã Hóa Kênh
 Mã khối tuyến tính
- Các từ mã của bộ mã là:
Thông tin gốc Từ mã Trọng số Hamming

00 000 0

01 011 2

10 101 2

11 110 2

- Do trọng số Hamming nhỏ nhất khác 0 bằng 2  Bộ


mã trên có khoảng cách Hamming bằng 2.
Mã Hóa Kênh
 Bài tập 4.7: Xét mã khối tuyến tính C(6,3) có ma trận
sinh:
1 0 0 0 1 1
G3 x 6 
 0 1 0 1 0 1 
0 0 1 1 1 1
a) Tìm tất cả các từ mã có thể có của bộ mã.
b) Tìm khoảng cách Hamming của bộ mã. Hỏi bộ mã có
thể phát hiện được bao nhiêu lỗi và sửa được bao
nhiêu lỗi?
Mã Hóa Kênh
 Mã khối tuyến tính
- Từ mã được gửi đi là w, từ mã nhận được tại phía thu

r  we
- e được gọi là vector lỗi
- Ví dụ: Từ mã w = 0101010, từ mã nhận được r =
0001011. Từ mã r sai 02 bit so với từ mã w. Nói cách
khác:
r  w  0100001 hay e  0100001
Mã Hóa Kênh
 Mã khối tuyến tính
- Với w = {w0 ,w1 ,…,wn-1} là một từ mã được truyền
qua kênh truyền có nhiễu.
- Với r = {r0 ,r1 ,…,rn-1} là từ mã nhận được tại ngõ ra
của kênh truyền.
- e = {e0 , e1 , …, en-1} được gọi là vector lỗi
ei  1  ri  ci
ei  0  ri  ci
Mã Hóa Kênh
 Giải mã bằng Syndrome
Mã Hóa Kênh
 Mã khối tuyến tính
Cho bộ mã tuyến tính có ma trận sinh như sau
1 0 0 0 1 1
G3 x 6 
 0 1 0 1 0 1 
0 0 1 1 1 1
Nếu thông tin gốc là 101 thì từ mã w là
w  mG  101100

- w được gửi đi và giả sử từ mã nhận được r là


r  w  001000  100100
Mã Hóa Kênh
 Mã khối tuyến tính
Ma trận kiểm tra H:
0 1 1 1 0 0 
 
H  1 0 1 0 1 0 
1 1 1 0 0 1 
0 1 1
Tính syndrome  
1 0 1
T
1 1 1
s  rH  100100     [111]
1 0 0
0 1 0
 
0 0 1 
Mã Hóa Kênh
 Mã khối tuyến tính
- Syndrome s ≠ [000] nên từ mã nhận được là từ mã sai.
- Sửa sai: s = rHT = (w+e)HT = wHT + eHT = eHT
e s = eHT
000001 001
000010 010
000100 100
001000 111
010000 101
100000 011

- s = [111] nên e có thể là 001000


Mã Hóa Kênh
 Mã khối tuyến tính
- Tiến hành sửa sai:
c = r + e = 100100 + 001000 = 101100
- Ta thấy c = w (từ mã đúng)
- Đã giả sử từ mã nhận được chỉ sai một lỗi (do bộ mã
chỉ có khả năng sửa được 01 lỗi)
Mã Hóa Kênh
 Bài tập 4.8 Xét bộ mã C(7,4) có ma trận sinh:
1 0 0 0 1 1 1
 
 0 1 0 0 0 1 1
G4 x 7 
0 0 1 0 1 0 1
 
0 0 0 1 1 1 0 

Giả sử từ mã nhận được là r =1000010. Hãy xác định từ


mã đã được truyền đi (w) bằng phương pháp syndrome.
Mã Hóa Kênh
 Mã khối tuyến tính
- Thực hiện mạch bằng phần cứng:

 Mạch mã hóa
 Mạch thực hiện syndrome
 Mạch giải mã
Mã Hóa Kênh
 Mã khối tuyến tính
- Mạch mã hoá:
Mã Hóa Kênh
 Mã khối tuyến tính
- Mạch mã hoá:
- Thanh ghi dịch (flip-flop)
- Kết nối pij = 1 và không kết nối pij = 0

- Bộ cộng modulo của 2


Mã Hóa Kênh
 Mã khối tuyến tính
- Mạch mã hoá:
Ví dụ: Cho ma trận sinh hệ thống như sau:

1 0 0 0 1 1 0
0 1 0 0 0 1 1 
G
0 0 1 0 1 1 1
 
0 0 0 1 1 0 1

Vẽ sơ đồ mạch mã hóa bằng phần cứng


Mã Hóa Kênh
 Mã khối tuyến tính
- Mạch mã hoá:
Các bit của từ mã c như sau
c0 = u0, c1 = u1, c2 = u2, c3 = u3
c4 = u0 + u2 + u3
c5 = u0 + u1 + u2
c6 = u1 + u2 + u3
Mã Hóa Kênh
 Mã khối tuyến tính
- Mạch mã hoá:
Mã Hóa Kênh
 Mã khối tuyến tính
- Mạch thực hiện syndrome: s = rHT
Mã Hóa Kênh
 Mã khối tuyến tính
- Syndrome: s = rHT
1 1 0
0 1 1 

1 1 1   s0  r0  r2  r3  r4
  
s   r0 , r1 , r2 , r3 , r4 , r5 , r6  1 0 1    s1  r0  r1  r2  r5
1 0 0   s2  r1  r2  r3  r6
 
0 1 0
0 0 1 

Mã Hóa Kênh
 Mã khối tuyến tính
Mã Hóa Kênh
 Mã khối tuyến tính
- Mạch giải mã:

 Từ mạch thực hiện syndrome và bảng giải mã


 Ta xây dựng bảng chân trị
 Thực hiện mạch bằng các cổng logic (AND, OR, INV)
Mã Hóa Kênh
 Mã khối tuyến tính
- Mạch giải mã:
Mã Hóa Kênh
 Mã vòng
- Đặc điểm của mã vòng
Khả năng sửa lỗi cao
Thực hiện dễ dàng bằng phần cứng, bằng các thanh ghi
dịch và tổng XOR
Dịch vòng một từ mã sẽ được một từ mã thuộc cùng bộ

Biểu diễn mã vòng bằng đa thức
Mã Hóa Kênh
 Mã vòng
- Một mã tuyến tính C(n,k) được gọi là mã vòng nếu
a0a1…an-1 là một từ mã thì an-1a0 a1 …an-2 cũng là một
từ mã
- Mã vòng có tính chất vòng, dịch phải 1 bit tương
đương dịch trái (n-1) bit.
- c = a0a1…an-1 là một từ mã thì c(x) = a0 xn-1 + a1 xn-2 +
…. an-2x + an-1 là đa thức mã tương ứng với từ mã c.
Mã Hóa Kênh
 Mã vòng
Ví dụ: Từ mã w = 10101 của mã vòng  đa thức mã tương ứng w(x) =
x4 + x 2 + 1
Dịch vòng trái w 01 bit, ta có từ mã mới w1 = 01011, đa thức mã tương
ứng w1(x) = x3 + x + 1
Dịch vòng trái w 02 bit, ta có từ mã mới w2 = 10110, đa thức mã tương
ứng w2(x) = x4 + x2 + x
Dịch vòng trái w 03 bit, ta có từ mã mới w3 = 01101, đa thức mã tương
ứng w3(x) = x3 + x2 + 1
Dịch vòng trái w 04 bit, ta có từ mã mới w4 = 11010, đa thức mã tương
ứng w4(x) = x4 + x3 + x
Dịch vòng phải w 01 bit, ta có w-1 = w4 = 110101, đa thức mã tương ứng
4 3
Mã Hóa Kênh
 Mã vòng
- Định lý 1: Đa thức mã khác không bậc nhỏ nhất của
một bộ mã vòng là duy nhất.
g(x) = g0xn-k + g1xn-k-1 +….+ gn-k-1 x + gn-k
- Định lý 2: Hệ số g0 = gn-k = 1.
- Định lý 3: Đa thức mã khác không bậc nhỏ nhất của
một bộ mã vòng là đa thức sinh của bộ mã.
- Định lý 4: Đa thức sinh của một mã vòng C(n,k) có bậc
r = n – k và là ước số của xn + 1.
Mã Hóa Kênh
 Mã vòng
Ví dụ: Xét mã vòng C(7,4). Đa thức sinh sẽ có bậc r = 7 –
4 = 3, và là ước của đa thức x7 + 1.
Khai triển đa thức x7 + 1 thành nhân tử, ta có:
x7 + 1 = (x + 1)(x3 + x + 1)(x3 + x2 + 1)
Do đó, đa thức sinh g(x):
g(x) = x3 + x + 1 hoặc g(x) = x3 + x2 + 1
Mã Hóa Kênh
 Mã vòng
- Ma trận sinh của bộ mã vòng

 g   g0 g1 L g nk 0 0 L 0 
 xg   0 g0 L g n  k 1 g n k 0 L 0  
  
G   x2 g    M M M M M M M M
   
 ...   0 L 0 g0 g1 L g nk 0 
 x k 1 g   0 L 0 0 g0 g1 L g n  k 
Mã Hóa Kênh
 Mã vòng
- Ma trận sinh hệ thống:
Ma trận sinh hệ thống của mã vòng có dạng tương tự
như ma trận sinh hệ thống của mã tuyến tính.
Ta có thể biến đổi ma trận sinh hệ thống dạng 1 sang
dạng 2 và ngược lại bằng cách dịch vòng.
Lưu ý: Mã vòng chỉ sử dụng các phép biến đổi sơ cấp
trên hàng.
Mã Hóa Kênh
 Mã vòng
- Ma trận kiểm tra chẵn lẻ.
- Cách 1: Áp dụng phương pháp như mã tuyến tính
- Cách 2: Áp dụng định lý xn +1 = g(x)h(x)  tìm ra
h(x) và tiến hành xây dựng mã trận H:
 hk hk 1 L h0 0 0
0 L
 h  
 Xh   0 hk L h1 h0 0 L 0 
H  n  k  xn  M M M M M M M M
 ...   
 n  k 1   0 L 0 hk hk 1 L h0 0 
X h
 0 L 0 0 hk hk 1 L h0 
Mã Hóa Kênh
 Mã vòng
- Thông điệp gốc m có đa thức m(x)
- Từ mã w sẽ có đa thức là w(x)
- Chia m(x)*xr cho g(x) được đa thức dư q(x)
- Đa thức từ mã là w(x) = m(x)*xr + q(x)  tìm từ mã
w tương ứng.
Mã Hóa Kênh
 Mã vòng
Ví dụ: Xét mã vòng C(7,4) có đa thức sinh g(x) = x3 + x
+ 1. Thông tin gốc m = 1001 và đa thức m(x) = x3 + 1
-r=n–k=3
- Lấy m(x)*xr = x6 + x3 chia g(x):
x6 + x = (x3 + x + 1) (x3 + x) + x2 + x
 q(x) = x2 + x
 w(x) = x6 + x3 + x2 + x
 từ mã: w = 1001110
Mã Hóa Kênh
 Mã vòng
Bài tập 4.9: Hãy mã hoá chuỗi bit 0110 bằng mã vòng
C(7,4) với đa thức sinh g(x) = x3 + x2 + 1.
Mã Hóa Kênh
 Mã vòng
- Đa thức syndrome được tính như sau:
s(x) = r(x)h(x) =c(x)h(x)+e(x)h(x) = e(x)h(x)
ở đây r(x) là đa thức nhận được, e(x) là đa thức lỗi
- Đa thức syndrome là phần dư của phép chia đa thức
nhận được r(x) cho đa thức sinh g(x)
- Đa thức syndrome là phần dư của phép chia vector lỗi
e(x) cho đa thức sinh g(x)
Mã Hóa Kênh
 Mã vòng
- Bộ mã vòng có đa thức sinh g(x)= 1 + x + x3
- Bảng syndrome tương ứng với mẫu lỗi
Vector lỗi Vector syndrome
e6(x) = x6 (1000000) s6(x) = 1 + x2 (101)
e1(x) = x5 (0100000) s5(x) = 1 + x + x2 (111)
e2(x) = x4 (0010000) s4(x) = x + x2 (110)
e3(x) = x3 (0001000) s3(x) = 1 + x (011)
e4(x) = x2 (0000100) s4(x) = x2 (100)
e5(x) = x (0000010) s5(x) = x (010)
e6(x) = 1 (0000001) s6(x) = 1 (001)
Mã Hóa Kênh
 Mã vòng
- Định lý Meggitt

Nếu s(x) là syndrome của r(x) thì xs(x) = s(1)(x) là


syndrome của r(1)(x)
 s(1)(x) = xs(x) mod g(x)
Mã Hóa Kênh
 Mã vòng
Giải mã bằng phương
pháp bẫy lỗi
Mã Hóa Kênh
 Mã vòng
Ví dụ: mã hoá 4 bit 1100 với g = 1101 ta được w = 1100
101. Giả sử phía thu thu được từ mã r= 1110101
- Lấy r(x) chia cho g(x)  phát hiện sai và kết luận dịch
vòng trái.
- Dịch vòng trái lần 1 (DEM =1), r = 1101011, rồi chia
r(x) mới cho g(x) được đa thức symdrome mới s = 011,
w(s) = 2 > 1  tiếp tục dịch vòng
- Dịch vòng trái lần 2 (DEM =2), r = 1010111, rồi chia
r(x) mới cho g(x) được s = 110 (w(s)=2 > 1)  tiếp tục
dịch vòng
Mã Hóa Kênh
 Mã vòng
- Dịch vòng trái lần 3 (DEM =3), r = 0101111, rồi chia
r(x) mới cho g(x) được s = 001. Bởi vì w(s) = 1  tiến
hành cập nhật.
- r’ = r + s = 0101111 + 001 = 0101110.
- Tiến hành dịch vòng phải r’ 03 lần, ta được từ mã
chính xác 1100101
Mã Hóa Kênh
Bài tập 4.10: Cho bộ mã vòng C(6,4) có đa thức sinh:
g(x) = 1 + x + x2
a) Tìm đa thức kiểm tra chẵn lẻ h(x)
b) Viết ma trận sinh, ma trận sinh hệ thống, ma trận kiểm
tra chẵn lẻ
c) Giả sử thông tin gốc là m = 1011, tìm từ mã w bằng đa
thức sinh và bằng ma trận sinh hệ thống.
d) Giả sử từ mã nhận được là r = w + 000010. Tiến hành
các bước phát hiện sai và sửa sai bằng phương pháp bẫy
lỗi
Mã Hóa Kênh
 Mã vòng
- Giải mã
Xác định syndrome của đa thức nhận được
Nếu s(x) bằng không thì từ mã nhận được là từ mã phát
đi.
Nếu s(x) khác không thì đa thức mã truyền đi được tính
bằng cách:
c’(x) = e(x) + r(x)
Mã Hóa Kênh
 Mã vòng – Thực hiện bằng phần cứng

- Mạch mã hóa theo đa thức sinh


- Mạch mã hóa theo đa thức sinh hệ thống
- Mạch tính syndrome
- Mạch giải mã bằng phương pháp Meggitt
Mã Hóa Kênh
 Mã vòng – Thực hiện bằng phần cứng
- Áp dụng nguyên tắc: c(x) = m(x)g(x)
- Trọng số lớn nhất của m(x) mã hóa đầu tiên
Mã Hóa Kênh
 Mã vòng – Thực hiện bằng phần cứng
- Cho mã vòng C(7,4) đa thức sinh: g(x) = 1 + x + x3
- Thông điệp cần mã hóa: m(x) = 1 +x2 + x3
Mã Hóa Kênh
 Mã vòng – Thực hiện bằng phần cứng
- Theo thứ tự bit có trọng số nhỏ nhất trước
Mã Hóa Kênh
 Mã vòng – Thực hiện bằng phần cứng
- Cho đa thức sinh: g(x) = 1 + x + x3
- Thông điệp cần mã hóa: m(x) = 1 +x2 + x3
Mã Hóa Kênh
 Mã vòng – Mạch tính Syndrome
- Syndrome là phần dư của phép chia r(x) cho g(x): r(x)
= q(x)g(x) + s(x).
- Kiến trúc trọng số lớn nhất.
- Thực hiện:
- Reset tất cả thanh ghi về 0
- n-k bit đầu vào thanh ghi
- k bit còn lại để tính q(x)
- Phần còn lại của thanh ghi sẽ là s(x)
Mã Hóa Kênh
 Mã vòng – Mạch tính Syndrome
Mã Hóa Kênh
 Mã vòng – Mạch tính Syndrome
- Cho đa thức sinh: g(x) = 1 + x + x3
- Vector nhận được tại phía thu: r(x) = 1 + x2 + x5 + x6 .
Mã Hóa Kênh
 Mã vòng – Mạch giải mã Meggitt
Mã Hóa Kênh
 Mã vòng – Mạch tính Syndrome
Mã Hóa Kênh
 Mã Chập

• Mã chập được đặc trưng bởi 3 số nguyên n,k, K. Mã


chập (n,k,K) được xây dựng từ các thanh ghi dịch kK
bit. Bộ mã hóa là thanh ghi dịch K bit. Đầu ra của các
vị trí trong thanh ghi được lựa chọn để cộng modulo-2
với nhau. Số lượng bộ cộng modulo-2 chính là n.
Mã Hóa Kênh
 Mã Chập
Mã Hóa Kênh
 Mã Chập
• Biểu diễn mã chập bằng đa thức sinh
• Biểu diễn mã chập bằng sơ đồ cây
• Biểu diễn mã chập bằng sơ đồ lưới
• Giải mã chập bằng thuật toán Viterbi
Mã Hóa Kênh
 Thuật toán Viterbi
- Cơ sở giải mã lân cận gần nhất (nearest neighbor)
- Chọn đường có khoảng cách Hamming ngắn hơn
(đường sống)
Mã Hóa Kênh
 Thuật toán Viterbi
• Ví dụ: 1010001010

You might also like