哈夫曼信源编码matlab,信息论实验报告(哈夫曼编码).doc

信息论实验报告(哈夫曼编码).doc

1 学生实验报告 院别 电子工程学院 课程名称 信息论与编码 班级 实验名称 实验四、哈夫曼编码 姓名 实验时间 学号 指导教师 成绩 报 告 内 容 一、实验目的和任务 1、 理解信源编码的意义; 2、 熟悉 MATLAB程序设计; 3、 掌握哈夫曼编码的方法及计算机实现; 、 对给定信源进行香农编码,并计算编码效率; 二、实验原理介绍 1、把信源符号按概率大小顺序排列, 并设法按逆次序分配码字的长度; 12 . np p p 2、在分 配码字长度时,首先将出现概率 最小的两个符号的概率相加合成一个概率; 3、把这个合成概率看成是一个新组合符号地概率,重复上述做法直到最后只剩下两个符号概率为止; 4、完成以上概率顺序排列后,再反过来逐步向前进行编码,每一次有二个分支各赋予一个二进制码,可以对概率大的赋为零,概率小的赋为 1; 5、从最后一级开始,向前返回得到各个信源符号所对应的码元序列,即相应的码字。 三、实验设备介绍 1、计算机 2、编程软件 MATLAB6.5以上 四、实验内容和步骤 对如下信源进行哈夫曼编码,并计算编码效率。 1 2 3 4 5 6 70 . 2 0 0 . 1 9 0 . 1 8 0 . 1 7 0 . 1 5 0 . 1 0 0 . 0 1X a a a a a a aP ( 1) 计算该信源的信源熵,并对信源概率进行排序 ( 2) 首先将出现概率最小的两个符号的概率相加合成一个概率,把这个合成概率与其他的概率进行组合,得到一个新的概率组合,重复上述做法,直到只剩下两个概率为止。2 之后再反过来逐步向前进行编码,每一次有两个分支各赋予一个二进制码。对大的概率赋“ 1”,小的概率赋“ 0”。 ( 3)从最后一级开始,向前返回得到各个信源符号所对应的码元序列,即相应的码字。 ( 4)计算码字的平均码长得出最后的编码效率。 五、实验数据记录 3 六 、实验结论与心得 通过本次实验,加强了对 matlab 程序的学习,进一步提高了我的编程能力。 clear all p0.20 0.18 0.15 0.17 0.19 0.10 0.01; l0; H0; Nlengthp; for i1N HH-pi*log2pi; end fprintf信源信息熵 n; dispH; 4 for i1N-1 for ji1N if pipj mpj; pjpi; pim; end end end for i1N-1 ci,blanksN*N; end cN-1,N01 cN-i,1N-1cN-i1,N*findmN-i1,1-N-2N*findmN-i1,1; cN-i,N02*N-1cN-i,1N-1; cN-i,2*N1 end end for i1N hi,1Nc1,N*findm1,i-11findm1,i*N;码字赋值 llilengthfindabshi,32;各码字码长 end lsump.*ll;计算平均码长 nH/l;计算编码效率 fprintf编码的码字 n; disph按照输入顺序从大到小排列后的码字 fprintf平均码长 n; displ输出平均码长 fprintf编码效率 n; dispn输出编码效率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值