Tải bản đầy đủ (.doc) (28 trang)

Lý thuyết thông tin (final)

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 (298.33 KB, 28 trang )

TÓM TẮT BÀI GIẢNG LÝ THUYẾT THÔNG TIN
CHƯƠNG 1: TIN TỨC
1.1 HỆ THỐNG TRUYỀN TIN (HT
3
)

Nguồn tin:
+ Là tập hợp các tin mà HTTT dùng để lập các bản tin khác nhau trong sự truyền.
+ Nguồn tin được mô hình hoá toán học bằng bốn quá trình sau:
- Quá trình ngẫu nhiên liên tục.
- Quá trình ngẫu nhiên rời rạc.
- Dãy ngẫu nhiên liên tục.
- Dãy ngẫu nhiên rời rạc.

Kênh tin: là nơi diễn ra sự truyền lan của tín hiệu mang tin và chịu tác động của nhiễu.
S
0
(t) = N
m
S
i
(t) + N
a
(t)
+ S
i
(t): Tín hiệu vào & S
0
(t): tín hiệu ra của kênh tin
+ N
m


(t), N
a
(t) : đặc trưng cho nhiễu nhân, nhiễu cộng.

Nhận tin: là đầu cuối của HTTT làm nhiệm vụ khôi phục tin tức ban đầu.
Hệ thống truyền tin số (rời rạc)

Hai vấn đề cơ bản của hệ thống truyền tin:
+ Vấn đề hiệu suất, nói cách khác là tốc độ truyền tin của hệ thống.
+ Vấn đề độ chính xác, nói cách khác là khả năng chống nhiễu của hệ thống.
1.2 SỐ ĐO THÔNG TIN
a. Lượng đo tin tức: Nguồn A có m tín hiệu đẳng xác xuất, một tin do nguồn A hình thành là
một dãy n ký hiệu a
i
bất kỳ (a
i
∈ A).
– Lượng tin chứa trong một a
i
bất kỳ:
Lý thuyết thông tin Trang 1
Nguồn tin
Mã hóa nguồn
Mã hóa kênh
Bộ điều chế
Phát cao tần
Nhận tin
Kênh tin
Thu cao tần
Giải điều chế

Giải mã kênh
Giải mã nguồn
S
i
(t) S
0
(t)
Nhiễu
Nguồn
tin
Kênh tin Nhận tin
I(a
i
)=logm (1)
- Lượng tin chứa trong một dãy x gồm n ký hiệu:
I(x) = n.log m (2)
Đơn vị lượng đo thông tin thường được chọn là cơ số 2.
- Khi m ký hiệu của nguồn tin có xác xuất khác nhau và không độc lập thống kê với nhau
thì lượng tin riêng của từng ký hiệu:
I(x
i
) = log (1/p(a
i
)) (3)

Lượng tin riêng:
I(x
i
) = -log p(x
i

) (4)
Là lượng tin ban đầu được xác định bằng xác xuất tiên nghiệm.

Lượng tin còn lại của x
i
sau khi đã nhận được y
j
được xác định bằng xác suất hậu nghiệm.
)(log)/(
j
i
ii
y
x
pyxI −=
(5)

Lượng tin tương hỗ:
)
( )
( / ) ( ) ( ) log
(
i
j
i i i i
i
x
p
y
I x y I x I y

p x
= − =
(6)

Đặc tính của lượng tin:
+ I(x
i
) ≥ I(x
i
; y
i
) (7)
+ I(x
i
) ≥ 0 (8)
+ I(x
i
.y
i
) = I(x
i
) + I(y
i
) - I(x
i
; y
i
) (9)
Khi cặp x
i

, y
j
độc lập thống kê với nhau thì I(x
i
; y
i
) = 0
Ta có: I(x
i
; y
i
) = I(x
i
) + I(y
i
) (10)

Lượng tin trung bình: là lượng tin tức trung bình chứa trong m ký hiệu bất kỳ của nguồn đã
cho.

−=
X
xpxpxI )(log)()(
(11)

Lượng tin tương hỗ trung bình:

=
XY
xp

yxp
yxpYXI
)(
)/(
log),(),(
(12)

Lượng tin riêng trung bình có điều kiện:

−=
XY
xyyxpXYI )/log(),()/(
(13)
b. Entrôpi nguồn rời rạc: là một thông số thống kê cơ bản của nguồn. Về ý nghĩa vật lý độ bất
ngờ và lượng thông tin trái ngược nhau, nhưng về số đo chúng bằng nhau:

−== )(log)()()( xpxpXIXH
(1)

Đặc tính của Entrôpi H(X):
+ H(X) ≥ 0
+ H(X) = 0 khi nguồn tin chỉ có một ký hiệu
+ H(X)max khi xác suất xuất hiện các ký hiệu của nguồn bằng nhau.
Lý thuyết thông tin Trang 2

Entrôpi đồng thời: là độ bất định trung bình của một cặp (x,y) bất kỳ trong tích XY.


−=
XY

yxpyxpXYH ),(log),()(
(2)

Entrôpi có điều kiện:


−=
XY
yxpyxpYXH )/(log),()/(
(3)
1.3 THÔNG LƯỢNG CỦA KÊNH THÔNG TIN:

Tốc độ thiết lập tin của nguồn:
R= n
0
.H(X) (bps) (1)
+ H(X); entrôpi của nguồn.
+ n
0
: số ký hiệu được lặp trong một đơn vị thời gian

Thông lượng của kênh C là lượng thông tin tối đa kênh cho qua đi trong một đơn vị thời
gian mà không gây sai nhầm. C(bps)

Thông thường R < C, để R tiến tới gần C ta dùng phép mã hoá thống kê tối ưu để tăng
Entrôpi.
a. Thông lượng kênh rời rạc không nhiễu:
C = R
max
= n

0
. H(X)
max
(bps) (2)
Độ dư của nguồn:
max
)(
)(
1
XH
XH
r −=
(3)
Dùng phương pháp mã hóa tối ưu để giảm độ dư của nguồn đến không hoặc sử dụng độ dư của
nguồn để xây dựng mã hiệu chống nhiễu.
b. Thông lượng kênh rời rạc có nhiễu:
R = n
o
I(X;Y) = n
0
[H(X)-H(X/Y)] (bps) (4)

Tốc độ lập tin cực đại trong kênh có nhiễu:
C = R
max
= n
0
[H(X)-H(X/Y)]
max
(bps) (5)

Lý thuyết thông tin Trang 3
CHƯƠNG 2: MÃ HÓA NGUỒN TIN
2-1. MÃ HIỆU
2-1-1 Mã hiệu và các thông số cơ bản của mã hiệu:

Cơ số của mã (m) là số các ký hiệu khác nhau trong bảng chữ của mã. Đối với mã nhị phân
m= 2.

Độ dài của mã n là số ký hiệu trong một từ mã. Nên độ dài các từ mã như nhau ta gọi là mã
đều, ngược lại là mã không đều.

Độ dài trung bình của bộ mã:

=
=
1
)(
i
ii
nxpn
(i=1÷N) (1)
+ p(x
i
): xác suất xuất hiện tin x
i
của nguồn X được mã hóa.
+ n
i
: độ dài từ mã tương ứng với tin x
i

.
+ N: Tổng số từ mã tương ứng với tổng số các tin của x
i

Tổng hợp các tổ hợp mã có thể có được: N
0
=2
n
., nếu:
+ N<N
0
ta gọi là mã vơi.
+ N>N
0
ta gọi là mã đầy.
2-1-2 Điều kiện thiết lập mã hiệu:

Điều kiện chung cho các loại mã là quy luật đảm bảo sự phân tách các tổ hợp mã.
(Tính phân tách được là khi bên phát phát bộ mã nào đó thì bên thu chỉ giải mã duy nhất 1 mã
mà thôi.)

Điều kiện riêng cho các loại mã:
+ Đối với mã thống kê tối ưu: độ dài trung bình tối thiểu của mã.
+ Đối với mã sửa sai: khả năng phát hiện và sửa sai cao.
2-1-3. PHƯƠNG PHÁP BIỂU DIỄN MÃ.
a- Các bảng mã:
Tin a
1
a
2

a
3
a
4
a
5
Từ mã 00 01 100 1010 1011
Mặt tạo độ mã:

=

=
n
K
K
Ki
b
1
1
2
σ
(1)
σ
K
= 0 hay 1;
K: số thứ tự của ký hiệu trong từ mã
c. Đồ hình mã:
Cây mã
Lý thuyết thông tin Trang 4
0

1
1
0
1
2
0
3
0
1
0
1
a
1
(00)
a
2
(01)
a
3
(100)
a
4
(1010)
a
5
(1011)
1
2
3
4

0
0V1
0
1
0v1
Ñoà hình keát caáu
0
a- Hàm cấu trúc của mã:
2 Khi n
i
= 2
G(n
i
) = 1 Khi n
i
= 3
2 Khi n
i
= 4
2-1-4 Điều kiện để mã phân tách được :

Mã có tính Prêphic
- Bất kỳ dãy các từ mã nào của bộ mã cũng không được trùng với một dãy từ mã khác của
cùng bộ mã.
- Mã có tính prêphic nếu bất kỳ tổ hợp mã nào cũng không phải là prêphic của một tổ hợp nào
khác cùng bộ mã. Điều kiện để mã có tính prêphic:

=



n
j
j
jG
1
1)(2

Mã hệ thống có tính phêphic được xây dựng từ một mã prêphic nào đó bằng cách lấy một số
tổ hợp của mã prêphic gốc làm tổ hợp sơ đẳng và các tổ hợp còn lại làm tổ hợp cuối. Ghép
các tổ hợp sơ đẳng với nhau và nối một trong các tổ hợp cuối vào thành tổ hợp mã mới gọi
là mã hệ thống có tính prêphic.

Ví dụ: Lấy bộ mã prêphic 1,00,010,011
- Các tổ hợp sơ đẳng: 1,00,010
- Một tổ hợp cuối: 011

Gọi :
- n
1
, n
2,
…, n
i
là độ dài các tổ hợp sơ đẳng
- λ
1
, λ
2
,…, λ
k

là độ dài các tổ hợp cuối
- Số có thể có được các dãy ghép bằng các tổ hợp sơ đẳng có độ dài n
j
bằng:
g(n
j
) = g(n
j
-n
1
) + g(n
j
-n
2
) +…+ g(n
j
-n
i
) (1)
Trong đó: n
j
≥ 1; g(0) = 1 ; g(n
j
< 0) = 0

Nếu chỉ dùng một tổ hợp cuối λ, hàm cấu trúc mã sẽ là:
G(n
j
) = g(n
j

- λ) (2)
+ Từ (1) và (2) ta có công thức truy chứng tính G(n
j
)
G(n
j
) = G(n
j
-n
1
) + G(n
j
-n
2
) + …+ G(n
j
-n
i
) (3)
Trong đó: n
j
≥ λ+1; G(n
j
= λ) = 1; G(n
j
< λ) = 0
+ Từ (1) ta có: n
1
=1, n
2

=2, n
3
=3 và λ =3
⇒ g(n
j
) = g(n
j
-1) + g(n
j
-2) + g(n
j
-3)
g(n
j
=1) = g(0) + g(-1) + g(-2) = 1 → có 1 dãy: 1
g(n
j
=2) = g(1) + g(0) + g(-1) = 2 → có 2 dãy: 00 và 11
g(n
j
=3) = g(2) + g(1) + g(0) = 4 → có 4 dãy: 111, 100, 001, 010
Lý thuyết thông tin Trang 5
+ Từ (3) ta có:
G(n
j
) = G(n
j
-1) + G(n
j
-2) +G(n

j
-3)
Trong đó: n
j
= λ +1=4 ; G(n
j
=3) = 1 ; G(n
j
<3) = 0
G(4) = G(3) + G(2) + G(1) = 1 → có 1 dãy: 1011 (ghép các tổ hợp sơ đẳng với tổ hợp cuối
nằm cuối cùng).
G(5) = G(4) + G(3) + G(2) = 2 → có 2 dãy: 11011 và 00011
G(6) = G(5) + G(4) + G(3) = 4 → có 4 dãy: 111011, 100011, 001011, 010011
G(7) = G(6) + G(5) + G(4) = 7 → có 7 dãy: 1111011, 1100011, 1001011, 0011011,
1010011, 0101011 và 0000011
+ Ta có thể tìm G(n
j
) từ công thức (2) :
G(n
j
) = g(n
j
-3)
G(4) = g(4-3) = g(1) = 1
G(5) = g(5-3) = g(2) = 2
G(6) = g(6-3) = g(3) = 4

Nếu dùng nhiều tổ hợp cuối để ghép λ
1
, λ

2
, …λ
I
, cách ghép các dãy tổ hợp sơ đẳng với một
trong các tổ hợp cuối có nhiều cách.
G(n
j
) = g(n
j
- λ
1
)
+
g(n
j
- λ
2
) + ….+ g(n
j
- λ
k
) (4)
- Ví dụ: Với bộ mã ở trên ta lấy
+ Hai tổ hợp sơ đẳng : 1, 00 ⇒ n
1
= 1, n
2
= 2
+ Hai tổ hợp cuối: 010, 011 ⇒ λ
1

= λ
2
= 3
+ Từ (1) ta tính được số có thể có được các dãy ghép bằng các tổ hợp sơ đẳng có độ dài n
j
bằng:
g(n
j
) = g(n
j
–1) + g(nj-2)
Trong đó n
j
≥1, g(0) = 1, g (n
j
< 0) = 0
g(1) = g(0) + g(-1) = 1 ⇒ 1dãy :1
g(2) = g(1) + g(0) = 2 ⇒ 2 dãy :11 và 00
g(3) = g(2) + g(1) = 3 ⇒ 3 dãy :111, 100, 001
g(4) = g(3) + g(2) = 5 ⇒ 5 dãy :1111, 0000, 1100, 0011, 1001
+ Từ (2) ta có:
G(n
j
) = 2g(n
j
-3) trong đó n
j
≥4; G(3) =1; G(n
j
<3) =0

G(4) = 2g(1) = 2x1 = 2 ⇒ 1010 và 1011
G(5) = 2g(2) = 2x2 = 4 ⇒ 11010, 00010, 11011, và 00011
G(6) = 2g(3) = 2x3 = 6 ⇒ 111010, 100010, 001010, 111011, 100011, và 001011
G(7) = 2g(4) = 2x5 = 10
2-2. CÁC LOẠI MÃ THỐNG KÊ TỐI ƯU (TKTƯ)
2-2-1. Một số định lý cơ bản của mã TKTƯ

Định lý giới hạn về độ dài trung bình của từ mã:
n
H(U) ≤
n
≤ H(U) +1 (1)
⇒ mã thống kê có hai đặc điểm sau:
- Các ký hiệu khác nhau của bộ chữ phải đồng xác suất.
- Xác suất xuất hiện các ký hiệu trong từ mã không phụ thuộc sự có mặt của các ký hiệu ra
trước.

Tiêu chuẩn mã kinh tế tối ưu:
Lý thuyết thông tin Trang 6


=
n
UH )(
ρ
(2) H(U): Entrôpi của nguồn
n
: độ dài trung bình của từ mã.
⇒ ρ càng tiến tới 1 tính kinh tế của mã càng cao.


Mã thống kê có tính prephic.

)(2
i
n
up
i


(3) &
12
1


=

N
i
n
i
(4)
2-2-2 Mã Thống kê tối ưu Sannon:
Các bước thực hiện mã thống kê tối ưu Sannon:
Bước 1: Liệt kê các tin của nguồn U
i
và các xác suất p
i
tương ứng theo xác suất giảm dần.
Bước 2: Ứng với mỗi hàng u
i

, p
i
ghi một số P
i
theo biểu thức:
P
i
= p
1
+ p
2
+….+ p
i-1

Bước 3: Đổi các số thập phân P
i
thành các số nhị phân
Bước 4: Tính độ dài từ mã:

ii
n
i
n
up
−−
≤≤
1
2)(2
(2)
Bước 5: Từ mã (n

i
, b
i
) sẽ là n
i
ký hiệu nhị phân (kể từ số lẻ trở đi) của số nhị phân P
i
Ví dụ: lập mã cho nguồn U có sơ đồ thống kê:
U
i
U
1
U
2
U
3
U
4
U
5
U
6
U
7
p
i
0,34 0,23 0,19 0,1 0,07 0,06 0,01
U
i
p

i
P
i
Số nhị phân
P
i
n
i
Tứ mã
U
1
0,34 0 0,0000 2 00
U
2
0,23 0,34 0,0101 3 010
U
3
0,19 0,57 0,1001 3 100
U
4
0,1 0,76 0,1100 4 1100
U
5
0,07 0,86 0,11011 4 1101
U
6
0,06 0,93 0,11101 5 11101
U
7
0,01 0,99 0,1111110 7 1111110

+ P
i
được tính theo bước 2: i = 1→ P
1
= p
0
= 0
i = 2→ P
2
= p
1
= 0,34
i =3→ P
3
= p
1
+ p
2
= 0,57
+ Đổi P
i
sang số nhị phân:

P
i
= 0,34
x 2
0,68 → 0
x 2
1,36 → 1

- 1
0,36
x 2
0,72 → 0
x 2
1,44 → 1
Khi đó P
i
= 0,34
P
i
= 0,86
x 2
1,72 → 1
- 1
0,72
x 2
1,44 → 1
- 1
0,44
x 2
0,88 → 0
x 2
1,76 → 1
Lý thuyết thông tin Trang 7
→ 0,0101

- 1
0,76
x 2

1,52 → 1
Khi đó P
i
= 0,86 →
0,11011
+ Tính n
i
theo (2)
n
i
= 1 ⇒ 2
-1
= 0,5 > p
i
=0,34 ⇒ bị loại
n
i
= 2 ⇒ 2
-2
= 0,25 < p
i
=0,34 < 2
1-2
=0,5

⇒ thỏa mãn ⇒ vậy ta lấy n
i
= 2 suy ra từ mã: 00
n
i

= 3 ⇒ 2
-3
= 0,125 < p
i
=0,23 <0,25 ⇒ lấy n
i
=3 ⇒ 010

Tính kinh tế của mã:
H(U)=
i
i
i
pp
2
7
1
log

=


[ ]
37,201,0log01,0 34,0log34,0
22
≈++−=

n
=
( ) ( ) ( )


=
=+++=
7
1
99,2701,0 323,0234,0
i
ii
xxxnp
⇒ p=
81,0
99,2
37,2)(
==
n
UH
2-2-3 Mã thống kê tối ưu Fano:
Các bước thực hiện mã hoá mã thống kê tối ưu Fano:
Bước 1: Liệt kê các tin n
i
trong một cột theo thứ tự p
i
giảm dần.
Bước 2: Chia làm 2 nhóm có tổng xác suất gần bằng nhau nhất. Ký hiệu mã dùng cho nhóm đầu
là 0, thì nhóm thứ 2 là 1.
Bước 3: Mỗi nhóm lại chia thành hai nhóm nhỏ có xác suất gần bằng nhau nhất (ký hiệu 0 và
1). Quá trình cứ tiếp tục cho đến khi chỉ còn một ký hiệu thì kết thúc.
U
i
p

i
1 2 3 4 5 Từ mã
U
1
0,34 0 0 00
U
2
0,23 0 1 01
U
3
0,19 1 0 10
U
4
0,1 1 1 0 110
U
5
0,07 1 1 1 0 1110
U
6
0,06 1 1 1 1 0 11110
U
7
0,01 1 1 1 1 1 11111

Thực hiện bước 2:
- Cách 1:
p
1
+ p
2

= 0,34 + 0,23 = 0,57
p
3
+ p
4
+ p
5
+ p
6
+ p
7
= 0,43
Độ chênh lệch : 0,14
- Cách 2:
p
1
+ p
2
+ p
3
= 0,76
p
4
+ p
5
+ p
6
+ p
7
= 0,24

Độ chênh lệch : 0,52
Vậy cách chia thứ nhất có xác suất gần bằng nhau hơn cách chia thứ hai, nên ta chọn cách
chia thứ nhất. Quá trình cứ thế tiếp diễn.

Thực hiện bước 3:
- Cách 1:
p
3
= 0,19
p
4
+ p
5
+ p
6
+ p
7
= 0,24
Lý thuyết thông tin Trang 8
Độ chênh lệch : -0,05
- Cách 2:
p
3
+ p
4
= 0,29
p
5
+ p
6

+ p
7
= -0,14
Độ chênh lệch : 0,15
Vậy ta chọn cách thứ nhất.
n
=
( ) ( ) ( ) ( )

=
+++=
7
1
31,0219,0223,0234,0
i
ii
xxxxnp
p=
98,0
41,2
37,2)(
==
n
UH
⇒ có thể vẽ cây mã cho TKTƯ Fano.

Nhận xét về mã thống kê tối ưu Fano:
Ưu: Với cách chia nhóm đồng xác suất, sự lập mã TK tối ưu đồng thời cũng là mã prêphic.
Khuyết: Không cho phép lập mã duy nhất, nghĩa là có nhiều mã tương đương về tính kinh tế.
Ví dụ: đối với nguồn tin dưới đây ít nhất có hai cách chia có tính kinh tế như sau:

U
i
p
i
Cách
chia 1
Từ mã Cách
chia 2
Từ mã
U
1
0,19 0 0 0 0 0 0 0 0 0 0
U
2
0,19 0 1 0 0 1 0 0 0 1 0 0 1
U
3
0,19 0 1 1 0 1 1 0 1 0 1
U
4
0,19 1 0 1 0 1 0 1 0
U
5
0,08 1 1 0 1 1 0 1 1 0 0 1 1 0 0
U
6
0,08 1 1 1 0 1 1 1 0 1 1 0 1 1 1 0 1
U
7
0,08 1 1 1 1 1 1 1 1 1 1 1 1 1 1

==

=

7
1
1
i
ii
npn
(0,19x2) + (0,19x3) + (0,19x3) + (0,19x2) + (0,08x3) + (0,08x4) +(0,08x4)=2,46
==

=

7
1
2
i
ii
npn
(0,19x3) + (0,19x3) + (0,19x2) + (0,19x2) + (0,08x4) + (0,08x4) +(0,08x3)=2,46
Cùng một bộ mã nên H(u
1
) = H(u
2
) suy ra ρ
1

2.



Để khắc phục nhược điểm của mã thống kê tối ưu Fano ta nghiên cứu mã thống kê tối ưu
Huffman.
0
0
0
0
0
0
1
1
1
1
1
u1
u2
u3 u4
u5
u6
u7
Lý thuyết thông tin Trang 9
( ) ( ) ( )
41,2501,0506,0407,0
=+++
xxx
Cách chia 2
0
0
1

1
1
1
1
1
0
0
0
0
u1
u2 u3
u4
u5
u6
u7
0
0
0
0
0
0
1
1
1
1
1
1
u1
u2
u3

u5
u6 u7
u4
Cách chia 1
2-2-4 Mã TK tối ưu Huffman:
Theo Hốpman để có một bộ mã Prephic có độ dài từ mã tối thiểu, điều kiện cần và đủ là thỏa
mãn 3 tính chất sau:
1- Tính thứ tự độ dài các từ mã: p
i
≥ p
j
với i <j thì n
i
≤ n
j
.
2- Tính những từ cuối: có độ dài bằng nhau, chỉ khác nhau về trọng số của ký hiệu cuối cùng.
3- Tính liên hệ giữa những từ cuối và từ trước cuối.

Các bước thực hiện mã hóa TK tối ưu Hốpman.
Bước 1: Các nguồn tin được liệt kê trong cột theo thứ tự xác suất xuất hiện giảm dần.
Bước 2: Hai tin cuối có xác suất bé nhất được hợp thành tin phụ mới có xác suất bằng tổng xác
suất các tin hợp thành.
Bước 3: Các tin còn lại (N-2) với tin phụ mới được liệt kê trong cột phụ thứ nhất theo thứ tự xác
suất giảm dần.
Bước 4: Quá trình cứ thế tiếp tục cho đến khi hợp thành một tin phụ có xác suất xuất hiện bằng
1.
u
i
p

i
Từ

0 1
1
u
1
0,34 0 0,58 00
1
u
2
0,23 0
0,42
10
u
3
0,19 1 11
0 0,24
u
4
0,10 1 011
u
5
0,07 0 0.14 0100
1
u
6
0,06 0 0,07 01010
u
7

0,01 1 01011

Từ mã được đọc ngược từ đầu ra về đầu vào. Cũng có thể dùng cây mã để xác định mã
Hốpman:
Lý thuyết thông tin Trang 10
0
0
0
1
1
10
0,42
1
0,42
0
0
1
1
0,14
0,07
u1(0,34)
u2(0,23)
u3(0,19)
u4(0,1)
u5(0,07)
u6(0,06)
u7(0,01)
gèc

Tính kinh tế: ρ = 0,98

Mặc dù tối ưu hơn so với mã Sannon và Fano, nhưng khi bộ mã nguồn có nhiều tin thì bộ mã
trở nên cồng kềnh. Khi đó người ta kết hợp 2 phương pháp mã hóa: Mã Hốp man + mã đều.
u
i
P
i
Mã Hốp man Mã
đều
Từ mã
u
1
0,5 0 1 0
u
2
0,25 0 0,50 10
u
3
0,0315 1 1 00 11000
u
4
0,0315 0,125 01 11001
u
5
0,031 0 10 11010
u
6
0,031 11 11011
u
7
0,0157 0,25 000 111000

u
8
0,0157 001 111001
u
9
0,0157 010 111010
u
10
0,0157 0,125 011 111011
u
11
0,0156 1 100 111100
u
12
0,0156 101 111101
u
13
0,0155 110 111110
u
14
0,0155 111 111111
H(u) =
=−

=
4
1
2
log
i

ii
pp
-[0,5log
2
0,5 + 0,25log
2
0,25 + 0,125log
2
0,125] =
==

=

4
1i
ii
npn
(0,5x1) +(0,25x2) + ((0,125x5) +0,125x6 = 0,5 +0,5+0,625+0.75=2,375
375,2
)(
==

n
uH
ρ
Lý thuyết thông tin Trang 11
CHƯƠNG 3: MÃ HÓA KÊNH TRUYỀN
(Mã phát hiện và sửa sai)
3-1 KHÁI NIỆM VỀ MÃ PHÁT HIỆN VÀ SỬA SAI:


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
(1)
3-1-1 Cơ chế phát hiện sai của mã hiệu

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:

+

E
n
k
1
2
2
(2)
Trong đó

E
= E
1
+ E
2
+ . . . + E
i
(3)
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ó:
1
2
2
+

n
n
k
(4)
3-1-2 Khả năng phát hiện và sửa sai:

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
bằng 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
)

Điều kiện để một mã tuyến tính có thể phát hiện được t sai:
d ≥ t+1 (5)
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 (6)
t = 1 → d ≥ 3; t = 2 → d ≥ 5; t = 5 → d ≥ 11

3-1-3 Hệ số sai không phát hiện được:
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:
Lý thuyết thông tin Trang 12
p’ = C
2
1
pqC
3
1
pq
2
+ C
2
2
p
2
C
3
2
p
2
q (7)
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.
3-1-4 Phương trình đường truyền –Vector sai – cơ chế sửa lỗi:
- 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 (8)
E = T ⊕

R
Đối với mã nhị phân 3 phương trình trên tương đương nhau.

Vector sai: E = (e
0
, e
1
, …, e
n
) (9)
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: 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ệt lặp lại.
Các cơ chế này đã được học trong môn “Truyền số liệu”.
• 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…
3-2 MÃ KHỐI TUYẾN TÍNH:
3-2-1 Định nghĩa:
• Khi các bits mang tin và các bits kiểm tra được phân thành từng khối tách bạch, sự mã hóa
& giải mã có thể tiến hành theo từng khối bằng các từ mã riêng rẽ & sử dụng các phép tính
của đại số tuyến tính.
• Định nghĩa: mã khối độ dài n & k bits mang tin được gọi là mã khối tuyến tính C(n,k) nếu
và chỉ nếu 2
k
từ mã lập thành không gian vector n chiều 2
n
trên trường Galois sơ cấp GF (2)
3-2-2 Phương pháp tạo mã khối tuyến tính:
• Vì mã khối tuyến tính C(n,k) có không gian con tuyến tính k chiều của không gian vector n
chiều, nên tồn tại k từ mã độc lập tuyến tính g
0
, g
1
, …, g
k-1
trong C, sao cho mỗi từ mã trong
C là tổ hợp tuyến tính của k từ mã đó:

t = u
0
g
0
+ u
1
g
1
+ …+u
k-1
g
k-1
(1)
Trong đó u
i
= 0 hoặc 1 với 1 ≤ i ≤ k-1
• Gọi G là ma trận sinh:
g
0
g
00
g
01
. . . g
0,n-1
g
1 =
g
10
g

11
. . . g
1,n-1
… . . . . .
g
k-1
g
k-1,0
g
k-1,1
. . . g
k-1,n-1
Lý thuyết thông tin Trang 13
G(k,n) =
(2)
Trong đó: g
i
= (g
i0
, g
i1
, …., g
i,n-1
,) với 0 ≤ i ≤ k-1
• Gọi u là thông báo cần mã hóa:
U = u
0
, u
1
,. …, u

k-1
, (3)
Với u
i
= 0 hoặc 1 và 0 ≤ i ≤ k-1
• Gọi t là từ mã phát đi: t = t
0
t
1
….t
n-1
(4)
Với t
j
= 0 hoặc 1 và 0 ≤ j ≤ k-1
• Khi biết ma trận sinh G ta có thể tạo được từ mã phát đi:
t = u.G = [u
0
u
1
… u
k-1
]













−1
1
0
.

k
g
g
g
(5)
Từ mã phát đi t từ (5) chưa phải là mã khối tuyến tính.
• 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
⇒ Khi đó ta cần tìm ma trận sinh dạng chính tắc G:

=),(
~
nkG
g
0
g
1

g

k-1
=
P
00
P
01
… P
0,n-k-1
1 0 … 0
P
10
P
11
… P
1,n-k-1
0 1 … 0
………
P
k-1
P
k-1,1
… P
k-1,n-k-1
0 0 … 1
Trong đó p
ij
= 0 hoặc 1 và
G(k,n) = [p(k,n-k),I
K
} (7)

Khi đó t = u.
~
G
sẽ là mã hóa khối tuyến tính.
• Theo 6 & 8 các số hạng của t là:
t
n-k+i
= u
i
với 0 ≤ i ≤ k-1 (9)
t
j
= u
0
p
0j
+ u
1
p
1j
+ u
2
p
2j
+ …+ u
k-1
p
k-1,j
(10)
Từ (9) ta thấy k bits bên phải của từ mã t trùng với k bits thơng tin u

0
, u
1
, …, u
k-1
và (n-k)
bits bên trái là các bits kiểm tra.
Ví dụ: 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:
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)⇒
)7,4(
~
G
=
(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
• 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
==
~~
.Gut
(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
Lý thuyết thơng tin Trang 14
1 0 1 0 0 0 1
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.
==
~~
.Gut
(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
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:
=
~
t
( 1 0 0 1 0 1 1) có dạng mã khối tuyến tính.
• Cho u = 0 0 0 0 → 1 1 1 1 ta sẽ lập được tổ hợp 16 mã phát đi tương ứng với các tin cần
phát.
• Với mọi ma trận G(k,n) với k hàng độc lập tuyến tính sao cho mọi vector thuộc không gian
có cơ sở là hàng của G trực giao với H và ngược lại, nghĩa là G.H
T
=0 (11). H chính là ma
trận kiểm tra.
⇒ Định lý: Vector t gồm n số hạng là một từ mã của mã khối tuyến tính C(n,k) sinh ra bởi
H nếu và chỉ nếu t.H
T
= 0 (12)
• Khi đó ma trận H dạng chính tắc sẽ có dạng:
[ ]
[ ]
==−

T
kn
PIxnknH )(
~
1 0 . 0 p
00
. . . p
k-1

,
0
0 1 . 0 p
01
. . . p
k-1
,
1
. . .
0 0 . 1 p
0, n-k-1
. p
k-1
,
n-k-1
Từ mã phát đi tương ứng dạng mã khối tuyến tính sẽ là:
t = [t
0
t
1
. . . t
n-k-1
u
0
u
1
. . . u
k-1
] (14) nên từ (12) ta có:
t

j
+ u
0
p
0j
+ u
1
p
1j
+ . . . + u
k-1
p
k-1,j
= 0
với 0 ≤ j ≤ n-k-1 (15)
• Ví dụ: từ G(4,7) ta hoán vị hàng thành cột ta sẽ được ma trận kiểm tra dạng chính tắc:
[ ]
=7,3
~
H
1 0 0 1 0 1 1
0 1 0 1 1 1 0
0 0 1 0 1 1 1
• Kết luận: để tiến hành tạo mã khối tuyến tính gồm 2 bước:
Bước 1: Xác định ma trận sinh G hoặc P, hoặc ma trận kiểm tra H hoặc ma trận P
T
.
Bước 2: Dựa vào công thức t = U.G hoặc t.H
T
= 0 để thiết lập các từ mã tương ứng với các

thông báo u đã biết.
• Ta có sơ đồ mã hóa mã khối tuyến tính dựa trên phương trình 9 và 10 như sau:
Lý thuyết thông tin Trang 15
(13)
u
0
u
1
u
k-1
p
00
p
01
+
p
01
p
11
+ +
t
0
t
1
t
n-k-1


p
k-1,0

P
0,n-k-1
P
k-1,1
P
1,n-k-1
P
k-1,n-k-1
1
2
đến kênh truyền
: Thanh ghi dòch
+
: Bộ cộng Modulo K
đầu vào
p
11
pij =1 : Ngắn mạch
pij =0 : hở mạch
Sơ đồ khối mã hóa khối tuyến tính có cầu trúc hệ thống
Thơng báo u = (u
0
u
1
. . . u
k-1
) được dịch vào thanh ghi thơng báo đồng thời được đưa đến kênh
truyền ( khóa K ở vị trí 1 trong K nhịp). Sau khi thơng báo được dịch tồn bộ vào thanh ghi thơng
báo, (n-k) bits kiểm tra cũng được tạo ra từ ngõ ra của (n-k) bộ cộng modulo –2 nhiều đầu vào. Sau
đó ở nhịp thứ (k+1) khóa k ở vị trí 2, nên các bits kiểm tra cũng được dịch nối tiếp theo các bits

thơng báo ra kênh truyền. Phức tạp của bộ mã hóa tỷ lệ vối độ dài của từ mã. Mạch mã hóa khối
tuyến tính C(7,4) như sau:

3-2-3 Phương pháp giải mã mã khối tuyến tính:
+ Gọi từ mã phát đi : t = (t
0
t
1
. . . . t
n-1
) (1)
+ Gọi từ mã thu được: r = (r
0
r
1
. . . . r
n-1
) (2)
+ Vector sai : e = (e
0
e
1
. . . e
n-1
) (3)
Trong đó e
i
= 1 nếu t
i
≠ r

i
và e
i
= 0 nếu t
i
= r
i

• Để phát hiện sai ta dùng thuật tốn thử Syndrome:
S = r.H
T
= (s
0
s
1
. . . . s
n-k-1
) (4)
gồm n-k thành phần
+ S=0 nếu và chỉ nếu r là từ mã phát (r ≡ t) hoặc là tổ hợp tuyến tính của các từ mã (gọi là vector
sai khơng phát hiện được).
+ S ≠ 0 thì r khơng phải là từ mã phát đi (r ≠ t) và do đó có sai (e ≠ 0)
• Từ ma trận kiểm tra
),(
~
nknH −
thành phần của Syndrome như sau:
S
0
= r

0
+ r
n-k
p
00
+ r
n-k-1
p
10
+ . . . + r
n-i
p
k-1,0
S
1
= r
1
+ r
n-k
p
01
+ r
n-k-1
p
11
+ . . . + r
n-i
p
k-1,1
……………. (5)

S
n-k-1
= r
n-k-1
+ r
n-k
p
0,n-k-1
+ r
n-k+i
p
11
+ .+ r
n-i
p
k-1,n-k-1
Từ (5) tương tự như mạch mã hóa, ta có mạch tính Syndrome như sau:
r
0
r
1
r
n-k
p
00
+
p
01
+ +


p
k-1,0
P
k-1,1
P
k-1,n-k-1
P
0,n-k-1
r
n-1
s
o
s
1
s
n-k-1

Lý thuyết thơng tin Trang 16
Ví dụ: Tính Syndrome của mã khối tuyến tính C(7,4) với ma trận H đã cho với vector thu
r = (r
0
r
1
r
2
r
3
r
4
r

5
r
6
)
S=r.H
T
= (r
0
r
1
r
2
r
3
r
4
r
5
r
6
)
1 0 0
0 1 0
0 0 1
1 1 0
0 1 1
1 1 1
1 0 1
= (S
0

S
1
S
2
)
S
0
= r
0
.1 + r
1
.0 + r
2
.0 + r
3
.1 + r
4
.0 + r
5
.1 + r
6
.1 = r
0
+ r
3
+ r
5
+ r
6


S
1
= r
0
.0 + r
1
.1 + r
2
.0 + r
3
.1 + r
4
.1 + r
5
.1 + r
6
.0 = r
1
+ r
3
+ r
4
+ r
5
S
2
= r
0
.0 + r
1

.0 + r
2
.1 + r
3
.0 + r
4
.1 + r
5
.1 + r
6
.1 = r
2
+ r
4
+ r
5
+ r
6
r
0
r
1
r
3
+ + +
r
5
s
o
s

1
s
2
r
2
r
4
r
6
Mạch tính Syndrome của mã hệ thống tuyến tính C(7,4)
Khi xác định được một giá trị Syndrome S = (S
0
, S
1
. . . . S
n-k-1
) ta có đến 2
k
vector sai tương ứng,
nhưng ta chỉ chọn các vector sai nào có trọng số nhỏ nhất là vector sai có nhiều khả năng nhất.
Trong thực tế khi tìm được Syndrome ta thấy S trùng với cột nào của ma trận kiểm tra H thì
có sai ở vị trí tương ứng. Ví dụ: “ 1 1 1” trùng với cột thứ sáu tính từ trái sang của ma trận H, ta
kết luận vector nhận được r sai ở vị trí r
5
. ta chỉ việc đổi trị số của r
5
từ 0 sang 1 hoặc ngược lại là
được vector nhận được đúng (r=t)
r = 1 0 0 1 0 0 1
⊕ e = 0 0 0 0 0 1 0

t = 1 0 0 1 0 1 1
đảo bit tại r
5

Để giải mã khối tuyến tính khi nhận được vector thu r ta tiến hành 3 bước:
Bước 1: Tính Syndrome S = r.H
T
Bước 2: Tìm phần tử dẫn e
i
trùng với r.H
T
, phần tử dẫn này được giả thiết là vector sai gây bởi
kênh truyền.
Bước 3: Giải mã tín hiệu thứ r: t = r + e
Lý thuyết thông tin Trang 17
+ + +
t
o
t
1
t
2
Bộ đếm cho các vector thứ r
Mạch tính Syndrome
Mạch tổ hợp tính vector sai
r
r
0
r
1

. . .
r
n-1
s
0
s
1
s
n-k-1
. . .
r
0
e
0
r
1
e
1
r
n-1
e
n-1

Bộ giải mã tổng qt cho mã khối tuyến tính
3-3 – MÃ HAMMING:
Mã hamming là lớp mã khối đầu tiên nhắm vào việc sửa sai mã khối và các biến thể của nó
được sử dụng rộng rãi trong việc truyền thơng số hóa và lưu trữ số liệu.
Với mọi số ngun dương m ≥ 3, tồn tại mã Hamming với các thơng số sau:
- Chiều dài từ mã: n = 2
m

– 1.
- Chiều dài phần tin: k = 2
m
– m – 1.
- Chiều dài phần kiểm tra: m = n –k
- Khả năng sửa sai: t = 1 (d
min
=3)
- Ma trận kiểm tra H với các cột là một vector m chiều khác khơng.
• Dưới dạng cấu trúc hệ thống H = [I
m
.Q]
Trong đó I
m
là ma trận đơn vị mxm và ma trận Q gồm 2
m
– m – 1 cột, mỗi cột là vector m chiều
có trọng số là 2 hoặc lớn hơn. Ví dụ: với m = 3, ma trận kiểm tra của mã (7,3) được viết dưới dạng.
H(3,7) =
1 0 0 1 0 1 1
0 1 0 1 1 1 0
0 0 1 0 1 1 1
• Trong thực tế để việc tạo và giải mã Hamming một cách đơn giản người ta đổi vị trí các cột
trong ma trận H. Khi đó các bit kiểm tra xen kẽ với các bit mang tin chứ khơng còn tính chất
khối, từ (1) ta có:
H =
0 0 0 1 1 1 1
0 1 1 0 0 1 1
1 0 1 0 1 0 1
• Để việc tạo mã đơn giản ta chọn các bit kiểm tra x, y, z ở các vị trí tương ứng 2

i
với i = 0, 1,
2, . . ., nghĩa là các vị trí thứ nhất, thứ hai & thứ tư của các ký hiệu từ mã:
t = (x, y, u
0
, z, u
1
, u
2
, u
3
) (3)
• Để tạo mã:
t.H
T
= (x, y, u
0
, z, u
1
, u
2
, u
3
)x
0 0 1
0 1 0
0 1 1
1 0 0 = 0
Lý thuyết thơng tin Trang 18
(1)

(2)
1 0 1
1 1 0
1 1 1
x.0 +y.0 +u
0
.0 +z.1 + u
1
.1 + u
2
.1 + u
3
.1 =0
z = u
1
+ u
2
+ u
3

x.0 +y.1 +u
0
.1 +z.1 + u
1
.0 + u
2
.1 + u
3
.1 =0
y = u

0
+ u
2
+ u
3
x.1 +y.0 +u
0
.1 +z.1 + u
1
.1 + u
2
.0 + u
3
.1 =0
x = u
0
+ u
1
+ u
3
Vớ d: Tin cn phỏt i:
U = (u
0
, u
1
, u
2
, u
3
) = (1 0 1 1)

x = u
0
+ u
1
+ u
3
= 1+ 0+1= 0
y = u
0
+ u
2
+ u
3
= 1+1+1 = 1
z = u
1
+ u
2
+ u
3
= 0+1+1 = 0
Vy t mó phỏt i s l: t = ( 0 1 1 0 0 1 1) khụng cú dng mó khi.
S to mó Hamming (7,4) tng t nh s to mó khi tuyn tớnh (7,4) nhng n
gin hn.
r
0
r
1
r
3

+ + +
r
2
x
y
u
0
z
u
1
u
2
u
3
sụ ủo taùo maừ Hamming (7,4)
Tin can phaựt
S to mó Hamming (7,4)
Gii mó Haming cng ging nh gii mó khi tuyn tớnh nhng n gin hn nh s dng
ma trn kim tra H cú dng 2. Khi ú vic xỏc nh v trớ ký hiu sai tng i thun tin.
Vớ d: Phớ thu nhn c t mó: r = (r
0
, r
1
, r
2
, r
3
, r
4
, r

5
, r
6
) ta tớnh Syndrome:
),,(
111
110
101
100
011
010
001
),,,,,,(.
2106543210
SSSrrrrrrrHrs
T
===
s
0
= r
0
.0 + r
1
.0 + r
2
.0 + r
3
.1 + r
4
.1 + r

5
.1 + r
6
.1= r
3
+ r
4
+ r
5
+ r
6

s
1
= r
0
.0 + r
1
.1 + r
2
.1 + r
3
.0 + r
4
.0 + r
5
.1 + r
6
.1= r
1

+ r
2
+ r
5
+ r
6
s
2
= r
0
.1 + r
1
.0 + r
2
.1 + r
3
.0 + r
4
.1 + r
5
.0 + r
6
.1= r
0
+ r
2
+ r
4
+ r
5

Khi ú

ta cú s gii mó haming (7.4) nh sau:
Lý thuyt thụng tin Trang 19
r
0
r
1
r
3
+ + +
r
5
r
2
r
4
r
6
Tín hiệu
thu r
mạch chuyển đổi số nhò phân ra thập phân
i
s
2
s
1
s
0
1 2

3 4
5
6 7
Sơ đồ giải mã Hamming (7,4)
Ví dụ: tín hiệu thu được:
r = (r
0
, r
1
, r
2
, r
3
, r
4
, r
5
, r
6
)
(0 0 1 1 0 1 1)
Khi đó
s
0
= r
3
+ r
4
+ r
5

+ r
6
=1+0+1+1=1
s
1
= r
1
+ r
2
+ r
5
+ r
6
= 0+1+1+ 1=1
s
2
= r
0
+ r
2
+ r
4
+ r
5
=0+1+0+1=0
S=( 1 1 0), nếu đổi ra thập phân là 6. ta nhận thấy S trùng với cột số 6 của ma trận H của ma
trận H, có nghĩa ký hiệu sai là ký hiệu thứ 6(r) đầu ra thứ 6 của sơ đồ giải mã sẽ có i=1. Ta chỉ cần
đảo bit thứ 6 theo thuật tốn:
ririr ⊕=
(3)

r =

r
nếu i = 1
r nếu i = 0
r =1
i = 1
0
0
r =0
(đã đảo bit)
3-4. MÃ VỊNG
Mã vòng nằm trong họ mã khối tuyến tính, được sử dụng rộng rãi do có 2 ưu điểm nổi bật:
- Việc mã hóa và tính tốn Syndrome có thể được thực hiện một cách dễ dàng qua các thanh
ghi dịch có nối vòng hồi tiếp.
- Cấu trúc đại số của mã vòng cho phép sử dụng nhiều phương pháp để thực hiện mã hóa.
3-4-1. Khái niệm
• Định nghĩa: một mã khối tuyến tính c(n,k) được gọi là mã vòng. Nếu mỗi khi dịch vòng một
vector mã trong C thì vector mới tạo thành cũng là một vector mã thuộc C.
• Đa thức mã vòng.
T(X)= t
0
+t
1
X+t
2
X
2
+…+ t
n-1

X
n-1
(1)
Trong đó: vector mã t=( t
0
, t
1
, t
2
…t
n-1
)
- Nếu t
n-1
= 1 thì bậc của T(X) là n-1.
- Nếu t
n-1
= 0 thì bậc của T(X) nhỏ hơn n-1.
• Mỗi đa thức mã t(x) trong một mã vòng C(n,k) có thể được biểu diễn dưới dạng:
t(x) =u(x)g(x) = (u
0
+u
1
x+u
2
x
2
+…+ u
n-1
x

n-1
)g(x) (2)
Lý thuyết thơng tin Trang 20
• Đa thức sinh g(x) của mã vòng C(n,k) là một thừa số của X
n
+1: X
n
+1=[X
k
+a(x)]g(x) (3)
Một mã vòng gồm nhiều đa thức sinh:
Ví dụ: mã vòng C(7,4) có 7 bit, 4 bit mang tin và 3 bit kiểm tra.
X
7
+1=(x+1)(x
3
+x+1) (x
3
+x
2
+1)
Có hai đa thức sinh: g
1
(x) = (x
3
+x+1) và
g
2
(x) = (x
3

+x
2
+1).
3-4-2: Thiết lập mã vòng.
• Các bước thiết lập mã vòng có dạng chính tắc:
Bước 1: X
n-k
.u(x)= u
0
x
n-k
+u
1
x
n-k+1
+…+u
k-1
x
n-1
(4)
Bước 2: tính phần dư b(x) từ:
X
n-k
.u(x)=a(x).g(x)+b(x) (5)
Trong đó: b(x) =b
0
+b
1
x+b
2

x
2
+…+b
n-k-1
x
n-k-1
(6)
Bước 3: vector mã phát đi:
t(x)=b(x) +x
n-k
.u(x) = a(x).g(x) (7)
Nghĩa là t(x)= b
0
+ b
1
x+b
2
x
2
+…+b
n-k-1
x
n-k-1
+u
0
x
n-k
+…+ u
k-1
x

n-1
(8)
Khi đó t(x) = (b
0
, b
1
, b
2
, …, b
n-k-1
, u
0
, …u
k-1
)
⇒ Từ mã phát đi có dạng khối tuyến tính.
Ví dụ: xét mã vòng C(7,4) ứng với đa thức sinh:
G
1
(x)= X
3
+X+1 và tin cần mã hóa: u=1 0 0 1
Suy ra u(x) =1+ x
3
Bước 1: x
n-k
.u(x) = x
3
(1+x
3

) =x
6
+x
3
Bước 2: tìm phần dư b(x)
X
6
+ X
3
X
3
+ X + 1=g(x)
X
6
+ X
4
+ X
3
X
3
+ X = a(x)
X
4

X
4
+ X
2
+X
X

2
+X = b(x)
Bước 3: t(x) =b(x)+x
n-k
u(x) = x+x
2
+x
3
+x
6
Nghĩa là từ mã phát đi t = (0 1 1 1 0 0 1) trong đó 0 1 1 là các bits kiểm tra. Học sinh tự làm với
g
2
(x) = x
3
+x
2
+1
3-4-3 Ma trận sinh và ma trận kiểm tra của mã vòng: phương pháp tạo ma trận sinh trực tiếp.
• Ma trận sinh G(k,n) được tạo ra từ đa thức sinh g(x) bằng cách dịch vòng:
G(k,n)=
g
0
g
1
. . .g
n-k
0 0 . . 0
0 g
1

. . . g
n-k-1
g
n-k
0 . . . 0
. . .
. . .
0 0 . . . g
0
g
1
g
2
. . .g
n-k

Ví dụ: xét mã vòng C(7,4) có g(x) = x
3
+x+1 ta có ma trận sinh G(4,7):
G(k,n)=
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
(2’) ≡ 2
Lý thuyết thông tin Trang 21
(1)

G
~
(k,n)=
1 1 1 0 0 1 0
1 0 1 0 0 0 1
(3’) ≡ 1+3
(4’) ≡ 1+2+4
• Các bước thiếp lập ma trận sinh theo dạng chính tắc: Phương pháp tạo ma trận sinh gián
tiếp.
Bước 1: Tính x
n-k+i
= a
i
(x).g(x)+b
i
(x) (2)
Trong đó: i=0, 1, 2 …, k-1
+ b
i
(x) là phần dư có dạng:
b
i
(x) =b
i0
+b

i1
x+ … +b
i, n-k-1
x
n-k-1
(3)
Bước 2: Tạo các đa thức mã:
t
i
(x) = a
i
(x).g(x)=b
i
(x) +x
n-k+i
(4)
Bước 3: Sắp xếp k đa thức mã này thành k hàng của một ma trận k x n ta được một đa thức
sinh có dạng chính tắc như sau:
~
G
(k,n)=
b
00
b
01
. . .b
0,n-k-1
1 0 0. . 0
b
10

b
11
. . . b
1,n-k-1
0 1 0. . . 0
. . .
. . .
b
k-1,0
b
k-1,0
. .b
k-1,n-k-1
0 0 0 . . … 1
G(k,n) = [B(k,n-k, I
k
} (6)
Ví dụ: Xét mã vòng C(7,4) có ma trận sinh g(x) =1+x+x
3
, lập ma trận sinh G dạng chính tắc theo
ngun tắc trên.
Bước 1: Mã vòng C(7,4) suy n=7, k=4 i=0,1,2,3, nên x
n-k+i
lần lượt là: x
3
, x
4
, x
5
, x

6
, chia lần
lượt x
3
, x
4
, x
5
, x
6
cho g(x) ta được:
x
3
x
3
+x+1⇒ x
3
=1g(x)+x+1
x
3
+x+1 1=a(x)
0 +x +1=b(x)
x
4
x
3
+x+1⇒ x
4
=x.g(x)+x
2

+x
x
4
+x
2
+x x=a(x)
0 +x
2
+x=b(x)
x
5
x
3
+x+1 ⇒ x
5
=(x
2
+1).g(x)+x
2
+x+1
x
5
+ x
3
+x
2
x
2
+1=a(x)
0 + x

3
+x
2
x
3
+ x+1
0 + x
2
+x+1 = b(x)
x
6
x
3
+x+1 ⇒ x
6
=(x
3
+x+1)g(x) +x
2
+1
x
6
+ x
4
+x
3
x
3
+ x+1=a(x)
0 + x

4
+ x
3
x
4
+ x
2
+x
0 + x
3
+x
2
+x
x
3
+x+1
0 +x
2
+ 1= b(x)
Bước 3: Sắp xếp 4 đa thức mã này thành 4 hàng của ma trận sinh G(kxn) ta sẽ được ma trận
sinh G(4,7) dạng chính tắc.
t
0
(x) =1 + x + x
3
Lý thuyết thơng tin Trang 22
(5)







t
1
(x) = + x +x
2
+ x
4
t
2
(x) =1 + x +x
2
+ x
5
t
3
(x) =1 + x
2
+ x
6
suy ra:
1010001
1110010
0110100
1101000
)7,4(
~
=G
b. Ma trận kiểm tra H(n-k,n)

Gọi H là ma trận kiểm tra ta có t.H
T
=0, theo định lý 4 ta có x
n
+1=h(x).g(x), cho nên nếu ta biết
g(x) ta sẽ tìm được h(x). Mặt khác: t(x)=a(x).g(x) nên ta có t(x).h(x)=a(x).g(x).h(x)=a(x) (x
n
+1)
=a(x)+x
n
a(x) (1) vì bậc của a(x) là k-1 hoặc nhỏ hơn nên x
k
, x
k+1
+ x
n-1
không xuất hiện trong a(x) .
Nếu chúng ta mở rộng t(x)h(x) sang trái thì các hệ số của x
k
, x
k+1
+ x
n-1
phải bằng không. Do đó ta
có:

=
−−
=
k

oi
jini
oth
với
knj −≤≤1
(2)
Vì G.H
T
=0 nên từ ma trận G, ta có thể xác định ma trận kiểm tra H dạng chính tắc như sau:
=− ),(
~
nknH
1 0 0 . . . 0 b
00
b
01
… b
k-1,0

0 1 0 . . . 0 b
01
b
10
… b
k-1,1
. . . .
0 0 0 . . . 1 b
0,n-k-1
b
1,n-k-1

… b
k-1,n-k-1
Hay H(n-k,k)=[I
n-k
,B
T
] (3’)

G
~
(4,7)=
110 1000
011 0100
111 0010
101 0001
(Gián tiếp)
100 1011

=)7,3(
~
H
010 1110
001 0111
• Ta có thể xác định ma trận kiểm tra H dạng chính tắc từ ma trận đối ngẫu của h(x) là h(x
-1
)
được định nghĩa như sau:
X
k
. h(x

-1
)=h
k
+ h
k-1
x+ …+ h
0
x
k
(4)
Chúng ta dễ dàng nhận ra rằng x
k
.h(x
-1
) cũng là một hàm của x
n
+1. Khi đó x
k
.h(x
-1
) sẽ tạo ra
một mã vòng (n,n-k) với ma trận (n-k,n) giống như ma trận sinh g(x).
h
k
h
k-1
h
k-2
………


h
0
0 0
H(n-k,n) = 0 h
k
h
k-1
………. h
1
h
0
0 (4)
0 0 0 ………. h
k
h
k-1
h
0
Ví dụ: Xét mã vòng (7,4) với đa thứ sinh g(x)=1+x+x
3
.
Đa thức kiểm tra: B1:
1
1
1
)(
1
)(
24
3

77
+++=
++
+
=
+
= xxx
xx
x
xg
x
xh
(Trựctiếp)
B2: Suy ra: x
k
.h(x
-1
)=x
4
(x
-4
+ x
-2
+ x
-1
+1)=1+ x
2
+ x
3
+ x

4
.
Lý thuyết thông tin Trang 23
(3)
Từ (4) ta có:
B3:H(3,7)=
1 0 1 1 1 0 0
0 1 0 1 1 1 0
0 0 1 0 1 1 1
(1)
(2)
(3)

B4:
=)7,3(
~
H
1 0 0 1 0 1 1
0 1 0 1 1 1 0
0 0 1 0 1 1 1
1

= 1+3
2

= 2
3

= 3
Vậy từ (4) ta cũng xác đònh được ma trận kiểm tra H có kết quả như được xác đònh từ ma

trận sinh chính tắc
~
G
.
3-4-4 Sơ đồ mã hóa mã vòng:
a) Mã hóa theo đa thức sinh g(x):
Để mã hóa mã vòng (n,k) theo dạng chuẩn chính tắc ta tiến hành theo các bước sau;
Bước 1: Nhân tin u(x).x
n-k
Bước 2: Tính phần dư b(x) từ:
)()()()(.
)(
)(.
xbxgxaxux
xg
xux
kn
kn
+=⇒


Bước 3: Thiết lập từ mã phát đi: t(x)=b(x)+x
n-k
.u(x).
Các bước này thực hiện bằng một mạch chia gồm một thanh ghi dịch (n-k) tầng có vòng hồi tiếp
dựa trên biểu thức sinh:
G(x)=1+g
1
(x)+ g
2

x
2
+… g
n-k-1
x
n-k-1
+x
n-1
Cổng
g
1
g
2
b
0
+ +
+
+
b
1
b
2
b
n-k-1
g
n-k-1
1
2
U(x)
Từ mã

G
bi : tầng thứ i của
thanh ghi dòch
gi : kết nối hay
không kết nối
gi =0 : không kết
nối
gi =1: nối
g
n-k
=1
b
i
: tầng thứ i của thanh ghi dịch
g
i
: kết nối hay khơng kết nối
g
i
= 0 khơng nối
g
i
= 0 nối

Cộng modulo-2
Sơ đồ mã hóa vòng theo g(x).
Hoạt động của mạch mã hố:
Bước 1: khi mở cổng (Khóa G ở vị trí 1), k bit tin u
0
, u

1
, u
1
,…, u
k-1
(ứng với đa thức mẫu: u
0
+ u
1
x+ …. + u
k-1
x
k-1
) được dịch vào mạch từ đầu cực phải tương đương với việc nhân u(x) với x
n-k
.
Ngay sau khi dịch xong k bit tin vào mạch, nội dung thanh ghi trở thành phần dư của phép chỉnh
x
n-k
.u(x) cho g(x). Nói cách khác (n-k) bits của thanh ghi chính là các bits kiểm tra.
Bước 2: Ngắt đường hồi tiếp bằng cách đóng cổng (Khóa G chuyển sang vị trí 2).
Lý thuyết thơng tin Trang 24
g
0
=1
Bước 3: Dịch các bits kiểm tra ra và gửi vào kênh truyền. (n-k) bits của thanh ghi chính là các
bits kiểm tra này(tức là b
0
, b
1

, …., b
n-k-1
) phối hợp với k bits tin, sẽ tạo ra thành một vector mã.
Ví dụ: Mã hóa mã vùng (7,4) với đa thức sinh g(x)=1+x+x
3
giả sử cần mã hóa tin u với u có
dạng sau u=(1011). Khi các bit tin được dịch vào thanh ghi, nội dung thanh ghi lần lượt như bảng
sau (nối đường hồi tiếp và mở cổng khóa G ở vị trí 1).
Sau 4 lần dịch nội dung của thanh ghi là (100). Như vậy vector mã được thiết lập có dạng
(1001011) ứng với đa thức mẫu là t(x)=1+x
3
+ x
5
+ x
6
Cổng
b
0
+
+
b
1
b
2
1
2
G
Từ mã phát đi
U(x)
1 0 1 1

g
0
=1
g
1
=1
g
2
=1
g
3
=1
Số
lần
Input
u
Nội dung
thanh ghi
Nội dung
thanh ghi kế tiếp
dịch
b
0
b
1
b
2
b

0

=
b
2
u⊕
b

1
=
b
0
ub ⊕⊕
2
b

2
=
b
1
0 0 0 0 0 0 0
1 1 0 0 0 1 1 0
2 1 1 1 0 1 0 1
3 0 1 0 1 1 0 0
4 1 1 0 0 1 0 0
b) Mã hóa theo đa thức h(x):
Phương pháp này sử dụng thanh ghi k tầng.
Ta biết mỗi vector mã có dạng t=t
0
, t
1
, , t

n-1
. Do t.H
T
=0 & h
k
= 1 nên từ

=
−−
=
k
i
jinj
th
0
0
với 1 ≤ j
≤ n-k
Ta có thể viết:


=
−−−−
=
1
0
.
k
i
jinijkn

tht
với 1 < j< n-k-1 (5)
Đối với một mã vòng ở dạng chính tắc các thành phần t
n-k
, t
n-k-1
, …, t
n-1
của mỗi vector mã chính
là các bit tin. Ưùng với k bits tin ta sẽ có (n-k) bits kiểm tra t
0
, t
1
, … t
n-k
Dựa vào phương trình (5) ta xây dựng được sơ đồ mạch mã hóa: h(x)=h
0
+ h
1
x+…+ h
k
x
k
.
Cổng 2
t
n-k
+
+
t

n-k-1
t
n-2
Cổng 1
t
n-1
+ +
h
k-1
h
k-2
h
2
h
1
U(x)
. . .
. . .
Ngõ ra đến kênh
truyền
h
0
=1
h
k
=1
Sơ đồ mã hóa mã vòng dựa trên đa thức kiểm tra h(x)
Các đường hồi tiếp dựa theo các hệ số h
0
, h

1
, …, h
k
trong các đa thức kiểm tra h(x), với h
0
=h
k
=1.
Các mã thực hiện mã hóa:
Lý thuyết thơng tin Trang 25

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×