姓名 | 班级 | 20电信 | 学号 | 2020 | |
实验项目 | 实验三 霍尔曼编码 | 日期 | 2022.11 | ||
实验环境
| |||||
实验内容与完成情况(记录实验内容、操作步骤、实验结果等,包括系统输出的错误信息,以截图等方式记录实验结果) 1. 针对上述两种方法,分别设计Matlab程序,要求:输入响应的信源个数与概率,输出响应的Huffman编码。 函数设计建议: 方法一:[W,L,q]=huffman(P) 为huffman编码函数 % huffman编码生成器 % % 函数说明: % % [W,L,q]=huffman(P) 为huffman编码函数 % % P为信源的概率矢量,W为编码返回的码字 % % L为编码返回的平均码字长度,q为编码效率 % %***************************************** % 函数: 方法二:[W,L,V,q]=huffman_better(P) % huffman编码生成器 % % 函数说明: % % [W,L,V,q]=huffman_better(P) 为huffman_better编码函数 % % P为信源的概率矢量,W为编码返回的码字,V为码字的方差 % % L为编码返回的平均码字长度,q为编码效率 % %******************************************************* % 函数: 2.利用上述设计函数,计算“三、实验原理”例子中信源的二进制霍夫曼编码,并比较平均码长、编码效率和码长方差。 方法一: 调用: 运行结果: 方法二: 调用: 运行结果: 由运行结果可以看到,两种计算霍夫曼编码的方法计算得到的平均码长、编码效率是相同的,因为他们本质上都是霍夫曼编码;但第二种编码方法的方差很小。 | |||||
遇到的问题及解决方法(若没有找到解决方法,就仅列出问题) 在调用第二个函数的时候出现如上报错,去CSDN上搜了一下,是因为我装的MATLAB 2018a版本太低了,识别不出来,更新后即正常。 | |||||
实验心得 这次的实验和上次的实验一样,都是对编码方法的编程,难度略有加大,用两种不同的方法进行编程,一开始根本没有头绪,在CSDN上找了几篇博客学习才知道怎么做,还是要多学习编程算法呀,路漫漫其修远兮。重点参考的博客如下: [1](13条消息) Matlab实现Huffman编码_GK_Szero的博客-CSDN博客_matlab实现huffman编码 [2](13条消息) 实验四-哈夫曼编码的MATLAB实现_虎慕的博客-CSDN博客_哈夫曼编码matlab |