Tải bản đầy đủ (.pdf) (50 trang)

bài giảng lý thuyết thông tin - bùi văn thành

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (681.08 KB, 50 trang )

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à 0i 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

×