《信息论与编码技术》实验教案

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

教案

2010 ~ 2011 学年第 1 学期

《信息论与编码技术》实验教案

教学院(部)电气与电子信息工程学院

教研室电子信息教研室

授课班级 07 电信本、08电信专

授课教师艾青

职称职务助教

教材名称《信息论-基础理论与应用》

2010 年 10 月 1 日

实验二、信源编译码

一、实验目的

1、掌握标量量化的基本使用方法。

2、掌握预测量化的基本使用方法。

3、掌握Huffman编码的仿真方法。

4、通过信源编译码,理解香农第一定理。

二、实验主要仪器与设备

1、微机

三、实验原理

大多数信源(比如语音、图像)最开始都是模拟信号,为了将信源输出数字化,信源必须量化为确定数目的级数。量化方案可划分为标量量化和矢量量化两种。在标量量化中每个信源输出都分别被量化,标量量化可进一步分为均匀量化和非均匀量化。在均匀量化中量化区域是等长的;在非均匀量化中量化区域可以是不等长的。矢量量化是对信源输出组合进行整体量化。

在MATLAB通信工具箱中提供了两种信源编译码的方法:标量量化和预测量化。

1、标量量化

①信源编码中的μ律或A律压扩计算函数compand( )

格式:out=compand(in, param, V, method)

功能:实现值μ律或A律压扩,其中param为μ,V为峰值。压扩方式由method指定。

②产生量化索引和量化输出值的函数quantiz( )

格式:indx=quantiz(sig, partition)

功能:根据判断向量partition,对输入信号sig产生量化索引indx,indx的长度与sig矢量的长度相同。

③采用训练序列和Lloyd算法优化标量算法的函数lloyds( )

格式:[parition, codebook]=lloyds(training_set, ini_codebook) 功能:用训练集矢量training_set优化标量量化参数partition 和码本codebook。ini_codebook是码本codebook的初始值。

2、预测量化

根据过去发送的信号来估计下一个将要发送的信号值。

①差分脉冲调制编码函数dpcmenco( )

格式:indx=dpcmenco(sig, codebook, partition, predictor)

功能:返回DPCM编码的编码索引indx。其中参数sig为输入信号,predictor为预测器传递函数,其形式为[0, t1,…, tm]。预测误差的量化参数由partition和predictor指定。

②信源编码中的DPCM解码函数dpcmdeco( )

格式:sig=dpcmdeco(indx, codebook, predictor)

功能:根据DPCM信号编码索引indx进行解码。predictor为指定的预测器,codebook为码本。

3、信源编码可分为两类:无失真编码和限失真编码。Huffman 编码的基本原理就是为概率较小的信源输出分配较长的码字,而对那些出现可能性较大的信源输出分配较短的码字。

1)Huffman编码算法及步骤如下:

①将信源消息按照概率大小顺序排队。

②按照一定的规则,从最小概率的两个消息开始编码。

③将经过编码的两个消息的概率合并,并重新按照概率大小排序,重复步骤②。

④重复上面步骤③,一直到合并的概率达到1时停止。这样便可以得到编码树状图。

⑤按照后出先编码的方式编程,即从数的根部开始,将0和1分别放到合并成同一节点的任意两个支路上,这样就产生了这组Huffman码。

2)费诺编码

属于概率匹配编码,它不是最佳编码方法,编码过程如下:

1、将信源发出的N个消息符号按其概率的递减次序依次排列。

2、将依次排列的信源符号依概率分成两组,使两个组的概率和近于相同,并对各组赋予一个二进制代码符号“0”和“1”(编m进制码就分成m组)。

3、将每一个大组的信源符号进一步再分成两组,使划分后的两个组的概率和近于相同,并又分别赋予两组一个二进制符号

“0”和“1”

4、如此重复,直至每组值只剩下一个信源符号为止

5、信源符号所对应的码符号序列即为费诺码

3)、香农编码

1、将信源发出的N 个消息符号按其概率的递减次序依次排列。

2、按下式计算第i 个消息的二进制代码组的码长,并取整。

3、为了编成唯一可译码,首先计算第i 个消息的累加概率

4、将累加概率Pi (为小数)变成二进制数

5、除去小数点,并根据码长li ,取小数点后li 位数作为第i 个消息的码字。

四、 预习要求

做实验前必须认真复习教材中关于信源编译码的有关内容。

五、 实验内容及步骤

1、练习使用上述函数命令。

①用训练序列和Lloyd 算法,对一个正弦信号数据进行标量化。

要求在实验报告中得到:1)MATLAB 程序;2)仿真结果 ②用训练数据优化DPCM 方法,对一个余弦信号数据进行标量化。

要求在实验报告中得到:1)MATLAB 程序;2)仿真结果 N

p p p ≥≥211

)(log )(log +-≤≤-i i i s p l s p ∑-==1

1)

(i k k i s p P

①用训练序列和Lloyd算法,对一个正弦信号数据进行标量化。

N=2^3;

t=[0:100]*pi/20;

u=cos(t);

[p, c]=Lloyds(u,N);

[index,quant,distor]=quantiz(u,p,c);

plot(t,u,t,quant,’*’);

②用训练数据优化DPCM方法,对一个余弦信号数据进行标量化。

N=2^3;

t=[0:100]*pi/20;

u=cos(t);

相关文档
最新文档