信源编码算法(费诺编码&哈夫曼编码)

信源编码算法

•费诺编码 Fano coding

•哈夫曼编码 Huffman coding

 

1.费诺编码

 

编码步骤

1.将信源符号按照其概率大小,从大到小排列;

2.将这一组信源符号分成概率之和尽可能接近或者相等的一组(即两组分别的概率和之间的差尽可能小!);

3.将上面一组符号编码成0,下面一组编码成1,反之亦可;

4.将已经分好的组重复步骤2,3,直到不能再进行分组为止;

5.从左到右一次写出码字。

举例

已知:

 编码过程为:

信源编码算法(费诺编码&哈夫曼编码)_第1张图片

哈夫曼编码 Huffman coding

 

编码步骤

1.将信源符号按照概率大小从大到小排列;

2.把概率最小的两个信源符号分成一组,其中,上面一个编码为0,下面一个编码为1,并将这两个符号的概率加起来,其结果再与尚未处理过的符号重新按照大小排序;

3.重复步骤2,直到所有的信源符号都处理完毕;

4.从右至左按照编码路径返回,即可得到各个码字。

哈夫曼编码演示

已知:

编码过程为:

信源编码算法(费诺编码&哈夫曼编码)_第2张图片

你可能感兴趣的:(通信)