100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 利用Matlab做二元huffman 信息论与编码课程作业_huffman编码的matlab_实现

利用Matlab做二元huffman 信息论与编码课程作业_huffman编码的matlab_实现

时间:2022-06-13 22:58:22

相关推荐

利用Matlab做二元huffman 信息论与编码课程作业_huffman编码的matlab_实现

信息论与编码课程作业

——霍夫曼编码求信源熵和存储前后的信息量的变化

一:设计目的:

1、学习离散信源平均信息量的计算方法。

2、理解和掌握huffman 编码的基本原理,实现对信源符号的huffman 编码

3、熟悉 Matlab 编程; 二:设计原理和思路

1.信源熵的计算:

公式: 21()log a I a p = Matlab 实现:I=log2(1/p) 或I=-log2(p) 熵(平均自信息)的计算公式

22111()log log q

q i i i i i i H x p p p p ====-∑

Matlab 实现:HX=sum(-x.*log2(x));或者h=h-x(i)*log2(x(i));

2.霍夫曼编码原理;

分为两步,首先是码树形成过程:对信源概率进行合并形成编码码树。然后是码树回溯过程:在码树上分配编码码字并最终得到Huffman 编码。

1、码树形成过程:将信源概率按照从小到大顺序排序并建立相应的位置索引。然后按上述规则进行信源合并,再对信源进行排序并建立新的位置索引,直到合并结束。在这一过程中每一次都把排序后的信源概率存入矩阵p 中,位置索引存入矩阵m 中。这样,由排序之后的概率矩阵 p 以及索引矩阵m 就可以恢复原概率矩阵P 了,从而保证了回溯过程能够进行下去。

2、码树回溯过程:在码树上分配编码码字并最终得到Huffman 编码。从索引矩阵M 的末行开始回溯。

(1) 在p 的末行2元素位置填入0和1。

(2) 根据该行索引1位置指示,将索引1位置的编码(‘1’)填入上一行的第

一、第二元

素位置,并在它们之后分别添加‘0’和‘1’。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。