Professional Documents
Culture Documents
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
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
và
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
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
H P , I
T
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
H PT , I [111]
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
r we
- 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
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 L g nk 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 nk 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