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

LỖI VÀ ĐIỀU KHIỂN LỖI TRONG THÔNG TIN SỐ LIỆU. CƠ SỞ LÝ THUYẾT MÃ

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 (495.07 KB, 70 trang )

Chương 1: LỖI VÀ ĐIỀU KHIỂN LỖI TRONG THÔNG TIN SỐ
LIỆU. CƠ SỞ LÝ THUYẾT MÃ........................................................................... 3
1.1. Đặc tính của lỗi trên kênh truyền. ................................................................... 3
1.2.2. Khái niệm và tính chất của mã nhóm.....................................................14
1.3. Mục đích mã hoá và các điều kiện khi lập mã. .............................................21
1.4. Các cách phân loại mã...................................................................................22
1.5. Các phương pháp điều khiển lỗi. ..................................................................23
1.5.1. Các phương thức ARQ cơ bản. ..............................................................23
1.5.2. Phương thức sửa lỗi tại đầu thu (FEC). .................................................24
1.6. Cơ chế điều khiển lỗi. ...................................................................................24
1.6.1. Mô hình toán học của kênh truyền.........................................................24
1.6.2. Cơ chế phát hiện sai và sửa sai của mã chống nhiễu. ............................26
1.6.3. Định lý Shonon. .....................................................................................29


1.7. Một số giới hạn của mã tuyến tính................................................................30
1.7.1. Giới hạn trên của khoảng cách mã tối thiểu...........................................30
1.7.2. Giới hạn Hamming RW. ........................................................................31
1.7.3. Giới hạn Var ShaMov. ...........................................................................33
1.8.4. Giới hạn Griesmes (đối với mã nhị phân)..............................................33
1.7.5. Giới hạn Plotkin E..................................................................................33
1.8. Xây dựng bộ mã có khả năng chống nhiễu...................................................34
1.8.1. Khoảng cách mã tối thiểu d0 và giới hạn GilBert E...............................34
1.8.2. Xây dựng bộ mã có khả năng chống nhiễu khi cho trước các tin. Giới
hạn Hamming. ..................................................................................................34
Chương 2: CÁC LOẠI MÃ CHỐNG NHIỄU CƠ BẢN - MÃ
HAMMING VÀ SỰ LỰA CHỌN MÃ HAMMING VÀO XÂY DỰNG

CHƯƠNG TRÌNH MÃ HOÁ VÀ GIẢI MÃ...................................................... 36
2.1. Các loại mã phát hiện lỗi...............................................................................36
2.2. Mã truy toán (Mã xoắn, mã chập).................................................................43
2.2.1. Khái niệm mã truy toán..........................................................................43
2.2.2. Sơ đồ khối tổng quát tạo mã chập..........................................................44
2.2.3. Một số đặc trưng cơ bản của mã chập....................................................45
2.2.4. Thiết bị giải mã. .....................................................................................48
2.3. Các bộ mã chống nhiễu có khả năng sửa sai.................................................50
2.3.1. Bộ mã hệ thống nhị phân. ......................................................................50


2.3.2. Mã cyclic. ...............................................................................................52

2.3.3. Mã Hamming. ........................................................................................63
Chương 3: THUẬT TOÁN MÃ HOÁ VÀ XÂY DỰNG CHƯƠNG
TRÌNH MÃ HOÁ, GIẢI MÃ. .............................................................................. 66
3.1. Lưu đồ thuật toán mã hoá..............................................................................66
3.2. Lưu đồ thuật toán giải mã. ............................................................................69
3.3. Xây dựng chương trình mã hoá.....................................................................70


Chương 1: LỖI VÀ ĐIỀU KHIỂN LỖI TRONG THÔNG TIN SỐ
LIỆU. CƠ SỞ LÝ THUYẾT MÃ.

1.1. Đặc tính của lỗi trên kênh truyền.

Khi truyền tín hiệu, nhiễu và tạp âm thường xuyên có mặt trên kênh truyền.
Đó là những yếu tố không mong muốn, nó sẽ tác động làm méo tín hiệu và làm cho
dãy bít thu được có thể bị lỗi.
Mục đích cơ bản của hệ thống thông tin liên lạc là trao đổi thông tin giữa hai
đối tượng. Sơ đồ khối tổng quát của một hệ thống thông tin ở dạng cơ bản được mô
tả như sau:
Dữ liệu g hay tín
hiệu g(t)đầu vào
Thông tin
vào m

Thiết

bị vào

Thiết
bị phát

Tín hiệu
phát S(t)

Tín hiệu
thu r(t)
Môi trường
truyền


Dữ liệu g’ hay tín
hiệu g’(t) đầu ra
Thiết
bị thu

Thông tin
ra m
Thiết
bị ra

Nhiễu

tạp âm
Hình 1.1: Sơ đồ tổng quát hệ thống thông tin
Thông tin vào (kí hiệu m) được nhập vào hệ thống thông qua thiết bị vào
thành dữ liệu vào g hay có thể ở dạng một hàm của thời gian là tín hiệu vào g(t).
Tiếp tục chúng được đưa qua thiết bị phát để tạo thành tín hiệu phát S(t) thích hợp
với môi trường truyền. Do ảnh hưởng của tạp âm và nhiễu, tín hiệu qua kênh truyền


sẽ bị ảnh hưởng có thể sinh ra lỗi, ở đầu thu chúng ta nhận được tín hiệu thu r(t) có
thể khác so với tín hiệu phát S(t). Sau đó được giải điều chế tại thiết bị thu, dữ liệu
ra g’ hay tín hiệu ra g’(t) sẽ được đưa đến thiết bị ra để lấy ra thông tin có ích m’.
Kí hiệu “ ’ ” nhằm chỉ rõ sự sai khác không mong muốn giữa các cặp g – g’; g(t) –

g’(t); m – m’ do sai lỗi trong hệ thống truyền.
Ở sơ đồ trên, thông tin được hiểu theo nghĩa tổng quát là nội dung cần trao
đổi còn dữ liệu (hay tin tức) là phương tiện để biểu diễn, mô tả thông tin ở một
dạng thích hợp cho việc trao đổi, biểu diễn, xử lý, cảm nhận… bởi con người hay
máy móc.
Trong hệ thống thông tin số thường xuất hiện ba loại lỗi cơ bản:
- Lỗi thay thế: Trong đó một bit được thay thế bằng một bit với trạng thái
hoàn toàn khác (ví dụ: 0→1 và 1→0).
- Lỗi giả mạo: Trong đó ký hiệu giả mạo được xen vào luồng bít thông tin.
- Lỗi bỏ sót: Trong đó một ký hiệu bị xoá đi (bị mất) khỏi luồng bít thông
tin.
Các lỗi xuất hiện trong luồng bít thông tin thường được chia ra làm hai loại

đó là các lỗi đơn và lỗi chùm.
Các yếu tố dẫn đến sai lỗi là:
- Suy hao và méo do suy hao: Tín hiệu truyền trên kênh đặc biệt là đối với là
với các kênh xấu và dài thì thường bị suy hao và dẫn tới méo tín hiệu gây ra sai lỗi.
Mức tín hiệu ở đầu thu phải đủ lớn để bên thu nhận được. Độ suy hao phụ thuộc
vào tần số vì thế méo suy hao cũng được coi là “méo tần số”. Đây là suy hao chọn
lọc của các mức tín hiệu tại một tần số hoặc một vài băng tần trên toàn bộ dải phổ
sử dụng. Nếu toàn bộ các mức tín hiệu tại các tần số trong băng thông có suy hao
hoặc tăng ích như nhau thì dạng méo này sẽ không nhận biết được. Ở tần số càng
cao thì suy hao càng lớn dẫn tới méo tín hiệu.



- Độ giữ chậm: Tín hiệu đi chậm nhất ở biên và nhanh nhất ở giữa băng tần,
như vậy tại các biên của băng tần thì tín hiệu bị giữ chậm, gây ra hiện tượng méo
và giao thoa giữa các kí hiệu, đối với tín hiệu số (bít trước chồng lên bít sau) điều
này đặc biệt nguy hại đối với các hệ thống thông tin số.
- Tạp âm: Có rất nhiều nguồn tạp âm khác nhau gây ra lỗi cho tín hiệu, ta chỉ
xem xét một số nguồn tạp âm sau:
+ Tạp âm nhiệt: Sinh ra do sự xáo động điện trong phần tử dòng điện dưới
tác động của nhiệt.
+ Tạp âm do điều chế chéo: Sinh ra do các phần tử phi tuyến trên đường
truyền.
+ Tạp âm xuyên âm: Do xuyên nhiễu trong các đôi dây kim loại âm tần chủ
yếu là do ghép điện từ của các đôi dây kề nhau trong cùng một đôi cáp. Có hai sạng

xuyên âm chủ yếu đó là xuyên âm đầu gần và xuyên âm đầu xa:
Xuyên âm đầu xa: Là tín hiệu không mong muốn có mặt ở đầu xa của đôi
dây cáp. Nó xuất hiện do ghép điện từ của các đôi bên cạnh truyền thông tin cùng
hướng với đôi truyền.
Xuyên âm đầu gần: Là do tín hiệu không mong muốn thu đực ở đầu gần của
một đôi cáp bị ghép cảm ứng từ một đôi cáp bên cạnh đang truyền tin theo hướng
ngược lại.
- Nhiễu xung: Nhiễu xung được đặc trưng bởi biên độ lớn, thời gian tồn tại
ngắn. Nhiễu xung sinh ra do các nguồn sau:
+ Đóng mở điện trên đường dây điện lực.
+ Hệ thống tàu xe điện.
+ Sấm sét.

Nhiễu xung ít ảnh hưởng đến thông tin tương tự nhưng lại ảnh hưởng rất lớn
đến hệ thống thông tin số, nó làm tăng lỗi bit. CCITT có các tiêu chuẩn cho từng hệ


thống thông tin số. Nếu nhiễu lớn gây ra sai lỗi bít lớn hơn tiêu chuẩn cho phép tì
hệ thống cáp đó sẽ không được sử dụng để truyền dẫn số. Các nguồn nhiễu gây ra
lỗi trên kênh truyền gồm tạp âm trắng và các nguồn nhiễu tạp khác.
Tạp âm trắng gây nên lỗi mang tính ngẫu nhiên và độc lập về mặt thống kê.
Điều này rất thuận tiện cho việc tính toán và xem xét các tác động của chúng lên tín
hiệu trên kênh truyền.
Tuy vậy hầu hết với các kênh thông tin, nguồn nhiễu tạp âm không hoàn toàn
là tạp âm trắng, chúng thường thăng giáng với các khoảng có mức nhiễu tạp rất nhỏ

(chiếm phần lớn khoảng thời gian) và những khoảng xung nhiễu ngắn.
Khi nghiên cứu tác động của nhiễu tạp lên tín hiệu trong các hệ thống thông
tín số liệu, để thuận tiện cho việc tính toán, ta chỉ xét với điều kiện tạp âm kênh
truyền là tạp âm trắng và nhiễu Gaussian.
PLỗi
10-2
10-3
10-4
10-5
10-6
10-7
0


1 dB
S/N (dB)

Hình 1.2: Quan hệ giữa tỉ lệ lỗI bít và tỷ số Tín/Tạp.
Hình vẽ mô tả quan hệ giữa tỷ lệ lỗi bít và tỷ lệ tín hiệu/tạp âm (S/N) của
kênh truyền. Mức độ sai lệnh phụ thuộc rất lớn vào tỷ số tin/tạp. Khi tăng tỷ số
tin/tạp lên 1 dB, thì tỷ lệ lỗi bít sẽ giảm khoảng 10 lần.
Trong các nguồn nhiễu tạp âm thì nguồn nhiễu xungthường ảnh hưởng rất
lớn, nó sẽ làm giảm mạnh tỷ số tin/tạp xuống giá trị khá thấp trong khoảng thời
gian ngắn làm tăng rất nhanh tỷ lệ lỗi bít trong khoảng thời gian này. Lỗi trên kênh



truyền như vậy có xu hướng hợp thành các nhóm (lỗi chùm). Các nghiên cứu lý
thuyết chỉ ra rằng: Các lỗi chùm nguy hại hơn đáng kể các lỗi đơn xuất hiện độc
lập.
1.2. Những khái niệm cơ bản về mã.
1.2.1. Khái niệm chung.
a. Mã hoá và giải mã.
Mã hoá là một phép biểu diễn s tin (xi, i = 1, s ) khác nhau của nguồn trong
một bộ ký hiệu xác định nào đó (ví dụ: các chữ cái, các con số trong một hệ đếm
bất kỳ…) chứa m hý hiệu khác nhau. Nếu mphải đặt ứng với một dãy các kí hiệu (dấu) nào đó của một bộ ký hiệu, dãy này gọi
là từ mã.

Nếu tín hiệu ai là một tin của nguồn cần mã hoá, còn αi là một từ mã của bộ
mã ta có thể biểu diễn quá trình mã hoá như sau:
Mã hoá
αi

ai

Giải mã là một quá trình làm tương ứng 1-1, một từ mã với một tin của
nguồn (giải mã là ngược lại với quá trình mã hoá) ta có thể biểu diễn quá trình giải
mã như sau:
Giải mã
ai


αi

Để đảm bảo giải mã đúng nhất thiết phép biến đổi (biểu diễn) này phải là
một phép biến đổi đơn trị hai chiều.
Như vậy có thể coi mã hoá và giải mã là phép ánh xạ đơn trị hai chiều giữa


các tin của nguồn cần mã hoá {ai} với các từ mã của bộ mã α in . Trong đó giải mã là
i

phép ánh xạ ngược.

Giả sử nguồn tin A cần mã hoá có s tin với xác suất xuất hiện của các tin là
P(ai).
A={ai}, i= 1, s .
s

∑ p (a ) = 1 .
i =1

i

Còn bộ mã có N từ mã α = {αi}, i = 1, N .
Từ khái niệm mã hoá và giải mã ta suy ra các quan hệ sau đây:

P(αi) = P(ai)

N ≥ S.

Trong đó P(αi) là xác suất xuất hiện từ mã αi tương ứng với tin ai.
Để đảm bảo tính đơn trị hai chiều cho phép toán mã hoá và giải mã các từ mã
phải thoả mãn điều kiện không phủ nhau. Nếu trong số các từ mã ứng với s tin
không có từ mã nào giống nhau và không có một từ mã nào dài hơn lại chứa ở phần
đầu của nó một từ mã ngắn hơn thì những từ mã này được gọi là không phủ nhau.
Để thoả mãn điều kiện không phủ nhau nên độ dài trung bình của các từ mã
bị hạn chế.
Ta có nhận xét sau:

Lượng thông tin chứa trong từ mã không thể nhỏ hơn lượng thông tin chứa
trong tin tương ứng như vậy phép mã hoá mới không làm tổn hao tin tức. Việc mã
hoá càng kinh tế khi lượng thông tin chứa trong mỗi từ mã càng lớn. Lượng thông
tin này đạt cực đại bằng log2m khi tất cả các dấu mã đồng xác suất.
b. Cơ số của bộ mã.
Cơ số của bộ mã ký hiệu là m, chính là số ký hiệu khác nhau dùng để lập nên
các từ mã của bộ mã. Các ký hiệu khác nhau này là các chữ số của hệ đếm m.


Ví dụ:

m = 2 các ký hiệu là 0,1.

m = 3 các ký hiệu là 0,1,2.
m = 16 các ký hiệu sẽ là 0,1,2,3…9,A,B,C,D,E,F.

Cơ số thường dùng làm tên của bộ mã: Mã nhị phân (m = 2), mã tam phân
(m = 3)…
c. Độ dài từ mã.
Độ dài từ mã ký hiệu là n, đó là số lượng dấu chứa trong từ mã.
Ví dụ: Mã nhị phân (m=2) từ mã α1=110101 có độ dài n = 6.
Mã tam phân (m=3) từ mã α2=01121012 có độ dài n = 8.
Nếu các từ mã của bộ mã có độ dài như nhau thì ta sẽ có bộ mã đều. Khi này
số từ mã của bộ mã được xác định theo công thức sau:
N = mn .


(1.1)

Nếu các từ mã của bộ mã có độ dài khác nhau thì ta sẽ có bộ mã không đều.
Trong trường hợp này độ dài trung bình từ mã của bộ mã ký hiệu là n và được xác
định theo công thức:
N

N

i =1


i =1

n = ∑ p(α i )ni = ∑ p(ai ) .

(1.2)

Trong đó: p(αi) là xác suất xuất hiện tin αi của nguồn α sẽ được mã hoá αi
∈ α, ni là độ dài từ mã ứng với tin αi, N là tổng số từ mã tương ứng với tổng số các

tin của αi.
Nhận xét: Phép toán mã hoá càng kinh tế khi độ dài các từ mã càng nhỏ. Vì
vậy ta có thể dùng độ dài trung bình n của các từ mã để đặc trưng cho tính kinh tế

của bộ mã.
d. Trọng số của từ mã.
Trọng số của một từ mã là số các dấu khác không trong từ mã đó, trọng số
của từ mã αi ký hiệu là w(αi).


Ví dụ: α1 = 0110101 Æ w(α1) = 4.
α2 = 1111111Æ w(α2) = 7 = n.
Ta dễ dàng nhận thấy 0 ≤ w(αi) ≤ n ∀ i.
e. Độ thừa của bộ mã.
- Bộ mã đầy:
Ký hiệu N là số từ mã có thể có của bộ mã, N1 là số các từ mã dùng để mã

các tin của nguồn tin (N1 = S). Nếu N1 = N ta có bộ mã đầy (Mã không có độ thừa),
các từ mã được sử dụng để mã hoá các tin của nguồn, trong trường hợp này: N1= N=S.
- Bộ mã vơi:
Nếu N1các tin ít hơn số từ của bộ mã, trong trường hợp này N1. Với bộ mã vơi số từ mã
còn lại (số từ mã không được dùng) là N-N1 được gọi là từ mã cấm (hay bộ mã
cấm).
- Độ thừa của bộ mã:
Với bộ mã đều độ thừa của bộ mã ký hiệu là D và được định nghĩa:


D=


H (α ) max − H ( A) max
 
H (α ) max

(1.3) 

Nguồn tin A={ ai }, i= 1, s .
Trong đó: H(α)max là entropi cực đại của bộ mã, chính là lượng thông tin
trung bình cực đại chứa trong từ mã (hay do từ mã mang lại).
H(α)max=nlog2m.


(1.4)

Trong đó: m là cơ số của bộ mã.
n là độ dài từ mã.
H(A)max=H(A)|các tin của nguồn đồng khả năng = log2s. (1.5).
S: Số tin của nguồn cần mã hoá.
Dạng khác của biểu thực (1.3):


D = 1−

H ( A) max

H (α ) max

(1.6).

Thay biểu thức (1.4), (1.5) vào (1.6) ta có:
D = 1−

log 2 s
n. log 2 m

(1.7).


Với bộ mã đều nhị phân: m = 2 ta có;
D = D2 = 1-

log 2 s
n

(1.8).

Với bộ mã đầy: N=N1=mn=2n=s
Do đó: D2

đầy


log 2 s
log 2 2 n
=1 −
= 1−
=0
n
n

(1.9).

Với bộ mã vơi N1<N Æ s > 2n hay n>log2s do đó:

D2vơi= 1 −

log 2 s
>0
n

(1.10).

g. Khoảng cách mã:
Để có thể đánh giá định lượng được sự khác nhau giữa các từ mã của bộ mã
đều và đánh giá được khả năng sửa sai sửa các bộ mã chống nhiễu người ta sử dụng
khái niệm khoảng cách mã (hay khoảng cách Hamming).

Khoảng cách Hamming giữa hai từ mã bất kỳ trong bộ mã là số những vị trí
(thành phần) của chúng tính theo cùng một thứ tự mà tại đó có các dấu khác nhau.
Khoảng cách giữa hai từ mã αi và αj ký hiệu là: d(αi,αj).
Ví dụ: α1= 1 1 0 1 0 0 1 0
α2= 0 1 1 0 1 1 0 1
* * *****
d(α1,α2) = 7.
Một số tính chất của khoảng cách mã:
* d(αi,αj) = d(αj,αi) = 0 hay d(αi,αj) = 0 khi i=j.


* 0 ≤ d(αi,αj) ≤ n.

* d(αi,αj) = d(αj,αi).
* d(αi,αj) + d(αj,αk) ≥ d(αi,αk) ∀ i, j, k.
* d(αi,αj)min=d0 ∀ i ≠ j được gọi là khoảng cách mã tối thiểu của bộ mã.
Ví dụ: α1= 1 1 0 0 1.
α2= 0 1 1 0 1.
α3= 1 0 1 1 1.
Ta có: d(α1,α2) = 2
d(α1,α3) = 3
d(α2,α3) = 3
Do đó: d(α1,α2) + d(α2,α3) > d(α1,α3).
* d(αi,αj) = w(αi ⊕ αj).
Tính chất này nói về mối quan hệ giữa khoảng cách mã và trọng số của từ

mã. Khoảng cách mã giữa hai từ mã chính bằng trọng số của từ mã là tổng modul 2
của hai từ mã đó.
Ví dụ: α1= 1 1 0 0 1.
α2= 0 1 1 0 1.
Ta có: d(α1,α2) = 2.
α1 ⊕ α2 = 1 0 1 0 0 Æ w(α1 ⊕ α2) = 2.
Do đó: d(αi,αj) = w(αi ⊕ αj) = 2.
Ta luôn có thể biểu diễn αi =α1i + α2i. Trong đó: α1j, α2i là hai phần của từ mã
αi. Do đó: d0(αi,αj) = d0(α1i,α1j) + d0(α2i,α2j).
Hay d0 = d01 + d02

(1.11).


Trong đó: d01 và d02 là khoảng cách mã tối thiểu của hai thành phần tương
ứng αi1 và αj1; αi2 và αj2.
Từ biểu thức (1.11) ta có nhận xét: Nếu bộ mã với khoảng cách mã tối thiểu


d01 ta có thể chọn bộ mã đều có khoảng cách mã tối thiểu d02 sao cho khi ghép liên
tiếp từng cặp tương ứng hai bộ mã này thì được bộ mã với khoảng tối thiểu d0 cần
có.
h. Véctơ lỗi.
Giả sử α = (α0,α1,…,αn-1) là từ mã được truyền đi qua kênh có đặc tính nhiễu.
Gọi r = (r0,r1,…, rn-1) là véctơ nhận được từ kênh truyền, vì kênh truyền có nhiễu

nên r nhận được có thể khác α.
Véctơ tổng e = r + α = (e0,e1,…,en-1) là một véctơ có n thành phần, nếu vị trí
ei = 1, i = 0 ÷ n-1 thì ri ≠ αi. Nếu ei = 0 thì ri = αi. Véctơ e được gọi là véctơ lỗi
(error vector) hay mẫu lỗi (error pattem).
i. Mã chống nhiễu.
* Khái niệm: Mã chống nhiễu là mã có khả năng phát hiện sai và sửa sai.
* Phân loại mã chống nhiễu:
Dựa vào đặc trưng và cấu trúc người ta phân loại mã chống nhiễu như sau:
Mã chống nhiễu

Mã khối


Mã liên tục

Mã phân chia
được

Mã không phân
chia được

Mã hệ thống

Mã không hệ
thống


Hình 1.3: Phân loại mã chống nhiễu.


- Mã khối: Là mã mà chuỗi tín hiệu truyền được chia thành các tổ hợp mã có
số lượng phần tử xác định.
- Mã liên tục: Là mã có quá trình mã hoá và giải mã là liên tục. Trong đó các
phần tử kiểm tra nằm xen kẽ với các phần tử mang tin và không thể chia chuỗi tín
hiệu truyền thành các tổ hợp riêng biệt được.
- Mã phân chia: Là mã có thể phân biệt được trong tổ hợp mã đâu là phần tử
mang tin đâu là phần tử kiểm tra.
- Mã không phân chia được: Là loại mã không thể phân biệt được đâu là

phần tử tin tức đâu là phần tử kiểm tra.
- Mã hệ thống: Là mã mà quan hệ giữa các phần tử mang tin và các phần tử
kiểm tra trong tổ hợp là tuyến tính.
1.2.2. Khái niệm và tính chất của mã nhóm.
1.2.2.1. Những khái niệm về mã nhóm.
a. Khái niệm mã nhóm: Mã nhóm là mã sửa sai mà tập các tổ hợp mã của nó
chứa tổ hợp 0 và các tổ hợp mã là kín.
Giải thich: Tổ hợp 0 là các tổ hợp gồm toàn các phần tử 0.
Tổng các tổ hợp kín: Tổng của bất kỳ các tổ hợp mã nào cũng tạo thành một
tổ hợp mã khác của nó.
b. Định nghĩa ma trận sinh: Khi viết các tổ hợp mã (tổ hợp độc lập tuyến
tính) dưới dạng ma trận gồm k hàng và n cột. Ma trận đó gọi là ma trận sinh của mã

nhóm và được ký hiệu là: G(n,k). Được gọi là ma trận sinh vì k hàng của ma trận có
thể tạo thành mọi tổ hợp khác của mã bằng cách cộng các hàng lần lượt với nhau.
Ví dụ: Mã (5,3) mã này có 2k=23=8 tổ hợp, các phần tử mang tin là: a1, a2, a3
còn các phần tử kiểm tra sẽ là a4 và a5 được thiết lập theo tổng modul 2 của các
phần tử mang tin:


a4 = a1 ⊕ a2

tương ứng với:

a5 = a2 ⊕ a3


a4 ⊕ a2 ⊕ a1 = 0
a5 ⊕ a3 ⊕ a2 = 0

Tức là tổng modul 2 các phần tử trong các hệ thức kiểm tra bằng 0.
Để thuận tiện người ta sử dụng ma trận sinh viết dưới sạng chính tắc. Dạng
chính tắc ma trận sinh của mã nhóm (n,k):
G(n,k)=[Rk,(n-k).Ik]

(1.12).

Trong đó: Ik là ma trận đơn vị có k hàng, k cột. Đường chéo chính của ma

trận toàn các phần tử 1, các phần tử khácn đều là o, Ik được bố trí tại vị trí của các
phần tử tin tức của tổ hợp mã để tạo thành các phần tử tin tức.
Rk,(n-k) là ma trận gồm k hàng và r = (n-k) cột, nằm ở vị trí các phần tử kiểm
tra. Các phần tử của nó được tạo thành từ các phần tử Ik theo quan hệ kiểm tra của
mã. Ở trạng thái ban đầu bất kỳ như thế nào ma trận sinh đều có thể đưa về dạng
chính tắc bằng cách giao hoán và cộng các hàng.
c. Ma trận kiểm tra.
Véctơ kiểm tra: Là véctơ có n phần tử 0 và 1, trong đó các số 1 nằm trên các
vị trí của các phần tử trong tổ hợp mã tham gia vào kiểm tra. Với mã nhóm (n,k) ta
sẽ có (n-k) véctơ kiểm tra.
- Định lý 1: Một tổ hợp mã bất kỳ trong mã nhóm đều trực giao với mỗi
véctơ kiểm tra của nó.

Định lý này xác định quan hệ giữa véctơ kiểm tra và các tổ hợp mã trong mã
nhóm.
- Định nghĩa ma trận kiểm tra:
Khi viết các véctơ kiểm tra của mã nhóm thành một bảng, sẽ nhận được một
ma trận có (n-k) hàng và n cột. Ma trận đó được gọi là ma trận kiểm tra của mã ký
hiệu là H(n,k).
Mỗi hàng của ma trận kiểm tra (véctơ kiểm tra) là một quan hệ kiểm tra, nó


nói lên mối liên hệ giữa một phần tử dư với một phần tử tin tức. Trong mỗi hàng
của ma trận con số 1 nằm ở vị trí của phần tử tin tức, chỉ ra những phần tử mang tin
nào tham gia vào sự thiết lập phần tử kiểm tra. Con số 1 nằm ở vị trí phần tử kiểm

tra, chie ra phần tử kiểm tra nào được thiết lập bởi tổng các phần tử tin tức đó.
Mỗi hàng của ma trận kiểm tra, khác nhau ít nhất là dấu của những phần tử
có vị trí tương ứng với các phần tử dư. Nên các hàng của nó độc lập tuyến tính với
nhau.
Vậy ma trận H(n,k) là ma trận sinh của mã (n,(n-k)) mà mỗi từ mã của nó đều
trực giao với các phần tử mã (n,k) cho trước.
Mã được tạo ra bởi ma trận H(n,k) được gọi là không gian không của mã (n,k)
hoặc mã đối ngẫu.
- Quan hệ giữa từ mã αi và ma trận kiểm tra.
Dựa vào ma trận kiểm tra có thể tính được các quan hệ kiểm tra đối với bất
kỳ từ mã αi nào bằng cách nhân tổ hợp mã đó với ma trận chuyển vị của ma trận
kiểm tra H(n,k) kết quả thu được là một véctơ không (ký hiệu là Z). Với HT(n,k) là ma

trận chuyển vị của H(n,k) ta có:
αi.HT(n,k) = Z

(1.13).

Trong đó: Z = ( 01,02
,...,
30 )
n phần tử
Trên cơ sở tích αi.HT(n,k) người ta xây dựng phương pháp giải mã nhóm.
* Dạng chính tắc của ma trận kiểm tra H(n,k):
H(n,k)=[I(n-k).R/((n-k),k)]


(1.14).

Trong đó: I(n-k) là ma trận đơn vị có (n-k) hàng và (n-k) cột. Nằm ở vị trí
phần tử dư của tổ hợp mã.
R/((n-k),k) là ma trận có (n-k) hàng và k cột nằm ở vị trí tương ứng với các phần


tử tin. Mỗi hàng của ma trận R/((n-k),k) chỉ ra những phần tử tin nào của tổ hợp mã
tham gia vào phép kiểm tra.
Ma trận H/((n-k),k) được xây dựng theo định lý sau:
- Định lý 2: Nếu ma trận G(n,k) là ma trận sinh chính tắc của mã nhóm (n,k)

thì không gian không của mã này được sinh ra bởi ma trận H(n,k).
H(n,k)=[I(n,k).RT(k,(n-k))]

(1.15).

Chứng minh: Vì mỗi tổ hợp mã bất kỳ khi nhân với ma trận HT(n,k) sẽ được
véctơ không có (n,k) bậc. Ta cũng nhận được kết quả như thế khi nhân mỗi hàng
của ma trận sinh G(n,k) với ma trận chuyển vị của ma trận kiểm tra HT(n,k). Tức là
tích G(n,k).HT(n,k) sẽ cho ma trận 0 có k hàng và (n-k) cột.
G(n,k).HT(n,k) = 0
Khi giải phương trình ma trận trên ta được ma trận kiểm tra tức là:
R/((n-k),k) = RT(k,(n-k))

- Kết luận: Ma trận sinh là ma trận kiểm tra của mã (n,k) có mối quan hệ chặt
chẽ. Nếu biết được ma trận này có thể suy được ma trận kia và ngược lại.
1.2.2.2. Các tính chất cơ bản của mã nhóm.
- Định lý 1: Khoảng cách mã nhỏ nhất của mã nhóm bằng trọng số nhỏ nhất
của từ mã khác không.
Định lý này cho phép ta xác định khoảng cách mã nhỏ nhất dmin của mã
nhóm.
a. Tính chất sửa của mã nhóm.
Hiệu quả dùng mã sửa sai để truyền tin tức phụ thuộc vào khoảng cách mã
nhỏ nhất dmin. Nhưng nếu tính dmin theo định lý 1 thì phải khảo sát tất cả các từ mã.
Đối với mã nhóm (n,k) để tìm dmin không cần phải khảo sát tất cả các từ mã mà dựa
vào ma trận kiểm tra theo định lý sau:

- Định lý 2: Khoảng cách mã nhỏ nhất dmin của mã nhóm bằng số lượng cột ít


nhất, phụ thuộc tuyến tính của ma trận kiểm tra H(n,k).
b. Phương pháp giải mã nhóm.
Ta đã biết: Với mọi tổ hợp αi thuộc mã thì tích của nó với ma trận HT(n,k) phải
bằng 0.
αi.HT(n,k) = 0 ∀α i ∈ mã.

(1.16).

Điều này cũng có nghĩa nếu αi là tổ hợp không thuộc mã thì biểu thức (1.16)

phải khác không.
αi.HT(n,k) ≠ 0 ∀α i ∉ mã.

(1.17).

Điều đó cho phép ta sử dụng mã nhóm để phát hiện và sửa lỗi như sau:
* Với mã nhóm dùng để phát hiện sai: Chỉ cần đem nhân tổ hợp ri nhận được
với HT(n,k).
- Nếu ri.HT(n,k) = 0 kết luận tổ hợp nhận được là tổ hợp đúng.
- Nếu ri.HT(n,k) ≠ 0 kết luận tổ hợp nhận được là tổ hợp sai.
* Với mã nhóm dùng để sửa lỗi: Giả sử thu được tổ hợp r*i bị lỗi ta thấy:
r*i.HT(n,k)=(αi + ei).HT(n,k) = ei.HT(n,k)


(do αi.HT(n,k) = 0).

Ký hiệu: ei.HT(n,k)=Si, Si được gọi là “Syndrom” (triệu chứng lỗi) thứ i.
Syndrom là một véctơ đặc trưng cho ei và có số phần tử bằng số cột của
HT(n,k) tức là số hàng của H(n,k) và bằng r = n-k.
Trong đó: r*i là tổ hợp nhận được.
αi là tổ hợp thuộc mã.
ei là tổ hợp lỗi.
Có các trường hợp xảy ra như sau:
- Nếu ei trùng với một tổ hợp thuộc mã (n,k) thì khi đó r*i cũng trùng với một
tổ hợp thuộc mã (n,k) (vì tổng của αi + ei cũng thuộc mã nên sẽ được r*i thuộc mã)

(theo tính chất tổng khép kín). Kết quả tích r*i.HT(n,k) = Si = 0. Lúc này việc sửa bị


sai (không phát hiện được sai) nghĩa là tổ hợp này biến thành tổ hợp khác.
- Nếu ei không trùng với tổ hợp nào của mã (n,k) khi đó Si ≠ 0 và đặc trưng
cho ei. Khi đó về nguyên tắc thuật toán sửa sai như sau:
Nhân tổ hợp nhận được r*i với HT(n,k) thu được Syndrom Si, tương ứng với nó
sẽ tìm ei. Sau đó cộng ei với r*i sẽ nhận được ri đúng.
* Các bước tiến hành sửa lỗi:
- Mỗi từ mã nhận được tính Syndrom tương ứng với nó, từ đó xác định
phương án lỗi có khả năng hơn cả trong từ mã thu.
- Tiến hành cộng modul 2 từ mã thu với lỗi có khả năng.

- Trong chương 1 ta đã biết để bộ mã sửa được tất cả các lỗi bội t thì phải
t

thoả mãn điều kiện sau: 2 n− k ≥ ∑ C ni (giới hạn Hamming).
i =1

Trường hợp mã phát hiện và sửa lỗi nếu bội lỗi vượt quá một giá trị xác định
nào đó thì chỉ phát hiện mà không sửa (giá trị là t). Nếu bội lỗi nhỏ hơn t thì sẽ
được sửa, t được xác định từ giới hạn Hamming.
(Trong thiết bị giải mã người ta đã cho nhớ sẵn

t


∑C
i =1

i
n

Syndrom và dựa vào

đó để sửa lỗi, với giá trị khác của Syndrom thì phát hiện lỗi).
b. Tính chất rút ngắn của mã nhóm.
Trên cơ sở mã nhóm (n,k) có thể xây dựng mã nhóm rút ngắn (n-i, k-i) mà

hiệu quả sửa sai vẫn không giảm. Khi đó trong mã nhóm rút ngắn, mỗi tổ hợp chỉ
dùng (k-i) phần tử mang tin.
* Cách cấu tạo:
Mã nhóm (n-i, k-i) nhận được từ mã nhóm (n,k) như sau: Từ ma trận chính
tắc G(n,k) tiến hành bỏ đi k hàng cuối, sau đó bỏ đi i cột toàn 0 mới được tạo thành.
* Giải thích khả năng sửa sai không thay đổi:


Ma trận kiểm tra của mã rút ngắn (n-i, k-i) vẫn có số hàng như cũ song đã
bớt đi i cột. Do đó số cột phụ thuộc tuyến tính ít nhất không giảm trong H(n-i,k-i). Vì
thế dmin không giảm, tức là khả năng sửa sai không giảm.
c. Đánh giá hiệu quả của mã nhóm:

Hiệu quả của mã được đánh giá qua xác suất đưa tổ hợp bị sai (sau khi đã
giải mã) tới bộ nhận tin.
* Trong chế độ sửa sai:
Nếu mã sửa được tất cả các lỗi bội t và không sửa được lỗi có bội lớn hơn
khi đó xác suất lỗi chế độ sửa sai sẽ bằng:
n

Pss= ∑ P(i, n) = P(> t , n) .
i = t +1

P(n,i): Xác suất có bội lỗi i trong tổ hợp n phần tử.
P(>t,n): Xác suất có bội lỗi t trở lên trong tổ hợp n phần tử.

* Trong chế độ phát hiện sai:
Đối với chế độ phát hiện sai nếu lỗi bội i ≥ dmin thì sai có thể phát hiện được
hoặc không phát hiện được. Một tổ hợp mã khi sai với bội lỗi i > dmin có thể rơi vào
một trong các tổ hợp cấm và do đó vẫn phát hiện được. Vì thế xác suất phát hiện bị
sai sẽ nhỏ hơn xác suất bị bội lỗi i ≥ dmin người ta tính được:
Pp.h.sai ≅

1
2

n− k


n

∑ P(i, n) = 2

i = d min

1
n− k

P(≥ d min , n) .

P(≥dmin, n) là xác suất có bội lỗi i ≥ dmin trong tổ hợp n phần tử.

* Trong chế độ phát hiện và sửa sai:
Với mọi bội lỗi i ≤ t sẽ sửa được hết. Còn mọi bội lỗi i ≤ dmin –(t+1) sẽ được
phát hiện. Các bội lỗi lớn hơn dmin – (t+1) sẽ được sửa sai hoặc được phát hiện sai.
(Nếu nó làm một tổ hợp mã sai thành một tổ hợp mã dùng khác cho nên không phát
hiện được sai hoặc phát hiện được sai).


Do đó: Psai giải mã = Psai phát hiện + Psai sửa
t

∑C
Và thực tế tính: Pgiải mã sai ≅


j =0

j
n

n

. ∑ P (i, n)

2 n− k


(1.18).

i = d min

Trong bảng (1.1) chỉ ra công thức tính đối với trường hợp các lỗi độc lập và
phụ thuộc trong các chế độ khác nhau dùng mã sửa sai. Trong đó P là xác suất lỗi
của mỗi phần tử tin tức, α là chỉ số hợp nhóm của lỗi.
Chế độ dùng mã

Xác suất có lỗi trong từ mã sau khi giải mã
Lỗi độc lập
n


∑C

Sửa lỗi

i = t +1

i
n

Lỗi phụ thuộc


P i (1 − p ) n− i

P(

1 n i i
C P (1−p)n−i
n−ki=d n

Phát hiện lỗi




2

2

t

Sửa và phát hiện lỗi

∑C
j =0

2


n− k

n 1−α
)
t +1

P n 1− α
( )
n− k d

t


j
n

∑C

n

∑C

i = d −t


i
n

P i (1 − p ) n−i

P

j =0

2

n− k


j
n

(

n 1−α
)
d −t

Bảng 1.1
1.3. Mục đích mã hoá và các điều kiện khi lập mã.

Một số mục đích của việc mã hoá:
* Nhằm phối hợp giữa nguồn tin và nơi nhận tin.
* Nhằm tăng hiệu suất của thông tin.
* Nhằm tăng độ tin cậy.
* Nhằm tăng sự bảo mật thông tin.
Khi thiết lập một bộ mã nào đó, ta phải tuân theo một số điều kiện sau:
a. Điều kiện chung:
Đảm bảo tính đơn trị nghĩa là khi nhận được một dãy tín hiệu thì phải tách ra


được thành từng từ mã một và phép tách này phải duy nhất.
b. Điều kiện riêng.

Đối với phương pháp xây dựng mã thông kê tối ưu (mã nén) thì phải làm sao
cho độ dài trung bình của mã là nhỏ nhất, còn đối với mã chống nhiễu thì phải cho
phép phát hiện và sửa sai càng nhiều càng tốt.
1.4. Các cách phân loại mã.
Có nhiều cách để phân loại mã, dưới đây là một số cách tiêu biểu:
1.4.1. Phân loại theo trọng lượng từ mã:
- Mã có trọng lượng không đổi.
- Mã có trọng lượng thay đổi.
1.4.2. Phân loại theo chiều dài từ mã.
- Mã có chiều dài không đổi (mã đều).
- Mã có chiều dài thay đổi (mã không đều).
1.4.3. Phân loại theo hiệu suất thông tin.

- Mã tối ưu.
- Mã chưa tối ưu.
1.4.4. Phân loại theo độ tin cậy.
- Mã không có khả năng phát hiện sai và sửa sai.
- Mã có khả năng phát hiện sai và sửa sai.
1.4.5. Phân loại theo cơ số của bộ mã.
- Theo lý thuyết thì có thể xây dựng một bộ mã có cơ số bất kỳ. Tuy
nhiên thực tế mã cơ số 2 (nhị phân) là thông dụng nhất.
1.4.6. Phân loại theo khoảng cách d giữa hai từ mã liền nhau.
- d ≠ const: Mã vòng.
- d = const: Mã grây, mã johnson.
1.4.7. Phân loại theo độ thừa của bộ mã.



- Mã không có độ thừa (mã đầy).
- Mã có độ thừa (mã vơi).
1.4.8. Phân loại theo các dấu thông tin và các dấu kiểm tra.
- Mã khối.
- Mã liên tục.
1.5. Các phương pháp điều khiển lỗi.
Một vấn đề đặt ra trong các hệ thống thông tin đó là dưới tác động của nhiễu
và tạp âm lên kênh thì phải có biện pháp gì để dữ liệu đưa tới người sử dụng không
bị sai lỗi. Đặc biệt trong hệ thống thông tin số yêu cầu tỷ lệ lỗi bít phải rất nhỏ
(thông thường BER ≤ 10-6 đối với hệ thống truyền thoại, BER ≤ 10-9 đối với hệ

thống truyền hình) BER: Error Ratio - Tỷ lệ lỗi bít.
Để tăng tính hiệu quả và độ tin cậy của hệ thống thông tin việc phát hiện và
loại bỏ các lỗi luôn là vấn đề cơ bản trong thông tin số liệu. Trong thực tế có hai
phương thức chính để khắc phục sai lỗi đó là:
+ Phương thức sửa lỗi tại đầu thu (phương thức FEC: Forword Error
Correction).
+ Phương thức tự động yêu cầu phát lại (phương thức ARQ: Automatic
Reqeatic Request).
Cả hai phương thức trên đều dựa vào mã phát hiện lỗi hay mã sửa lỗi mà ta
gọi chung là các mã điều khiển lỗi.
1.5.1. Các phương thức ARQ cơ bản.
Trong mục này ta chỉ xem xét một cách tổng quát phương thức ARQ. Cơ sở

của phương pháp tự động yêu cầu phát lại đó là ba loại ARQ cơ bản:
+ ARQ dừng và đợi (ARQ stop and wait).
+ ARQ lùi lại N (ARQ goto back N).
+ ARQ phát lại có chọn lọc (ARQ selective repeat).


Người ta có thể chia ra làm hai loại là ARQ dừng và đợi và ARQ liên tục bao
gồm hai phương pháp ARQ còn lại.
1.5.2. Phương thức sửa lỗi tại đầu thu (FEC).
Nguyên lý cơ bản của phương thức FEC là với dữ liệu thông tin cần truyền
nó sẽ thêm vào một số phần tử dư và truyền đi cả hai, dữ liệu thông tin và phần dư
cho bên nhận. Tại đầu thu, với những tín hiệu bị lỗi trong quá trình truyền do tác

động của nhiễu tạp trên kênh truyền sẽ được xử lý bởi bộ giải mã. Bộ giải mã này
sẽ dựa vào phần dư để tìm ra lỗi cần sửa.
Phương thức FEC chủ yếu là dựa vào việc mã hoá dữ liệu bằng các mã sửa
lỗi.
1.6. Cơ chế điều khiển lỗi.
1.6.1. Mô hình toán học của kênh truyền.
Trong quá trình truyền tin trên kênh (từ nơi gửi tới nơi nhận) do tác động của
nhiễu, từ mã nhận được có thể bị sai lệch so với từ mã truyền đi.
Sau đây sẽ xét điều kiện sử dụng mã đều nhị phân trong kênh đối xứng nhị
phân.
1-q


0

q

q
1

0

1-q

1


Hình 1.4: Mô hình kênh đối xứng nhị phân.
Giả sử xác suất thu sai một dấu mã khi truyền nó qua kênh là q và việc xảy ra
sai của các dấu là độc lập nhau. Khi này xác suất thu đúng một dấu mã nào đó sẽ là
(1-q) và xác suất thu đúng một từ mã dài n sẽ là (1-q)n. Do đó xác suất thu sai một


từ mã sẽ là:
Psai=Ps=1-(1-q)n
Thông thường q <<

(1.19).


1
nên (1-q)n ≈ 1-n.q.
n

Vì vậy xác suất thu sai một từ mã nào đó được tính gần đúng theo công thức:
Ps = n.q

(1.20).

Ta thấy xác suất thu sai một từ mã tỷ lệ với độ dài từ mã n và xác suất sai
một dấu mã nào đó.

Trong thực tế, để đảm bảo kỹ thuật truyền tin, xác suất thu sai một từ mã
không được vượt quá một giới hạn cho phép.
Ps ≤ Ps cho phép.
Ta có: n.q ≤ Ps cho phép.
Hay: q ≤

Ps _ cho _ phep
n

.

Xác suất thu sai từ mã có i dấu bị sai:

n

Ps = ∑ Bi qi

(1.21).

i =1

Trong đó: Bi số trường hợp có i dấu bị sai.
Bi = C ni =

n!

.
i!(n − i )!

qi là xác suất xuất hiện một trường hợp sai i dấu.
qi = qi(1-q)n-i.
q là xác suất sai một dấu nào đó.
Công thức (1.22) còn được viết dưới dạng:
n

Ps = ∑ C ni q i (1 − q) n− i
i =1


Trong đó q < 0,5 và qi+1 < qi.

(1.22).