无线通信与网络课件.ppt
第8章编码和差错控制常用的差错检验方法:奇偶校验和循环冗余检错。常用的纠错方法:海明码差错控制常用自动请求重发ARQ和前向纠错FEC机制来实现0102差错控制奇偶校验(ParityDetection)是一种最基本的校验方法,其中奇偶校验码是一种检错码。其方法是在面向字节的数据通信中,在每个字节的尾部加上一个校验码,构成一个带有校验位的码组,使得码组中“1”的个数成为偶数(称为偶校验)或者奇数(称为奇校验),并把整个码组一起发送出去。01接收端在收到信号后,对每一个码组检查其中“1”的个数是否为偶数(对奇校验则检查“1”的个数是否为奇数),如果检查通过就认为收到的数据正确,否则发回一个信号给发送端,要求重新发送该段数据021、奇偶校验例:发送G(1110001),采用奇校验时,奇偶位为1,即传接收器检查接收到的数据的1的个数为奇数,就认为无错误发生。若其中两位同时发生错误,检测不出错误只能检错,不能纠错根据实现过程冗余位添加方法可分为:垂直奇偶校验、水平奇偶校验和水平垂直奇偶校验水平奇偶校验:为了降低对突发错误的漏检率,可以采用水平奇偶校验(HorizontalParityDetection)的方法。水平奇偶校验又称为横向奇偶校验,它是对各个信息段的相应位横向进行编码,产生一个奇偶校验冗余位。水平垂直奇偶校验:同时进行水平奇偶校验和垂直奇偶校验就构成了水平垂直奇偶校验,也称为纵横向校验。水平垂直奇偶校验能检测出所有3位或3位以下的错误、奇数位错、突发长度小于等于p+1的突发错误以及很大一部分偶数位错。测量表明,这种方式的编码可使误码率降至原误码率的百分之一到万分之一。12345奇偶校验垂直校验水平校验循环冗余检错(CRC)利用循环冗余码(CRC,CyclicRedundancyCode)进行纠错。CRC:假设要传送的信息有k位,则发送端会自动加上r位的校验序列,然后再传送出去,这k+r位数可以被某个事先设定好的数整除。当接收端收到数据后用原先那个设定好的数来除,若没有余数出现,则表示数据传送正确;相反,若有余数出现,则表示数据传送有误。将要发送的数据比特序列当做一个多项式f(x)的系数,在发送端用收发双方预先约定的生成多项式G(x)去除,求得一个余数多项式。01将余数多项式加到数据多项式之后发送到接收端02在接收端用同样的生成多项式G(x)去除接收数据多项式f(x),得到计算余数多项式。03如果计算余数多项式与接收余数多项式相同,则表示传输无差错;如果计算余数多项式与接收余数多项式不相同,则表示传输有差错,由发送方重发数据,直至正确为止。04CRC码检错方法实现过程:CRC生成多项式G(x)由协议规定,目前已有多种生成多项式列入国际标准中,例如:CRC-12G(x)=x12+x11+x3+x2+x+1CRC-16G(x)=x16+x15+x2+1CRC-CCITTG(x)=x16+x12+x5+1CRC-32G(x)=x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1CRC校验的工作过程:在发送端,将发送数据多项式f(x)·xk,其中k为生成多项式的最高幂值,例如CRC-12的最高幂值为12,则发送f(x)·x12;对于二进制乘法来说,f(x)·x12的意义是将发送数据比特序列左移12位,用来放入余数;将f(x)·xk除以生成多项式G(x),得:01式中R(x)为余数多项式;02将f(x)·xk+R(x)作为整体,从发送端通过通信信道传送到接收端;01接收端对接收数据多项式f‘(x)采用同样的运算,即:02求得余数多项式R(x);03接收端根据计算余数多项式R‘(x)是否等于接收余数多项式R(x),来判断是否出现传输错误。01例:已知信息码为1000100101。给定G(x)=x5+x4+x2+1。求CRC循环校验码。02解:因为已知信息码为:1000100101,03所以f(x)=x9+x5+x2+104f(x)·xk=x14+x10+x7+x505G(x)=x5+x4+x2+106=1101010102CRC循环冗余校验码为:000100101000113、海明码是由R·Hamming在1950年首次提出的,它也是一种可以纠正一位差错的编码,但它的编码效率要比正反码高得多(当信息位足够长时)。基础知识:二进制数表示