实验一-信息熵与图像熵计算-正确

上传人:仙*** 文档编号:85639908 上传时间:2022-05-06 格式:DOC 页数:51 大小:1.01MB
收藏 版权申诉 举报 下载
实验一-信息熵与图像熵计算-正确_第1页
第1页 / 共51页
实验一-信息熵与图像熵计算-正确_第2页
第2页 / 共51页
实验一-信息熵与图像熵计算-正确_第3页
第3页 / 共51页
资源描述:

《实验一-信息熵与图像熵计算-正确》由会员分享,可在线阅读,更多相关《实验一-信息熵与图像熵计算-正确(51页珍藏版)》请在装配图网上搜索。

1、word实验一信息熵与图像熵计算(2 学时)一、实验目的1.复习MATLAB的基本命令,熟悉MATLAB下的基本函数;2.复习信息熵基本定义,能够自学图像熵定义和基本概念。二、实验容1.能够写出MATLAB源代码,求信源的信息熵;2.根据图像熵基本知识,综合设计出MATLAB程序,求出给定图像的图像熵。三、实验仪器、设备1.计算机系统最低配置256M存、P4 CPU;2.MATLAB编程软件。四 实验流程图五 实验数据及结果分析四、实验原理1.MATLAB中数据类型、矩阵运算、图像文件输入与输出知识复习。2.利用信息论息熵概念,求出任意一个离散信源的熵(平均自信息量)。自信息是一个随机变量,它

2、是指某一信源发出某一消息所含有的信息量。所发出的消息不同,它们所含有的信息量也就不同。任何一个消息的自信息量都代表不了信源所包含的平均自信息量。不能作为整个信源的信息测度,因此定义自信息量的数学期望为信源的平均自信息量:1( ) 1 ( ) log ( ) log ( ) i n i i p a i H E p a p a =- X 信息熵的意义:信源的信息熵H是从整个信源的统计特性来考虑的。它是从平均意义上来表征信源的总体特性的。对于某特定的信源,其信息熵只有一个。不同的信源因统计特性不同,其熵也不同。3.学习图像熵基本概念,能够求出图像一维熵和二维熵。图像熵是一种特征的统计形式,它反映了图

3、像中平均信息量的多少。图像的一维熵表示图像中灰度分布的聚集特征所包含的信息量,令Pi表示图像中灰度值为i的像素所占的比例,则定义灰度图像的一元灰度熵为:2550 log i i i p p = H 图像的一维熵可以表示图像灰度分布的聚集特征,却不能反映图像灰度分布的空间特征,为了表征这种空间特征,可以在一维熵的基础上引入能够反映灰度分布空间特征的特征量来组成图像的二维熵。选择图像的邻域灰度均值作为灰度2 分布的空间特征量,与图像的像素灰度组成特征二元组,记为(i,j),其中i表示像素的灰度值(0=i=255),j表示邻域灰度(0=j=255),2 ( , ) / ij p f i j N =上

4、式能反应某像素位置上的灰度值与其周围像素灰度分布的综合特征,其中f(i,j)为特征二元组(i,j)出现的频数,N为图像的尺度,定义离散的图像二维熵为:2550 log ij ij i p p = H 构造的图像二维熵可以在图像所包含信息量的前提下,突出反映图像中像素位置的灰度信息和像素邻域灰度分布的综合特征。五、实验步骤1.求解信息熵过程:(1)输入一个离散信源,并检查该信源是否是完备集;(2)去除信源中符号分布概率为零的元素;(3)根据平均信息量公式,求出离散信源的熵。2.图像熵计算过程:(1)输入一幅图像,并将其转换成灰度图像;(2)统计出图像中每个灰度阶象素概率;(3)统计出图像中相邻两

5、象素的灰度阶联合分布矩阵;(4)根据图像熵和二阶熵公式,计算出一幅图像的熵。六、实验报告要求1.按照本节容后实验报告形式书写;2.实验总结和心得要详细,可以根据自己实验情况,写出建议。七、实验注意事项1.MATLAB语言课下多复习,尽量采用模块化编程方法,通过函数调用形式运行程序。2.仔细理解、体会图像熵的概念,能够将其联合熵的概念理解透彻。八、思考题举例说明图像熵、信息熵在现实中有何实践指导意义?附录1:实验报告样式:实验报告班级:学号:组别:同组人:课程名称:实验室:实验时间:(使用实验报告纸的,以上容可按照实验报告纸格式填写)实验一信息熵与图像熵计算3 一、实验目的: 二、实验容与原理:

6、 三、实验器材(设备、元器件、软件工具、平台): 四、实验步骤: 五、程序流程图: 六、实验数据及结果分析: 七、实验结论: 八、思考题: 九、编程、调试过程中遇到的问题及解决方法: 十、其他:实验总结、心得体会及对本实验方法、手段及过程的改进建议等。 附录2:图像一维二维熵程序:close all; clc; I=imread(11.bmp); img=rgb2gray(I); imview(I),imview(img); ix,iy=size(img); P1=imhist(img)/(ix*iy); temp=double(img); temp=temp,temp(:,1); Coeff

7、icientMat=zeros(256,256); for x=1:ix for y=1:iy i=temp(x,y); j=temp(x,y+1); CoefficientMat(i+1,j+1)=CoefficientMat(i+1,j+1)+1; end end P2 = CoefficientMat./(ix*iy); H1=0; H2=0; for i=1:256 if P1(i)=0 H1=H1-P1(i)*log2(P1(i); end for j=1:256 if P2(i,j)=0 H2=H2-P2(i,j)*log2(P2(i,j); end end end H2=H2/2

8、; sprintf(1 ord image entropy is:%d,H1) sprintf(2 ord image entropy is:%d,H2)实验二香农编码(2 个学时)一、实验目的1.了解香农编码的基本原理及其特点;2.熟悉掌握香农编码的方法和步骤;3.掌握MATLAB 编写香农编码的程序。二、实验容1.根据香农编码的方法和步骤,用香农编码编写程序;2.用编写的源程序验证书中例题的正确性。三、实验仪器、设备1.计算机系统最低配置256M 存、P4 CPU;2. MATLAB 编程软件。四、实验原理1.香农编码原理:香农第一定理指出了平均码长与信源之间的关系,同时也指出了可以通过编

9、码使平均码长达到极限值,这是一个很重要的极限定理。香农第一定理指出,选择每个码字的长度i K 满足下式:I (Xi ) K I (Xi ) +1,i就可以得到这种码,这种编码方法就是香农编码。2.香农编码算法:1.将信源消息符号按其出现的概率大小依次排列:1 2 n P(X ) P(X ) , ,P(X )2.确定满足下列不等式整数码长i K ;log2p( ) log2 ( ) 1 i i i -x K -p x +3.为了编成唯一可译码,计算第i 个消息的累加概率;11( )ii kkp p x-=4.将累加概率i P变成二进制数;5.取i P二进制数的小数点后i K 位即为该消息符号的二

10、进制码字。五、实验步骤1.根据实验原理,设计香农编码程序;2.输入一组信源消息符号概率,可以求香农编码、平均码长和编码效率。六、实验报告要求51. 按照本节容后实验报告形式书写;2. 实验总结和心得要详细,可以根据自己情况写出建议。七、实验注意事项1.香农编码是符号概率大的用短表示,小长程序中 香农编码是符号概率大的用短表示,小长程序中 香农编码是符号概率大的用短表示,小长程序中 需要对概率进行排序,此我们调用 MATLAB MATLABMATLABMATLABMATLAB的库函数;2.最后需要注意的是,求得码字依次与排序符号概率对应 ;3.向无穷方取最小正整数位 ceilceilceil 函

11、数。八、思考题举例说明香农编码在现实中有际作用, 列一个子并简要说明?附录 1:实验报告样式:实验报告班级:学号:组别:同组人:课程名称:实验室:实验时间:(使用实验报告纸的,以上容可按照实验报告纸格式填写)实验二香农编码一、实验目的:二、实验容与原理:三、实验器材(设备、元器件、软件工具、平台):四、实验步骤:五、程序流程图:六、实验数据及结果分析:七、实验结论:八、思考题:九、编程、调试过程中遇到的问题及解决方法:十、其他:实验总结、心得体会及对本实验方法、手段及过程的改进建议等。附录 2:香农编码 程序 :close all;clc;n=input(输入信源符号个数:);p=zeros(

12、1,n);for i=1:np(1,i)=input(输入信源符号概率:);endif sum(p)1error(输入概率不符合概率分布)end6y=fliplr(sort(p);D=zeros(n,4);D(:,1)=y;for i=2:nD(1,2)=0;D(i,2)=D(i-1,1)+D(i-1,2);endfor i=1:nD(i,3)=-log2(D(i,1);D(i,4)=ceil(D(i,3);endDA=D(:,2);B=D(:,4);Code_length=0;for j=1:nCode_length=Code_length+p(j)*D(j,4);endH=0;for j=

13、1:nH=H+p(j)*log2(1/p(j);endfor j=1:nfprintf(输入信源符号概率为%f的码字为:,p(1,j);C=deczbin(A(j),B(j);disp(C)endEfficiency=H/(Code_length)fprintf(平均码长:n);disp(Code_length)fprintf(n 香农编码效率:n);disp(Efficiency)A:累加概率; B:码子长度。 :码子长度。function C=deczbin(A,B)C=zeros(1,B); temp=A;for i=1:Btemp=temp*2;if temp1temp=temp-1;

14、C(1,i)=1;elseC(1,i)=0;endend7实验三费诺编码(2 学时)一、实验目的掌握费诺编码方法的基本步骤及优缺点。二、实验容对于给定的信源的概率分布,按照费诺编码的方法进行计算机实现。三、实验仪器、设备1.计算机系统最低配置256M 存、P4 CPU;2.MATLAB 编程软件。四、实验原理1.费诺编码原理:费诺编码就是通过使编码中各个句号出现的概率大致相等,实现概率均匀化,从而减少冗余度,提高编码效率。凡是能载荷一定的信息量,且码字的平均长度最短,可分离的变长码的码字集合称为最佳变长码。在编N 进制码时首先将信源消息符号按其出现的额概率一次又小到大排列开来,并将排列好的心愿

15、符号按概率值分N 大组,使N 组的概率之和近似相同,并对各组赋予一个N 进制码元0、1.N-1。之后再针对每一个大组的心愿符号做如上处理,即再分为概率相同的N 组,赋予N 进制码元。如此重复,直到每组只剩下一个心愿符号为止。此时每个信源符号所对应的码字即为费诺码。针对同一个心愿,费诺码比香农码平均码长小,消息出书速率大,编码效率高。费诺编码是一种信源编码,它编码后的费诺码要比香农码的平均码长小,消息传输速率大,编码效率高。但它属于概率匹配编码它不是最佳的编码方法。2.费诺编码算法:(1)将信源消息符号按其出现的概率大小依次排列:1 2 ( ) ( ) . ( ) n P X P X P X(2

16、)将依次排列的信源符号按概率值分为两大组,使两个组的概率之和近似相同,并对各组赋予一个二进制码元“0”和“1”;(3)将每一大组的信源符号再分成两组,使划分后的两个组的概率之和近似相同,并对各组赋予一个二进制符号“0”和“1”;(4)如此重复,直至每个组只剩下一个信源符号为止;(5)信源符号所对应的码子即为费诺码。五、实验步骤1.根据实验原理,设计费诺编码程序;2.输入一组信源消息符号概率,可以求费诺编码,平均码长和编码效率。8六、实验报告要求1. 按照本节容后实验报告形式书写;2. 实验总结和心得要详细,可以根据自己情况写出建议。七、实验注意事项1.MATLAB 1.MATLAB1.MATL

17、AB1.MATLAB1.MATLAB语言课下多复习,尽量采用模块化编程方法通过函数调形式 语言课下多复习,尽量采用模块化编程方法通过函数调形式 语言课下多复习,尽量采用模块化编程方法通过函数调形式 语言课下多复习,尽量采用模块化编程方法通过函数调形式 运行程序;2. 仔细理解、体会费诺编码。八、思考题举例说明 费诺编码 在现实中际应用, 列举一个例子并简要说明?附录 1:实验报告样式:实验报告班级:学号:组别:同组人:课程名称:实验室:实验时间:(使用实验报告纸的,以上容可按照实验报告纸格式填写)实验三费诺编码一、实验目的:二、实验容与原理:三、实验器材(设备、元器件、软件工具、平台):四、实

18、验步骤:五、程序流程图:六、实验数据及结果分析:七、实验结论:八、思考题:九、编程、调试过程中遇到的问题及解决方法:十、其他:实验总结、心得体会及对本实验方法、手段及过程的改进建议等。附录2:费诺编程程序:clc;clear all;N=input(输入信源符号的个数:); s=0;l=0; H=0;for i=1:Nfprintf(第%d个,i);p(i)=input(p=);if (p(i)=1)error(不符合分布概率);ends=s+p(i);9H=H+(- p(i)*log2(p(i);endif (s=1.000001)error(不符合分布概率)endfor i=1:N-1fo

19、r j=i+1:Nif p(i)p(j)m=p(j);p(j)=p(i);p(i)=m;endendendx=f1(1,N,p,1);for i=1:NL(i)=length(find(x(i,:);l=l+p(i)*L(i);endn=H/l;fprintf(按概率降序排列的码子:n);disp(x)fprintf(平均码长:n);disp(l)fprintf(编码效率:n);disp(n)function x=f1(i,j,p,r)global x;x=char(x);if(j=i)return;elseq=0;for t=i:jq=p(t)+q;y(t)=q;endfor t=i:jv(

20、t)=abs(y(t)-(q-y(t);endfor t=i:jif(v(t)=min(v)for k=i:tx(k,r)=0;10endfor k=(t+1):jx(k,r)=1;endd=t;f1(i,d,p,r+1);f2(d+1,j,p,r+1);f1(d+1,j,p,r+1);f2(i,d,p,r+1);elseendendendreturn;function x=f2(i,j,p,r)global x;x=char(x);if(j=i)return;elseq=0;for t=i:jq=p(t)+q;y(t-i+1)=q;endfor t=1:j-(i-1)v(t)=abs(y(t

21、)-(q-y(t);endfor t=1:j-(i-1)if(v(t)=min(v)d=t+i-1;for k=i:dx(k,r)=0;endfor k=(d+1):jx(k,r)=1;endf2(d+1,j,p,r+1);f1(i,d,p,r+1);f2(i,d,p,r+1);f1(d+1,j,p,r+1);elseendendend11实验四哈夫曼编码(2学时)一、实验目的1.掌握哈夫曼编码原理;2.熟练掌握哈夫曼树的生成方法;3.学会利用 MATLAB MATLABMATLABMATLABMATLAB实现 哈夫曼 编码 ;4.提高独立进行算法编程的能力。二、实验容1.用 MATLAB M

22、ATLABMATLABMATLABMATLAB实现 哈夫曼 哈夫曼 编码算法程序;2.要求程序输出显示所有的码字以及编效率;3.设计简单的输入界面(可以是文字提示信息),程序运行时用 设计简单的输入界面(可以是文字提示信息),程序运行时用 设计简单的输入界面(可以是文字提示信息),程序运行时用 设计简单的输入界面(可以是文字提示信息),程序运行时用 设计简单的输入界面(可以是文字提示信息),程序运行时用 户输入代表信源符号概率的向量;要对用进行合法性检查 户输入代表信源符号概率的向量;要对用进行合法性检查 ;4.( 选做 )随机生成一幅图像, 随机生成一幅图像, 实现 哈夫曼 图像编码,比较前

23、后 图像编码,比较前后 图片 大小。三、实验仪器设备1.计算机系统最低配置 256M 存、 P4 CPUCPUCPU;2. MATLAB MATLABMATLABMATLABMATLAB编程软件。 编程软件。四、实验原理1.二进制 哈夫曼 编码的基本原理及算法(1) 把信源符号集中的所有按概率从大到小排队 把信源符号集中的所有按概率从大到小排队 ;(2) 取概率最小的两个符号作为片叶子合并(缩减)到一节点 取概率最小的两个符号作为片叶子合并(缩减)到一节点 ;(3) 视此节点为新符号,其概率等于被合并(缩减)的两个之和参 视此节点为新符号,其概率等于被合并(缩减)的两个之和参 与概率排队 ;(

24、4) 重复 (2)(3) (2)(3) 两步骤,直至全部符号都被合并(缩减)到根 两步骤,直至全部符号都被合并(缩减)到根 ;(5) 从根出发,对各分枝标记 从根出发,对各分枝标记 从根出发,对各分枝标记 0和 1。从根到叶的 路径就给出了各个码字。从根到叶的 路径就给出了各个码字编码和长 。2.哈夫曼 树的编码原理(1) 程序的输入:以一维数组形式要进行 程序的输入:以一维数组形式要进行 程序的输入:以一维数组形式要进行 程序的输入:以一维数组形式要进行 程序的输入:以一维数组形式要进行 程序的输入:以一维数组形式要进行 程序的输入:以一维数组形式要进行 程序的输入:以一维数组形式要进行 程

25、序的输入:以一维数组形式要进行 程序的输入:以一维数组形式要进行 程序的输入:以一维数组形式要进行 程序的输入:以一维数组形式要进行 程序的输入:以一维数组形式要进行 程序的输入:以一维数组形式要进行 程序的输入:以一维数组形式要进行 程序的输入:以一维数组形式要进行 程序的输入:以一维数组形式要进行 程序的输入:以一维数组形式要进行 程序的输入:以一维数组形式要进行 哈夫曼 哈夫曼 哈夫曼 编码的 信源符号编码的 信源符号编码的 信源符号编码的 信源符号编码的 信源符号编码的 信源符号编码的 信源符号编码的 信源符号概率,在运行该程序前显示文字提信息所要输入的矢量; 概率,在运行该程序前显示

26、文字提信息所要输入的矢量; 概率,在运行该程序前显示文字提信息所要输入的矢量; 概率,在运行该程序前显示文字提信息所要输入的矢量; 然后对输入的概率矢量进行合法性判断,原则为:如果中存在 然后对输入的概率矢量进行合法性判断,原则为:如果中存在 然后对输入的概率矢量进行合法性判断,原则为:如果中存在 然后对输入的概率矢量进行合法性判断,原则为:如果中存在 然后对输入的概率矢量进行合法性判断,原则为:如果中存在 然后对输入的概率矢量进行合法性判断,原则为:如果中存在 然后对输入的概率矢量进行合法性判断,原则为:如果中存在 然后对输入的概率矢量进行合法性判断,原则为:如果中存在 然后对输入的概率矢量

27、进行合法性判断,原则为:如果中存在 然后对输入的概率矢量进行合法性判断,原则为:如果中存在 然后对输入的概率矢量进行合法性判断,原则为:如果中存在 然后对输入的概率矢量进行合法性判断,原则为:如果中存在 然后对输入的概率矢量进行合法性判断,原则为:如果中存在 小于 0的项,则输入不合法提示重新;如果概率矢量求和大于 1,则输入也不合法,提示重新。(2) 在输入的概率矩阵 p正确的前提条件下 ,对 p进行排序,并用矩阵 L记 录 p排序之前各元素的顺,然后将概率数组 p的前两项,即 概率最小的两个数加和,得到新一组序列重复以上过程后 概率最小的两个数加和,得到新一组序列重复以上过程后 概率最小的

28、两个数加和,得到新一组序列重复以上过程后 概率最小的两个数加和,得到新一组序列重复以上过程后 概率最小的两个数加和,得到新一组序列重复以上过程后 概率最小的两个数加和,得到新一组序列重复以上过程后 概率最小的两个数加和,得到新一组序列重复以上过程后 概率最小的两个数加和,得到新一组序列重复以上过程后 概率最小的两个数加和,得到新一组序列重复以上过程后 概率最小的两个数加和,得到新一组序列重复以上过程后 概率最小的两个数加和,得到新一组序列重复以上过程后 概率最小的两个数加和,得到新一组序列重复以上过程后 概率最小的两个数加和,得到新一组序列重复以上过程后 得到一个记录概率加和过程的矩阵 p以及

29、每次排序之前概率顺的矩阵 ;12(3) 新生成一个 n-1行 n列,并且每个元素含有 n个字符的空白矩阵,然后 进行 哈夫曼 编码。五、实验步骤1. 输入一个离散信源,并检查该是否完备集;2. 使用 哈夫曼 编码原理进行 哈夫曼 程序编写 ;3. 输出离散信源中每个符号的 哈夫曼 编码 及平均码长 和编码效率 ,并与手工 ,并与手工 运算的结果进行比较。六、实验报告要求1.按照本节容后实验报告形式书写;2.实验总结和心得要详细,可以根据自己情况写出建议。七、实验注意事项1.比较大小 在 MATLAB MATLABMATLABMATLABMATLAB中, 调用的是 sort 函数 ;2.仔细理解

30、、体会 哈夫曼 编码思想 。八、思考题比较香农编码、费诺哈夫曼并说出他们的优缺点?附录 1:实验报告样式:实 验 报 告班级: : 学号: 组别: 同组人:课程名称: 实验室: 实验时间:(使用实验报告纸的,以上容可按照实验报告纸格式填写)实验四 哈夫曼编码一、实验目的:二、实验容与原理:三、实验器材(设备、元器件、软件工具、平台):四、实验步骤:五、程序流程图:六、实验数据及结果分析:七、实验结论:八、思考题:九、编程、调试过程中遇到的问题及解决方法:十、其他:实验总结、心得体会及对本实验方法、手段及过程的改进建议等。附录 2:哈夫曼编码程序 :clear all;close all;clc

31、;13n=input(输入信源符号数:);p=zeros(1,n);for i=1:np(1,i)=input(输入信源符号概率:);endq=p;if sum(p)1error(输入概率不符合概率分布)enda=zeros(n-1,n); n=length(p);for i=1:n-1q,l=sort(q); a(i,:)=l(1:n-i+1),zeros(1,i-1); q=q(1)+q(2),q(3:n),1;endfor i=1:n-1c(i,1:n*n)=blanks(n*n);endc(n-1,n)=1; c(n-1,2*n)=0;for i=2:n-1c(n-i,1:n-1)=c

32、(n-i+1,n*(find(a(n-i+1,:)=1)-(n-2):n*(find(a(n-i+1,:)=1);c(n-i,n)=1;c( n-i,n+1:2*n-1)=c(n-i,1:n-1);c(n-i,2*n)=0;for j=1:i-1 c(n-i,(j+1)*n+1:(j+2)*n)=c(n-i+1,n*(find(a(n-i+1,:)=j+1)-1)+1:n*find(a(n-i+1,:)=j+1);endendfor i=1:nh(i,1:n)=c(1,n*(find(a(1,:)=i)-1)+1:find(a(1,:)=i)*n); ll(i)=length(find(abs

33、(h(i,:)=32);endCode_length=0;for i=1:nCode_length=Code_length+p(1,i)*ll(i);EndEfficiency=H/(Code_length);fprintf(n 哈夫曼编码:n);disp(h)fprintf(n 平均码长:n);disp(Code_length)fprintf(n 哈夫曼编码效率:n);disp(Efficiency)14实验五 算术编码(2学时)一、实验目的1.掌握算数编码原理;2.学习算术编码基本流程 ,学会调试算术编码程序 ;3.根据给出资料,自学适应 0阶算术编码 方法。二、实验容1. 利用 MATL

34、AB MATLABMATLABMATLABMATLAB编写程序实现算数码; 编写程序实现算数码;2.对文件符号进行概率统计,生成编码表;3.对文件进行压缩编码;3.(选做)对文件进行解压缩,比较原始数据和后的之间是否有损 (选做)对文件进行解压缩,比较原始数据和后的之间是否有损 (选做)对文件进行解压缩,比较原始数据和后的之间是否有损 (选做)对文件进行解压缩,比较原始数据和后的之间是否有损 耗。三实验仪器、设备1.计算机系统最低配置 256M 存、 P4 CPUP4 CPU P4 CPUP4 CPU;2.MATLAB MATLABMATLABMATLABMATLAB编程软件。四、实验原理算术

35、编码的编码对象是一则消息或一个字符序列,其编码思路是将该消息或字符序列表示成0和1之间的一个间隔(Interval)上的一个浮点小数。在进行算术编码之前,需要对字符序列中每个字符的出现概率进行统计,根据各字符出现概率的大小,将每个字符映射到0,1区间上的某个子区间中。然后,再利用递归算法,将整个字符序列映射到0,1区间上的某个Interval中。在进行编码时,只需从该Interval中任选一个小数,将其转化为二进制数。符号序列越长,编码表示它的Interval的间隔就越小,表示这一间隔所需的二进制位数就越多,编码输出的码字就越长。五、实验步骤项目文件建立步骤同实验二,下面列出对给定序的算术编码

36、:1.编码器在开始时将“当前间隔”L ,H) 设置为 设置为 0 ,1) ;2.对每一事件,编码器按步骤( a)和( b)进行处理 ;(a)编码器将“当前间隔”分为子,每一个事件;(b)一个子间隔的大小与下将出现事件概率成比例,编码器选择 子间 隔对应于下一个确切发生的事件相,并使它成为新“当前子间 隔对应于下一个确切发生的事件相,并使它成为新“当前子间 隔对应于下一个确切发生的事件相,并使它成为新“当前隔”。 隔”。3.最后输出的“当前间隔”下边界就是该给定事件序列算术编码。六、实验报告要求1.按照本节容后实验报告形式书写;152.算术编码学习心得,特别是根据自适应模型 算术编码学习心得,特

37、别是根据自适应模型 0阶编码,调整概率分布方法。 阶编码,调整概率分布方法。 根据自己实验情况,写出的做中遇到具体问题对本提建 根据自己实验情况,写出的做中遇到具体问题对本提建 根据自己实验情况,写出的做中遇到具体问题对本提建 议。七、实验注意事项1. 编码概论累加分布;2. 编码区间上限和下迭代算法;3. 自适应模型 0阶的编码原理。八、思考题算术编码的优缺点?附录 1:实验报告样式:实验报告班级:学号:组别:同组人:课程名称:实验室:实验时间:(使用实验报告纸的,以上容可按照实验报告纸格式填写)实验五算术编码一、实验目的:二、实验容与原理:三、实验器材(设备、元器件、软件工具、平台):四、

38、实验步骤:五、程序流程图:六、实验数据及结果分析:七、实验结论:八、思考题:九、编程、调试过程中遇到的问题及解决方法:十、其他:实验总结、心得体会及对本实验方法、手段及过程的改进建议等。附录二:算术编码程序disp(%start%)disp(程序限定字符为:a b c d e);str=input(请输入编码的字符串:);j,k=size(str);l=0;r=1;d=1;p=0.2 0.3 0.1 0.15 0.25;pa=0.2;pb=0.3;16pc=0.1;pd=0.15;pe=0.25;n=length(str);disp(a b c d e)disp(num2str(p)for i

39、=1:kif i=1switch str(i)case am=1;a1=0;a2=pa;case bm=2;a1=pa;a2=pa+pb;case cm=3;a1=pa+pb;a2=pa+pb+pc;case dm=4;a1=pa+pb+pc;a2=pa+pb+pc+pd;case em=5;a1=pa+pb+pc+pd;a2=pa+pb+pc+pd+pe;endl=a2-a1;endif (i=2)&(i=1&inumswitch 1case ym1(i)=abm0=(bm0-0)/pa;case ym1(i)=bbm0=(bm0-pa)/pb;case ym1(i)=cbm0=(bm0-p

40、a-pb)/pc;case ym1(i)=dbm0=(bm0-pa-pb-pc)/pd;case ym1(i)=ebm0=(bm0-pa-pb-pc-pd)/pe;endi=i+1;ym1(i)=YM(bm0);enddisp(%jiema_start%)disp(译码结果是,ym1)disp(%jiema_end%)函数二:function ym=YM(A)pa=0.2;pb=0.3;pc=0.1;pd=0.15;pe=0.25;switch 1case 0=A&Apaym=a;case pa=A&Apa+pbym=b;case pa+pb=A&Apa+pb+pcym=c;case pa+p

41、b+pc=A&Apa+pb+pc+pdym=d;case pa+pb+pc+pd=A&A=1|A0.5-eps)e(i,j)=1;elsee(i,j)=0;endendendcc=mod(y+e,2);sc=cc(:,1:2);disp(差错图样);edisp(估计值);ccdisp(译码序列);sc_clear all;close all;clc;13n=input(:);p=zeros(1,n);for i=1:np(1,i)=input(:);endq=p;if sum(p)1error()enda=zeros(n-1,n); n=length(p);for i=1:n-1q,l=sor

42、t(q); a(i,:)=l(1:n-i+1),zeros(1,i-1); q=q(1)+q(2),q(3:n),1;endfor i=1:n-1c(i,1:n*n)=blanks(n*n);endc(n-1,n)=1; c(n-1,2*n)=0;for i=2:n-1c(n-i,1:n-1)=c(n-i+1,n*(find(a(n-i+1,:)=1)-(n-2):n*(find(a(n-i+1,:)=1);c(n-i,n)=1;c( n-i,n+1:2*n-1)=c(n-i,1:n-1);c(n-i,2*n)=0;for j=1:i-1 c(n-i,(j+1)*n+1:(j+2)*n)=c(

43、n-i+1,n*(find(a(n-i+1,:)=j+1)-1)+1:n*find(a(n-i+1,:)=j+1);endendfor i=1:nh(i,1:n)=c(1,n*(find(a(1,:)=i)-1)+1:find(a(1,:)=i)*n); ll(i)=length(find(abs(h(i,:)=32);endCode_length=0;for i=1:nCode_length=Code_length+p(1,i)*ll(i);endEfficiency=h/(Code_length);fprintf(n :n);disp(h)fprintf(n :n);disp(Code_l

44、ength)fprintf(n n);disp(Efficiency)close all;clc;G=input(G,:G=1 0 1 1 1;0 1 1 0 1n G=);G;k,n=size(G);r=n-k;m=input(m,m=0 0 0 1 1 0 1 1n m=);l=length(m);if(mod(l,k)disp();elsege=l/k;temp1=;for i=1:getemp1(i,:)=m(k*(i-1)+1:i*k);endm=temp1;c=mod(m*G,2);A=G(:,k+1:n);H=A,eye(r);disp();Hdisp();cenddisp();

45、pausey=input(y,:y=0 0 0 0 0 0 1 1 0 1 1 0 1 1 1 1 0 0 1 0n y=);temp2=;for i=1:getemp2(i,:)=y(1,n*(i-1)+1:i*n);endy=temp2s=mod(y*H,2);e=s*pinv(H);22for i=1:gefor j=1:nif(e(i,j)0.5-eps)e(i,j)=1;elsee(i,j)=0;endendendcc=mod(y+e,2);sc=cc(:,1:2);disp();edisp();ccdisp();sc三四 哈夫曼编码五 算术编码六 线性分组码的信道编码和译码51 / 51

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!