Thứ Bảy, 11 tháng 7, 2020

4.45 Tính số lượng bit cần truyền, tính entropy của nguồn, mã hóa nguồn

Cho nguồn tín hiệu s có 10 ký tự là biến ngẫu nhiên phân bố đều từ 1 đến 6. Xác suất xuất hiện của ký tự 1 đến 6 lần lượt là [.5 .125 .125 .125 .0625 .0625].

a. Hãy tính số lượng bit cần thiết để truyền 10 ký tự khi chưa thực hiện mã hóa nguồn 
b. Hãy tính entropy của nguồn 
c. Hãy mã hóa nguồn theo mã hóa Huffman và cho biết số bit cần thiết để truyền 
d. Nhận xét

Giải: Chúng ta có 6 loại ký tự nên phải dùng 3 bit để lưu trữ ký tự, do đó số bit cần thiết để truyền 10 ký tự sẽ là 3x10 =30 bit. Entropy của nguồn theo định nghĩa là:
bit/kí tự. Do đó, số bit tối thiểu để truyền 10 ký tự là: 21,25 ký tự.

% Mã hóa Huffman
dict = huffmandict(1:6, [.5 .125 .125 .125 .0625 .0625]);
S = randi([1 6],1,10)
enS = huffmanenco(S,dict)
deS = huffmandeco(enS,dict)


Nhận xét: Nếu dùng mã hóa Huffman, thì chúng ta sẽ chỉ cần truyền 26 bit. Khác với mã hóa Huffman, mã hóa số học sẽ cho hiệu năng tốt hơn khi xử lý với nguồn vào dài và phân bố bị lệch. Hãy xem ví dụ 4.46

Không có nhận xét nào:

Đăng nhận xét

2.16 Tìm giá trị nhỏ nhất và lớn nhất trong ma trận

Cho ma trận X = [1 2 3; 4 5 6; 7 8 9]. Hãy a. Tìm giá trị lớn nhất và giá trị nhỏ nhất theo hàng. b. Tìm giá trị lớn nhất và nhỏ nhất theo...