《2022年《信息论与编码技术》实验教案.docx》由会员分享,可在线阅读,更多相关《2022年《信息论与编码技术》实验教案.docx(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -名师精编 优秀教案教案2022 2022 学年 第 1 学期信息论与编码技术试验教案教 学 院 ( 部 )电气与电子信息工程学院教课研班室电子信息教研室授级 07 电信本、 08 电信专授课教师艾青职称职务助教教材名称信息论 - 基础理论与应用2022 年 10 月 1 日细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 1 页,共 13 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -名师
2、精编 优秀教案实 验 二 、 信 源 编 译 码一、试验目的 1、把握标量量化的基本使用方法;2、把握猜测量化的基本使用方法;3、把握 Huffman 编码的仿真方法;4、通过信源编译码,懂得香农第肯定理;二、试验主要仪器与设备 1、微机 三、试验原理 大多数信源(比如语音、图像)最开头都是模拟信号,为了 将信源输出数字化,信源必需量化为确定数目的级数;量化方案 可划分为标量量化和矢量量化两种;在标量量化中每个信源输出 都分别被量化,标量量化可进一步分为匀称量化和非匀称量化;在匀称量化中量化区域是等长的;在非匀称量化中量化区域可以 是不等长的;矢量量化是对信源输出组合进行整体量化;在 MATL
3、AB 通信工具箱中供应了两种信源编译码的方法:标 量量化和猜测量化;1、标量量化 信源编码中的 律或 A 律压扩运算函数 compand 格式: out=compandin, param, V, method 功能:实现值 律或 A 律压扩,其中 param为 ,V 为峰值;压扩方式由 method指定;细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 2 页,共 13 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -名师精编 优秀教案产生量化索引和量化输出值的函数 quan
4、tiz 格式: indx=quantizsig, partition 功能:依据判定向量partition,对输入信号 sig 产生量化索引indx ,indx 的长度与 sig 矢量的长度相同;采纳训练序列和Lloyd 算法优化标量算法的函数lloyds 格式: parition, codebook=lloydstraining_set, ini_codebook 功能:用训练集矢量training_set 优化标量量化参数partition和码本 codebook;ini_codebook 是码本 codebook的初始值;2、猜测量化依据过去发送的信号来估量下一个将要发送的信号值;差分脉
5、冲调制编码函数 dpcmenco 格式: indx=dpcmencosig, codebook, partition, predictor 功能:返回 DPCM 编码的编码索引indx;其中参数 sig 为输入信号, predictor 为猜测器传递函数,其形式为 0, t1, , tm; 预测误差的量化参数由partition 和 predictor 指定;信源编码中的 DPCM 解码函数 dpcmdeco 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 3 页,共 13 页 - - - - - - - - - 名师归纳总结 精品学习资料 - -
6、- - - - - - - - - - - - -名师精编 优秀教案格式: sig=dpcmdecoindx, codebook, predictor 功能:依据 DPCM 信号编码索引 indx 进行解码; predictor 为 指定的猜测器, codebook 为码本;3、信源编码可分为两类: 无失真编码和限失真编码; Huffman 编码的基本原理就是为概率较小的信源输出安排较长的码字,而 对那些显现可能性较大的信源输出安排较短的码字;1)Huffman 编码算法及步骤如下: 将信源消息依据概率大小次序排队; 依据肯定的规章,从最小概率的两个消息开头编码; 将经过编码的两个消息的概率合
7、并,并重新依据概率大 小排序,重复步骤; 重复上面步骤,始终到合并的概率达到 1 时停止;这样 便可以得到编码树状图;0 和 依据后出先编码的方式编程,即从数的根部开头,将1 分别放到合并成同一节点的任意两个支路上,Huffman 码;2)费诺编码这样就产生了这组属于概率匹配编码,它不是正确编码方法,编码过程如下:1、将信源发出的 N 个消息符号按其概率的递减次序依次排列;2、将依次排列的信源符号依概率分成两组,使两个组的概率和近于相同, 并对各组给予一个二进制代码符号“0” 和“1” (编m 进制 码就分成 m 组);3、将每一个大组的信源符号进一步再分成两组,使划分后的 两个组的概率和近于
8、相同,并又分别给予两组一个二进制符号细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 4 页,共 13 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -“ 0” 和“1”名师精编优秀教案4、如此重复,直至每组值只剩下一个信源符号为止 5、信源符号所对应的码符号序列即为费诺码 3)、香农编码 1、将信源发出的 N 个消息符号按其概率的递减次序依次排列;p 1p 2p N2、按下式运算第 i 个消息的二进制代码组的码长,并取整;logp s ililogp s i13、为了编成唯
9、独可译码,第一运算第P ii1p s kk1i 个消息的累加概率4、将累加概率 Pi (为小数)变成二进制数5、除去小数点,并依据码长 个消息的码字;四、预习要求li ,取小数点后 li 位数作为第 i做试验前必需仔细复习教材中关于信源编译码的有关内容;五、试验内容及步骤1、练习使用上述函数命令;化;用训练序列和 Lloyd 算法,对一个正弦信号数据进行标量要求在试验报告中得到: 1)MATLAB 程序; 2)仿真结果用训练数据优化 DPCM 方法,对一个余弦信号数据进行标量化;要求在试验报告中得到: 1)MATLAB 程序; 2)仿真结果细心整理归纳 精选学习资料 - - - - - - -
10、 - - - - - - - - 第 5 页,共 13 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -名师精编 优秀教案化;用训练序列和 Lloyd 算法,对一个正弦信号数据进行标量N=23; t=0:100*pi/20; u=cost; p, c=Lloydsu,N; index,quant,distor=quantizu,p,c; plott,u,t,quant, * ; 1 0.8 0.60.4 0.2 0-0.2-0.4-0.6-0.8-10246810121416用训练数据优化DPCM 方法,对一个余弦信
11、号数据进行标量化;N=23; t=0:100*pi/20; u=cost; 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 6 页,共 13 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -名师精编 优秀教案predictor,codebook,partition=dpcmoptu,1,N; index,quant=dpcmencou, codebook, partition ,predictor; sig,equant= dpcmdecoindex, codebook,
12、predictor; plott,u,t,equant, * ; 1 0.8 0.6 0.4 0.2 0-0.2-0.4-0.6-0.8-102468101214162、利用 MATLAB 实现以下两种上信源编译码方法 霍夫曼编码 费诺编码 香农编码 要求在试验报告中得到: 1)MATLAB 程序; 2仿真结果霍夫曼编码 1、熵子程序 function h=entropyp 细心整理归纳 精选学习资料 % H=ENTROPYP returns the entropy function of 第 7 页,共 13 页 - - - - - - - - - - - - - - - - - - - -
13、 - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -名师精编 优秀教案% the probability vector p. if lengthfindp10e-10, errorNot a prob. vector, components do not add up to 1 end h=sum-p.*log2p; 2、哈夫曼编码程序 function h,l=huffmanp; %HUFFMAN Huffman code generator % % % % h,l=huffmanp, Huffman code generator retu
14、rns h the Huffman code matrix, and l the average codeword length for a source with probability vector p. if lengthfindp10e-10, errorNot a prob. vector, components do not add up to 1 end n=lengthp; q=p; m=zerosn-1,n; for i=1:n-1 q,l=sortq; mi,:=l1:n-i+1,zeros1,i-1; q=q1+q2,q3:n,1; end for i=1:n-1 ci,
15、:=blanksn*n; end cn-1,n=0; cn-1,2*n=1; for i=2:n-1 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 8 页,共 13 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -名师精编 优秀教案cn-i,1:n-1=cn-i+1,n*findmn-i+1,:=1. -n-2:n*findmn-i+1,:=1; cn-i,n=0; cn-i,n+1:2*n-1=cn-i,1:n-1; cn-i,2*n=1; for j=1:i-1 cn
16、-i,j+1*n+1:j+2*n=cn-i+1,. n*findmn-i+1,:=j+1-1+1:n*findmn-i+1,:=j+1; end end for i=1:n hi,1:n=c1,n*findm1,:=i-1+1:findm1,:=i*n; l1i=lengthfindabshi,:=32; end l=sump.*l1; 3、试验命令a=.2 .15 .13 .12 .1 .09 .08 .07 .06; b,c=huffmana; d=entropya 费诺编码1、费诺编码程序细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 9 页,
17、共 13 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -名师精编 优秀教案function c=fanop % p=0.25 0.25 0.20 0.15 0.10 0.05 % c=fanop n=sizep,2; %已经编码完成 if n=1 c=cell1,1; c1=; return end p,index=sortp;%按概率排序 p=fliplrp; total=sump;%总概率 acc=0;%累积概率 flag=0;%是否到达尾部的标志 for i=1:n-1 newacc=acc+pi; if a
18、bstotal-2 * newacc=abstotal - 2*acc flag=1; break; end acc=newacc; end if flag i=n; end split=i; %从分界点对两边的码递归做 fano c1=fanop1:split-1; c2=fanopsplit:n; c=cell1,n; %添加前缀 0,1 for i=1:split-1 end ci=strcat0,c1i; for i = split:n 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 10 页,共 13 页 - - - - - - - - -
19、 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -名师精编 优秀教案ci=strcat1,c2i - split + 1 ; end %将次序调整回去 c=fliplrc; cindex=c; 2、试验命令 a=.2 .15 .13 .12 .1 .09 .09 .07 .06; t=fanoa 香农编码1、香农编码程序 function c=shannonp % p=0.25 0.25 0.20 0.15 0.10 0.05 % shannonp p,index=sortp; p=fliplrp;% 从大到小 n=lengthp; pa=0;%累加概率
20、for i=2:n pai=pai-1+pi-1; end k=ceil-log2p;% 码长运算c=cell1,n;%生成元胞数组,存码字,是cell,跟上一行不一细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 11 页,共 13 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -名师精编 优秀教案样for i=1:n ci= ; tmp=pai; for j=1:ki tmp=tmp * 2; if tmp=1 tmp=tmp - 1; cij= 1; else cij=
21、 0; end end end %p %pa %交换回原先的次序 c=fliplrc; cindex=c; 2、试验命令 a=.2 .15 .13 .12 .1 .09 .08 .07 .06; b=shannona; 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 12 页,共 13 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -六、摸索题名师精编优秀教案1、信源编码的目的?信源编码的目的是压缩冗余度,提高信息的传输速率;七、试验报告1、试验报告中应具备试验中每一步骤实现的程序或过程,以 及试验结果;应对试验结果进行误差分析;2、回答摸索题;细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 13 页,共 13 页 - - - - - - - - -