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
∗
∗
!""#$%&
∗
'(!")*
⇒+",-./01,%/0&
∗
23,334
)1*56
)#7
*
7
5
Khái niệm về mã phát hiện sai và sửa sai.
∗
'3-3+
/
5%
∗
'+5%
&
∗
'!%
8%
)- *
∗
9-3- 3":
∗
;3<
Σ
5<
#
=<
%
=&&&=<
∗
<
#
1<
%
1&&<
3>#1%&&&"&
∗
9- 3>#"3
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
Troùng soỏ Hamming >3?)*,3@3 3>&
A!
#
5#//#/##?)
#
*5B
C3%>
#
1
%
31!)
#
1
%
*@D3 33&
A!
%
5/#///##!)
#
1
%
*5E33>@/1#>E
Khoaỷng caựch Hamming %>
#
1
%
5>-
#
%
!)
#
1
%
*5?)
#
%
*&
#
5#//#/##
%
5/#///##
#
%
5##/#///?)
#
%
*5E5!)
#
1
%
*
Kh nng phỏt hin v sa sai
∗
9-3- 3
!≥=#
∗
ví duï5#→!≥%F5%→!≥E
5G→!≥H
∗
9-3- 3>!≥%=#
5#→!≥EF5%→!≥GF5G→!≥##
8
Điều kiện phát hiện sai
∗
Ví dụ>34)G1%*3I?5%,3@ 3
J56
%
#
(6
E
#
(
%
=6
%
%
%
6
E
%
%
(
5#/
7E
⇒ J≈H
%
5H&#/
7H
D3#/
H
41#/
E
44@:3H4
3&
9
Hệ số sai không phát hiện được
•
K 3;&
•
KL
•
K!<&
⇒
:
L5;⊕<
;5L⊕<
<5;⊕L
∗
9>3@ E :&
10
Phöông trình ñöôøng truyeàn
Vector sai<5)
/
1
#
1M1
*
Vớ duù<5)#//#/#/*>@/1E1G
;33%cụ cheỏ sửỷa loói
Cụ cheỏ ARQ)NL L(7c ch t ng phỏt li* 33)
3*&3E!4
6NLO!P) !?NLO*
6NLO(+>)+4NLO*&
6NLO> $ &
Cụ cheỏ FEC )Q?!<6* 3>!3"&
C3)#*!31I1>M
C3)R%*!3S6I1 1;1;41;4S1
- K6M
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à 0≤i ≤k-1, là thông tin cần được mã hóa.
•
K 35
/
#
M&
7#
1A3
T
5/$#>/≤T≤7# 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ã.
•
U33
74- C4
←9!
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
)
/
1
#
1
%
1
E
*
##/#///
/##/#//
###//#/
#/#///#
==
~~
.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ụ
V
V
)
/
1
#
1
%
1
E
*
##/#///
/##/#//
###//#/
#/#///#
==
~~
.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