太原理工大学现代科技学院多媒体通信技术课设.doc
文本预览下载声明
太原理工大学现代科技学院
多媒体通信技术 课程 实验报告
专业班级
学 号
姓 名
指导教师 实验名称 霍夫曼编码
专业班级 学号 姓名 成绩
实验一、霍夫曼编码
实验目的
1、学习 Matlab 软件的使用和编程;
2、进一步深入理解 Huffman 编码算法的原理;
3、提高独立进行算法编程的能力。
二、实验内容
1、用 Matlab 实现 Huffman 编码算法程序;
2、要求程序输出显示所有的码字以及编码效率;
3、设计简单的输入界面(可以是简单的文字提示信息),程序运 行时提示用户输入代表信源符号概率的向量;要对用户输入的概率向量进行合法性检查。
三、实验原理
1、二进制 Huffman 编码的基本原理及算法
1 )把信源符号集中的所有符号按概率从大到小排队。
2 )取概率最小的两个符号作为两片叶子合并(缩减)到一个 节点。
3 )视此节点为新符号,其概率等于被合并(缩减)的两个概率之和,参与概率排队。
4 )重复23两步骤,直至全部符号都被合并(缩减)到根。
5 )从根出发,对各分枝标记 0 和 1。从根到叶的路径就给出了各个码字的编码和码长。
程序设计的原理
(1)程序的输入:以一维数组的形式输入要进行 huffman 编码的信源符号的概率,在运行该程序前,显示文字提示信息,提示所要输入的概率矢量;然后对输入的概率矢量进行合法性判断,原则为:如果概率矢量中存在小于 0 的项,则输入不合法,提示重新输入;如果概率矢量的求和大于 1,则输入也不合法,提示重新输入。
(2) huffman 编码具体实现原理:
a、在输入的概率矩阵 p 正确的前提条件下对 p 进行排序,并用矩阵 L 记录 p 排序之前各元素的顺序,然后将排序后的概率数组 p 的前两项,即概率最小的两个数加和,得到新的一组概率序列,重复以上过程,最后得到一个记录概率加和过程的矩阵 p 以及每次排序之前概率顺序的矩阵 a。
b、新生成一
显示全部