Professional Documents
Culture Documents
Chuong 4
Chuong 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).
a ⊕ b = a + b mod m
ai ⊕ bi ( i =
ci = 1, 2,..., n )
MÃ HOÁ CHỐNG NHIỄU
Phép cộng cơ số m
Ví dụ:
- Với m = 2 thì 1011 ⊕ 1101 = 0110.
- Với m = 3 thì 1021 ⊕ 2120 = 0111.
Đị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).
MÃ HOÁ CHỐNG NHIỄU
Phép cộng cơ số m
Ví dụ:
- Với m = 2 thì 1011 ⊕ 1101 = 0110.
- Với m = 3 thì 1021 ⊕ 2120 = 0111.
Đị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).
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:
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 2 + ... + an x 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ụ:
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ã 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
và
k
∑λ c
i =1
i i =0 ⇔ λ1 =λ2 =... =λk =0
Mã Hóa Kênh
Mã khối tuyến tính
- Ví dụ: Cho bộ mã nhị phân sau:
c = {00000,00011,10101,11000,01110}
- Kiểm tra bộ mã phải là mã tuyến tính không?
- Nếu không phải là mã tuyến tính hãy thêm một số từ
mã để thành mã tuyến tính
- Xác định cơ hệ của bộ mã trên
Mã Hóa Kênh
Mã khối tuyến tính
- Ví dụ: Cho bộ mã nhị phân sau:
c = {000000, 001111,110011,111100,101010}
g0 g 00 g 01 g 0( n −1)
g
g10 g11 g1( n −1)
=
Gkxn = 1
g k −1 g k −1 0 g( k −1)1 g( k −1)( 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.
- Nếu u = (a0 , a1 ,…, ak-1) là thông tin cần được mã hóa,
thì từ mã c tương ứng với u sẽ được mã hóa như sau
g0
g
= = ( a0 , a1 ,..., ak −1 )
c uG 1
g k −1
Mã Hóa Kênh
Mã khối tuyến tính
- Tìm các từ mã có thể có của các ma trận sinh sau:
0 1 1 0
G2x 4 =
1 1 0 1 1 1 0 1 0 0 0
1 0 1 1 1 0 0
G4x7 =
1 1 0 0 0 0 1 0 0 0 1 1
G3x5 = 1 0 1 0 1 1 0 1 0 0 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.
Mã Hóa Kênh
Mã khối tuyến tính
- Ma trận sinh hệ thống dạng 1 có dạng
1 0 0 p00 p01 p0( n − k −1)
0 1 0 p10 p11 p1( n − k −1)
Gkxn =
0 0 0
0 0 1 p( k −1)0 p( k −1)1 p( k −1)( n − k −1)
= [ I , P]
GH = 0
T
H = P , I
T
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ì
wH = 0 T
Mã Hóa Kênh
Mã khối tuyến tính
- Cho ma trận sinh sau
0 1 1
G=
1 0 1
- Tìm các từ mã sinh ra bởi ma trận sinh trên
- Biến đổi ma trận G về dạng ma trận sinh hệ thống
- Xác định ma trận kiểm tra chẵn lẻ H
- Nhân giá trị {000, 001, 010, 011,100,101,110,111}
với HT
Mã Hóa Kênh
Mã khối tuyến tính
s ( r ) = rH T
Mã Hóa Kênh
Mã khối tuyến tính
- Với c = {c0 ,c1 ,…,cn-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 = r + c = (e0 , e1 , …, en-1) và được gọi là vector lỗi
(mẫu 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 1 0 1
G3x 6
= 0 1 0 1 1 0
0 0 1 1 1 1
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
- 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
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
g g0 g1 g n − k 0 0 0
xg 0 g 0 g n − k −1 g n−k 0 0
G = x2 g
0 0 g0 g1 gn−k 0
x k −1 g 0 0 0 g0 g1 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)
hk hk −1 h0 0 0 0
h
Xh 0 hk h1 h0 0 0
H ( n − k ) xn =
=
n − k −1 0 0 hk hk −1 h0 0
X h
0 0 0 hk hk −1 h0
Mã Hóa Kênh
Mã vòng
- Giả sử thông điệp c có đa thức c(x)
- Từ mã w sẽ có đa thức là w(x)
- Chia c(x)*xr cho g(x) được đa thức dư q(x)
- Đa thức từ mã là w(x) = c(x)*xr + q(x) tìm từ mã
w tương ứng.
Mã Hóa Kênh
Mã vòng
- Ví dụ: mã hoá chuỗi bit thông điệp 1110 0110 bằng
mã vòng C(12, 8) với g = 11001
từ mã là 1110 0110 0110.
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