You are on page 1of 37

Nguyên lý truyền thông

CHƯƠNG 3: MÃ HÓA NGUỒN VÀ MÃ HOÁ


KÊNH THÔNG TIN
1. Khái niệm
1.1. Hệ thống truyền tin
Si(t) S0(t)
NguồnKênhNhận
tintintin
Nhiễu
Hình 3.1: Mô hình hệ thống thông tin
 Nguồn tin: là tập hợp các tin, hệ thống truyền tin dùng để lập các bản tin khác
nhau trong quá trình 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: Nguồn tiếng nói, âm nhạc, hình ảnh.
- Quá trình ngẫu nhiên rời rạc: Một quá trình ngẫu nhiên liên tục sau khi
được lượng tử hóa theo mức.
- Chuỗi ngẫu nhiên liên tục: Nguồn liên tục gián đoạn theo thời gian
(PAM, PPM)-không bị lượng tử hóa.
- Chuỗi ngẫu nhiên rời rạc: Trong hệ thống thông tin xung có lượng tử hóa
như PCM.
 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.
S0(t) = Nm Si(t) + Na(t)
+ Si(t): Tín hiệu vào & S0(t): tín hiệu ra của kênh tin
+ Nm(t), Na(t) : Đặc trưng cho nhiễu nhân, nhiễu cộng.
Trong thực tế: S0(t) = Nm Si(t)*H(t) + Na(t); H(t): đáp ứng xung của kênh.
 Nhận tin: Là đầu cuối của hệ thống truyền tin làm nhiệm vụ khôi phục tin tức
ban đầu.
Nguồn tin Nhận tin

Mã hóa nguồn Giải mã nguồn


Hình 3.2: Hệ
thống truyền
tin số (rời Mã hóa kênh Giải mã kênh

rạc)

Bộ điều chế Giải điều chế

Phát cao tần Kênh tin Thu cao tần

GV : Trần Duy Cường - Phạm Hùng Kim 1


Nguyên lý truyền thông

 Hai vấn đề cơ bản của hệ thống truyền tin:


+ Hiệu suất: tốc độ truyền tin của hệ thống.
+ Độ chính xác: khả năng chống nhiễu của hệ thống.
Mô tả trạng thái truyền tin có nhiễu
Giả sử, một thông báo được truyền đi trên một kênh truyền nhị phân rời rạc.
Thông báo cần truyền được mã hóa thành dãy số nhị phân (0,1) và có độ dài
được tính theo đơn vị bit. Giả sử 1 bit truyền trên kênh nhiễu với xác suất 1/4
(hay tính trung bình cứ truyền 4 bit thì có thể nhiễu 1 bit).

Minh họa kỹ thuật giảm nhiễu

Trong kỹ thuật truyền tin, người ta có thể làm giảm sai số khi nhận tin bằng cách
truyền lặp lại 1 bit với số lẻ lần.

Ví dụ: truyền lặp lại 3 cho 1 bit cần truyền (xác suất nhiễu 1 bit bằng 1/4).
Khi nhận 3 bit liền nhau ở cuối kênh được xem như là 1 bit. Giá trị của bit này
được hiểu là 0 (hay 1) nếu bit 0 (bit 1) có số lần xuất hiện nhiều hơn trong dãy 3
bit nhận được liền nhau. Ta cần chứng minh với phương pháp truyền này thì xác
suất truyền sai thật sự < 1/4 (xác suất nhiễu cho trước của kênh truyền).

Sơ đồ truyền tin:
Bit truyền Truyền lặp 3 lần Nhận 3 bit Giải mã Xác suất
0 000 000 0 27/64
000 001 0 9/64
000 010 0 9/64
000 100 0 9/64
000 101 1 3/64
000 011 1 3/64
000 110 1 3/64
000 111 1 1/64
1 111 000 0 1/64
111 001 0 3/64
111 010 0 3/64
111 100 0 3/64
111 011 1 9/64
111 110 1 9/64

GV : Trần Duy Cường - Phạm Hùng Kim 2


Nguyên lý truyền thông

Giả sử Xi xác định giá trị đúng hay sai của bit thứ i nhận được ở cuối kênh
truyền với Xi =1 nếu bit thứ i nhận được là đúng và Xi = 0 nếu bit thứ i nhận
được là sai. Theo giả thiết ban đầu của kênh truyền thì phân phối xác suất của
Xi có dạng Bernoulli b(1/4):
Xi 1 0
P 3/4 1/4
Gọi Y ={X1 + X2 + X3} là tổng số bit nhận sai sau 3 lần truyền lặp cho 1 bit.
Trong trường hợp này Y tuân theo phân phối Nhị thức B(p,n), với p=1/4 (xác
suất truyền sai một bit) và q =3/4 (xác suất truyền đúng 1 bit): Y ~ B(i,n)

Hay:

p(Y = i) = Ci piqn–i vớ i Ci = n!
n n i!(n–i)!

Xác suất truyền sai khi Y  {2,3} là:


P = p(Y  2) = p(Y = 2) + p(Y = 3) = 2 1 3 3 0
2 1 3 3 10
C 3( ) +C ( ) ( ) =
4 4 3 4 4 64

1.2. Số đo thông tin


1.2.1. Lượng tin
Nguồn A có m ký hiệu đẳng xác suất, một tin do nguồn A hình thành là một
chuỗi x gồm n ký hiệu ai bất kỳ (ai  A).
Chúng ta sẽ xác định lượng tin chứa trong một tin. Như vậy, trước tiên ta phải
tìm lượng tin chứa trong một tin ai
 Khi m ký hiệu của nguồn tin có xác suất khác nhau và không độc lập
thống kê với nhau thì:
I(xi) = log [1/p(ai)] (3.1)
 Lượng tin chứa trong một chuỗi x gồm n ký hiệu: n lần lượng tin của 1 ký
hiệu (vì đẳng xác suất).
I(x) = n.logm (3.2)
Đơn vị lượng đo thông tin thường được chọn là cơ số 2.
 Lượng tin chứa trong một ai bất kỳ, do đẳng xác suất nên mỗi tin ai đều có
xác suất là p(ai)=1/m:
I(ai)=logm (3.3)
 Lượng tin riêng: Đối với mỗi tin xi của nguồn x đều có một lượng tin
riêng được đánh giá bằng:
I(xi) = -log p(xi) (3.4)
 Lượng tin còn lại của xi sau khi đã nhận được yj được xác định bằng:
I(xi/yj) = -log p(xi|yj) (3.5)

GV : Trần Duy Cường - Phạm Hùng Kim 3


Nguyên lý truyền thông

 Lượng tin tương hỗ:


Để xác định lượng tin về xi chứa trong yi chúng ta cần phải biết lượng tin ban đầu
của xi và lượng tin còn lại của xi sau khi đã nhận được yi, lượng tin tương hỗ sẽ là
hiệu của hai lượng tin này: p(xi|yi)
I(x ,y ) = I(x ) — I(x |y ) = log (3.6)
i i i i i
p(xi)
 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 (trị trung bình theo tập hợp)
n

I(X) = — Σ p(xi)log p(xi) (3.7)


i=0

Ví dụ: X = {x0, x1} với xác suất P(x0) = 0,99; P(x1) = 0,01
I(X) = -0,99log20,99 – 0,01log20,01 = 0,081 [bit/ký hiệu]
Trong khi đó lượng tin của x1 khá lớn: I(x1) = -log20,01 = 6,5 [bit/ký hiệu]
 Lượng tin tương hỗ trung bình:
p(x,
I(X, Y) = — Σ p(x, y)log
y) (3.8)
p(x)
XY
 Lượng tin riêng trung bình có điều kiện:
n

I(Y/X) = — Σ p(x, y)log p(y|x) (3.9)


i=0
1.2.2. Entropy 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:
n

H(X) = I(X) = — Σ p(x)log p(x) (3.10)


i=0
Ví dụ về entropy

Trước hết, ta cần tìm hiểu một ví dụ về khái niệm độ đo của một lượng tin
dựa vào các sự kiện hay các phân phối xác suất ngẫu nhiên như sau:
Xét 2 biến ngẫu nhiên X và Y trong đó X={1, 2, 3, 4, 5} có phân phối đều hay
p(X=i) = 1/5 và Y={1, 2} cũng có phân phối đều hay p(Y=i) = 1/2.
Bản thân X và Y đều mang một lượng tin và thông tin về X và Y chưa biết
do chúng là ngẫu nhiên. Do đó, X hay Y đều có một lượng tin không chắc chắn
và lượng tin chắc chắn, tổng của 2 lượng tin này là không đổi và thực tế nó bằng
bao nhiêu thì ta chưa thể biết. Lượng tin không chắc chắn của X (hay Y) được
gọi là Entropy.
Tuy nhiên, nếu X và Y có tương quan nhau thì X cũng có một phần lượng tin
không chắc chắn thông qua lượng tin đã biết của Y (hay thông tin về Y đã được

GV : Trần Duy Cường - Phạm Hùng Kim 4


Nguyên lý truyền thông

biết). Trong trường hợp này, một phần lượng tin không chắc chắn của thông
qua lượng tin đã biết của Y được gọi là Entropy có điều kiện.
Nhận xét về độ đo lượng tin

Rõ ràng, ta cần phải xây dựng một đại lượng toán học rất cụ thể để có thể đo
được lượng tin chưa biết từ một biến ngẫu nhiên. Một cách trực quan, lượng tin
đó phải thể hiện được các vấn đề sau:

Một sự kiện có xác suất càng nhỏ thì sự kiện đó ít xảy ra, cũng có nghĩa là tính
không chắc chắn càng lớn. Nếu đo lượng tin của nó thì nó cho một lượng tin
không biết càng lớn.

Một tập hợp các sự kiện ngẫu nhiên (hay Biến ngẫu nhiên) càng nhiều sự kiện
có phân phối càng đều thì tính không chắc chắn càng lớn. Nếu đo lượng tin của
nó thì sẽ được lượng tin không biết càng lớn. Hay lượng tin chắc chắn càng nhỏ.

Một phân phối xác suất càng lệch nhiều (có xác suất rất nhỏ và rất lớn) thì tính
không chắc chắn càng ít và do đó sẽ có một lượng tin chưa biết càng nhỏ so với
phân phối xác suất đều hay lượng tin chắc chắn của nó càng cao.

Vậy Entropy là một đại lượng toán học dùng để đo lượng tin không chắc (hay
lượng ngẫu nhiên) của một sự kiện hay của phân phối ngẫu nhiên cho trước
(uncertainty measure).

 Đặc tính của Entropy H(X):


+ H(X)  0: luôn luôn dương hoặc bằng 0.
+ H(X) = 0 khi nguồn tin chỉ có một ký hiệu (p(xi) = 1)
+ H(X)max khi xác suất xuất hiện các ký hiệu của nguồn bằng nhau.
VD: X = {x0, x1} có 2 tin và có xác suất là P0, P1.
Vậy theo luật phân bố xác suất : P0 + P1 = 1  P1 = 1 – P0
H(X) = - P0logP0 – P1logP1 = - P0logP0 – (1 – P0)log(1 – P0)
H(X) = 0 khi P0 = 1 hay P1 = 1.
H(X)max khi P0 = P1 = ½  H(X)max = 1
 Entropy đồ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.

H(XY) = — Σ p(x, y)log p(x, y) (3.11)


XY

GV : Trần Duy Cường - Phạm Hùng Kim 5


Nguyên lý truyền thông

 Entropy có điều kiện:

H(X/Y) = — Σ p(x, y)log p(x|y) (3.12)


XY
1.2.3. Thông lượng của kênh thông tin
 Tốc độ thiết lập tin của nguồn:
Vd: Con người vì kết cấu của cơ quan phát âm hạn chế nên 1 giây chỉ phát
âm được từ 5 đến 7 ký hiệu âm tiết trong lời nói thông thường, trong khi đó
máy điện báo có thể tạo ra từ 50 tới 70 ký hiệu trong 1 giây.
R= n0.H(X) [bps] (3.13)
+ H(X): Entropy của nguồn.
+ n0: Số ký hiệu được lập trong một đơn vị thời gian (tốc độ symbol).
 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 Entropy.
3.2.1 Thông lượng kênh rời rạc không nhiễu:
C = Rmax = n0. H(X)max [bps] (3.14)
Độ dư của nguồn:
H(X)
r =1— (3.15)
max
H(X)
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.
3.2.2 Thông lượng kênh rời rạc có nhiễu:
R = noI(X;Y) = n0 .[H(X)-H(X|Y)] [bps] (3.16)
 Tốc độ lập tin cực đại trong kênh có nhiễu:
C = Rmax = n0 .[H(X)-H(X|Y)]max [bps] (3.17)

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ếu độ 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ã:
N

n¯ = Σ (3.18)
p(xi )ni
i=1

GV : Trần Duy Cường - Phạm Hùng Kim 6


Nguyên lý truyền thông

+ p(xi): xác suất xuất hiện tin xi của nguồn X được mã hóa.
+ ni : độ dài từ mã tương ứng với tin xi.
+ N: Tổng số từ mã tương ứng với tổng số các tin của xi
 Tổng hợp các tổ hợp mã có thể có được: N0=2n với m=2, nếu:
+ N<N0 ta gọi là mã vơi.
+ N>N0 ta gọi là mã đầy.
ª Đ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ã.
 Đ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.2. Bảng mã không tách được


Bảng mã không tách được là bảng mã mà khi mã hóa thông báo Msg ta sẽ nhận
được một dãy các từ mã ws, và khi giải mã dãy các từ mã ws thì ta có thể
nhận được nhiều thông báo Msg khác nhau.

Ví dụ: Xét biến ngẫu nhiên X={x1, x2, x3, x4} có bảng mã W={w1=0,
w2=1, w3=01, w4=10}.

Giả sử thông báo nguồn có nội dung: x1x2x3x4x3x2x1. Khi đó dãy mã tương
ứng viết từ W có dạng: 0101100110.

Nếu giải mã tuần tự từ trái qua phải ta nhận kết quả: x1x2x1x2x2x1x1x2x2x1.
Nhưng nếu bằng phương pháp khác ta có thể nhận được kết quả: x 3x3x4x3x4 và
nhiều thông báo khác nữa.

Nhận xét: Bảng mã giải mã không tách được là bảng mã mà trong đó tồn tại
ít nhất một từ mã này là mã khóa của một hay nhiều từ mã khác trong bộ mã
(ví dụ từ mã w1=0 hay w2=1 là mã khóa của w3).

2.1.3. Bảng mã tách được


Bảng mã tách được là bảng mã mà khi mã hóa thông báo Msg ta sẽ nhận được
dãy các từ mã ws, và khi giải mã dãy các từ mã ws thì ta chỉ nhận được một
thông báo duy nhất là Msg ban đầu.

Ví dụ: Xét biến ngẫu nhiên X = {x1, x2} có bảng mã tương ứng W = {w1 = 0, w2
= 01}.

Phương pháp giải mã được sử dụng như sau: chỉ giải mã khi nào đã nhận

GV : Trần Duy Cường - Phạm Hùng Kim 7


Nguyên lý truyền thông

được đoạn mã với độ dài bằng độ dài của từ mã dài nhất.

Giả sử dãy mã nhận được (cần giải mã) là: 0010000101001.

Sử dụng phương pháp giải mã trên ta nhận được duy nhất dãy thông báo gốc:

x1x2x1x1x1x2x2x1x2.

Có thể chi tiết hóa các bước giải mã dãy từ mã trên như sau:

Nhận được đoạn 00 -> Giải ra x1, còn lại 0.


Nhận tiếp 1 ->01 -> Giải ra x2.
Nhận tiếp 00 -> Giải ra x1, còn lại 0.
Nhận tiếp 0 -> 00 -> Giải ra x1, còn lại 0.
Nhận tiếp 0 -> 00 -> Giải ra x1, còn lại 0.
Nhận tiếp 1 -> 01 -> Giải ra x2.
Nhận tiếp 01 -> Giải ra x2.
Nhận tiếp 00 -> Giải ra x1, còn lại 0.
Nhận tiếp 1 -> 01 -> Giải ra x2.
Kết quả dãy thông báo là:
x1x2x1x1x1x2x2x1x2.

Kết luận: Bảng mã tách được là bảng mã mà trong đó không tồn lại từ mã này
là mã khóa từ mã khác, tuy nhiên vẫn có thể tồn tại từ mã này là tiền tố (phần
đầu) của từ mã kia.

2.1.4. Phương pháp biểu diễn mã


Các bảng mã:

Tin a1 a2 a3 a4 a5
Từ mã 00 01 100 1010 1011

Mặt tọa độ mã:


n n–1
k–
bi = Σ akm hay bi = Σ akmk
1 k=0
k=1

aK: trị riêng của các ký hiệu thứ k kể từ trái sang phải với nhị phân aK= 0
hay 1;
k: số thứ tự của ký hiệu trong từ mã.
m: là cơ số của mã (nhị phân m=2).
Ví dụ: trong số từ mã nhị phân có 4 ký hiệu: 1011
b  1 20  0  21  1 22  1 23  13

GV : Trần Duy Cường - Phạm Hùng Kim 8


Nguyên lý truyền thông

Mỗi từ mã sẽ hoàn toàn xác định khi ta xác định được cặp (n,b) của nó. Như vậy
mỗi từ mã được biểu diễn 1 cặp tọa độ (n,b) duy nhất.
Đồ hình mã:
Cho phép trình bày gọn hơn các bảng mã, đồng thời nó cho ta thấy rõ các tín chất
quan trọng của mã hiệu một cách trực quan hơn.
Cây mã với bộ mã: 00, 01, 100, 1010, 1011.

0 1

1 2
0 1 0

3
a2(01)
a1(00) 1
0

4 Khi rút gọn cây mã thì ký hiệu V là hoặc (OR)


a3 (100) 0 1

a4(1010) a5(1011)

Hình 3.3: Cây Mã


Hàm cấu trúc của mã:
2 ni = 2
G(ni) = {1 ni = 3
2 ni = 4
Điều kiện để mã phân tách được :
 Mã có tính prefix.
- Bất kỳ dãy các từ mã nào của bộ mã cũng không được trùng với phần đầu
một dãy từ mã khác của cùng bộ mã.
- Mã có tính prefix nếu bất kỳ tổ hợp mã nào cũng không phải là prefix của
một tổ hợp nào khác cùng bộ mã. Điều kiện để mã có tính prefix:
n

Σ 2–jG(j) ≤ 1 (m = 2) (3.19)
j=1
 Mã hệ thống có tính prefix được xây dựng từ một mã prefix nào đó bằng
cách lấy một số tổ hợp của mã prefix 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
prefix.

GV : Trần Duy Cường - Phạm Hùng Kim 9


Nguyên lý truyền thông

 Ví dụ: Lấy bộ mã prefix 1, 00, 010, 011


- Các tổ hợp sơ đẳng: 1, 00, 010
- Một tổ hợp cuối: 011
 Gọi :
- n1, n2,…, ni 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 nj
bằng :
g(nj) = g(nj-n1) + g(nj-n2) + …+ g(nj-ni) (3.20)
Trong đó: nj  1; g(0) = 1 ; g(nj < 0) = 0
 Nếu chỉ dùng một tổ hợp cuối , hàm cấu trúc mã sẽ là:
G(nj) = g(nj- ) (3.21)
+ Từ (3.20) và (3.21) ta có công thức truy chứng tính G(nj)
G(nj) = G(nj-n1) + G(nj-n2) + …+ G(nj-ni) (3.22)
Trong đó: nj  +1; G(nj = ) = 1; G(nj < ) = 0
+ Từ (3.20) ta có: n1=1, n2=2, n3=3 và  =3
 g(nj) = g(nj-1) + g(nj-2) + g(nj-3)
g(nj=1) = g(0) + g(-1) + g(-2) = 1  có 1 dãy 1
g(nj=2) = g(1) + g(0) + g(-1) = 2  có 2 dãy: 00 và 11
g(nj=3) = g(2) + g(1) + g(0) = 4  có 4 dãy: 111, 100, 001, 010
+ Từ (3.22) ta có:
G(nj) = G(nj-1) + G(nj-2) +G(nj-3)
Trong đó: nj=  +1=4 ; G(nj=3) = 1 ; G(nj<3) = 0
G(4) = G(3) + G(2) + G(1) = 1  có 1dãy 1011
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
+ Ta có thể tìm G(nj) từ công thức (3.21) :
G(nj) = g(nj-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(nj) = g(nj - 1) + g(nj - 2) + ….+ g(nj - k) (3.23)

GV : Trần Duy Cường - Phạm Hùng Kim 1


Nguyên lý truyền thông

- Ví dụ: Với bộ mã ở trên ta lấy


+ Hai tổ hợp sơ đẳng: 1, 00  n1= 1, n2= 2
+ Hai tổ hợp cuối: 010, 011  1 = 2 = 3
+ Từ (3.20) 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 nj bằng:
g(nj) = g(nj –1) + g(nj-2)
Trong đó nj 1, g(0) = 1, g (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  5dãy :1111, 0000, 1100, 0011, 1001
+ Từ (3.21) ta có:
G(nj) = 2g(nj-3) trong đó nj 4; G(3) =1; G(<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
2.2.1. Một số định lý cơ bản của mã thống kê tối ưu
 Định lý giới hạn về độ dài trung bình của từ mã: n
H(U)  n¯  H(U) +1 (3.24)
 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ã thống kê tối ưu:
H(U)
(3.25)
ρ=

H(U): Entropy của nguồn
n¯: Độ dài trung bình của từ mã.
  càng tiến tới 1 hiệu suất của mã càng cao.
 Mã thống kê có tính prefix.

N

2 –ni
≤ p(ui)và Σ 2–ni ≤ 1 (3.26)
i=1

GV : Trần Duy Cường - Phạm Hùng Kim 1


Nguyên lý truyền thông

2.2.2. Mã thống kê tối ưu Shannon


Các bước thực hiện mã thống kê tối ưu Shannon:
Bước 1: Liệt kê các tin của nguồn ui và các xác suất pi tương ứng theo xác
suất giảm dần.
Bước 2: Ứng với mỗi hàng ui, pi ghi một số qi theo biểu thức:
qi = p1 + p2 +….+ pi-1
Bước 3: Đổi các số thập phân qi thành các số nhị phân
Bước 4: Tính độ dài từ mã:
ni = ]—log2pi] (3.27)
Bước 5: Từ mã (ni, bi) sẽ là ni ký hiệu nhị phân (kể từ số lẻ trở đi) của số
nhị phân qi
Ví dụ: lập mã cho nguồn U có sơ đồ thống kê:
Ui U1 U2 U3 U4 U5 U6 U7
pi 0,34 0,23 0,19 0,1 0,07 0,06 0,01

Ui pi qi Số nhị phân ni Từ mã
qi
U1 0,34 0 0,0000 2 00
U2 0,23 0,34 0,0101 3 010
U3 0,19 0,57 0,1001 3 100
U4 0,1 0,76 0,1100 4 1100
U5 0,07 0,86 0,11011 4 1101
U6 0,06 0,93 0,11101 5 11101
U7 0,01 0,99 0,1111110 7 1111110
+ qi được tính theo bước 2: i = 1 q1 = p0 = 0
i = 2 q2 = p1 = 0,34
i =3 q3 = p1 + p2 = 0,57
+ Đổi qi sang số nhị phân:

qi = 0,34 qi = 0,86
0,34 x 2 = 0,68 0,86 x 2 = 1,72
0,68 x 2 = 1,36 0,72 x 2 = 1,44
0,36 x 2 = 0,72 0,44 x 2 = 0,88
0,72 x 2 = 1,44 0,88 x 2 = 1,76
0,76 x 2 = 1,52
+ Tính ni theo (3.27)
pi = 0,34  -log2pi = 1,55  ni = 2  từ mã: 00
pi = 0,23  -log2pi = 2,1  ni =3  từ mã: 010
 Hiệu suất của mã:
H(U) = - 0,34log0,34 – 0,23log0,23 - … - 0,01log0,01 = 2,37
n¯ = 0,34x2 + 0,23x3 + … + 0,01x7 = 2,99

GV : Trần Duy Cường - Phạm Hùng Kim 1


Nguyên lý truyền thông

ρ = H(U) = 0,81

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 ni trong một cột theo thứ tự pi 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.

B2 B1
Ui pi 1 2 3 4 5 Từ mã
N11 U1 0,34 0 0 00
U2 0,23 0 1 01
N1 U3 0,19 1 0 10
N12 U4 0,1 1 1 0 110
U5 0,07 1 1 1 0 1110
U6 0,06 1 1 1 1 0 11110
N21
U7 0,01 1 1 1 1 1 11111

 Thực hiện bước 2:


- Cách 1:
p1+ p2 = 0,34 + 0,23 = 0,57
p3+ p4 + p5 + p6 + p7 = 0,43
Độ chênh lệch : 0,14
- Cách 2:
p1+ p2 + P3 = 0,76
p4 + p5 + p6 + p7 = 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:
p3 = 0,19
p4 + p5 + p6 + p7 = 0,24
Độ chênh lệch : -0,05
- Cách 2:
p3 + p4 = 0,29
p5 + p6 + p7 = -0,14
Độ chênh lệch : 0,15
Vậy ta chọn cách thứ nhất.
n¯ = 0,34x2 + 0,23x2 + … + 0,01x5 = 2,41

GV : Trần Duy Cường - Phạm Hùng Kim 1


Nguyên lý truyền thông

ρ = H(U) = 0,98

 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ã thống kê tối ưu đồng thời cũng
là mã prefix.
Khuyết: Không cho phép lập mã duy nhất, nghĩa là có nhiều mã tương đương về
hiệu suất.
Ví dụ: Đối với nguồn tin dưới đây ít nhất có hai cách chia có hiệu suất như nhau:

Ui pi Cách Từ mã Cách chia Từ mã


chia 1 2
U1 0,19 00 00 000 000
U2 0,19 010 010 001 001
U3 0,19 011 011 01 01
U4 0,19 10 10 10 10
U5 0,08 110 110 1100 1100
U6 0,08 1110 1110 1101 1101
U7 0,08 1111 1111 111 111

n¯ = 0,19x2 + 0,19x3 + … + 0,08x4 = 2,46


n¯ = 0,19x3 + 0,19x3 + … + 0,08x3 = 2,46
Cùng một bộ mã nên H(U1) = H(U2) suy ra 1 =2.
 Để khắc phục nhược điểm của mã thống kê tối ưu Fano ta xét mã thống kê
tối ưu Huffman.

0 1 0 1

0 1 0 1
0
0
1 1
u1 u4 1
0 0
01u3u40 1
1

u2 u3 u5 1
u1u2 u7 0
0

u6
u5 u6 u7

Cách chia 2 Cách chia 1


Hình 3.4: Cây mã theo mã thống kê tối ưu Fano
2.2.4. Mã thống kê tối ưu Huffman
Theo Huffman để có một bộ mã Prefix 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:
 Tính thứ tự độ dài các từ mã: pi  pj với i <j thì ni  nj.
 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.
 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 thống kê tối ưu Huffman.

GV : Trần Duy Cường - Phạm Hùng Kim 1


Nguyên lý truyền thông

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 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.

ui pi Từ mã
0
1 1
u1 0,34 0 0,58 00
1
u2 0,23 0 10
0,42
u3 0,19 1 11
0 0,24
u4 0,10 1 011
u5 0,07 0 0,14 0100
1
u6 0,06 0 0,07 01010
u7 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ã Huffman:
gèc

0 1
0,42

0 1
0,42 0 1

u1(0,34) 0
1 u2(0,23)
0,14 u3(0,19)

0 1 u4(0,1)
0,07

u5(0,07) 1

u6(0,06) u7(0,01)

Hình 3.5: Cây mã theo mã thống kê tối ưu Huffman

 Hiệu suất:  = 0,98

Mặc dù tối ưu hơn so với mã Shannon 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ã Huffman + mã đều.

GV : Trần Duy Cường - Phạm Hùng Kim 1


Nguyên lý truyền thông

ui Pi Mã Huffman Mã đều Từ mã
u1 0,5 0 0
u2 0,25 0 0,5 1 10
u3 0,0315 1 1 00 11000
u4 0,0315 0,125 01 11001
u5 0,031 0 10 11010
u6 0,031 11 11011
u7 0,0157 0,25 000 111000
u8 0,0157 001 111001
u9 0,0157 010 111010
u10 0,0157 0,125 011 111011
u11 0,0156 1 100 111100
u12 0,0156 101 111101
u13 0,0155 110 111110
u14 0,0155 111 111111

3. Mã hóa kênh thông tin

3.1. Khái niệm về mã phát hiện và sửa sai:


 Sai số của mã đượ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).
 Theo 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 tnp t(1-p
s
)n-t (3.28)
3.1.1. Cơ chế phát hiện sai của mã
 Số từ mã có thể có: N0 = 2n. (m=2)

Số từ mã mang tin: N = 2k.

Số từ mã không dùng đến: 2n –2k (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:
2n
2k ≤ (3.29)
1 + EZ
Trong đó:
E = E1 + E2+ . . . + Ei (3.30)

E1, E2, . . Ei 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ó:
n
2k ≤ 2 (3.31)
1+n
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.

GV : Trần Duy Cường - Phạm Hùng Kim 1


Nguyên lý truyền thông

Ví dụ: t1 = 1 0 0 1 0 1 1  w(t1) = 4
 Khoảng cách giữa 2 vector t1, t2: ký hiệu, d(t1, t2) được định nghĩa là số
các thành phần khác nhau giữa chúng.
Ví dụ: t2 = 0 1 0 0 0 1 1  d(t1, t2) = 3 chúng khác nhau ở vị trí 0, 1 và 3.
 Khoảng cách Hamming giữa 2 vector mã t1, t2 bằng trọng số của vector
tổng t1 t2:
d(t1, t2)=w(t1 t2) .
t1 = 1 0 0 1 0 1 1
 t2 = 0 1 0 0 0 1 1
t1 t2 = 1 1 0 1 0 0 0  w(t1 t2) = 3 = d(t1, t2)
 Điều kiện để một mã tuyến tính có thể phát hiện được t sai:
d  t+1 (3.32)
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 (3.33)
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:
p’ = C21pqC31 pq2 + C22p2C32p2q (3.34)
Nếu p = 10-3  p’  6p2 = 6.10-6 nghĩa là có 106 bit truyền đi, 103 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
E=TR
Đối với mã nhị phân 3 phương trình trên tương đương nhau.
 Vector sai: E = (e0, e1, …, en)
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 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.

GV : Trần Duy Cường - Phạm Hùng Kim 1


Nguyên lý truyền thông

- Khi có sai đơn (sai 1 ký hiệu) 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ã Turbo, mã Turbo Block, mã tổng
hợp GC …
3.2. Mã khối tuyến tính
Giả sử đầu ra của một nguồn tin là một dãy các bit nhị phân 0 và 1. Trong trường
hợp mã khối dãy thông tin nhị phân được chia thành dãy các thông tin có chiều
dài cố định. Thường được gọi là message. Mỗi message, ký hiệu là u gồm có k
bit thông tin. Vậy tổng cộng có 2k message khác nhau và chúng có thể được thể
hiện là các bộ Vector thành phần, trong đó mỗi thành phần vector là 0 hay 1. Bộ
phận mã hóa theo một quy luật nào đó sẽ ánh xạ message u thành một vector n
thành phần v (n>k), v được gọi là từ mã (code word) của message u. ứng với 2k
từ mã này được gọi là một mã khối. Để mã khối hữu hiệu, 2k từ mã luôn là các từ
mã phân biệt. Do đó sẽ có một ánh xạ 1:1 giữa một message u và một từ mã v.
Đối với một mã khối có hai từ mã và mỗi từ mã có chiều dài n, việc lưu lại bảng
mã để phục vụ cho việc giải mã sẽ gây khó khăn khi 2k lớn. Do đó có một loại
mã khối có cơ chế hoạt động dễ dàng hơn, có thể áp dụng vào thực tế, đó là mã
khối tuyến tính. Với cấu trúc của mã khối tuyến tính. Sự phức tạp của quá trình
mã hóa và giải mã giảm đi rất nhiều.
3.2.1. Định nghĩa
 Khi các bit mang tin và các bit kiểm tra được phân thành từng khối tách
bạch, mã hóa và giải mã có thể tiến hành theo từng khối bằng các từ mã
riêng rẽ và 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 2k từ mã lập thành không gian vector n
chiều 2n 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 g0, g1,
…, gk-1 trong C, sao cho mỗi từ mã trong C là tổ hợp tuyến tính của k từ
mã đó:
v=t = u0g0 + u1g1+ …+ uk-1gk-1 (3.35)
Trong đó ui = 0 hoặc 1 với 1  i  k-1
 Gọi G là ma trận sinh của C:
g0 g00 g01 ⋯ g0,n–1
g1 g10 g11 ⋯ g1,n–1
G(k, n) = [ ] (3.36)
⋯ ] = ⋮ ⋮ ⋯ ⋮
gk–1 gk–1,0 gk–1,1 ⋯ gk–1,n–1
Trong đó: gi = [gi0, gi1, …., gi,n-1] với 0  i  k-1
 Gọi u là thông báo cần mã hóa:
u = u0 , u1,. …, uk-1 (3.37)
Với ui = 0 hoặc 1 và 0  i  k-1

GV : Trần Duy Cường - Phạm Hùng Kim 1


Nguyên lý truyền thông

 Gọi t là từ mã phát đi:


t = t0 t1 ….tn-1 (3.38)
Với tj = 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:
g0
t = uG = [u0 g1
u1 … uk–1 ][ ] (3.39)

gk–1
Từ mã phát đi t từ (3.39) chưa phải là mã khối tuyến tính.
Ví dụ:
g0 1 1 0 1 0 0 0
g1 0 1 1 0 1 0 0
G = [g ] = [ ]
2 1 1 1 0 0 1 0
g3 1 0 1 0 0 0 1
Nếu u = [1101] là thông tin sẽ được mã hóa, từ mã tương đương của nó theo
(3.39) là:
1 1 0 1 0 0 0
0 1 1 0 1 0 0
t = uG = [1 1 0 1] [ ] = [0 0 0 1 1 0 1]
1 1 1 0 0 1 0
1 0 1 0 0 0 1
 Mã khối tuyến tính hệ thống có cấu trúc:
Phần mang tin k bit Phần kiểm tra n-k bit
<------------------------ Độ dài từ mã: n------------------------------------->
 Khi đó ta cần tìm ma trận sinh dạng hệ thống G:
1 0 ⋯ 0 p11 p12 ⋯ p1,n–k
0 1 ⋯ 0 p21 p22 ⋯ p2,n–k
G = [I |P] = [ | ] (3.40)
k
⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
0 0 ⋯ 1 pk1 pk2 ⋯ pk,n–k
Trong đó pij = 0 hoặc 1 và Ik là ma trận đơn vị k×k.
Khi đó t = u.G là mã khối tuyến tính.
 Các số hạng của t là:
tn-k+i = ui với 0  i  k-1 (3.41)
tj = u0p0j + u1p1j + u2p2j + …+ uk-1pk-1,j (3.42)
Từ (3.41) ta thấy k bit bên trái của từ mã t trùng với k bit thông tin u0, u1, …, uk-1
và (n-k) bit bên phải là các bit 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 = [u0, u1, u2,
u3] và từ mã phát đi tương ứng t = [t0, t1, t2, t3, t4, t5, t6].
Khi đó:
 Cho G dạng không hệ thống, ta tìm G dạng hệ thống:
1 1 0 1 0 0 0 (1)
0 1 1 0 1 0 0 (2)
G=[ ]
0 0 1 1 0 1 0 (3)
0 0 0 1 1 0 1 (4)

GV : Trần Duy Cường - Phạm Hùng Kim 1


Nguyên lý truyền thông

Biến đổi như sau:


(1’) = (1) + (2) + (3)
(2’) = (2) + (3) + (4)
(3’) = (3) + (4)
(4’) = (4)
1 0 0 0 1
0 (1′)1
0 1 0 0 0 1 1 (2′)
G′ = [ ]
0 0 1 0 1 1 1 (3′)
0 0 0 1 1 0 1 (4′)
 Cho tin cần phát đi: u = [u0, u1, u2, u3] = [1 0 1 1] ta tìm từ mã phát đi theo
2 công thức (3.40) với G không ở dạng hệ thống:
1 1 0 1 0 0 0
0 1 1 0 1 0 0
t = uG = [u0, u1, u2, u3] [ ]
0 0 1 1 0 1 0
0 0 0 1 1 0 1
t0 = u0.1 + u1.0 + u2.0 + u3.0 = u0 = 1
t1 = u0.1 + u1.1 + u2.0 + u3.0 = u0 + u1= 1+0 = 1
t2 = u0.0 + u1.1 + u2.1 + u3.0 = u1 + u2= 0+1 = 1
t3 = u0.1 + u1.0 + u2.1 + u3.1 = u0 + u2 + u3= 1+1 + 1 = 1
t4 = u0.0 + u1.1 + u2.0 + u3.1 = u1 + u3= 0+1 = 1
t5 = u0.0 + u1.0 + u2.1 + u3.0 = u2= 1
t6 = u0.0 + u1.0 + u2.0 + u3.1 = u3= 1
Vậy ta có từ mã phát t = [1 1 1 1 1 1 1] không có dạng mã khối tuyến tính.
1 0 0 0 1 1 0
0 1 0 0 0 1 1
t = uG′ = [u0 u1 u2 u3] [ ]
0 0 1 0 1 1 1
0 0 0 1 1 0 1
t0 = u0.1 + u1.0 + u2.0 + u3.0 = u0 = 1
t1 = u0.0 + u1.1 + u2.0 + u3.0 = u1 = 0
t2 = u0.0 + u1.0 + u2.1 + u3.0 = u2 = 1
t3 = u0.0 + u1.0 + u2.0 + u3.1 = u3 = 1
t4 = u0.1 + u1.0 + u2.1 + u3.1 = u0 + u2 + u3 = 1
t5 = u0.1 + u1.1 + u2.1 + u3.0 = u0 + u1 + u2= 0
t6 = u0.0 + u1.1 + u2.1 + u3.1 = u1 + u2 + u3 = 0
Vậy ta có từ mã phát đi: t = [1 0 1 1 1 0 0] 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, ta xét vector H 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.HT = 0 (3.43)
H gọi là ma trận kiểm tra.

GV : Trần Duy Cường - Phạm Hùng Kim 2


Nguyên lý truyền thông

Đị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 G nếu và chỉ nếu
t.HT = 0 (3.44)
 Khi đó ma trận H dạng hệ thống sẽ có dạng:
H = [- PT | In-k] (3.45)
 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 hệ thống:
1 0 1 1 1 0 0
H = [1 1 1 0 0 1 0]
0 1 1 1 0 0 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 một trong các ma trận sau: ma trận sinh sinh G, P, ma
trận kiểm tra H, ma trận PT.
Bước 2: Dựa vào công thức t = u.G hoặc t.HT = 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 (3.41) và
(3.42) như sau:
1
Input u
u0 u1 .... uk-1 Đến keânh
ñeán kênh truyền
truyeàn
2

P0,n-k-1 Pk-1,n-
p00 p01 p01 p11

Pk-1,1
pk-1,0
P1,n-
+ + +

t t ... tn-k-1

Thanhghi
: Thanh ghi dịch : Boä coäng Modulo
+Bộ cộng modulo
K ñaàu vaøo K
p11 pij
pịj ==1
1: :ngắn
Ngaén
mạch h
pijmaïc
= 0: pij =0 : hôû
hở mạch

Hình 3.6: 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 = [u0 u1 . . . uk-1] được dịch vào thanh ghi thông tin đồ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 toàn bộ vào thanh ghi thông tin, (n-k) bit 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 bit kiểm tra cũng được dịch nối tiếp theo các bit 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ã.

GV : Trần Duy Cường - Phạm Hùng Kim 2


Nguyên lý truyền thông

Mạch mã hóa khối tuyến tính C(7,4) như sau:

u0 u1 u2 u3
u
1 k

2 Ñeán
Đến kênhkeânh
truyền
truyeàn
+ + +

t0 t1 t2
Hình 3.7: Mạch mã hóa khối tuyến tính C(7,4)

3.2.3. Phương pháp giải mã mã khối tuyến tính


+ Từ mã phát: t = (t0 t1..............tn-1)
+ Từ mã thu: r = (r0 r1..............rn-1)
+ Vector sai: e = (e0 e1...........en-1)
Trong đó ei = 1 nếu ti  ri và ei = 0 nếu ti = ri
 Để phát hiện sai ta dùng vector sửa sai Syndrome:
S = r.HT = [s0 s1 . . . . sn-k-1] (3.46)
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ã (khi đó 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 H thành phần của Syndrome tính toán như sau:
S0 = r0 + rn-kp00 + rn-k-1p10 + . . . + rn-ipk-1,0
S1 = r1 + rn-kp01 + rn-k-1p11 + . . . + rn-ipk-1,1 (3.47)
Sn-k-1 = rn-k-1 + rn-kp0,n-k-1 + rn-k+ip11 + .+ rn-ipk-1,n-k-1

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 = [r0 r1 r2 r3 r4 r5 r6]
1 0 1 1 1 0 0
H = [1 1 1 0 0 1 0]
0 1 1 1 0 0 1
0
0 1 11
F 1
S = rHT = [r r r r r r r ] 1 1 1II = [S S S ]
0 1 2 3 4 5 6 1 0 1I 0 1 2
1 0 0I
0 1 0I
L0 0 1‫ے‬

GV : Trần Duy Cường - Phạm Hùng Kim 2


Nguyên lý truyền thông

S0 = r0.1 + r1.0 + r2.1 + r3.1 + r4.1 + r5.0 + r6.0 = r0+ r2 + r3 + r4


S1 = r0.1 + r1.1 + r2.1 + r3.0 + r4.0 + r5.1 + r6.0 = r0 + r1 + r2 + r5
S2 = r0.0 + r1.1 + r2.1 + r3.1 + r4.0 + r5.0 + r6.1 = r1 + r2 + r3 + r6
Khi xác định được một giá trị Syndrome S = (S0, S1..............Sn-k-1) ta có 2k 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ứ 3 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í r2. ta chỉ việc đảo trị số của r2 là được vector nhận
được đúng.
Để 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.HT
Bước 2: Tìm phần tử dẫn ei trùng với r.HT , 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
Bộ đếm cho các vector thứ r
r Boä ñeám cho caùc vector thöù r
r0 rn-1
...
r1

Maïch tính
Mạch tính Syndrome Syndrome
s0 s1
... sn-k-1

Mạch tổMaïch
hợp tínhtoå hôïp
vector saitính vector sai
e0 e1 en-1
r0 r1 rn-1 +
+ +

to t1 t2
Hình 3.8: Bộ giải mã tổng quát cho mã khối tuyến tính
3.2.4. 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ố nguyên 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 = 2m – 1.
- Chiều dài phần tin: k = 2m – m – 1.
- Chiều dài phần kiểm tra: m = n –k
- Khả năng sửa sai: t = 1 (dmin =3)
- Ma trận kiểm tra H với các cột là vector m chiều khác không.
 Dạng cấu trúc hệ thống H = [Q | Im]

GV : Trần Duy Cường - Phạm Hùng Kim 2


Nguyên lý truyền thông

Trong đó Im là ma trận đơn vị mxm và ma trận Q gồm 2m–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.
Xét m = 3, ma trận kiểm tra của mã (7,4) được viết dưới dạng.
1 0 0 1 0 1 1
H = [ 0 1 0 1 1 1 0] (3.48)
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ừ (3.48) ta có:
0 0 0 1 1 1 1
H = [ 0 1 1 0 0 1 1] (3.49)
1 0 1 0 1 0 1

Để mã có dạng hệ thống, ta chọn các bit kiểm tra x, y, z ở các vị trí tương
ứng 2i với i = 0, 1, 2, . . ., nghĩa là các vị trí thứ nhất, thứ hai và thứ tư
của các ký hiệu từ mã:
u = [u0, u1, u2, u3]
(3.50)
t = [x, y, u0, z, u1, u2, u3]
Để tạo mã:
0 0 1
F0 1 01I
I
I0 1 1I
tHT = 0 = [x, y, u , z, u , u , u ]
0 1 2
I1 0 0 I
3
I1 0 1I
I1 1 0 I
L1 1 1 ‫ے‬
x.0 +y.0 +u0.0 +z.1 + u1.1 + u2.1 + u3.1 =0  z = u1 + u2 + u3
x.0 +y.1 +u0.1 +z.1 + u1.0 + u2.1 + u3.1 =0  y = u0 + u2 + u3
x.1 +y.0 +u0.1 +z.1 + u1.1 + u2.0 + u3.1 =0  x = u0 + u1 + u3
Tìm ma trận sinh:
x = 1. u1 + 1. u2 + 0. u3 + 1. u4
y = 1. u1 + 0. u2 + 1. u3 + 1. u4
u0 = 1. u1 + 0. u2 + 0. u3 + 0. u4
z = 0. u1 + 1. u2 + 1. u3 + 1. u4
u1 = 0. u1 + 1. u2 + 0. u3 + 0. u4
u2 = 0. u1 + 0. u2 + 1. u3 + 0. u4
u3 = 0. u1 + 0. u2 + 0. u3 + 1. u4

1 1 1 0 0 0 0
1 0 0 1 1 0 0
 t = [x, y, u0, z, u1, u2, u3] = u [ ] = uG
0 1 0 1 0 1 0
1 1 0 1 0 0 1

GV : Trần Duy Cường - Phạm Hùng Kim 2


Nguyên lý truyền thông

1 1 1 0 0 0 0
G=[1 0 0 1 1 0 0]
0 1 0 1 0 1 0
1 1 0 1 0 0 1
Phía thu nhận được từ mã: r = [r0, r1, r2, r3, r4, r5, r6] ta tính Syndrome:
0 0 1
1
I0F 1 0 I
0 1 1
S = rHT = [r I
r r r rI r r ] = S S ]
[S
0 1 2
I1 0 0 I 3 4 5 6 0 1 2
I1 0 1 I
I1 1 0 I
L1 1 1 ‫ے‬
Khi đó ta có sơ đồ giải mã Hamming (7.4) như sau:
Tín hiệu thu r
Tín
hieäu r1 r2 r3 r4 r5 r6
r0

+ + +
s2 s1 s0
Mạch
maïchchuyển sốñoåi
chuyeån nhị phân ra phaân
soá nhò thập phân
ra thaäp p h a
i
1 2 3 4 5 6 7

Hình 3.9: Sơ đồ giải mã Hamming (7,4)

S0 = r0.0 + r1.0 + r2.0 + r3.1 + r4.1 + r5.1 + r6.1= r3 + r4 + r5 + r6


s1 = r0.0 + r1.1 + r2.1 + r3.0 + r4.0 + r5.1 + r6.1= r1 + r2 + r5 + r6
s2 = r0.1 + r1.0 + r2.1 + r3.0 + r4.1 + r5.0 + r6.1= r0 + r2 + r4 + r5
Ví dụ: Tín hiệu thu được:
r = [0 0 1 1 0 1 1]
Khi đó
S 0 = r3 + r4 + r5 + r6 = 1 + 0 + 1 + 1 = 1
S1 = r1 + r2 + r5 + r6 = 0 + 1 + 1+ 1 = 1
S 2 = r0 + r2 + r4 + r5 = 0 + 1 + 0 + 1 = 0
S = (1 1 0), ta nhận thấy S trùng với cột số 6 của ma trận H, có nghĩa ký hiệu
sai là ký hiệu thứ 6, đầ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 toán:
r̅ i = 1
r = ir̅ ⨁ ı̅ r = {
r i=0
3.3. 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:

GV : Trần Duy Cường - Phạm Hùng Kim 2


Nguyên lý truyền thông

- Việc mã hóa và tính toá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.3.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)= t0 + t1x +t2x2 +…+ tn-1xn-1 (3.51)
Trong đó: vector mã t = [t0, t1, t2 … tn-1]
- Nếu tn-1 ≠ 0 thì bậc của t(x) là n-1.
- Nếu tn-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) = (u0 + u1x + u2x2 + … + un-1xn-1).g(x) (3.52)
 Đa thức sinh g(x) của mã vòng C(n,k) là một ước số của x + 1 và có bậc
n

n – k. Một mã vòng có thể gồm nhiều đa thức sinh:


Ví dụ: Mã vòng C(7,4) có
x7+1=(x+1)(x3+x+1)(x3+x2+1)
có hai đa thức sinh: g1(x) = (x3+x+1) và g2(x) = (x3+x2+1).
3.3.2. Thiết lập mã vòng.
 Các bước thiết lập mã vòng có dạng hệ thống:
Bước 1: Tính xn-k.u(x)
Bước 2: Tìm đa thức dư q(x): q(x) = xn-k.u(x) mod g(x)
Bước 3: Vector mã phát: t(x) = q(x) +xn-k.u(x)
Ví dụ: Xét mã vòng C(7,4) ứng với đa thức sinh: g1(x)= x3+x+1 và tin cần mã
hóa: u = 1 0 0 1
u(x) = 1 + x3
Bước 1: xn-k.u(x) = x3(1+x3) = x6+x3
Bước 2: Tìm đa thức dư q(x)
x6 + x3 x3 + x + 1
x + x + x3
6 4
x3 + x
x44
x + x2 + x
x2 + x = q(x)
Bước 3: Vector phát t(x) = q(x) + xn-ku(x) = x + x2 + x3 + x6
Từ mã phát đi t = [0 1 1 1 0 0 1] trong đó 0 1 1 là các bit kiểm tra.
Ví dụ 3: g2(x) = x3+x2+1 (SV tự làm)

GV : Trần Duy Cường - Phạm Hùng Kim 2


Nguyên lý truyền thông

3.3.3. Ma trận sinh và ma trận kiểm tra của mã vòng:


 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:

(3.53)

Ví dụ: Xét mã vòng C(7,4) có g(x) = x3 + x + 1 ta có ma trận sinh G(4,7):


1 1 0 1 0 0 0 (1)
0 1 1 0 1 0 0 (2)
G(k,n) =
0 0 1 1 0 1 0 (3)
0 0 0 1 1 0 1 (4)

1 0 0 0 1 1 0 (1’)  (1) + (2) + (3)


G’(k,n)= 0 1 0 0 0 1 0 (2’)  (2) + (3) + (4)
0 0 1 0 1 1 1 (3’)  (3) + (4)
0 0 0 1 1 0 1 (4’) = (4)
3.3.4. Ma trận kiểm tra H(n-k,n)
Do g(x) là ước số của xn + 1: xn +1 = h(x).g(x) với h(x) = h0 + h1x + ... + hkxk
Xét đa thức mã t(x) = t0 + t1x + ... + tn-1xn-1: t(x) = u(x)g(x)
Nhân 2 vế với h(x): t(x)h(x) = u(x)g(x)h(x) = u(x)(xn + 1) = u(x) + u(x)xn
Do u(x) là đa thức có bậc < n nên các hệ số của xk, xk+1, ..., xn-1 của đa thức
t(x)h(x) = 0:
t(x)h(x) = (t0 + t1x + ... + tn-1xn-1)( h0 + h1x + ... +
hkxk) Từ đó, ta có các đẳng thức sau:
k

Σ hk–iti = 0
i=0
k

Σ hk–iti+1 = 0
i=0
(3.54)

k

Σ hk–iti+n–k–1 = 0
i=0
Từ đó, ta có kết quả sau:
(t0t1 … tn – 1) * (hkhk–1 … h00 … 0)T =
0 (t0t1 … tn – 1) * (0hkhk–1 … h0 … 0)T
=0

GV : Trần Duy Cường - Phạm Hùng Kim 2


Nguyên lý truyền thông


(t0t1 … tn – 1) * (0 … 0hkhk–1 … h0)T =
0 Như vậy, nếu đặt:

H= (3.55)

thì ta suy ra: tHT = 0


 H là ma trận kiểm tra và h(x) là đa thức kiểm tra.
Ví dụ: Xét mã vòng (7,4) với đa thức sinh g(x)=1+x+x3.
Đa thức kiểm tra là:

h(x) x7 + 1
= = 1 + x + + x4
3
x 21 + x + x
Từ (3.55):
1 0 1 1 1 0 0 (1)
H = [0 1 0 1 1 1 0] (2)
0 0 1 0 1 1 1 (3)
1 0 1 1 1 0 0 ( 1)
H′ = [1 1 1 0 0 1 0] (1) + (2)
0 1 1 1 0 0 1 (2) + (3)
3.3.5. 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 hệ thống ta tiến hành theo các bước sau:
Bước 1: Nhân tin u(x).xn-k
Bước 2: Tính đa thức dư q(x)
q(x) = xn-k.u(x) mod g(x)
Bước 3: Thiết lập từ mã phát đi: t(x) = xk.q(x) + 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+g1(x)+ g2x2+… gn-k-1xn-k-1+xn-1

GV : Trần Duy Cường - Phạm Hùng Kim 2


Nguyên lý truyền thông

Cổng
Coå

gn-k-1
g0=1 g1 g2 gn-k =1

qb0 + qb1 + qb2 +


bqn-n-k+1 +

b : taàng thöù i cuûa


qi U(x)
1
thanh ghi dòch
gi : keát noái hay gi =0 : khoâng keát
TöøTập mã G
khoâng keát noái noái 2
maõ
gi =1: noái
qi: 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 nối
gi ≠ 0 nối  Cộng modulo-2
Hình 3.10: Sơ đồ mã hóa vòng theo g(x)
Hoạt động của mạch mã hoá:
Bước 1: khi mở cổng (Khóa G ở vị trí 1), k bit tin u0, u1, u1,…, uk-1 (ứng với
đa thức mẫu: u0 + u1 x+ …. + uk-1xk-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 xn-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 xn-k.u(x) cho g(x).
Nói cách khác (n-k) bit 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).
Bước 3: Dịch các bit kiểm tra ra và gửi vào kênh truyền. (n-k) bit của thanh
ghi chính là các bit kiểm tra này (tức là b0, b1, …., bn-k-1) phối hợp với k bit 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+x3, 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+x3+ x5+ x6

Số Input Nội dung Nội dung thanh ghi kế tiếp


lần u thanh ghi
dịch q0 q1 q2 q’0=q2  u q’1=q0  q  u q’2 = q1
2
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

GV : Trần Duy Cường - Phạm Hùng Kim 2


Nguyên lý truyền thông

b) Mã hóa theo đa thức h(x)


Phương pháp này sử dụng thanh ghi k tầng.
Mỗi vector mã có dạng t = t0, t1, .., tn-1. Từ (3.54), ta có thể viết:
k–1

tj = Σ hk–iti+j– k≤j<n (3.56)


k
i=0
Dựa vào phương trình (3.56), ta xây dựng được sơ đồ mạch mã hóa: h(x)=h0+ h1x+…
+ hkxk.
+ + ... + +

hk=1
hk-1 hk-2 h2 h1 h0 =1
Cổng 22
Coå

U(x)
Cổng 1 tn-k tn-k-1 ... tn-2 tn-1
Coång

N goõ ra ñeán keânh


Ngõ ra truyeàn
đến kênh truyền
Hình 3.11: 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ố h0, h1, …, hk trong các đa thức kiểm tra
h(x), với h0=hk=1.
Cách thực hiện mã hóa:
Bước 1: Ban đầu cổng 1 mở và cổng 2 đóng, k bit tin của u(x) = u0+u1x+…+
uk-1xk-1 được dịch đồng thời vào thanh ghi và ra kênh truyền.
Bước 2: Ngay sau khi dịch xong k bit tin vào thanh ghi, cổng 1 đóng và cổng
2 mở. Tại điểm P xuất hiện bit kiểm tra đầu tiên tn-k-1 với
tn-k-1 = h0tn-1+ h1tn-2+…+ hk-1tn-k = uk-1 + h1uk-2+…+ hk-1u0 (3.57)
Bước 3: Dịch thanh ghi một lần nữa bit kiểm tra đầu tn-k-1 được dịch ra kênh
truyền, đồng thời được dịch vào thanh ghi. Lúc này tại điểm P xuất hiện bit
kiểm tra thứ tn-k-2
tn-k-2 = h0.tn-1+ h1.tn-2+…+ hk-1.tn-k-1 = uk-2 + h1uk-3+…+ hk-1 tu-k-1.
Bước 4: Tiếp tục lặp lại bước 3 cho đến khi (n-k) bit kiểm tra được hình
thành và được dịch ra kênh truyền. Sau đó mở cổng 1 và đóng cổng 2 để mã
hóa tin kế tiếp.
Nhận xét: Đối với mã có số bit kiểm tra nhiều hơn số bit tin, dùng phương pháp
mã hóa dựa trên h(x) có tính kinh tế hơn. Ngược lại ta dùng phương pháp mã hóa
dựa trên g(x).
Ví dụ: Xét mã vòng C(7,4) có đa thức sinh g(x) = 1+x+x3, khi đó đa thức kiểm
tra có dạng:
h(x) x7 + 1
= = 1 + x + + x4
3
x21 + x + x
 h0 = 1; h1 = 1; h2 = 1; h3 = 0; h4 = 1.
Vector mã truyền đi: t = [t0,t1, t2, t3, t4, t5, t6]
Từ (3.56) ta có: tj = ∑3 h4–iti+j–4 với 4  j < 7
i

GV : Trần Duy Cường - Phạm Hùng Kim 3


Nguyên lý truyền thông

tj= h4tj-4+ h3tj-3+ h2tj-2+ h1tj-1 = 1.tj-4+ 0.tj-3+ 1.tj-2+ 1.tj-1 = tj-4+ tj-2+ tj-1
Giả sử tin cần mã hóa: u = 1011 khi đó t0 =1, t1 =0, t2 =1, t3 =1
+ Bit kiểm tra đầu tiên tương ứng với j = 4 là:
t4 = t0+t2+t3=1+1+1=1
+ Bit kiểm tra thứ 2 tương ứng j = 5 là:
t5= t1+t3+t4=0+1+1= 0
+ Bit kiểm tra thứ 3 tương ứng j = 6 là:
t6= t2+t4+t5=1+1+0 = 0
Như vậy vector mã vòng với tin [1011] là [1011100]
3.3.6. Giải mã vòng
Gồm 2 bước:
Bước 1: Tính Syndrome
Bước 2: Dò sai và sửa sai.
a- Tính Syndrome:
Đa thức sửa sai Syndrome S(x) là đa thức dư của phép chia r(x) cho g(x), có bậc
nhỏ hơn hoặc bằng (n-k-1).
 Mạch tính Syndrome tương tự như mạch mã hóa (n-k) tầng, chỉ khác là
r(x) được dịch vào đầu cực trái của thanh ghi. Trước khi dịch r(x) vào các
tầng của thanh ghi được đặt về không. Ngay sau khi toàn bộ r(x) đã được
dịch hết vào thanh ghi, nội dung của thanh ghi chính là Syndrome S(x).
Coång

gn-k-1
g0 =1 g1 g2
gn-k=1

+ S0 + S1 + ... + Sn-k-1

Hình 3.12: Mạch tính Syndrome (n-k) tầng


Ví dụ: Tính Syndrome của mã vòng C(7,4) có đa thức sinh g(x) =1+x2+x3.

Coång

g0 =1 g2 =1
g1 =1

+ S0 + S1 S2

Hình 3.13: Mạch tính Syndrome của mã vòng (7,4)


Ta sẽ so sánh kết quả tính Syndrome từ công thức tính S=r.HT với kết quả biểu
hiện trên các thanh ghi dịch.
Giả sử vector thu được r=(0010110)

GV : Trần Duy Cường - Phạm Hùng Kim 3


Nguyên lý truyền thông

100
010
001
S=r.H =(0010110)= 110 = (101)
T

011
111
101
Ta lập bảng trạng thái thanh ghi dịch:
Số lần r(x) Nội dung thanh ghi Nội dung thanh ghi kế tiếp
dịch
b0 b1 b2 s’0=r+s2 s’1=s0+s2 s’2=s1
0 0 0 0 0 0
1 0 0 0 0 0 0 0
2 1 0 0 0 1 0 0
3 1 1 0 0 1 1 0
4 0 1 1 0 0 1 1
5 1 0 1 1 0 1 1
6 0 0 1 1 1 1 1
7 0 1 1 1 1 0 1
Vậy kết quả tính Syndrome theo hai phương pháp là như nhau.
b- Dò sai và sửa sai:
 Gọi t(x) là từ mã phát đi và e(x) =e0+e1x+…+enxn-1
là đa thức sai, khi đó đa thức thu có dạng:
r(x) = t(x)+e(x) = a(x).g(x)+S(x)

Do t(x) = b(x)g(x) nên e(x)=[a(x)+b(x)]g(x) +S(x)

Nếu S(x) =0 thì e(x) = 0 hoặc trùng với một vector mã. Nếu e(x) trùng với
vector mã thì đó là sai không phát hiện được. Khi S(x)  0 thì từ S(x) có
thể đối chiếu với bảng coset leader dò ra e(x).
Ví dụ: g(x) =1+x2+x3
S(x) = e(x) mod g(x)
Coset leader Syndrome
0000000 000
0000001 011
0000010 110
0000100 111
0001000 101
0010000 001
0100000 010
1000000 100

GV : Trần Duy Cường - Phạm Hùng Kim 3


Nguyên lý truyền thông

Trong ví dụ trên S = (101) trùng với cột thứ 7 trong ma trận kiểm tra thứ tự, khi
đó e6=1 nghĩa là e = 0000001  vậy từ mã nhận đúng là:
t(x) = r(x)+e(x) = (0010110) + (0000001) = 0010111

Hình 3.14: Sơ đồ nguyên lý mạch giải mã của mã vòng.

Hình 3.15: Mạch giải mã cho mã vòng có đa thức sinh g(x)=1+x+x3

3.3.7. Mã BCH
Mã BCH (Bose, Chaudhuri và Hocquenghem) là mã vòng có khả năng sửa được
nhiều lỗi. Đối với số nguyên dương m (m  3) và t bất kỳ, ta có thể xây dựng mã
BCH nhị phân có các thông số sau:
- Độ dài từ mã: n = 2m – 1.
- Số bit kiểm tra: n – k  mt

GV : Trần Duy Cường - Phạm Hùng Kim 3


Nguyên lý truyền thông

- Khoảng cách Hamming: dmin = 2t + 1


Xét phần tử a của trường GF(2 m) là nghiệm của một đa thức nguyên thuỷ (là đa
thức tối giản và không tồn tại số n < 2m – 1 sao cho xn + 1 chia hết cho nó) thì mã
có ma trận sau làm ma trận kiểm tra là một mã vòng có khoảng cách Hamming ≥
2t + 1, trong đó mỗi phần tử trong ma trận bên dưới được thay thế bằng vector m
thành phần tương ứng của nó.

Và đa thức sinh g(x) là bội số chung nhỏ nhất của các đa thức nguyên thuỷ có
nghiệm là a, a3, a5, …, a2t-1.

Các đa thức sinh của mã BCH (dạng bát phân) cho như sau:
n k t g(x)
7 4 1 13
15 11 1 23
7 2 721
5 3 2467
31 26 1 45
21 2 3551
16 3 107657
11 5 5423325
6 7 313365047
63 57 1 103
51 2 12471
45 3 1701317
39 4 166623567
36 5 1033500423
30 6 157464165547
24 7 17323260404441
18 10 1363026512351725
16 11 6331141367235453
10 13 472622305527250155
7 15 5231045543503271737
127 120 1 211
113 2 41567
106 3 11554743

GV : Trần Duy Cường - Phạm Hùng Kim 3


Nguyên lý truyền thông

99 4 3447023271
92 5 624730022327
85 6 130704476322273
78 7 26230002166130115
71 9 6255010713253127753
64 10 1206534025570773100045
57 11 335265252505705053517721
50 13 54446512523314012421501421
43 14 17721772213651227521220574343
36 15 3146074666522075044764574721735
29 21 403114461367670603667530141176155
22 23 123376070404722522435445626637647043
15 27 22057042445604554770523013762217604353
8 31 70472640527521030651476224271567733130217

Ví dụ: n = 15, k = 5, t = 3, g(x) = 2467  10 100 110 111.


Đa thức sinh: g(x) = 1 + x2 + x5 + x6 + x8 + x9 +x10

 Bài tập chương


Câu 1:
Tính Entropy cho một nguồn mã ASCII gồm 128 symbol. Giả sử xác suất xuất
hiện của các symbol này là bằng nhau và độc lập thống kê với nhau.

Câu 2:
Tìm entropy, độ dư nguồn và tốc độ nguồn cho một nguồn tin gồm có 4 symbol
(A, B, C, D) phát ra với tốc độ symbol là 1024 baud. Biết xác suất xuất hiện các
symbol như sau :
Symbol Probability

A 0.5

B 0.2

C 0.2

D 0.1

Trong điều kiện nguồn không có nhớ (memoryless) nghĩa là các symbol xuất hiện
độc lập không phụ thuộc.

Câu 3:
Cho bộ mã: 00, 010, 100, 1100, 1101, 11101

a. Bộ mã này thuộc loại mã gì? (Đều, không đều, đầy, vơi).

GV : Trần Duy Cường - Phạm Hùng Kim 3


Nguyên lý truyền thông

b. Biểu diễn mã theo phương pháp: cây mã & đồ hình kết cấu.
c. Tính: ∑n m–jG(j). Mã có tính Prefix không?
j
d. Lấy 00, 010, 1101, 1100 làm tổ hợp sơ đẳng; 100 và 11101 làm tổ hợp
gốc. Tính G(8), G(9) và liệt kê các từ mã.

Câu 4: Cho nguồn tin U có 10 lớp tin có xác suất tương ứng:
P(u1) = 0.25; P(u2) = 0.12; P(u3) = 0.03; P(u4) = 0.1; P(u5) = 0.04;

P(u6) = 0.15; P(u7) = 0.05; P(u8) = 0.17; P(u9) = 0.01; P(u10) = 0.08;

a. Lập mã thống kê tối ưu theo Fano.


b. Lập mã thống kê tối ưu theo Huffman.
c. Tính hiệu suất của hai mã trên.
Câu 5: Cho nguồn tin “can kiem liem chinh chi cong vo tu“

Lập mã thống kê tối ưu theo mã đều và Huffman. Tính hiệu suất của hai mã trên.
Câu 6:
Cho mã vòng (7,4) có đa thức sinh g(x) = 1 + x 2 + x 3. Tin cần mã hóa u = 0110.

 Hãy thực hiện mã hóa theo ma trận H(3,7).


 Vẽ sơ đồ và lập bảng biểu thị nội dung thanh ghi.

Câu 7:
Cho mã vòng (7,4) có đa thức sinh g(x) = 1 + x2 + x3. Cho vector thu r =
0110111. Tính Syndrome của mã vòng với g(x) = 1 + x 2 + x3 & lập bảng biểu thị
nội dung thanh ghi hiện tại & thanh ghi kế tiếp theo r.

Câu 8:
Thiết lập mã Hamming có m=3:
 Tạo từ mã phát biết u = (1011).
 Phía thu nhận đựơc từ mã r = (1011011) đúng hay sai. Nếu sai, xác định
từ mã đúng?

Câu 9:
Cho mã vòng (7,4) có đa thức sinh g(x) = 1 + x + x3. Tin cần mã hóa u = (1110).

 Hãy thực hiện mã hóa theo dạng không hệ thống và hệ thống.


 Lập bảng biểu thị nội dung thanh ghi hiện tại và thanh ghi kế tiếp

Câu 10:
Cho mã vòng (7,4) có đa thức sinh g(x) = 1 + x + x3.

GV : Trần Duy Cường - Phạm Hùng Kim 3


Nguyên lý truyền thông

 Tìm đa thức kiểm tra H dạng không chính tắc và chính tắc.
 Cho vector thu r = 1011011. Tính Syndrome của mã vòng với g(x) = 1 + x
+ x3 & lập bảng biểu thị nội dung thanh ghi hiện tại & thanh ghi kế tiếp
theo r.

Câu 11: Cho mã vòng (7,4) có đa thức sinh g(x) = 1 + x2 + x3.


a) Lập ma trận sinh G dạng không hệ thống và tìm ma trận sinh G dạng hệ
thống.
b) Tìm từ mã phát đi t khi có thông báo cần mã hóa là u =(0,1,1,1).
c) Tìm ma trận kiểm tra H dạng không hệ thống và hệ thống.
d) Giả sử từ mã thu được là r =(0,1,0,0,1,0,1). Tính Syndrome, coset leader
và thực hiện sửa sai từ mã thu nếu có.
Câu 12: Cho mã vòng (7,4) có đa thức sinh g(x) = 1 + x2 + x3.
a) Lập ma trận sinh G dạng không hệ thống và hệ thống.
b) Tìm từ mã phát đi t khi có thông báo cần mã hóa là u =(1,1,0,1).
c) Vẽ sơ đồ mã hóa mã vòng và lập bảng biểu thị nội dung thanh ghi hiện tại
và thanh ghi kế tiếp theo u.
d) Tìm ma trận kiểm tra H dạng không hệ thống và hệ thống.
e) Giả sử từ mã thu được là r =(t0,t1,t¯2 ,1,1,0,1). Tính Syndrome,
coset leader và thực hiện sửa sai từ mã thu nếu có. Với t¯2 là đảo bit của
t2.

Câu 8: Cho mã vòng C(15,11) có đa thức sinh g(x) = 1 + x + x4.


a) Hãy lập ma trận sinh G dạng không chính tắc và tìm ma trận sinh G dạng
chính tắc.
b) Hãy tìm từ mã phát đi t khi có thông báo cần mã hóa là u
=[10111011011].
c) Hãy vẽ sơ đồ mã hóa mã vòng và lập bảng biểu thị nội dung thanh ghi hiện
tại và thanh ghi kế tiếp theo u.
d) Hãy tìm ma trận kiểm tra H dạng không chính tắc và ma trận kiểm tra H
dạng chính tắc.
e) Giả sử từ mã thu được là r =(t0,t1,t2,t3,10111001011). Hãy tính Syndrome,
coset leader và thực hiện sửa sai từ mã thu nếu có.

GV : Trần Duy Cường - Phạm Hùng Kim 3

You might also like