实验名称:英文文本的Huffman编码压缩
一、实验目的和要求
了解Huffman编码的特点,掌握Huffman编码基本原理及编码算法的设计与程序实现。
二、实验内容和原理
以任意选择一个纯英文文本为数据,设计出Huffman编码的压缩和解压缩算法,并写出程序予以实现。
霍夫曼(Huffman)编码是一种统计编码,属于无损压缩编码。
霍夫曼编码的码长是变化的,对于出现频率高的信息,编码的长度较短;而对于出现频率低的信息,编码长度较长。这样,处理全部信息的总码长一定小于实际信息的符号长度。
三、实验环境
硬件:计算机
软件:Windows 2000和MATLAB编程环境。
四、算法描述及实验步骤
(1)输入一串字符串x=s,即s=hmmyyjhjjgjjpqw,k为其长度,分别用a、b两个数组来表示字符串中出现的不同字母及其出现的个数,调用findstr函数进行统计。
(2)调用Huffmandict函数,即[dict,avglen]=huffmandict(c,d),使用数组C及其概率数组d进行Huffman编码,编码后产生一个编码词典dict,以及平均码长avglen。
(3)调用huffmanenco函数,即sig_encoded =
huffmanenco(x,dict),利用上面Huffmandict函数中产生的编码词典dict对sig_encoded来解码,其结果存放在dsig中以及dsig=huffmandeco(sig_encoded,dict)。
(4)代码如下所示:
c