> 文档中心 > 【数模】编码的传输问题 Huffman算法编程实现(matlab)

【数模】编码的传输问题 Huffman算法编程实现(matlab)


编码的传输问题

利用Huffman算法编程实现以下问题。

已知字母A,B,C,D,E,F出现的概率

字母 概率
A 35%
B 10%
C 20%
D 10%
E 20%
F 5%

哈夫曼编码基础知识复习

哈夫曼编码(Huffman Coding),又称霍夫曼编码,是一种编码方式,哈夫曼编码是可变字长编码(VLC)的一种。Huffman于1952年提出一种编码方法,该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称之为最佳编码,一般就叫做Huffman编码(有时也称为霍夫曼编码)。

手算

【数模】编码的传输问题 Huffman算法编程实现(matlab)

matlab实现(huffmandict函数)

symbols = (1:6); % Alphabet vectorprob = [.35 .1 .2 .1 .2 .05]; % Symbol probability vector[dict,avglen] = huffmandict(symbols,prob)

下面是程序输出结果

【数模】编码的传输问题 Huffman算法编程实现(matlab)

字母 编码
A 00
B 0100
C 11
D 011
E 10
F 0101