通信原理—差错控制编码基本理论
- 格式:doc
- 大小:86.00 KB
- 文档页数:10
差错控制概述
1. 差错的概念
所谓差错,就是在通信接收端收到的数据与发送端实际发出的
数据出现不一致的现象。
2. 差错类型
通信信道的噪声分为热噪声和冲击噪声两种。由这两种噪声分
别产生两种类型的差错,随机差错和突发差错。
热噪声是由传输介质导体的电子热运动产生的,它的特点是:
时刻存在,幅度较小且强度与频率无关,但频谱很宽,是一类随机
噪声。由热噪声引起的差错称随机差错。此类差错的特点是:差错
是孤立的,在计算机网络应用中是极个别的。
与热噪声相比,冲击噪声幅度较大,是引起传输差错的主要原
因。冲击噪声的持续时间要比数据传输中的每比特发送时间要长,
因而冲击噪声会引起相邻多个数据位出错。冲击噪声引起的传输差
错称为突发差错。常见的突发错是由冲击噪声(如电源开关的跳火、
外界强电磁场的变换等)引起,它的特点是:差错呈突发状,影响
一批连续的bit(突发长度)。计算机网络中的差错主要是突发差错。
通信过程中产生的传输差错,是由随机差错和突发差错共同构
成的。
3. 误码率
数据传输过程中可用误码率Pe来衡量信道数据传输的质量,误码率是指二进制码元在数据传输系统中出现差错的概率,可用下式表达:
4. 差错控制
差错控制是指在数据通信过程中能发现或纠正差错,将差错限
制在尽可能小的允许范围内。
差错检测是通过差错控制编码来实现的;而差错纠正是通过差错控制方法来实现的。
差错控制编码
差错控制编码的原理是:发送方对准备传输的数据进行抗干扰编码,即按某种算法附加上一定的冗余位,构成一个码字后再发送。接收方收到数据后进行校验,即检查信息位和附加的冗余位之间的关系,以检查传输过程中是否有差错发生。差错控制编码分检错码和纠错码两种,检错码是能自动发现差错的编码,纠错码是不仅能发现差错而且能自动纠正差错的编码。
衡量编码性能好坏的一个重要参数是编码效率R:
其中,n表示码字的位长,k表示数据信息的位长,r表示冗余位的位长。
计算机网络中常用的差错控制编码是奇偶校验码和循环冗余码。
1. 奇偶校验码
奇偶校验码是一种最简单的检错码。
原理:通过增加冗余位来使得码字中"1"的个数保持为奇数(奇校验)或偶数(偶校验)。例如,偶校验:110101000,011011011在实际使用时,奇偶校验可分为以下三种方式。
(1) 垂直奇偶校验
原理:将要发送的整个数据分为定长p位的q段,每段的后面按"1"的个数为奇数或偶数的规律加上一位奇偶位:
编码效率:R = P/(P+1)
检错能力:能检出每列中的所有奇数个错,但检不出偶数个错。对突发错,漏检率约为50%
(2) 水平奇偶校验
原理:将要发送的整个数据分为定长p位的q段,对各个数据段的相应位横向进行编码,产生一个奇偶校验冗余位:
编码效率:R = Q/(Q+1)
检错能力:能检出每行中的所有奇数个错,但检不出偶数个错。对突发长度≤P的突发错都能检出。
(3) 水平垂直奇偶校验
原理:能同时进行水平和垂直奇偶校验:
编码效率:R = PQ / (P+1)(Q+1)
检错能力:能检出所有3位或3位以下的错误,能检出所有奇数个错和很大一部分偶数个错,并对突发长度≤P+1的突发错都能检出。
2. 循环冗余码
循环冗余码又称CRC码(Cyclic Redundancy Code),简称循环码。CRC码检错能力强,且容易实现,是目前最广泛的检错码编码方法之一。在计算机网络中,CRC被广泛采用。
CRC是一种检错码,其编码过程涉及多项式知识。多项式和比特串有一定的对应关系,例如,比特串10010101110可被解释成
发送端的编码步骤:
(1) 将要发送的二进制数据(k位比特序列),对应一个(k-1)阶多项式K(x);再选取一个收发双方预先约定的r阶生成码多项式
G(x)
(2) 在原数据尾添加r个0,即,x r K(x)。
(3) 进行x r K(x)/G(x),求得余数R(x)。R(x)即为校验序列.
(4) 用R(x)替代x r K(x)最后的r个0(即x r K(x) - R(x)),得到待传送的CRC码多项式(数据位加校验位)T(x)。
[说明] CRC码字的总长(传送位)为n = k+r位,对应一个(n-1)阶多项式T(x)。
接收端的检验
(1) 接收端收到的CRC码多项式T'(x)
(2) 校验:进行T'(x)/G(x),求得余数。
(3) 若余数为0,则正确(即,T'(x) / G(x) = K(x));若余数不为0,则出错。
[注意] 发送方和接收方使用的G(x)要一致。
G(x)的各种标准
G(x)有各种标准,目前广泛使用的主要有以下四种:
CRC12=
CRC16=(IBM公司)
CRC16=(CCITT)
CRC32=
结论
根据CRC性质,若适当选取G(x),使其含有(x+1)因子,常数项不为0,且周期大于n,则由此G(x)作为生成多项式产生的CRC码,可检测出:所有双位错、所有奇数位错、所有突发长度小于等于r
的突发错、(1-2-(r-1))的突发长度等于r+1的突发错以及(1-2-r)的突发长度大于r+1的突发错。
循环冗余码的产生与码字正确性检验例子。
例1.已知:信息码:110011 信息多项式:K(X)=X5+X4+X+1
生成码:11001 生成多项式:G(X)=X4+X3+1(r=4) 求:循环冗余码和码字。