Huffman编码在MTLAB中的实现及编码注释----------Matlab
发布时间
阅读量:
阅读量
一、实验内容
1、用Matlab实现Huffman编码算法程序;
2、要求程序输出显示所有的码字以及编码效率;
开发一个直观的用户交互界面(建议采用简洁的文字说明形式),在程序运行期间应向用户提供明确的指导信息;同时必须确保用户的输入数据符合预设的有效性标准
二、实验原理
1、二进制Huffman编码的基本原理及算法
(1) 把信源符号集中的所有符号按概率从大到小排队。
(2) 取概率最小的两个符号作为两片叶子合并(缩减)到一个 节点。
将此节点视为新符号,则其概率值等于其被合并后的总和,并加入到当前的概率队列中。
(4) 重复(2)(3)两步骤,直至全部符号都被合并(缩减)到根。
以根为起点对各分支分配标记0或1给定节点按照生成树原理从根延伸至叶子节点的路径能够提供每个码字对应的编码长度信息
2、程序设计的原理
(1) 程序的输入:采用一维数组的形式表示用于Huffman编码的信源符号概率,在启动程序之前将显示一段文字提示信息提醒用户需提供的概率向量。随后会对用户的输入数据执行合法性验证其中规定了两个无效条件:一是所给定的概率向量中若包含负值元素,则视为无效;二是若计算出所有概率之和超过1,则也被视为无效情况。
(2)huffman编码具体实现原理:
假设输入的概率矩阵p是正确的,
并对其进行降序排列以生成新矩阵L,
并按降序排列后生成新矩阵L,
然后
全部评论 (0)
还没有任何评论哟~
