算数编码实验_第1页
算数编码实验_第2页
算数编码实验_第3页
算数编码实验_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验一:算数编码实验、实验目的掌握算数编码原理。、实验内容利用Matlab编写程序实现算数编码,包括:1、对文件符号进行概率统计,生成编码表;2、对文件进行压缩编码;3、(选做)对文件进行解压缩,比较原始数据和解压后的数据之间是否有损耗。三、实验仪器1、计算机一台;2、Matlab仿真软件。四、实验原理算术编码的编码对象是一则消息或一个字符序列,其编码思路是将该消息或字符序列表示成0和1 之间的一个间隔(Interval)上的一个浮点小数。在进行算术编码之前,需要对字符序列中每个字符的出现概率进行统计,根据各字符出现概率的大 小,将每个字符映射到0,1区间上的某个子区间中。然后,再利用递归算法

2、,将整个字符序列映射到 0,1区间上的某个Interval中。在进行编码时,只需从该Interval中任选一个小数,将其转化为二进制 数。符号序列越长,编码表示它的Interval的间隔就越小,表示这一间隔所需的二进制位数就越多,编码 输出的码字就越长。五、实验结果算数编码的MATLAB程序运行结果如下:请输入编码的字符串,state_tree, _aerst输入第1符号的间隔左右边界:输入第2符号的间隔左右边界:输入第3符号的间隔左右边界: 输入第4符号的间隔左右边界:输入第5符号的间隔左右边界:输入第6符号的间隔左右边界:输入第7符号的间隔左右边界:输入第8符号的间隔左右边界:输入第9符号

3、的间隔左右边界:输入第10符号的间隔左右边界:算术编码程序代码如下:str=input(if输入编码的字符串);l=0;r=1 ;d=1;%初始间隔P=;%字符的概率分布,sum(p)=1n=len gth(str);disp(_ a e r s V)disp( nu m2str(p)for i=1: nswitch str(i)casem=1;case a1m=2;case e1m=3;case 丫m=4;case Mm=5;case fm=6;otherwiseerrorf请不要输入其它字符!);end%判断字符pl=0;pr=0;for j=1:m-1pl=pl+p(j);end for

4、 j=1:m pr=pr+p(j);end%概率统计l=l+d*pl; r=l+d*(pr-pl); strl=strcat(* 输入第,int2str(i);符号的间隔左右边界:); disp(strl);format long disp(l);disp(r);d=r-l;endl=l+d*pl;r=l+d*(pr-pl);str1=strcat(-输入第,int2str(i);符号的间隔左右边界:);disp(strl);format longdisp(l);disp(r);d=r-1;end六、实验结果分析通过本次实验,我了解了算数编码的原理和实现方法,算术编码用到两个基本的参数:符号的概率和它 的编码间隔。信源符号的概率决定压缩编码的效率,也决定编码过程中信源符号的间隔,而这些间隔包 含在0到1之间。对信源进行算数编码需要两个过程,第一个过程立信源概率表,第二个过程信源发出 的符号序列进行扫描编码。总结出用matlab编程时需要注意的两点:第一、在计算编写初始间隔的时候需要把字母按字母表的顺序排列。第二、

温馨提示

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

最新文档

评论

0/150

提交评论