shannon.doc
TRANSCRIPT
![Page 1: Shannon.doc](https://reader036.vdocuments.pub/reader036/viewer/2022082606/55721387497959fc0b927a06/html5/thumbnails/1.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022082606/55721387497959fc0b927a06/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022082606/55721387497959fc0b927a06/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022082606/55721387497959fc0b927a06/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022082606/55721387497959fc0b927a06/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022082606/55721387497959fc0b927a06/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022082606/55721387497959fc0b927a06/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022082606/55721387497959fc0b927a06/html5/thumbnails/8.jpg)
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ừ
mã
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](https://reader036.vdocuments.pub/reader036/viewer/2022082606/55721387497959fc0b927a06/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022082606/55721387497959fc0b927a06/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022082606/55721387497959fc0b927a06/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022082606/55721387497959fc0b927a06/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022082606/55721387497959fc0b927a06/html5/thumbnails/13.jpg)
MÃ HÓA TỐI ƯU BẰNG PHƯƠNG PHÁP SHANNON
Page 13 of 13