欢迎来到天天文库
浏览记录
ID:39136450
大小:63.05 KB
页数:6页
时间:2019-06-25
《实验二:算术编码及MATLAB实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、武夷学院实验报告课程名称:多媒体通信技术项目名称:算术编码及MATLAB实现姓名:_专业:__通信工程___班级:学号:____同组成员_无_一、实验准备注:1、实验准备部分包括实验环境准备和实验所需知识点准备。2、若是单人单组实验,同组成员填无。:1.实验目的1)掌握算术编码基本原理及其实现步骤。2)通过MATLAB实现算术编码。2.实验环境机房二、实验过程记录注:实验过程记录要包含实验目的、实验原理、实验步骤,页码不够可自行添加。:1、实验原理算术编码的编码对象是一则消息或一个字符序列,其编码思路是将消息或字符序列表示成0和1之间的一个间隔上的一个浮点小数
2、。在进行算术编码之前,需要对字符序列中每个字符的出现概率进行统计,根据各字符出现概率的大小,将每个字符映射到[0,1]区间上的某个子区间中。然后,在利用递归算法,将整个字符序列映射到[0,1]区间上的某个间隔中。在进行编码时,只需从该间隔中任选一个小数,将其转化为二进制数。符号序列越长,编码表示他的间隔就越小,表示这个间隔所需的二进制位数就越多,编码输出的码字就越长。算术编码规则在进行编码过程中,随着信息的不断出现,子区间按下列规律减小。·新子区间左端=前子区间左端+当前子区间左端×前子区间长度。·新子区间长度=前子区间长度×当前子区间长度2、实验代码(附上相应的程序代码)funct
3、ionarithmeticcodingS=input('请输入信源符号=');P=input('请输入信源概率向量P=');str=input('输入编码的字符串=');l=0;r=1;d=1;n=length(str);n_S=length(P);%**********处理第一个字符***********%fori=1:nflag=0;fork=1:n_Sifstr(i)==S(k)m=k;flag=1;break;endendifflag==0error('非信源字符');end%*********当前单个字符的左、右端以及长度处理**************%pl=0;pr=0
4、;forj=1:m-1pl=pl+P(j);%左端endpr=pl+P(m);%右端pd=pr-pl;%子区间长度%*********新子区间的左、右边界以及长度处理**************%ifi==1%首字符l=pl;r=pr;d=pd;else%算术编码规则l=l+d*pl;d=d*pd;r=l+d;endstrl=strcat('第',int2str(i),'个符号的间隔左右边界:');disp(strl);formatlong;disp(l);disp(r);endstrl=strcat('符号的间隔左右边界:');disp(strl);formatlong;disp(
5、l);disp(r);end3、实验记录(1)输入多组信源数据进行测试分析;(2)记录输入各符号时,产生的新子区间,并与理论结果比较分析。三、实验小结:注:1、实验小结应包含实验所需知识点和实验方法的总结,实验心得体会等。2、分组实验需包含同组讨论内容。本次的实验内容比较简单,在实验的过程中,老师要求我们要掌握每一步编码的由来,还要使程序能够显示每一个子区间范围,这就增加了实验的难度,但是在实验的过程中会发现只要认真的研究程序,按照老师教的步骤验证每一步得到的结果,还是能够教容易的完成实验的。所以在实验的过程中我们一定要认真听讲,不懂的及时和老师沟通,才能学到更多的东西。实验报告成绩
6、(百分制)__________实验指导教师签字:__________
此文档下载收益归作者所有