信源编码实验报告

信源编码实验报告

ID:35356346

大小:549.97 KB

页数:15页

时间:2019-03-23

信源编码实验报告_第1页
信源编码实验报告_第2页
信源编码实验报告_第3页
信源编码实验报告_第4页
信源编码实验报告_第5页
资源描述:

《信源编码实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、电子科技大学实验报告课程名称信息论与编码实验名称信源编码任课教师姓名学号时间2018年11月28日一、实验目的和要求1.掌握对信源变长编码定理的理解;2.掌握信源编码技术,如香农编码,费诺编码,哈夫曼编码或其他无失真信源编码技术;3.对英文小说“GameofThrones”中出现的26个英文字母和空格符号(一共27个符号)进行信源编码。4.至少对前两章“Prologue”和“Bran”中出现的符号进行统计。5.任意选择一种编程平台,C++,Java,Python,Matlab等等。6.运行程序后,能够在屏幕上显示每一个符号对应的码字,原始信源的熵,平均码

2、字长度,码字长度的方差,以及编码效率。一、实验内容1.对英文小说“GameofThrones”中出现的26个英文字母和空格符号(一共27个符号)进行信源编码。2.在屏幕上显示每一个符号对应的码字,原始信源的熵,平均码字长度,码字长度的方差,以及编码效率。二、实验原理1.采用哈夫曼编码完成实验要求2.哈夫曼(Haveman)编码算法是满足前缀条件的平均二进制码长最短的编-源输出符号,而将较短的编码码字分配给较大概率的信源输出。算法是:在信源符号集合中,首先将两个最小概率的信源输出合并为新的输出,其概率是两个相应输出符号概率之和。这一过程重复下去,直到只剩下

3、一个合并输出为止,这个最后的合并输出符号的概率为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通过

4、上表的对信源缩减合并过程,从而完成了对信源的霍夫曼码。一、实验步骤1.主函数为sourcecoding,用fopen打开text文本,并用fread读取文本,得到ASCII码向量seq;1.利用自己编写statistic.m函数统计seq向量中出现的符号和概率,并通过处理得到所需向量seq2.statistic函数采用了对seq处理的三种形式。形式一:仅保留大写字母和空格形式二:保留大小写字母和空格形式三:保留所有字符进行编码在实验结论中也会展示这三种形式的编码结果。1.调用哈夫曼编码函数Haveman.m,将序列seq2进行编码,计算信源熵、平均码长、

5、编码长度方差、编码效率、编码冗余度。(核心代码较长,不作截图,具体见Haveman.m文件)1.调用哈夫曼编码函数Haveman_encode.m,得到编码本text文本。一、实验结果1.仅保留大写字母和空格1.保留大小写字母和空格3.保留所有字符进行编码一、实验总结1.在不考虑符号间相关性的情况下,用哈夫曼编码编码效率高,冗余度较小。2.通过这个课题,我对哈夫曼编码具体实现原理有了更深的理解,同时也能更熟练运用MATLAB编程,对完成算法有了一个整体的把握。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。