中南大学信息论与编码编码部分实验报告

中南大学信息论与编码编码部分实验报告

ID:38740432

大小:661.50 KB

页数:42页

时间:2019-06-18

中南大学信息论与编码编码部分实验报告_第1页
中南大学信息论与编码编码部分实验报告_第2页
中南大学信息论与编码编码部分实验报告_第3页
中南大学信息论与编码编码部分实验报告_第4页
中南大学信息论与编码编码部分实验报告_第5页
资源描述:

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

1、信息论与编码编码部分实验报告课程名称:信息论与编码实验名称:关于香农码费诺码Huffman码的实验学院:信息科学与工程学院班级:电子信息工程1201姓名:viga学号:指导老师:张祖平日期:2014年1月3日42目录⊙实验目的及要求1.1实验目的………………………………………………41.2开发工具及环境………………………………………41.3需求分析与功能说明…………………………………4⊙实验设计过程2.1用matlab实现香农码、费诺码和Huffman编码2.1.1说明………………………………………………62.1.2源代码……………………………………………72.1.3运行结果(截图

2、)………………………………192.2用CC++实现香农码2.2.1说明………………………………………………222.2.2源代码……………………………………………232.2.3运行结果(截图)………………………………262.3用CC++实现Huffman码2.3.1说明………………………………………………262.3.2源代码……………………………………………292.3.3运行结果(截图)………………………………362.4用CC++实现费诺码2.4.1说明………………………………………………37422.4.2源代码……………………………………………372.4.3运行结果结果(截图

3、)…………………………40⊙课程设计总结……………………………………………42⊙参考资料4.1课程设计指导书……………………………………4342实验目的及要求1.1实验目的1.掌握香农码、费诺码和Huffman编码原理和过程。2.熟悉matlab软件的基本操作,练习使用matlab实现香农码、费诺码和Huffman编码。3.熟悉C/C++语言,练习使用C/C++实现香农码、费诺码和Huffman编码。4.应用Huffman编码实现文件的压缩和解压缩。1.2开发工具及环境MATLAB7.0、wps文字、红精灵抓图精灵2010Windows7系统环境1.3需求分析与功能说明1、使用ma

4、tlab实现香农码、费诺码和Huffman编码,并自己设计测试案例。2、使用CC++实现香农码、费诺码和Huffman编码,并自己设计测试案例。3、可以用任何开发工具和开发语言,尝试实现Huffman编码应用在数据文件的压缩和解压缩中,并自己设计测试案例。42具体要求:读入有关信源的文本文件(测试用例,里面为每个符号的概率,概率数值用,隔开),然后分别用matlab实现香农码、费诺码和Huffman编码,并计算各个码的平均码长,编码效率,并用matlab图示出来(可以是曲线图或直方图),再尝试对同样的信源用CC++实现香农码、费诺码和Huffman编码。文本文件例如infoso

5、urce.txt。文件里面的内容为0.4,0.2,0.1,0.1,0.15,0.05(,可能是全角或半角)。42实验设计过程2.1用matlab实现香农码、费诺码和Huffman编码2.1.1说明(1)使用matlab实现香农码、费诺码和Huffman编码,并自己设计测试案例。具体要求:读入有关信源的文本文件(测试用例,里面为每个符号的概率,概率数值用,隔开),然后分别用matlab实现香农码、费诺码和Huffman编码,并计算各个码的平均码长,编码效率,并用matlab图示出来(直方图)文本文件例如gailv.txt我测试的案例为0.40.20.10.10.150.05,存在ga

6、ilv.txt这个文本文档中。用“loadgailv.txt”语句读入文本文档中的概率分布。(2)编码部分设计:香农编码:1、将概率序列按降序排序,为方便,还是记作p,在编程时调整一下就行。2、算累加概率B(i)=p(i-1)+B(i-1);,i=0..i-1,视B(0)=03、算码长C=-log2(p);N=ceil(C);[ceil函数为取不小于自变量的最小整数的函数]4、将pa(i)换成二进制表示,取小数前k(i)位为c(i)费诺编码:1、将概率序列排序,为方便,还是记作p,在编程时调整一下就行。422、按编码进制数将概率分组,尽量使每组的概率和接近。3、给每组分配一位码元(

7、0,1,。。。)4、对每一组按同样地方法划分,直到每个符号有唯一码字。哈夫曼编码:可以用哈夫曼树的观点来看。1、选取概率最小的两个节点a,b2、将他们合并为c加入原概率序列3、从c指向a的边标为0,向b的边标为14、重复到仅有一棵树为止。5、每个符号的码字就是从根走到该符号的所有边上的码元连接起来。2.1.2源代码1、程序总程序(源文件见zong.m,文本文档见gailv.txt)%loadmydataA;%A是原始概率loadgailv.txt;A=gailv;[m

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

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

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