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

上传人:大张伟 文档编号:5655445 上传时间:2020-07-20 格式:DOC 页数:6 大小:44KB
返回 下载 相关 举报
实验二:算术编码及MATLAB实现.doc_第1页
第1页 / 共6页
实验二:算术编码及MATLAB实现.doc_第2页
第2页 / 共6页
实验二:算术编码及MATLAB实现.doc_第3页
第3页 / 共6页
实验二:算术编码及MATLAB实现.doc_第4页
第4页 / 共6页
实验二:算术编码及MATLAB实现.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

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

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

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

3、的程序代码) 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

4、 = 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(符号的

5、间隔左右边界:); disp(strl); format long; disp(l);disp(r);End3、实验记录(1) 输入多组信源数据进行测试分析;(2) 记录输入各符号时,产生的新子区间,并与理论结果比较分析。例如: 步骤 符号 C L1 1 0.25 0.752 0 0.25+0*0.75=0.25 0.75*0.25=0.18753 1 0.25+0.25*0.1875=0.296875 0.1875*0.75=0.1406254 1 0.296875+0.25*0.140625=0.33203125 0.140625*0.75=0.10546875子区间左端起点 C=0.33

6、203125子区间长度L=0.10546875子区间右端M=0.33203125+0.10546875=0.4375综上所述,计算结果与实验结果相比较后验证了算术编码的实验原理以及编码规则。同理可得: 本题通过运用算术编码得出的结果与实验结果相同,进一步验证了算术编码的原理。3、 实验小结: 注:1、实验小结应包含实验所需知识点和实验方法的总结,实验心得体会等。2、分组实验需包含同组讨论内容。 实验心得:算数编码是一种比较麻烦的编码方式,如果用手算步骤多而且烦琐,还容易出错,但是我们通过MATLAB来编码,不仅速度快而且准确率高。我通过本次实验进一步加深了对算数编码的了解,对我们以后的学习有课很大的帮助。 实验报告成绩(百分制)_ 实验指导教师签字:_

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1