MATLAB ỨNG DỤNG TRONG VIỄN THÔNG - Trang 244

Mã hóa nguồn

213

legend('Tin hieu goc','Tin hieu nen gian','Location','NorthWest')

Sai số lượng tử:

ans =

0.5348 0.0397

Đồ thị dạng tín hiệu:

Hình 14.5.

14.7. MAÕ HOÙA HUFFMAN

Phương pháp mã hoá Huffman là một kỹ thuật dùng để nén dữ liệu. Một nguồn dữ liệu
thường bao gồm nhiều ký hiệu, mỗi ký hiệu có xác suất xuất hiện khác nhau. Nếu chúng ta
mã hoá các ký hiệu này bằng các từ mã có độ dài bằng nhau thì sẽ không hiệu quả bằng cách
mã hoá sau cho các ký hiệu có xác suất xuất hiện thấp được biểu diễn bởi từ mã có chiều dài
lớn hơn so với các từ mã biểu diễn ký hiệu có xác suất xuất hiện cao hơn. Đó là nguyên tắc
của phương pháp mã hoá Huffman. Như vậy chiều dài trung bình của các từ mã Huffman sẽ
phụ thuộc vào xác suất xuất hiện (hay còn gọi là tần số thống kê) của các ký hiệu trong tập dữ
liệu nguồn. Điều kiện quan trọng đối với các từ mã trong bộ mã Huffman là không có một từ
mã nào của bộ mã là phần đầu của một từ mã khác trong bộ mã (ví dụ: không thể tồn tại đồng
thời hai từ mã 01 và 0110 trong cùng một bộ mã Huffman).
Lưu ý:

Trong trường hợp một chuỗi dữ liệu dài cấu tạo bởi tập ký hiệu có ít phần tử và có sự

phân bố lệch nhau nhiều thì phương pháp mã hoá số học sẽ có hiệu quả hơn phương pháp mã
hoá Huffman.

ƒ Để thành lập một bộ mã Huffman, MATLAB có hàm huffmandict, ta chỉ cần cung cấp
các thông tin về tính chất thống kê của tập dữ liệu nguồn:

>> [dict,avlen] = huffmandict(sym,prob,N,var)

Hàm này trả về bộ mã Huffman dict cùng với chiều dài trung bình avlen của các từ mã
của bộ mã. Các thông số nhập vào tối thiểu gồm có tập các ký hiệu của nguồn dữ liệu (sym)

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.