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

Mã hóa nguồn - Lý thuyết truyền thông Chương 3

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 (322.97 KB, 16 trang )

Chương 3
MÃ HÓA NGUỒN
3.1 Các mô hình toán cho tin tức:
Mọi nguồn tín hiệu thông tin tạo các ngõ ra ngẫu nhiên, nghĩa là ngõ ra nguồn được xác định bằng
thành phần thống kê.
Có 2 dạng nguồn tin: rời rạc và liên tục.
Tùy theo dạng nguồn tin mà ta có mô hình toán cho mỗi nguồn tin đó.
Dạng nguồn tin rời rạc đơn giản nhất là dạng được phát đi bằng chuỗi các ký tự chọn ra từ các ký tự
alphabet giới hạn trước.
Ví dụ: như nguồn tin nhị phân phát ra từ chuỗi nhị phân có dạng 100101110, lúc này ký tự alphabet
chỉ có dạng cơ số 2 bao gồm ký tự 1 và 2.
Mô hình toán cho nguồn tin rời rạc (Discrete source):
Mỗi ký tự trong hệ thống alphabet {x
1
, x
2
, …, x
L
} có xác suất p
k
lần xảy ra:
p
k
= P (X = x
k
), 1≤k≤L
với

=
=
L


k
k
p
1
1
; L: số ký tự có thể có trong hệ thống.
Xét 2 mô hình toán học của nguồn tin rời rạc:
• DSM (discrete memoryless source: nguồn tin không nhớ rời rạc):
- Chuỗi ngõ ra của nguồn này có tính độc lập, thống kê. Nghĩa là các ký tự của ngõ ra có tính độc lập
thống kê đối với tất cả các ngõ ra trước và sau. Một nguồn có ngõ ra thoả mãn điều kiện đó gọi là
nguồn có tính chất không nhớ.
• Nguồn tin rời rạc tĩnh (stationary)
Nếu ngõ ra nguồn là có tính phụ thuộc thống kê, ta có thể xây dựng mô hình toán dựa trên thống kê
tĩnh.
- Một nguồn tin rời rạc được gọi là tĩnh nếu các xác suất chung của 2 chuỗi có chiều dài n (a
1
, a
2
, …, a
n
)
và (a
1+m
, a
2+m
, a
n+m
) (với n≥1, với mọi m) là đồng nhất như nhau. Xác suất chung cho mọi chuỗi chiều dài
tuỳ ý của chuỗi nguồn ngõ ra là không đổi.
Mô hình toán cho nguồn tin tương tự: (Analog source):

Một nguồn tương tự có dạng sóng ngõ ra là x(t) là hàm mẫu của quá trình xử lý ngẫu nhiên X(t).
Với X(t) là quá trình ngẫu nhiên tĩnh với hàm tự tương quan Φ
xx
(τ) và mật độ công suất Φ
xx
(f).
Khi X(t) là quá trình ngẫu nhiên băng hẹp. Ví dụ như Φ
xx
(f)=0 với |f|≥W, thì
Với {X(n/2W)} là các mẫu của X(t) tại f
s
= 2W samples/s.
Do đó, ta có thể áp dụng định lý lấy mẫu này để biến đổi ngõ ra của nguồn tương tự tương đương
nguồn rời rạc. Sau đó, ngõ ra nguồn được mô tả thống kê bằng hàm mật độ xác suất (pdf) p (x
1
, x
2
, …, x
m
) với
mọi m≥1, X
n
= X(n/2W), 1≤n≤m, là các biến đổi ngẫu nhiên phù hợp với X(t).
Lưu ý: ngõ ra lấy mẫu {X(n/2W)} từ nguồn tĩnh thì thường liên tục, và chúng không thể mô tả hoàn
toàn theo dạng số mà không giảm độ chính xác. Ví dụ như ta có thể lượng tử hoá mỗi mẫu thành một dạng
của các giá trị rời rạc nhưng kết quả xử lý vẫn thiếu chính xác và tín hiệu gốc không thể xây dựng lại chính
xác từ các giá trị mẫu đã được lượng từ hoá đó.
3.2 Đo lường tin tức:
3.2.1 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ỳ:
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.
• 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)
3.2.2 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)
3.3 Mã hoá cho nguồn tin rời rạc:
3.3.1 Mã hiệu và các thông số cơ bản của mã hiệu:
Tốc độ lập tin của nguồn tin bất kỳ thường là rất thấp so với thông lượng kênh. Để sử dụng có hiệu quả kênh
cũng như làm tăng khả năng chống nhiễu của kênh ta sử dụng phương pháp mã hoá.
Bản chất của phương pháp này là biến đổi nguồn tin đã cho thành nguồn tin mới có những đặc tính thống kê
phù hợp với kênh truyền (thêm thông tin chống nhiễu, tăng tốc độ lập tin).
Nguồn tin mới đó được gọi là Mã hiệu.
Như vậy, mã hiệu là một nguồn tin với những đặc tính thống kê phù hợp với C và khả năng chống nhiễu của
kênh truyền.
Ví dụ: Sử dụng bit kiểm tra chẵn lẻ như sau:
Tin cần phát đi: 1010111
Được mã hóa thành: 10101111
Bit 1 được thêm vào để đảm bảo tổng số bit 1 trong 8 bit là một số chẵn.
Nếu khi thu được 8 bit mà có tổng số bit 1 là số lẻ tức là có lỗi trong 8 bit đó.
Rõ ràng ở ví dụ trên ta đã thêm thông tin để có thể phát hiện lỗi. Việc thêm thông tin này làm tăng tốc độ lập tin
(do tăng n
0
)
• 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.
o Ở ví dụ trên: ta dùng 2 ký hiệu khác nhau là ‘0’ và ‘1’ -> m=2.

o Ở bộ mã Morse dùng trong điện báo có 3 ký hiệu khác nhau là ‘.’, ‘_’, ‘ ‘ -> m=3
• Độ dài của mã n là số ký hiệu trong một từ mã.
Có 2 loại mã:
o Mã đều: các từ mã có độ dài bằng nhau.
– Ở ví dụ dùng thêm một bit kiểm tra chẵn lẽ cho từng nhóm 7 bit đề thành nhóm 8 bit. -> mã
đều, n=8
o Mã không đều: các từ mã có độ dài không bằng nhau.
– Ở bộ mã Morse dùng trong điện báo có các từ mã không đều nhau (A=‘. _’; B=‘_ . . .’) -> mã
không đều, có độ dài n = 1, 2, 3, 4, 5
• Với bộ mã không đều, ta có khái niệm độ dài trung bình của các từ mã:
o Cho nguồn tin {A, p(x
i
), i=1 n)}
o Độ dài trung bình của các từ mã là:

=
=
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
• Số từ mã khác nhau trong bộ mã (N):
Trong mã đều:
o Nếu N = m
n
ta có mã đầy.
– Ví dụ, ta sử dụng bộ mã đều, cơ số 2 (‘0’, ‘1’) có độ dài các từ mã là 8. Tức là m=2, n=8.
– Nếu ta sử dụng 28 = 256 từ mã thì đây là bộ mã đầy.
o Nếu N < m
n
ta có mã vơi.
– Ở ví dụ trên nếu ta sử dụng ít hơn 256 từ mã, tức là ta có bộ mã vơi.
Đ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 phân tách được: việc mã hoá và giải mã phải là 1-1 nghĩa 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.
Ví dụ: một nguồn tin có 4 tin {a, b, c, d}. Ta mã hoá với mã hiệu như sau:
o a -> 00; b -> 01; c -> 10; d -> 11.
o Giả sử bản tin cần mã hoá là: (acdba).
o Mã hoá thành: (0010110100).
o Giải mã trở lại: (acdba).
o Ta chỉ có một kết quả mã hoá và giải mã.
o Thoả mãn điều kiện phân tách được.
Ví du trênï: một nguồn tin có 4 tin {a, b, c, d}. Ta mã hoá với mã hiệu như sau:
o a -> 0; b -> 1; c -> 10; d -> 11
o Giả sử bản tin cần mã hoá là: (acdba)

o Mã hoá thành: (0101110)
o Giải mã trở lại: (ababbba) hoặc (acdba)
o Ta có hơn một kết quả mã hoá và giải mã
o Không thoả mãn điều kiện phân tách được
Điều kiện hiệu quả kinh tế: việc mã hoá phải sử dụng các từ mã càng ngắn càng tốt.
Điều kiện thời gian xử lý: việc mã hoá phải và giải mã phải đơn giản, càng ít trễ càng tốt.
Đ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.
3.3.2 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ã
b- Đồ hình mã:
Cây mã
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
c- 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
Điều kiện để mã phân tách được :
Mã có tính phân tách được: Điều kiện cần và đủ để mã có tính phân tách được là bất kỳ tổ hợp mã nào cũng
không được trùng với phần đầu của tổ hợp mã khác.
o Ví dụ: một nguồn tin có 4 tin {a, b, c, d}. Ta mã hoá với mã hiệu như sau:
– a -> 00; b -> 01; c -> 10; d -> 11
– Nguồn tin này thoả mãn điều kiện phân tách được.
o Nếu Ta mã hoá với mã hiệu như sau:
– a -> 0; b -> 1; c -> 10; d -> 11
– Nguồn tin không thoả mãn điều kiện 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 một dãy từ mã khác của cùng bộ mã.
- Vậy mã có tính prefix thoả mãn điều kiện phân tách được.
- 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
j
j
jG
1
1)(2
• 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.

• Mã hệ thống có tính Prefix có:
o Ưu điểm:
- Có tính chống nhiễu.
- Có tính bảo mật cao.
o Nhược điểm:
- Độ dài từ mã lớn-> hiệu suất truyền tin giảm. Tuy nhiên độ dài từ mã càng tăng thì tính bảo mật càng tă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 :
- 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
+ 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
3.3.3 Các loại mã thống kê tối ưu (TKTƯ)
3.3.3.1 Một số định lý cơ bản của mã TKTƯ
Các tin từ các nguồn tin thường có xác suất xuất hiện không đều.
Nếu mã hoá với bộ mã đều thì bản tin sau mã hoá sẽ dài hơn phương pháp mã hoá mà ở đó:
o Tin xuất hiện nhiều dùng từ mã ngắn.
o Tin xuất hiện càng ít dùng từ mã càng dài.
Loại mã không đều này được gọi là mã thống kê tối ưu.

Ví dụ: mã Morse dùng trong điện báo là mã thống kê tối ưu. Ở đó:
o Chữ E và chữ T xuất hiện nhiều nhất nên mã hoá một ký hiệu:
– E = (.)
– T = (_).
o Các chữ X, Y, Z, Q…xuất hiện rất ít nên được mã hoá tới 4 ký hiệu:
– X=(_ . . _)
– Y=(_ . _ _)
– Z=(_ _ . .)
• Đị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:


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

)(2

i
n
up
i


(3) &
12
1


=

N
i
n
i
(4)
3.3.3.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
U
2
0,23 0,34 0,0101 3
U
3
0,19 0,57 0,1001 3
U
4
0,1 0,76 0,1100 4
U
5
0,07 0,86 0,11011 4
U
6
0,06 0,93 0,11101 5
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
→ 0,0101

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
- 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
3.3.3.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
Độ 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.
( ) ( ) ( )
41,2501,0506,0407,0
=+++
xxx
• 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
U
2
0,19 0 1 0 0 0 1 0 0 1
U
3
0,19 0 1 1 0 1 0 1
U
4
0,19 1 0 1 0 1 0
U
5
0,08 1 1 0 1 1 0 0 1 1 0 0
U
6
0,08 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
==

=

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
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
3.3.3.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.
Cách chia 2
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ừ mã
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:
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
ρ
3.4 Mã hoá cho nguồn tin tương tự - Lượng tử tối ưu:
(tiểu luận cho sinh viên)
(This resume will be presented by students: use English or Vietnames to clarify)
• Quantization of analog data

– Scalar Quantization
– Vector Quantization
– Model Based Coding
– Practical Quantization
• µ-law encoding
• Delta Modulation
• Linear Predictor Coding (LPC)
3.4.1 Scalar Quantization:
• Optimum quantization based on random variable assumption for signal is possible through
nonuniform quantization
• Does not buy much, few dB
• Arbitrary non uniform quantization, such as µ-law, works well for speech (>20 dB) better)
3.4.2 Vector Quantization
• Sort of the equivalent of block coding
• Better rates obtained for groups of analog inputs coded as vectors
• Works great on statistically dependant analog samples like severely band limited signals or
coded analog like speech



=

=
∈=
−=
=
=











=
L
k
C
k
k
n
k
k
k
n
k
dpdCPD
xx
n
d
d
Q
x
x
1
~
1

2
~~
2
~
~
1
)(),()(
)(
1
),(
),(
)(
X
XXXXX
XX
XX
XX
X 
Average distortion

K-Means Algorithm

Guess

Classify the vectors by into C
k

Compute new centroid of

Iterate till D does not change


Finds local minimum based on
• Optimal Coding for lots of dimensions
– If the number of dimensions is increased
– Then D approaches optimal value
3.5 Kỹ thuật mã hoá cho các nguồn tin tương tự (Practical Coding of Analog):
• µ -law encoding
• Delta Modulation (DM)
• Linear Predictor Coding (LPC)
3.5.1 µ-law encoding
3.5.2 Delta Modulation (DM)
• Sends quantized error between input and code
• Need only 1-bit quantizer and adder (integrator)
µ=255 reduces
noise power in
speech ~20dB
1
1
1
1
1 0
1
0
1
)0(
~
k
X
),(
~

XXd


=
k
C
k
k
m
M
i
X
XX )(
1
)(
~
k
C∈X
)0(
~
k
X
3.5.3 Linear Predictor Coding (LPC)
• Learn parameters of filter to fit input speech.
• Can solve for a
i
if we have a training sample.
• This is feasible and is one of the better speech codes.

×