长字符串的算术编码matlab,算术编码及MATLAB实现

《算术编码及MATLAB实现》由会员分享,可在线阅读,更多相关《算术编码及MATLAB实现(6页珍藏版)》请在人人文库网上搜索。

1、武夷学院实验报告课程名称: 多媒体通信技术 项目名称: 算术编码及MATLAB实现 姓名: _专业:__通信工程___ 班级: 学号:____同组成员_无_1、 实验准备 注:1、实验准备部分包括实验环境准备和实验所需知识点准备。2、若是单人单组实验,同组成员填无。:1. 实验目的1) 掌握算术编码基本原理及其实现步骤。2) 通过MATLAB实现算术编码。2. 实验环境机房2、 实验过程记录 注:实验过程记录要包含实验目的、实验原理、实验步骤,页码不够可自行添加。:1、 实验原理算术编码的编码对象是一则消息或一个字符序列,其编码思路是将消息或字符序列表示成0和1之间的一个间隔上的一个浮点小数。。

2、在进行算术编码之前,需要对字符序列中每个字符的出现概率进行统计,根据各字符出现概率的大小,将每个字符映射到0 ,1区间上的某个子区间中。然后,在利用递归算法,将整个字符序列映射到0,1 区间上的某个间隔中。在进行编码时,只需从该间隔中任选一个小数,将其转化为二进制数。符号序列越长,编码表示他的间隔就越小,表示这个间隔所需的二进制位数就越多,编码输出的码字就越长。算术编码规则在进行编码过程中,随着信息的不断出现,子区间按下列规律减小。新子区间左端=前子区间左端+当前子区间左端前子区间长度。新子区间长度=前子区间长度当前子区间长度2、实验代码(附上相应的程序代码)function arithmet。

3、iccoding S = input(请输入信源符号=);P = input(请输入信源概率向量P=);str = input(输入编码的字符串=);l = 0;r = 1;d = 1;n = length(str);n_S = length(P);%*处理第一个字符*%for i=1:nflag = 0;for k = 1:n_Sif str(i)=S(k)m=k;flag =1;break;endendif flag =0error(非信源字符);end%*当前单个字符的左、右端以及长度处理*%pl = 0;pr = 0;for j = 1:m-1pl = pl + P(j); %左端en。

4、dpr = pl+P(m); %右端 pd = pr-pl; %子区间长度%*新子区间的左、右边界以及长度处理*%if i = 1 %首字符l = pl;r = pr;d = pd;else %算术编码规则l = l+d*pl; d = d*pd;r = l+d;endstrl = strcat(第,int2str(i),个符号的间隔左右边界:);disp(strl);format long;disp(l);disp(r);endstrl = strcat(符号的间隔左右边界:);disp(strl);format long;disp(l);disp(r);end3、实验记录(1) 输入多组信。

5、源数据进行测试分析;(2) 记录输入各符号时,产生的新子区间,并与理论结果比较分析。三、实验小结: 注:1、实验小结应包含实验所需知识点和实验方法的总结,实验心得体会等。2、分组实验需包含同组讨论内容。本次的实验内容比较简单,在实验的过程中,老师要求我们要掌握每一步编码的由来,还要使程序能够显示每一个子区间范围,这就增加了实验的难度,但是在实验的过程中会发现只要认真的研究程序,按照老师教的步骤验证每一步得到的结果,还是能够教容易的完成实验的。所以在实验的过程中我们一定要认真听讲,不懂的及时和老师沟通,才能学到更多的东西。实验报告成绩(百分制)__________ 实验指导教师签字:__________。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值