shannon.doc

19
MÃ HÓA TỐI ƯU BẰNG PHƯƠNG PHÁP SHANNON I. GIỚI THIỆU 1. Một số khái niệm a. Nguồn tin rời rạc Nguồn tin rời rạc : nguồn tin tạo ra một cuỗi các biến ngẫu nhiên rời rạc X 1 ,X 2 , …,X n Kí hiệu X={ X 1 ,X 2 ,…,X n } b. Mã hóa nguồn : Mã hóa nguồn là một phép mã hóa biến đổi nguồn X thành X’ để tăng tốc độ đọc thông tin trong trường hợp R<C hay chính là tốc độ lập tin của nguồn nhỏ hơn thông lượng của kênh. Do đó mã hóa nguồn là mã hóa làm tăng thông tin trung bình trong mỗi tin của nguồn. c. Bộ mã tối ưu: Page 1 of 19

Upload: nguyen-chanh

Post on 11-Aug-2015

343 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Shannon.doc

MÃ HÓA TỐI ƯU BẰNG PHƯƠNG PHÁP SHANNON

I. GIỚI THIỆU

1. Một số khái niệm

a. Nguồn tin rời rạc

Nguồn tin rời rạc : nguồn tin tạo ra một cuỗi các biến

ngẫu nhiên rời rạc X1,X2,…,Xn

Kí hiệu X={ X1,X2,…,Xn}

b. Mã hóa nguồn :

Mã hóa nguồn là một phép mã hóa biến đổi nguồn X

thành X’ để tăng tốc độ đọc thông tin trong trường hợp R<C hay

chính là tốc độ lập tin của nguồn nhỏ hơn thông lượng của kênh.

Do đó mã hóa nguồn là mã hóa làm tăng thông tin trung bình

trong mỗi tin của nguồn.

c. Bộ mã tối ưu:

Một bộ mã mã hóa cho một nguồn được gọi là tối ưu nếu có

chiều dài trung bình là nho nhất trong tất cả các bộ mã ( dĩ

nhiên phân tách được) có thể mã hóa cho nguồn . Và dĩ nhiên

bộ mã tối ưu là một bộ mã prefix.

d. Mã có tính prefix:

Một bộ mã được gọi là có tinh prefix nếu như không có từ

mã nào là phần đầu của từ mã khác.

Page 1 of 13

Page 2: Shannon.doc

MÃ HÓA TỐI ƯU BẰNG PHƯƠNG PHÁP SHANNON

Trong thực tiễn thường dùng mã có tính prefix vì nó cho ta

điều kiện kiểm tra ngắn nhất hay có độ chạm giải mã nhỏ nhất.

e. Chiều dài trung bình

Từ một nguồn rời rạc có tin X={Xi} i=0 , N−1 có tin Xi

xuất hiện thì P(X)={P(Xi)}, P(Xi) tăng thì li giảm khi đó chiều

dài trung bình của từ mã để mã hõa thông tin là:

l=∑i=0

N

P ¿¿i).li

2.Các định lí về giới hạn trên và giới hạn dưới của chiều dài

trung bình.

a) Định lí 1:

Cho nguồn tin X= {a1,…,ak} với các xác suất tương ứng p1,

…,pk. Một bộ mã phân tách được bất kì cho nguồn này với cơ số

mã m, chiều dài trung bình từ mã sẽ thỏa( trong đó H(X) la entropy

cua nguồn với cơ số của logarit la m).

l ≥H ( X )log m

b) Định lí 2:

Page 2 of 13

Page 3: Shannon.doc

MÃ HÓA TỐI ƯU BẰNG PHƯƠNG PHÁP SHANNON

Cho nguồn tin X= {a1,…,ak} với các xác suất tương ứng p1,

…,pk, có thể xây dựng một mã prefix với cơ số m sao cho:

l <H (X )log m +1

3. Hiệu suất lập mã

Để đánh giá một phương pháp mã hóa nào đó tốt hay không

người ta đưa khái niệm hiệu suất lập mã.

Hiệu suất lập mã h được định nghĩa bằng hiệu số giữa entropy

với chiều dài trung bình của bộ mã được lập:

h = H (X )

l .100%

4. Quy tắc đổi số thập phân hệ mười sang hệ hai

Lấy số cần đổi nhân với 2, tích nhận được sẽ gồm phần

nguyên và phần lẻ nhị phân, lấy phần lẻ nhị phân của tích thu được

nhân tiếp với 2. Làm như vậy cho tới khi được tích chẵn bằng 1.

Chọn riêng các phần nguyên ( phần trước dấu phẩy) của các tích

thu được và sắp xếp lại sẽ được các chữ số sau dấu phẩy của số hệ

hai cần tìm

Ví dụ: đổi 0,125 ra số hệ hai

Page 3 of 13

Page 4: Shannon.doc

MÃ HÓA TỐI ƯU BẰNG PHƯƠNG PHÁP SHANNON

Ta thực hiện như sau:

0,125 * 2 = 0 ,250

0,250 * 2 = 0 ,500

0,500 * 2 = 1 ,000

Và kết quả thu la:

(0,125)10 = (0,001)2 { phần được in đậm và gạch chân}

5. Emtropy

Giả sử X là một biến ngẫu nhiên lấy các giá trị trên một tập

hợp hữu hạn theo phân bố xác suất P(X). khi đó emtropy của

phân bố xác suất này được định nghĩa là lượng:

H(X)=∑i=1

N

pi .log2(1Pi )

6. Từ mã

Từ mã : một tổ hợp mã biểu diễn một tin hay hay ns phải

chứa trong nó một tin nào đáy hay nó được dùng để đại diện hoặc

thay thế cho một tin.

Kí hiệu : wi

II. MÃ HÓA TỐI ƯU.

Là phép mã hóa mà kết quả là một bộ mã có chiều dài trung

bình là nhỏ nhất trong tất cả các phếp mã hóa có thể có cho nguồn.

Page 4 of 13

Page 5: Shannon.doc

MÃ HÓA TỐI ƯU BẰNG PHƯƠNG PHÁP SHANNON

Bộ mã của phép mã hóa tối ưu cho nguồn được gọi là bộ mã tối

ưu.

Có ba phép mã hóa: Shannon, fano, Huffman.

Trong mỗi phếp mã hóa chúng ta sẽ mã hóa với cơ số mã m=2

trước ( mã hóa nhị phân) sau đó sẽ mở rộng cho trường hợp m>2.

1. Phương pháp mã hóa Shannon

a) Đặc điểm.

- Mã tối ưu.

- Không có tính prefix.

b) Thuật toán

Bước 1: sắp xếp các xác suất theo thứ tự giảm dần.

không mất tổng quát. Giả sử p1≥ …≥ pk.

Bước 2: Định nghĩa :

q1=0;

qi =∑j=1

i−1

pj;

∀ i =1,2, ,k;

Bước 3: Đổi qi sang cơ số 2 hay nói các khác là biểu

diễn qi bằng một chuỗi nhị phân.

Bước 4: Từ mã được gán cho ai là li kí hiệu lấy từ sau

dấu phẩy của dãy nhị phân tương ứng với qi. trong đó

li=[-log2pi]

c) Ví dụ

Ví dụ 1:

Page 5 of 13

Page 6: Shannon.doc

MÃ HÓA TỐI ƯU BẰNG PHƯƠNG PHÁP SHANNON

Hãy mã hóa nguồn X={a1,a2,a3,a4,a5,a6} với các xác

suất lần lượt là: 0,3; 0,25; 0,2; 0,12; 0,08; 0,05

Hãy mã hóa nguồn trên bằng phương pháp shannon với

cơ số mã m=2.

Tính H(X), chiều dài trung bình của từ mã l ,hiệu suất

lập mã h

Bài giải

Tin

ai

Xác

suất

Pi

qi=∑j=1

i−1

pj

Biểu diễn nhị

phân li=[-log2pi]

Từ mã wi

a1 0,3 0 0,00 2 00

a2 0,25 0,3 0,01001… 2 01

a3 0,2 0,55 0,10001… 3 100

a4 0,12 0,75 0,11000… 4 1100

a5 0,08 0,87 0,11011… 4 1101

a6 0,05 0,95 0,111100… 5 11110

Tính emtropy của nguồn:

H(X)=∑i=1

N

pi .log2(1Pi )

Page 6 of 13

Page 7: Shannon.doc

MÃ HÓA TỐI ƯU BẰNG PHƯƠNG PHÁP SHANNON

= 0,3.log2(1

0,3¿ + 0,25.log2(

10,25) + 0,2.log2(

10,2) + 0,12.log2(

10,12

¿ +

0,08.log2(1

0,08)+0,05.log2(1

0,05)

≈2,36014…

≈ 2,36

Tính chiều dài trung bình

l =∑i=0

N

P ¿¿i)li

= 0,3 .2 + 0,25 .2 + 0,2 .3 +0,12 .4 + 0,08 .4 +0,05 .5

= 2,75

Tính hiệu suất lập mã của nguồn:

h =H (X )

l .100%

= 2,362,75 .100%

= 85,81 %

Ví dụ 2:

Hãy mã hóa nguồn sau bằng phương pháp shannon. Tính

H(X),l ,h:

Nguồn X={a1,a2,a3,a4,a5,a6} với các xác suất lần lượt là: 0,25;

0,21; 0,19; 0,16; 0,14; 0,05

Page 7 of 13

Page 8: Shannon.doc

MÃ HÓA TỐI ƯU BẰNG PHƯƠNG PHÁP SHANNON

Bài làm

Tin

ai

Xác

suất

Pi

qi=∑j=1

i−1

pj

Biểu diễn nhị

phân li=[-log2pi]

Từ

wi

a1 0,25 0 0,00 2 00

a2 0,21 0,25 0,01 3 010

a3 0,19 0,46 0,01110… 3 011

a4 0,16 0,65 0,10100… 3 101

a5 0,14 0,81 0,11001… 3 110

a6 0,05 0,95 0,111100… 5 11110

Tính emtropy của nguồn:

H(X)=∑i=1

N

pi .log2(1Pi )

= 0,25.log2(1

0,25¿+0,21.log2(

10,21) + 0,19.log2(

10,19) + 0,16.log2(

10,16

¿+0,14.log2(1

0,14) + 0,05.log2(

10,05

)

≈ 2,46423

≈ 2,46

Tính chiều dài trung bình

l=∑i=0

N

P ¿¿i)li

Page 8 of 13

Page 9: Shannon.doc

MÃ HÓA TỐI ƯU BẰNG PHƯƠNG PHÁP SHANNON

= 0,25 .2+0,21 .3 +0,19 .3 +0,16 .3 +0,14 .3 +0,05 .5

= 2,85

Tính hiệu suất lập mã của nguồn:

h =H (X )

l .100%

= 2,462,85 .100%

= 86,31%

d) Nhận xét

Phương pháp shannon cho kết quả là một mã prefix.

Phương pháp shannon có thể mở rộng với m>2.

Xác suất pi các lớn thì độ dài từ mã wi càng nhỏ.

2. Phương pháp mã hóa fano

a) Phương pháp mã hóa này được thực hiện qua năm bước sau:

Bước 1: Sắp xếp xác suất theo thứ tự giảm dần. không mất

tính tổng quát. Giả sử p1,…,pk :

Bước 2:Phân các xác suất thành hai nhóm có tổng xác suất gần

bằng nhau.

Bước 3: Gán cho hai nhóm lần lượt các kí hiệu 0 và 1( hoặc

ngược lại).

Bước 4: Lặp lại bước 2 cho các nhóm con cho đến khi không

thể tiếp tục được nữa.

Page 9 of 13

Page 10: Shannon.doc

MÃ HÓA TỐI ƯU BẰNG PHƯƠNG PHÁP SHANNON

Bước 5: Từ mã ứng với mỗi tin là chuỗi gồm các kí hiệu theo

thứ tự lần lượt được gán cho các nhóm có chứa xác suất tương ứng

của tin.

b) Ví dụ

Ví dụ 1:

Hãy mã hóa nguồn X={a1,a2,a3,a4,a5,a6} với các xác suất lần

lượt là: 0,3; 0,25; 0,2; 0,12; 0,08; 0,05.

Tính H(X), l ,h:

Bài làm

Tin

ai

Xác

suất pi

Phân nhóm lần Từ mã

wi1 2 3 4

a1 0,3 0 0 00

a2 0,25 0 1 01

a3 0,2 1 0 10

a4 0,12 1 1 0 110

a5 0,08 1 1 1 0 1110

a6 0.05 1 1 1 1 1111

Tính emtropy của nguồn:

Page 10 of 13

Page 11: Shannon.doc

MÃ HÓA TỐI ƯU BẰNG PHƯƠNG PHÁP SHANNON

H(X)=∑i=1

N

pi .log2(1Pi )

= 0,3.log2(1

0,3¿ + 0,25.log2(

10,25) + 0,2.log2(

10,2) + 0,12.log2(

10,12

¿ + 0,08.log2(1

0,08)+0,05.log2(

10,05

)

≈2,36014…

≈ 2,36

Tính chiều dài trung bình

l =∑i=0

N

P ¿¿i)li

= 0,3 .2 + 0,25 .2 + 0,2 .2 +0,12 .3 + 0,08 .4 +0,05 .4

= 2,38

Tính hiệu suất lập mã của nguồn:

h =H (X )

l .100%

= 2,362,38 .100%

= 99,15 %

Chú ý: trong nhiều trường hợp có nhiều hơn một cách chia

thành các nhóm có tổng xác suất gần bằng nhau, ứng với mỗi các

chia có thể cho ra các bộ mã có chiều dài trung bình khác nhau

Ví dụ 2:

Hãy mã hóa nguồn X={a1,a2,a3,a4,a5,a6,a7,a8} với các xác

suất lần lượt là: 0,23; 0,2; 0,14; 0,12; 0,1;

Page 11 of 13

Page 12: Shannon.doc

MÃ HÓA TỐI ƯU BẰNG PHƯƠNG PHÁP SHANNON

0,09; 0,06; 0,06.

Tính H(X), l ,h:

Bài làm

ai Pi 1 2 3 4 wi ai Pi 1 2 3 4 wi

a1 0,23 0 0 00 a1 0,23 0 0 00

a2 0,2 0 1 01 a2 0,2 0 1 01

a3 0,14 1 0 0 100 a3 0,14 1 0 0 100

a4 0,12 1 0 1 101 a4 0,12 1 0 1 101

a5 0,1 1 1 0 0 1100 a5 0,1 1 1 0 0 1100

a6 0,09 1 1 0 1 1101 a6 0,09 1 1 0 1 1101

a7 0,06 1 1 1 0 1110 a7 0,06 1 1 1 0 1110

a8 0,06 1 1 1 1 1111 a8 0,06 1 1 1 1 1111

l =2,88 l =2,89

c) Nhân xét:

So sánh hiệu suất của hai phương pháp trên ta thấy phương

pháp mã hóa theo fano tốt hơn mã hóa theo shannon.

Mã hóa theo fano dẽ thự hiện hơn mã hóa theo shannon.

Page 12 of 13

Page 13: Shannon.doc

MÃ HÓA TỐI ƯU BẰNG PHƯƠNG PHÁP SHANNON

Page 13 of 13