正文描述:《《信息论基础》实验指导书new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、目录实验一英文半字节压缩编码技术1实验二Huffman编码5实验三重复码编译码方法1113实验一英文半字节压缩编码技术一、实验目的1、理解信源编码的作用和目的,掌握数据压缩的基本思想;2、掌握数据压缩中常用的比特流操作办法;3、掌握英文半字节压缩编码技术。二、实验内容通过C语言编程,实现对一般英文文本文件的半字节压缩编码与译码程序,并观察编码、译码结果以及压缩效果。三、实验原理对于一个通信系统来说,信息传输的有效性、可靠性、安全性和认证性是人们的主要目标。其中,信息传输的有效性指的是尽可能的使用较短的时间
2、和较少的设备等资源来传送尽可能多的信息,而这一目的主要是通过信源编码这个环节来实现的。虽然有许许多多不同的信源编码方法,但总的说来,信源编码主要是通过减少或消除信源的剩余度来提高传输效率的。而且,有时人们为了追求更高的传输效率,在满足实际需求的情况下,还允许在编译码过程中存在一定程度的失真,这就是所谓的有损压缩。当然,针对不同的应用要求,可以选择不同的压缩编码办法,为了方便理解和实现,针对一般的英文文本,可以设计一种半字节压缩编码方法来实现数据的压缩。(一)有损处理在一般英文文本中,除了大、小写英文字母外
3、,还有多种不同的标点符号。为了达到在不影响文章大意的前提下,尽可能的减少需编码的符号数,以提高信息传输效率的目的,可采取这样的处理方法:1)所有的英文字母不区分大、小写(如:将所有的大写英文字母变成小写字母);2)保留标点符号:“,”、“。”、“?”“:”和“”;131)将“!”和“;”变为“。”,其他符号全部变成“”。这样,原来的英文文本就变成了一个新的文本,该文本全部由26个英文字母和“,”、“。”、“?”、“:”以及“”这31种符号组成,而且,文章的大意并没有发生大的变化。可以认为这种失真是在允许的
4、失真范围之内的。当然,为了简化操作,上面的第一步也可省略。虽然这样会使输出文件中既有大写字符,又有小写字符,但只需在后面的编码操作时将大、小写等同处理,则同样达到了不区分大小写的目的。(二)数据压缩在计算机中,文本文件中的每个符号都是由8位的ASCII码所构成,共有256种取值的可能。既然经过上述有损处理后文件中只存在31种不同的符号,所以在压缩编码过程中只需对31种符号进行编码,就可以大大压缩文本文件的数据量。考虑到各字母以及符号出现的概率,并考虑码字的可分离性,可以采取以下的编码方法来进行数据的压缩:
5、1)对于概率最大的15个符号分别编以“0000”~“1110”的码字:符号码字符号码字符号码字符号码字空格0000e0100l1000s1100a0001f0101n1001t1101c0010h0110o1010u1110d0011i0111r10112)对于其余的16个符号分别编以“11110000”~“11111111”的码字。符号码字符号码字符号码字符号码字,11110000b11110100m11111000w11111100.11110001g11110101p11111001x1111110
6、1?11110010j11110110q11111010y11111110:11110011k11110111v11111011z11111111这样,一些最经常出现的符号从原来的8bit变为4bit,达到了数据压缩的目的。从表中可以看出,后16个符号的码字中前4比特均为“1111”,因此可先向编码文件输出前134比特,然后再输出后4比特。这样的好处是:不论是前15种符号还是后16种符号,都可执行同一种输出操作(输出4比特),只是对于后16种符号是连续执行两次而已。(三)译码译码过程是编码的逆过程,解码后
7、得到由这31种符号所组成的文本文件。由于后16个符号的码字中前4比特均为“1111”,因此可设计译码过程为:每次读取4bit。若不为“1111”,则根据此次读取的4bit译为相应的前15个符号之一;若为“1111”,则再次读取4bit,并根据后4bit译为相应的后16个符号之一。这样,不论是前15种符号还是后16种符号的译码,都可执行同一种读取操作(读取4比特),只是对于后16种符号是连续执行两次而已。(四)半字节操作在计算机中,所有对数据的操作(不论是数据的存储还是对文件的读写)都是以字节(8bit)为
8、基本单位的,而我们的编码与解码都是以半个字节(4bti)为单位的,因此需要运用位操作来进行数据的控制:1)编码过程中,执行的操作是每次输出4比特。由于每次向输出文件的写入是以字节(8bit)为单位的,因此可定义一个缓存变量来存储每次输出的4比特数据。只有当缓存中的有效数据凑足8bit(1字节)时才执行一次向输出文件的写入操作。这里需要注意的是,如果待编码文件中所有符号的码长之和不是8的整数倍时,就会出现缓存中剩余4比特有效数据
显示全部收起
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。