十进制小数转二进制matlab代码CIE425--霍夫曼算法
该程序将文本文件作为输入,并使用霍夫曼无损算法对其进行编码。
该代码由Ahmed
Wael在2018年秋季针对信息理论和编码课程完全开发。
如何使用
运行名为.huff的.m文件,因为它是调用所有功能的主程序。
有关代码的详细信息和文档,请查看“文档”文件夹,其中完整说明了算法的详细信息和代码的详细信息。
算法
将符号流转换为十进制数字流:
获取每个符号的ASCII代码
使用香农公式计算熵。
评估行程代码并计算其效率。
构造决策树:
按降序对字母符号的概率进行排序。
求和至少两个概率。
制作一个二叉树,其父级等于最小两个概率之和,而子级等于两个最小概率。
为连接父节点和最小节点的边缘分配权重=
1,为连接父节点和第二最小节点的边缘分配权重=
0。
重复步骤1到4,直到只有一个概率为1的符号为止。
赋予每个字母符号权重
对于字母中的每个符号,请执行以下操作使用二分查找算法从根目录遍历树,其中树的一半在每次迭代中均被忽略,并在每个步骤中连接权重。
编码符号流循环浏览符号流,并将每个符号映射到其对应的代码。
解码编码的符号通过循环
评论0
最新资源