- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数字通讯及错误检测及纠正
错误检测与纠正 1 错误类型 错误 多比特错误 突发错误 单比特错误 1.1单比特错误 单比特错误是指在给定数据单元(例如一个字节,一个字符,数据单元,或是数据包)中只有一个比特被从0变为1或是从1变为0。 0变到1 发送 接收 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 1.2 多比特错误 多比特错误是指数据单元中两个或两个以上不连续的比特从0变为1或是从1变为0。 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 2个错误 发送 接收 1.3 突发错误 突发错误指数据单元中两个或两个以上连续的比特从0变为1或是从1变为0。 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 1 0 1 0 1 1 1 0 1 0 1 0 0 0 1 0 1 突发错误 发送 接收 2 错误检测 2.1 冗余 在数据通信中采用四种类型的冗余校验技术:垂直冗余校验(VRC)(也称为奇偶校验),纵向冗余校验(LRC),和循环冗余校验(CRC),是在物理层实现而在数据链路层被使用的。而第四种技术,校验和技术,主要由网络层,包括国际互连网,所使用,而在传输层实现的。 校验方法 检验和 循环冗余校验 纵向冗余校验 垂直冗余校验 2.2 垂直冗余码校验 在错误检测中最常用和费用最低的方法是垂直冗余校验(VRC),又常称作奇偶校验。 在垂直冗余校验(VRC)中,在每一个数据单元上都增加一个校验位,从而使得1的总数(包括校验位)对于偶校验来说是偶数,或对于奇校验来说是奇数。 偶校验 生成 1 1100001 校验函数 1的总数 是偶数吗? 1100001 1 数据 VRC 接收方 可靠性: 垂直冗余校验(VRC)可以检测所有单位比特错误。只要发生错误的比特数是奇数(1,3,5等等),该技术也可以检测出多比特错误和突发错误。 缺点: 但当发生错误的个数是偶数时,它就不能检测出多比特和突发错误。 2.3 纵向冗余校验 纵向冗余校验(LRC )是在两个维上的垂直冗余校验(VRC)。1110011100111001数据移动方向 数据 纵向冗余校验 0 1 0 1 0 1 1 0 1 0 0 1 0 1 0 1 1 0 0 1 1 1 0 0 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 整个数据块的传输方向 纵向冗余校验 垂直冗余校验位 每个 数据 块的 传输 方向 可靠性 LRC技术极大地提高了发现多比特错误和突发错误的可能性。但是,有一种类型的错误仍然会被遗漏。如果在某个数据单元中的两个比特被破坏,同时在另一个数据单元中正好相同位置的两个比特也被破坏,那么LRC校验器就检测不出这种错误。 2.4 循环冗余码校验 第三种也是最有效的一种冗余校验技术就是循环冗余校验(CRC)。和基于加法的VRC及LRC技术不同,循环冗余校验(CRC)是基于二进制除法的。 00…0 数据 除数 n bit n+1 bit 余数 n bit 循环冗余码 数据 除数 余数 0,接收 非0,拒绝 数据 发送方 接收方 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 0 0 0 0 0 0 1 0 0 1 0 0 1 1 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 0 1 0 1 1 0 0 0 0 0 1 1 0 0 1 1 0 1 0 0 1 除数 商 当余数最左位是0时,必须用0000代替原来的除数 余数 数据加上额外的0时,0的个数比除数位数少1 可靠性: 除了正好数据块的比特值是按除数值变化的错误外,循环冗余校验(CRC)将检测出其他所有错误。甚至对于上面所提到的四比特错误,这种情况发生的可能性仍然是很小的。而且,常用的CRC除数通常有13,17,或是33个比特,使得不可检测的错误可能降低到几乎近于零。 3 错误纠正 错误纠正可以通过两种方式进行。一种方式是当发现错误时,接收方可以让发送方重新发送整个数据单元。另一种方法是可以采用错误纠正码,自动纠正一些错误。 理论上,可以自动纠正任何一种二进制编码错误。但是错误纠正码比错误检测码要复杂得多,并且需要占据更多的冗余比特位。纠正多比特错误和突发错误所需要的比特位数是如此巨大,因此在大多数情况下这样做是十分低效的。因此,大多数错误纠正技术都局限于一个,两个
文档评论(0)