全文预览

信源编码实验报告

上传者:幸福人生 |  格式:docx  |  页数:15 |  大小:549KB

文档介绍
编码完成实验要求2.哈夫曼(Haveman)编码算法是满足前缀条件的平均二进制码长最短的编-源输出符号,而将较短的编码码字分配给较大概率的信源输出。算法是:在信源符号集合中,首先将两个最小概率的信源输出合并为新的输出,其概率是两个相应输出符号概率之和。这一过程重复下去,直到只剩下一个合并输出为止,这个最后的合并输出符号的概率为1。这样就得到了一张树图,从树根开始,将编码符号1和0分配在同一节点的任意两分支上,这一分配过程重复直到树叶。从树根到树叶途经支路上的编码最后就构成了一组异前置码,就是霍夫曼编码输出。离散无记忆信源:例如Uu1u2u3u4u5P(U)=0.40.20.20.10.1码字Wi信符si概率P(si)编码过程第一次第二次第三次W1=0W2=10W3=111W4=1101W5=1100S1S2S3S4S50.40.20.20.10.10.40.20.210.200.40.410.200.610.401A(1)0通过上表的对信源缩减合并过程,从而完成了对信源的霍夫曼码。实验步骤主函数为sourcecoding,用fopen打开text文本,并用fread读取文本,得到ASCII码向量seq;利用自己编写statistic.m函数统计seq向量中出现的符号和概率,并通过处理得到所需向量seq2.statistic函数采用了对seq处理的三种形式。形式一:仅保留大写字母和空格形式二:保留大小写字母和空格形式三:保留所有字符进行编码在实验结论中也会展示这三种形式的编码结果。调用哈夫曼编码函数Haveman.m,将序列seq2进行编码,计算信源熵、平均码长、编码长度方差、编码效率、编码冗余度。(核心代码较长,不作截图,具体见Haveman.m文件)调用哈夫曼编码函数Haveman_encode.m,得到编码本text文本。实验结果仅保留大写字母和空格保留大小写字母和空格

收藏

分享

举报
下载此文档