实验二:算术编码及MATLAB实现.docVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验二:算术编码及MATLAB实现 实验二:算术编码及MATLAB实现 PAGE 实验二:算术编码及MATLAB实现 武夷学院实验报告 课程名称: 多媒体通信技术 项目名称: 算术编码及MATLAB实现  姓名:叶永雄_专业:通信工程_ 班级:1班_学号:010_同组成员:_无_ 实验准备 注:1、实验准备部分包括实验环境准备和实验所需知识点准备。 注:1、实验准备部分包括实验环境准备和实验所需知识点准备。 2、若是单人单组实验,同组成员填无。 实验目的 掌握算术编码基本原理及其实现步骤。 通过实现算术编码。 实验环境 PC机一台 MATLAB 软件环境 实验过程记录 注:实验过程记录要包含实验目的、实验原理、实验步骤,页码不够可自行添加。 注:实验过程记录要包含实验目的、实验原理、实验步骤,页码不够可自行添加。 实验原理 算术编码的编码对象是一则消息或一个字符序列,其编码思路是将消息或字符序列表示成0和1之间的一个间隔上的一个浮点小数。 在进行算术编码之前,需要对字符序列中每个字符的出现概率进行统计,根据各字符出现概率的大小,将每个字符映射到[0 ,1]区间上的某个子区间中。然后,在利用递归算法,将整个字符序列映射到[0,1 ]区间上的某个间隔中。在进行编码时,只需从该间隔中任选一个小数,将其转化为二进制数。 符号序列越长,编码表示他的间隔就越小,表示这个间隔所需的二进制位数就越多,编码输出的码字就越长。 算术编码规则 在进行编码过程中,随着信息的不断出现,子区间按下列规律减小。 ·新子区间左端=前子区间左端+当前子区间左端×前子区间长度。 ·新子区间长度=前子区间长度×当前子区间长度 2、实验代码 (附上相应的程序代码) function arithmeticcoding S = input(请输入信源符号=); P = input(请输入信源概率向量P=); str = input(输入编码的字符串=); l = 0; r = 1; d = 1; n = length(str); n_S = length(P); %**********处理第一个字符***********% for i=1:n flag = 0; for k = 1:n_S if str(i)==S(k) m=k; flag =1; break; end end if flag ==0 error(非信源字符); end %*********当前单个字符的左、右端以及长度处理**************% pl = 0; pr = 0; for j = 1:m-1 pl = pl + P(j); %左端 end pr = 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; end strl = strcat(第,int2str(i),个符号的间隔左右边界:); disp(strl); format long; disp(l);disp(r); end strl = strcat(符号的间隔左右边界:); disp(strl); format long; disp(l);disp(r); End 3、实验记录 (1) 输入多组信源数据进行测试分析; (2) 记录输入各符号时,产生的新子区间,并与理论结果比较分析。 例如: 步骤 符号 C

文档评论(0)

天风浪人 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档