计算机与信息工程学院综合性实验报告
专业:通信工程 年级/班级:2011级信息论与编码6节
根据霍夫曼编码的原理,用MATLAB设计进行霍夫曼编码的程序,并得出正确的结果。
实验仪器或设备
2、MATLAB r2013a。p1>p2>…>pq
2、取两个概率最小的字母分别配以0和1两个码元,并将这两个概率相加作为一个新字母的概率,从而得到只包含q-1个符号的新信源S1。
3、对重排后的缩减信源S1重新以递减次序排序,两个概率最小符号重复步骤(2)的过程。
4、不断继续上述过程,直到最后两个符号配以0和1为止。
5、从最后一级开始,向前返回得到各个信源符号所对应的码元序列,即相应的码字。
霍夫曼编码实现程序
function [outnum]=lml_huffman(a)
%主程序,输入一组概率,输出此组概率的霍夫曼编码
%a:一组概率值,如a=[0.2 0.3 0.1 0.4]等
%outnum:输出的霍夫曼码,以cell中的字符数组表示
if sum(a)~=1
warning('输入概率之和不为“1”,但程序仍将继续运行')
end
[cho,sequ,i,l]=probality(a);
global lmlcode %用于输出霍夫曼码,定义为cell型
global cellnum %用于编码的累加计算
cellnum=1;
lmlcode=cell(l,1);
j=