实验一 香农编码和Huffman编码

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一 香农编码和Huffman 编码

一、实验目的

进一步熟悉香农编码和Huffman 编码过程,掌握matlab 语言递归程序的设计和调试技术。

二、实验要求

1.已知信源符号个数和信源的概率分布,要求写出香农和Huffman 的代码,输出每个信源符号对应的香农和Huffman 编码的码字。

2.以一组信源码字为例,给出输出码字,并求出编码效率。

三、基本原理

● 香农编码:

编码规则如下:

1.将信源消息符号按其出现的概率大小排列

1()p x ≥2()p x ≥···≥()n p x

2.确定满足下列不等式的整数码长Ki :

2l o g ()i

p x -≤i K <2log ()i p x -+1 3.为了编成唯一可译码,计算第i 个消息的累加概率

Pi=1

1

()i k k p x -=∑

4.将累加概率Pi 变换成二进制数。

5.取Pi 二进数的小数点后Ki 位即为该消息符号的二进制码数。 ● Huffman 编码:

1.将n 个信源消息符号按其出现的概率大小依次排列,

1()p x ≥2()p x ≥···≥()n p x

2.取两个概率最小的字母分别配以0和1两码元,并将这两个概率相加作为一个新字母的概率,与未分配的二进符号的字母重新排队。

3.对重排后的两个概率最小符号重复步骤(2)的过程。

4.不断继续上述过程,直到最后两个符号配以0和1为止。

5.从最后一级开始,向前返回得到各个信源符号所对应的码元序列,即相应的码字。

四、实验报告内容

1.描述所用算法,给出代码。

2.与其他编码方式相比,香农和Huffman 编码各有何优缺点,其压缩效率如何?

相关文档
最新文档