2022年huffman编码实验matlab[] .pdf
《2022年huffman编码实验matlab[] .pdf》由会员分享,可在线阅读,更多相关《2022年huffman编码实验matlab[] .pdf(5页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、实验报告Huffman 编码算法的实现一、实验目的1、学习 Matlab 软件的使用和编程;2、进一步深入理解Huffman 编码算法的原理;3、提高独立进行算法编程的能力。二、实验内容1、用 Matlab 实现 Huffman 编码算法程序;2、要求程序输出显示所有的码字以及编码效率;3、设计简单的输入界面(可以是简单的文字提示信息),程序运行时提示用户输入代表信源符号概率的向量;要对用户输入的概率向量进行合法性检查。三、实验原理1、二进制 Huffman 编码的基本原理及算法(1) 把信源符号集中的所有符号按概率从大到小排队。(2) 取概率最小的两个符号作为两片叶子合并(缩减)到一个节点。
2、(3) 视此节点为新符号, 其概率等于被合并 (缩减)的两个概率之和,参与概率排队。(4) 重复(2)(3) 两步骤,直至全部符号都被合并(缩减)到根。(5) 从根出发,对各分枝标记0 和 1。从根到叶的路径就给出了各个码字的编码和码长。2、程序设计的原理名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - (1) 程序的输入:以一维数组的形式输入要进行huffman 编码的信源符号的概率,在运行该程序前,显示文字提示信息,提示所要输
3、入的概率矢量;然后对输入的概率矢量进行合法性判断,原则为:如果概率矢量中存在小于0 的项,则输入不合法,提示重新输入;如果概率矢量的求和大于 1,则输入也不合法,提示重新输入。(2)huffman 编码具体实现原理: 1在输入的概率矩阵p 正确的前提条件下 , 对 p 进行排序,并用矩阵 L 记录 p 排序之前各元素的顺序, 然后将排序后的概率数组p 的前两项,即概率最小的两个数加和,得到新的一组概率序列,重复以上过程,最后得到一个记录概率加和过程的矩阵p 以及每次排序之前概率顺序的矩阵 a。2新生成一个 n-1 行 n 列, 并且每个元素含有n 个字符的空白矩阵,然后进行 huffman 编
4、码:?将 c 矩阵的第 n-1 行的第一和第二个元素分别令为0 和 1(表示在编码时,根节点之下的概率较小的元素后补0,概率较大的元素后补 1,后面的编码都遵守这个原则)?然后对 n-i-1的第一、二个元素进行编码, 首先在矩阵 a 中第 n-i行找到值为 1 所在的位置,然后在c 矩阵中第 n-i行中找到对应位置的编码(该编码即为第n-i-1行第一、二个元素的根节点) ,则矩阵 c 的第 n-i 行的第一、二个元素的n-1 的字符为以上求得的编码值,根据之前的规则,第一个元素最后补0,第二个元素最后补 1,则完成该行的第一二个元素的编码,名师资料总结 - - -精品资料欢迎下载 - - -
5、- - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 5 页 - - - - - - - - - ?最后将该行的其他元素按照“矩阵c 中第 n-i 行第 j+1 列的值等于对应于 a 矩阵中第 n-i+1 行中值为 j+1 的前面一个元素的位置在 c 矩阵中的编码值”的原则进行赋值,重复以上过程即可完成huffman 编码。3计算信源熵和平均码长,其比值即为编码密码效率。四、Huffman 编码的 Matlab 源程序p=input(please input a number:) %提示输入界面n=length(p); for i
6、=1:n if p(i)0 fprintf(n The sum of the probabilities in huffman can more than 1!n); p=input(please input a number:) %如果输入的概率数组总和大于1,则重新输入概率数组end q=p; a=zeros(n-1,n); %生成一个 n-1 行 n 列的数组for i=1:n-1 q,l=sort(q) %对概率数组q 进行从小至大的排序,并且用l 数组返回一个数组,该数组表示概率数组q 排序前的顺序编号a(i,:)=l(1:n-i+1),zeros(1,i-1) %由数组 l 构建一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年huffman编码实验matlab 2022 huffman 编码 实验 matlab
限制150内