CHƯƠNG 5
Mã hóa kênh truyền
1
Khái niệm về mã phát hiện sai và sửa sai.
– Cơ chế phát hiện sai của mã hiệu.
– Khả năng phát hiện và sửa sai.
– Hệ số sai không phát hiện được.
Mã khối tuyến tính
– Định nghĩa
– Ma trận kiểm tra
– Mạch mã hóa
– Giải mã
– Syndrome và sự phát hiện lỗi
– Sửa lỗi
Nội dung
2
Vấn đề
3
Lỗi khi truyền dữ liệu trên một hệ thống truyền tin:
• Lỗi khi truyền tin là một điều khó tránh.
• Nguyên nhân: Do nhiễu bên ngoài xâm nhập, tác động
lên kênh truyền, làm thông tin truyền đi bị sai.
1 → 0
0 → 1
• Việc khắc phục và kiểm soát lỗi là một vấn đề hết sức
quan trọng.
Nguyên lý mã hóa kiểm soát lỗi
4
• Nguyên lý chung là thêm vào tập mã cần truyền một tập bit
kiểm tra nào đó để bên nhận có thể kiểm soát lỗi.
• Bên phát: Bổ sung thêm thông tin (thêm bit) vào bit cần gửi.
• Bên thu: Nhận thông tin bổ sung ở phía phát, kiểm tra, phát
hiện và sửa lỗi.
Với n-k: bit kiểm tra
Bộ mã KSL
+ (n-k) bit
k bit
Thông tin
k+n-k = n bit
Phát
Thu
Dạng sai lầm của mã hiệu được truyền tuỳ thuộc tính
chất thống kê của kênh:
sai độc lập dẫn đến sai ngẫu nhiên: 1 hoặc 2 sai.
Sai tương quan dẫn đến sai chùm (sai cụm)
Người ta thống kê: sai ngẫu nhiên xẩy ra 80%, sai chùm
xảy ra 20%.
Xác suất xuất hiện một từ mã n ký hiệu có t sai bất kỳ:
p(n,t) = C
n
t
p
s
t
(1-p
s
)
n-t
5
Khái niệm về mã phát hiện sai và sửa sai.
Số từ mã có thể có: N
0
= 2
n
Số từ mã mang tin: N = 2
k
.
Số từ mã không dùng đến: 2
n
–2
k
(số tổ hợp cấm)
Để mạch có thể phát hiện hết i lỗi thì phải thỏa mãn điều kiện:
Trong đó E
Σ
= E
1
+ E
2
+ . . . + E
i
E
1
, E
2
, . . E
i
là tập hợp các vector sai 1,2 . . .i lỗi.
Để phát hiện và sửa hết sai 1 lỗi ta có:
6
Cơ chế phát hiện sai của mã hiệu.
E
n
k
1
2
2
1
2
2
n
n
k
Trọng số Hamming của vector t: ký hiệu: w(t) được xác định theo số các thành phần
khác không của vector.
Ví dụ: t
1
= 1 0 0 1 0 1 1 w(t
1
) = 4
Khoảng cách giữa 2 vector t
1
, t
2:
ký hiệu, d(t
1
, t
2
) được định nghĩa là số các thành
phần khác nhau giữa chúng.
Ví dụ: t
2
= 0 1 0 0 0 1 1 d(t
1
, t
2
) = 3 chúng khác nhau ở vị trí 0, 1 và 3
Khoảng cách Hamming giữa 2 vector mã t
1
, t
2
= trọng số của vector tổng t
1
t
2
:
d(t
1
, t
2
)=w(t
1
t
2
) .
t
1
= 1 0 0 1 0 1 1
t
2
= 0 1 0 0 0 1 1
t
1
t
2
= 1 1 0 1 0 0 0 w(t
1
t
2
) = 3 = d(t
1
, t
2
)
Khả năng phát hiện và sửa sai
Điều kiện để một mã tuyến tính có thể phát hiện được t
sai:
d t+1
ví dụ: t = 1 d 2; t = 2 d 3
t = 5 d 6
Điều kiện để một mã tuyến tính có thể phát hiện và sửa
được t sai: d 2t + 1
t = 1 d 3; t = 2 d 5; t = 5 d 11
8
Điều kiện phát hiện sai
Ví dụ: đối với bộ mã (5,2) có trọng số Hamming w =2 ta xác
định được hệ số sai không phát hiện được:
p’ = C
2
1
pqC
3
1
pq
2
+ C
2
2
p
2
C
3
2
p
2
q
nếu p = 10
-3
p’ 6p
2
= 6.10
-6
nghĩa là có 10
6
bit truyền đi,
10
3
bit bị sai thì có 6 bit sai không phát hiện được.
9
Hệ số sai không phát hiện được
• Gọi từ mã phát đi là T.
• Gọi từ mã nhận được là R
• Gọi từ mã sai do đường truyền gây ra là E.
phương trình đường truyền:
R = T E
T = R E
E = T R
Đối với mã nhị phân 3 phương trình trên tương đương
nhau.
10
Phương trình đường truyền
Vector sai: E = (e
0
, e
1
, …, e
n
)
Ví dụ: E = (1 0 0 1 0 1 0) sai ở vị trí 0, 3, 5
Trong các hệ thống truyền số liệu có 2 cơ chế sửa lỗi:
• Cơ chế ARQ(Automatic Repeat Request-cơ chế tự động phát lại): cơ chế
yêu cầu phát lại số liệu một cách tự động (khi phát hiện sai) . cơ chế này
có 3 dạng cơ bản:
Cơ chế ARQ dừng & chờ (stop and wait ARQ)
Cơ chế ARQ quay ngược N vector (N go back ARQ).
Cơ chế ARQ chọn lựa việc lặp lại.
• Cơ chế FEC (Forward Error Control): phát hiện và tự sửa sai sử dụng các
loại mã sửa lỗi.
Khi có sai đơn (1 sai) người ta thường dùng các loại mã như: mã khối tuyến
tính, mã Hamming, mã vòng…
Khi có sai chùm (> 2 sai) người ta thường dùng các loại mã như: mã BCH, mã
tích chập, mã Trellis, mã Tubor, mã Tubor Block, mã tổng hợp GC…
11
Vector sai – cô cheá söûa loãi
Mã khối tuyến tính
12
• Mã khối tuyến tính được xây dựng dựa trên các kết quả của đại số tuyến
tính là một lớp mã được dùng rất phổ biến trong việc chống nhiễu.
• Định nghĩa:
• Một mã khối có chiều dài n, k bit gồm 2
k
từ mã tuyến tính C(n,k) nếu
và chỉ nếu 2
k
từ mã hình thành một không gian vectơ k chiều 2
n
, gồm
tất cả các vectơ n thành phần trên trường Galois sơ cấp GF(2) ( bao
gồm 2 phần tử {0,1} với 2 phép tính + và *).
• Mã tuyến tính C(n,k) có mục đích mã hóa những khối tin (hay thông
báo) k bit thành những từ mã n bit. Hay nói cách khác trong n bit của
từ mã có chứa k bit thông tin.
• Ví dụ: C (7,4): Từ mã dài 7 bit. Thông tin cần truyền: 4 bit.
Cách biểu diễn mã – Ma trận sinh
13
• Mã tuyến tính C(n,k) là một không gian k chiều của không gian vectơ n
thành phần, cho nên tồn tại k từ mã độc lập tuyến tính (g
0
,g
1
,…,g
k-1
) sao
cho mỗi từ mã trong C là một tổ hợp tuyến tính của k từ mã này :
• k từ mã này tạo thành một ma trận sinh cấp k x n như sau:
Với: g
i
= (g
i0
, g
i1
… g
i(n
-
1)
) với i = 0, 1, …, k-1
)1, ,1,0}1,0{(
111100
kia
gagagaw
i
kk
)1)(1(1)1(0)1(
)1(11110
)1(00100
1
1
0
nkkk
n
n
k
nk
ggg
ggg
ggg
g
g
g
G
Cách mã hóa
14
• Nếu u = (a
0
,a
1
,…,a
k-1
) , với a
i
=0/1 và 0i k-1, là thơng tin
cần được mã hóa.
• Gọi t là từ mã phát đi: t = t
0
t
1
….t
n-1
, Với t
j
= 0
hoặc 1 và 0 j k-1 thì từ mã w tương ứng với t được
hình thành bằng cách lấy t x G
w = t x G = a
0
g
0
+ a
1
g
1
+…+ a
k-1
g
k-1
• Vì các từ mã tương ứng với các thơng báo được sinh ra bởi G
theo cách trên nên G được gọi là ma trận sinh của bộ mã.
• Mã khối tuyến tính hệ thống có cấu trúc:
n-k bits kiểm tra K bits mang tin
Độ dài từ mã : n
Ví dụ
15
• Cho ma trận sinh của một mã tuyến tính C(7,4) sau:
• Nếu u = (u
0
u
1
u
2
u
3)
= (1101) là thông tin cần mã hóa thì từ mã tương ứng là:
t
0
= u
0
.1 + u
1
.0 + u
2
.1 + u
3
.1 = u
0
+ u
2
+ u
3
= 1 + 0 +1 = 0
t
1
= u
0
.1 + u
1
.1 + u
2
.1 + u
3
.0 = u
0
+ u
1
+ u
2
= 1+ 1 +0 = 0
t
2
= u
0
.0 + u
1
.1 + u
2
.1 + u
3
.1 = u
1
+ u
2
+ u
3
= 1+0+ 1 = 0
t
3
= u
0
.1 + u
1
.0 + u
2
.0 + u
3
.0 = u
0
= 1
t
4
= u
0
.0 + u
1
.1 + u
2
.0 + u
3
.0 = u
1
= 1
t
5
= u
0
.0 + u
1
.0 + u
2
.1 + u
3
.0 = u
2
= 0
t
6
= u
0
.0 + u
1
.0 + u
2
.0 + u
3
.1 = u
3
= 1
• => w = (0001101)
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
g
g
g
g
G
3
2
1
0
74
(u
0
, u
1
, u
2
, u
3
)
1 1 0 1 0 0 0
0 1 1 0 1 0 0
1 1 1 0 0 1 0
1 0 1 0 0 0 1
~~
.Gut
• Bất kỳ k từ mã độc lập tuyến tính nào cũng có thể được dùng
để làm ma trận sinh cho bộ mã.
• Một bộ mã tuyến tính (không gian mã) có thể có nhiều ma trận
sinh khác nhau cùng biểu diễn.
• Mỗi ma trận sinh tương ứng với một cách mã hóa khác nhau.
16
Ma trận sinh
Cách giải mã
17
• Từ ma trận sinh ở ví dụ trước, gọi: u = (a
0
, a
1
, a
2
, a
3
) là thông
tin, w = (b
0
, b
1
, b
2
, b
3
, b
4
, b
5
, b
6
) là từ mã tương ứng.
• Ta có hệ phương trình liên hệ giữa u và w
w = u x G ↔ b
0
= a
0
+ a
1
+ a
3
(1)
b
1
= a
0
+ a
2
(2)
b
2
= a
1
+ a
3
(3)
b
3
= a
0
+ a
1
(4)
b
4
= a
1
(5)
b
5
= a
2
(6)
b
6
= a
2
+ a
3
(7)
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
4
3
1
0
74
g
g
g
g
G
Cách giải mã (tt)
18
• Chọn bốn phương trình đơn giản nhất để giải các a
i
theo các b
1
• Chọn các phương trình (4), (5), (6), (7) ta giải được:
a
0
= b
3
+ b
4
a
1
= b
4
a
2
= b
5
a
3
= b
5
+ b
6
• Hệ phương trình trên gọi là hệ phương trình giải mã.
• Có thể có nhiều hệ phương trình giải mã khác nhau, nhưng kết
quả sẽ giống nhau.
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
4
3
1
0
74
g
g
g
g
G
Mã tuyến tính hệ thống
19
• 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 (gồm
n-k bit) đi sau (phần này còn được gọi là phần dư thừa hay phần kiểm tra)
• Dạng 2: Ngược lại của dạng 1, từ mã bao gồm phần kiểm tra đi trước và
phần thông tin đi sau.
.
k bit thông tin n - k bit kiểm tra
n - k bit kiểm tra k bit thông tin
Ma trận sinh hệ thống
20
• Ví dụ:
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
)74(ht
G
Mã hóa
u = 1101 → w = u x G
ht
= 1101000
Giãi mã
w = 0110100 → u = 0110
)(
)1)(1(
)1(0
1)1(
11
01
0)1(
10
00
)(
)1(1
1
0
0
0
1
0
0
0
1
|
knk
knk
kn
kk
kk
knkkknk
P
P
P
P
P
P
P
P
P
PIG
kn
xét mã khối tuyến tính C(7,4)có thông báo cần mã hóa
u = (u
0
, u
1
, u
2
, u
3
) & từ mã phát đi tương ứng
t = (t
0
, t
1
, t
2
, t
3
, t
4
, t
5
, t
6
)
Cho G(4,7) dạng không chính tắc ta đi tìm G(4,7) dạng chính
tắc:
Ví dụ
G(4,7)=
1 1 0 1 0 0 0
0 1 1 0 1 0 0
0 0 1 1 0 1 0
0 0 0 1 1 0 1
(1)
(2)
(3) =
(4)
1 1 0 1 0 0 0
0 1 1 0 1 0 0
1 1 1 0 0 1 0
1 0 1 0 0 0 1
1’=1
2’=2
3’=1+3
4’=1+2+4
)7,4(
~
G
21
Cho tin cần phát đi: u = (u
0
, u
1
, u
2
, u
3
) = (1 0 1 1) ta tìm từ
mã phát đi theo 2 công thức 5 & 8 từ đó rút ra nhận xét
Ví dụ
(u
0
, u
1
, u
2
, u
3
)
1 1 0 1 0 0 0
0 1 1 0 1 0 0
1 1 1 0 0 1 0
1 0 1 0 0 0 1
~~
.Gut
t
0
= u
0
.1 + u
1
.0 + u
2
.0 + u
3
.0 = u
0
= 1
t
1
= u
0
.1 + u
1
.1 + u
2
.0 + u
3
.0 = u
0
+ u
1
= 1+0 = 1
t
2
= u
0
.0 + u
1
.1 + u
2
.1 + u
3
.0 = u
1
+ u
2
= 0+1 = 1
t
3
= u
0
.1 + u
1
.0 + u
2
.1 + u
3
.1 = u
0
+ u
2
+ u
3
= 1+1 + 1 = 1
t
4
= u
0
.0 + u
1
.1 + u
2
.0 + u
3
.1 = u
1
+ u
3
= 0+1 = 1
t
5
= u
0
.0 + u
1
.0 + u
2
.1 + u
3
.0 = u
2
= 1
t
6
= u
0
.0 + u
1
.0 + u
2
.0 + u
3
.1 = u
3
= 1
Vậy ta có từ mã phát đi t = (1 1 1 1 1 1 1) không có dạng mã khối
tuyến tính
22
(u
0
, u
1
, u
2
, u
3
)
1 1 0 1 0 0 0
0 1 1 0 1 0 0
1 1 1 0 0 1 0
1 0 1 0 0 0 1
~~
.Gut
t
0
= u
0
.1 + u
1
.0 + u
2
.1 + u
3
.1 = u
0
+ u
2
+ u
3
= 1 + 1 +1 = 1
t
1
= u
0
.1 + u
1
.1 + u
2
.1 + u
3
.0 = u
0
+ u
1
+ u
2
= 1+ 0 + 1 = 0
t
2
= u
0
.0 + u
1
.1 + u
2
.1 + u
3
.1 = u
1
+ u
2
+ u
3
= 0+1+ 1 = 0
t
3
= u
0
.1 + u
1
.0 + u
2
.0 + u
3
.0 = u
0
= 1
t
4
= u
0
.0 + u
1
.1 + u
2
.0 + u
3
.0 = u
1
= 0
t
5
= u
0
.0 + u
1
.0 + u
2
.1 + u
3
.0 = u
2
= 1
t
6
= u
0
.0 + u
1
.0 + u
2
.0 + u
3
.1 = u
3
= 1
Vậy ta có từ mã phát đi: ( 1 0 0 1 0 1 1) có dạng mã khối tuyến tính
23
Ví dụ
24
• Dùng các phép biến đổi sơ cấp biển đổi các ma trận sinh
sau thành ma trận sinh hệ thống.
• Không phải mọi ma trận sinh đều có thể biến đổi thành ma
trận sinh hệ thống.
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
74
G
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
0
0
1
74
G
Phát hiện sai và sửa sai
25
• Nguyên lý phát hiện sai: Kiểm tra xem tổ hợp nhận có phải là từ mã hay
không, nếu không thì tổ hợp nhận là sai.
• Nguyên lý sửa sai: Kiểm tra xem tổ hợp nhận có khoảng cách Hamming
gần với từ mã nào nhất, thì đó chính là từ mã đúng đã phát đi.
• → Nguyên lý khoảng cách Hamming tối thiểu.
Không gian bù trực giao:
• Cho S là một không gian k chiều của không gian V n chiều. Gọi S
d
là tập
tất cả các vectơ v trong V sao cho:
• S
d
được chứng minh là một không gian con của V và có số chiều là n-k.
• S
d
được gọi là không gian bù trừ trực giao của S và ngược lại.
0,
vuSu