差错检验与校正
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CRC编码步骤:
( 1)给定一个生成多项式: G(x)=x4 +x3+1,则 x的最高次幂是 R=4,转换为二进制数码11001(有R+1=5位)
(2)将原信息码1011001(K=7bit)左移R位(K+R=N)(即后边 补k个0)得到F’(x)=10110010000 (3)用F’(x)模2除以G(x)对应的二进制数码,得余数R(x) , 即为校验码 (4)令F’(x)+R(x)=T(x),即将余数拼到信息码左移后空出的 位置,得到完整的CRC码,并传送T(x) (5)接受方用接收到的T(x)模2除以G(x) (6)察看结果为0则认为无差错,否则就是有差错要求重传。
ASCII 码使用指定的7 位或8 位二进制数组 合来表示128 或256 种可能的字符。标准ASCII 码也叫基础ASCII 码,使用 7 位二进制数来表示 所有的大写和小写字母,数字0 到9、标点符号以 及在美式英语中使用的特殊控制字符。例如, A 的7位ASCII编码为1000001。下图为7位ASCII代 码表。
接收端检测出有差错时,就设法通知发送端重发,直 到正确的码字收到为止。 *前向纠错FEC(Forward Error Correction) 接收端不但能发现差错,而且能确定二进制错码元的 位置,从而就可以加以纠正。
代码1011011对应的多项式为 x6 + x4 + x3 +1
而多项式x5 + x4 + x2 + x对应的代码为110110
CRC 码是由两部分组成,前部分是信息码, 就是需要校验的信息,后部分是校验码,如果 CRC码共长N个bit,信息码长K个bit,就称为 (N,K) 码。对于一个给定的(N,K )码,可以 证明存在一个最高次幂为 N-K=R的多项式G(x), 可根据其生成信息的校验码,所以G(x)叫做这 个CRC码的生成多项式。
在待发送数据中增加足够 多的附加位,从而使得接
在发送方的数据中增加 一些用于检查差错的附
加位。用于有反馈的传
输机制中。 实现方法简单,速度快。
收方能够准确地检测到差
错,并且可以自动地纠正 差错。用于无反馈信息的 传输机制中,如汉明码。
3、奇偶校验
奇偶校验(Parity Check)是一种校验代码传输正确性的方法,是一种最简单的检错方法。根据 被传输的一组二进制代码的数位中“1”的个数是奇数或偶数来进行校验。采用何种校验是事 先规定好的。采用奇数的称为奇校验,反之,称为偶校验。通常专门设置一个奇偶校验位,用
十进制
Hale Waihona Puke 二进制(35)D=( 100011 )B
用若干个2n相加方法;除2取余法
35 用 8421 编码方法,转换成的代码序 列:00110101
差错控制机制
数据通信中,利用编码方法来进行差错控制的方式,基本 上有两类:
*自动请求重发ARQ(Automatic ReQuest for repeat)
0111
1000 1001 1010 1011 1100
BEL
BS HT LF VT FF
ETB
CAN EM SUB ESC FS
'
﹙ ﹚ ﹡ + ,
7
8 9 : ﹔ <
G
H I J K L
W
X Y Z [ \
g
h i j k l
w
x y z ﹛ |
1101
1110 1111
CR
SO SI
GS
RS HS
d3 d2 d1d0位 0000 0001 0010 0011 0100 0101 0110
0 d6 d5d4位 000 NUL SOH STX ETX EOT ENQ ACK 001 DEL DC1 DC2 DC3 DC4 NAK SYN 010 SP ! ″ # ﹩ % ﹠ 011 0 1 2 3 4 5 6 100 @ A B C D E F 101 P Q R S T U V 110 ` a b c d e f 111 p q r s t u v
-
· /
=
> ﹖
M
N O
]
↑ ←
m
n o
}
~ DEL
4、循环冗余码校验
奇偶校验作为一种检验码虽然简单,但是漏检率太高。 目前,在计算机网络和数据通信中用得最广泛的检错码是 一种漏检率低得多也便于实现的循环冗余码CRC(Cyclic
Redundancy Code )。 CRC 是一种较复杂的校验方法,
模2除法
模 2 除法与算术除法类似,但每一位除(减)
的结果不影响其它位,即不向上一位借位。
多位模2除法采用模2减法,不带借位的二进制
减法。
循环冗余校验码由于具有良好的代数结构,计
算机中易于实现,编码器简单,检错能力强,故
在微机通信中广泛使用。循环冗余检验码的纠错
能力与校验码的位数有关,校验码位数多,检错 能力就强。
已知字符 T的ASCII 码值的十进制表示为84,如果 将最高位设置为奇校验位,则字符M的ASCII码值 设置奇校验位后,它的二进制表示为( ) A.01001101 C.01101011 B.11001101 D.10111101
解答:M的ASCII码77,二进制表示为 01001101 ,里面有 4 个 1 所以奇偶校验取值为 1 , 设置于最高位后就是B了。
又称多项式码,是通过多项式除法检测差错的方法。这种
编码对随机差错和突发差错均能以较低的冗余度进行严格
的检查,有很强的检错能力。
CRC码称为多项式码。这是因为任何一个由二进制
数位串组成的代码都可以和一个只含有0和1两个系数 的多项式建立一一对应的关系。 x的最高幂次对应二进制数的最高位,以下各位对 应多项式的各幂次,有此幂次项对应1,无此幂次项对 应0。可以看出:x的最高幂次为R,转换成对应的二进 制数有R+1位。(因为从x的0次幂算起)
一般来说,传输中的差错都是由噪声引起的。噪声有 两大类:随机热噪声和冲击噪声。 随机差错:随机热噪声 信道所固有的,持续存在的,随机错通常 较少。
突发差错:冲击噪声
由于外界特定的短暂原因所造成的冲击噪声,冲击
噪声的幅度可以相当大 ,它是传输中产生差错的重要原
因。
2、两种差错控制技术
检错法
纠错 法
它使这组代码中“1”的个数为奇数或偶数。若用奇校验,则当接收端收到这组代码时,校验
“1”的个数是否为奇数,从而确定传输代码的正确性。
例如,在传输ASCII字符时,每个ASCII字符 用7为表示,最后加上一个奇偶校验位总共成 为8位。对于奇校验来说,最后加上的奇偶位 校验使整个8位中1个数为奇数。 如发送1110001,采用奇校验时,奇偶位校 验为1,即传输11100011。接收器检查接收到 的数据的1的个数为奇数,就认为 无错误发 生。若采用偶校验时,发送的二进制码是?
第2章 数据通信基础
2.4差错检验与校正
差错检验与校正
计算机网络的基本要求是高速而且无差错的传输数据信息,而通
信系统主要由一个个物理实体组成。一个物理实体从制造、装配等
都无法达到理想的理论值,而且通信系统在运作中,也会受到周围 环境的影响。因此数据在传输数据过程中发生差错是不可避免的, 解决这个问题的技术称为差错控制技术 ,即把差错控制在允许的范 围内。通常差错控制技术包括两个主要内容:
采用奇偶校验时,若其中2位同时发生错误,则
会发生没有检测错误的情况。所以奇偶检验虽然简
单,但并不是一种安全的差错控制方法。一般,在
低速传输时,出错概率较低,效果还可以令人满意。
而当传输数据速率较高或噪声持续时间较长时,由
于可能发生多位出错,差错检验的结果很可能是错
误的。
ASCII编码
ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的 一套电脑编码系统,它是现今最通用的单字节编码系统。 在计算机中,所有的数据在存储和运算时都要使用二进 制数表示(因为计算机用高电平和低电平分别表示 1和0), 例如,像a、b、c、d这样的52个字母(包括大写)、以及 0 、1 等数字还有一些常用的符号(例如*、# 、@等)在计 算机中存储时都要使用二进制数来表示,而具体用哪些二 进制数字表示哪个符号,当然每个人都可以约定自己的一 套(这就叫编码),而大家如果要想互相通信而不造成混 乱,那么大家就必须使用相同的编码规则,于是美国有关 的标准化组织就出台了ASCII编码,统一规定了上述常用符 号用哪些二进制数来表示。
例 3. 如果某一数据通信系统采用 CRC 校验方 式,生成多项式 G(x) 为X4 +X3+1,目的结点 接收到二进制比特序列为 1101111101 (含 CRC校验码)。请回答以下问题: ( 1)该生成多项式对应的二进制比特序列是 多少?
( 2)如果接收到的二进制比特序列长度正确, 则发送端原始二进制比特序列的长度是几位? ( 3)判断传输过程中是否出现了差错?为什 么?
1、差错出现的可能原因
数据传输中出现差错有多种原因,一般分为内部因素 和外部因素。 内部因素有噪声脉冲、脉动噪声、衰减、延迟、失真 等。机器设备本身的不理想、技术不成熟 外部因素有电磁干扰、太阳噪声、工业噪声等。对信 号影响较大。 噪声脉冲:通信中出现的离散型噪声的统称。它由时 间上无规则出现的突发性干扰组成。
例1.CRC 属于检错码还是纠错码?如果某
一数据通信系统采用 CRC 校验方式,生 成多项式G(x)为 X4 +X3+1 ,目的结点接 收到二进制比特序列为 110111101(含 CRC 校验码),判断传输过程中是否出 现了错误?并解释原因。
答:属于检错码。出现了差错,因为余数 为110。
例2.利用标准CRC方法传输位流 10011101 ,生成多项式为 x3 +1,请给 出实际被传输的位串。假设在传输过程 中左边第三位变反了,请证明这个错误 可以在接收端被检测出来。 答:(1)模2除,得余数,即校验码。 (2)可以检测出来,因为余数是100.