通信原理差错控制编码基本理论Word文档下载推荐.docx
《通信原理差错控制编码基本理论Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《通信原理差错控制编码基本理论Word文档下载推荐.docx(10页珍藏版)》请在冰豆网上搜索。
差错控制编码的原理是:
发送方对准备传输的数据进行抗干扰编码,即按某种算法附加上一定的冗余位,构成一个码字后再发送。
接收方收到数据后进行校验,即检查信息位和附加的冗余位之间的关系,以检查传输过程中是否有差错发生。
差错控制编码分检错码和纠错码两种,检错码是能自动发现差错的编码,纠错码是不仅能发现差错而且能自动纠正差错的编码。
衡量编码性能好坏的一个重要参数是编码效率R:
k
A=—=
i-br
其中,n表示码字的位长,k表示数据信息的位长,r表示冗余位的位长。
计算机网络中常用的差错控制编码是奇偶校验码和循环冗余码。
1.奇偶校验码
奇偶校验码是一种最简单的检错码。
原理:
通过增加冗余位来使得码字中"
1"
的个数保持为奇数(奇
校验)或偶数(偶校验)。
例如,偶校验:
110101000,011011011在实际使用时,奇偶校验可分为以下三种方式。
(1)垂直奇偶校验
将要发送的整个数据分为定长p位的q段,每段的后面
按"
的个数为奇数或偶数的规律加上一位奇偶位:
Inhi1边
发4【豁…如
I■I
III
送5也…屍
£
“■■■q
编码效率:
R=P/(P+1)
检错能力:
能检出每列中的所有奇数个错,但检不出偶数个错。
对突发错,漏检率约为50%
(2)水平奇偶校验
将要发送的整个数据分为定长p位的q段,对各个数据
段的相应位横向进行编码,产生一个奇偶校验冗余位:
R=Q/(Q+1
能检出每行中的所有奇数个错,但检不出偶数个错对突发长度WP的突发错都能检出。
(3)水平垂直奇偶校验
能同时进行水平和垂直奇偶校验:
‘Illhi
1
i
In•…
I
gi如%
h■■■
铁1」
rr4
r^+ijn+i
R=PQ/(P+1)(Q+1)
能检出所有3位或3位以下的错误,能检出所有奇数个错和很大一部分偶数个错,并对突发长度wP+1的突发错都能检出。
2.循环冗余码
循环冗余码又称CRCK(CyclicRedundancyCode),简称循
环码。
CRC码检错能力强,且容易实现,是目前最广泛的检错码编码方法之一。
在计算机网络中,CRC被广泛采用。
CRC是一种检错码,其编码过程涉及多项式知识。
多项式和比特
串有一定的对应关系,例如,比特串10010101110可被解释成
XIO+X7+X5+X?
+XS+X1
发送端的编码步骤:
(1)将要发送的二进制数据(k位比特序列),对应一个(k-1)
阶多项式K(x);
再选取一个收发双方预先约定的r阶生成码多项式
G(x)
(2)在原数据尾添加r个0,即,xrK(x)0
(3)进行xrK(x)/G(x),求得余数R(x)oR(x)即为校验序列.
⑷用R(x)替代xrK(x)最后的r个0(即xrK(x)-R(x)),得
到待传送的CR(码多项式(数据位加校验位)T(x)o
[说明]CRC码字的总长(传送位)为n=k+r位,对应一个(n-1)阶多项式T(x)o
接收端的检验
(1)
接收端收到的CR(码多项式T'
(x)
(2)
校验:
进行T'
(x)/G(x),求得余数。
(3)
若余数为0,则正确(即,T'
(x)/G(x)=K(x)
);
若余
数不为
0,贝U出错。
[注意]发送方和接收方使用的G(x)要一致。
G(x)的各种标准
G(x)有各种标准,目前广泛使用的主要有以下四种:
CRC12=X…一…J…I
CRC16=一「「厂-(IBM公司)
CRC16="
/-(CCITT)
CRC32=一1匚Lit一一匚匸二二二一
结论
根据CRC性质,若适当选取G(x),使其含有(x+1)因子,常数项不为0,且周期大于n,则由此G(x)作为生成多项式产生的CRC码,可检测出:
所有双位错、所有奇数位错、所有突发长度小于等于r
的突发错、(1-2-(r-1))的突发长度等于叶1的突发错以及(1-2-r)的突发长度大于叶1的突发错。
循环冗余码的产生与码字正确性检验例子。
例1.已知:
信息码:
110011信息多项式:
K(X)=X5+X4+X+1
生成码:
11001生成多项式:
G(X)=X4+X3+1(r=4)
求:
循环冗余码和码字
解:
1)(X5+X4+X+1)*X4的积是X9+X8+X5+X4对应的码是1100110000。
2)积/G(X)(按模二算法)。
由计算结果知冗余码是1001,码字就是1100111001。
100001—Q(X)
G(x)F1001)1100110000—F(X)*Xr
11001,
10000
11001
1001—R(X)(冗余码)
例2.已知:
接收码字:
1100111001多项
式:
T(X)=X9+X8+X5+X4+X3+1
生成码:
11001生成多项
码字的正确性。
若正确,则指出冗余码和信息码
1)用字码除以生成码,余数为0,所以码字正确。
1—Q(X)
G(x)F1001)110011100
1—F(X)*Xr+R(x)
0—S(X)(余数)
2)因r=4,所以冗余码是:
11001,信息码是:
110011
3.循环冗余码的工作原理
循环冗余码CRC在发送端编码和接收端校验时,都可以利用事先约定的生成多项式G(X)来得到,K位要发送的信息位可对应于一个(k-1)次多项式K(X),r位冗余位则对应于一个(r-1)次多项式R(X),由r位冗余位组成的n=k+r位码字则对应于一个(n-1)次多项式T(X)=Xr*K(X)+R(X)。
4.循环冗余校验码的特点
1)可检测出所有奇数位错;
2)可检测出所有双比特的错;
3)可检测出所有小于、等于校验位长度的突发错。
2.5.4海明码
1.海明码的概念
海明码是一种可以纠正一位差错的编码。
它是利用在信息位为k位,增加r位冗余位,构成一个n=k+r位的码字,然后用r个监督关系式产生的r个校正因子来区分无错和在码字中的n个不同位置的一位错。
它必需满足以下关系式:
2r>
=n+1或2r>
=k+r+1
海明码的编码效率为:
R=k/(k+r)
式中k为信息位位数
r为增加冗余位位数
2.海明码的生成与接收
方法一:
1)海明码的生成。
例1.已知:
信息码为:
"
0010"
。
海明码的监督关系式为:
S2=a2+a4+a5+a6
S1=a1+a3+a5+a6
S0=a0+a3+a4+a6
海明码码字。
1)由监督关系式知冗余码为a2a1a0。
2)冗余码与信息码合成的海明码是:
0010a2a1a0"
设S2=S仁S0=0由监督关系式得:
a2=a4+a5+a6=1a1=a3+a5+a6=0a0=a3+a4+a6=1
因此,海明码码字为:
0010101"
2)海明码的接收。
例2.已知:
S2=a2+a4+a5+a6S1=a1+a3+a5+a6S0=a0+a3+a4+a6
接收码字为:
0011101"
(n=7)
发送端的信息码。
1)由海明码的监督关系式计算得S2S1S0=011
2)由监督关系式可构造出下面错码位置关系表:
S2S1S0000001010100011101110111错码位置无错a0a1a2a3a4a5a6
3)由S2S1S0=01查表得知错码位置是a3。
4)纠错--对码字的a3位取反得正确码字:
"
0010101"
5)把冗余码a2a1a0删除得发送端的信息码:
方法二:
(不用查表,方便编程)---推荐!
!
1)海明码的生成(顺序生成法)。
例3.已知:
11001100"
(k=8)
1)把冗余码ABC…,顺序插入信息码中,得海明码码字:
AB1C100D1100"
码位:
123456789101112
其中A,B,C,D分别插于2k位(k=0,1,2,3)。
码位分别为1,2,4,8。
2)冗余码A,B,C,D的线性码位是:
(相当于监督关系式)
A->
1,3,5,7,9,11;
B->
2,3,6,7,10,11;
C->
4,5,6,7,12;
(注5=4+1;
6=4+2;
7=4+2+1;
12=8+4)D->
8,9,10,11,12。
3)把线性码位的值的偶校验作为冗余码的值(设冗余码初
值为0):
A=E(0,1,1,0,1,0)=1
B=E(0,1,0,0,1,0)=0
C=E(0,1,0,0,0)=1
D=E(0,1,1,0,0)=0
4)海明码为:
101110001100"
例4.已知:
接收的码字为:
100110001100"
(k=8)
1)设错误累加器(err)初值=0
2)求出冗余码的偶校验和,并按码位累加到err中:
A=E(1,0,1,0,1,0)=1err=err+20=1
B=E(0,0,0,0,1,0)=1err=er叶21=3
C=E(1,1,0,0,0)=0err=er叶0=3
D=E(0,1,1,0,0)=0err=er叶0=3
由err工0可知接收码字有错,
3)码字的错误位置就是错误累加器(err)的值3。
4)纠错--对码字的第3位值取反得正确码字:
5)把位于2k位的冗余码删除得信息码:
11001100"
差错控制方法
常用的差错控制方法有反馈检测、自动请求重发(ARQ和前向纠错
(FEC。
1.反馈检测
反馈检测方法又称回送校验法。
双方在进行数据传输时,接收方将接收到的数据重新发回发送方,由发送方检查是否与原始数据完全相符。
如不相符,则发送方发送一个控制信息通知接收方删去出错的数据。
并重新发送该数据;
如相符,则发送下一个数据。
其原理如图2-6-5所示:
图2-6-5反馈检测原理
特点:
原理简单、实现容易、可靠性强,但开销大,信道利用率低。
2.自动请求重发(ARQ
自动请求重发简称ARQ(AutomaticRepeatreQuest),是计算机网络中
较常采用的差错控制方法。
ARQ的原理是:
发送方将要发送的数据附加上一定的冗余检错码一并发送,接收方则根据检错码对数据进行差错检测,如发
现差错,则接收方返回请求重发的信息,发送方在收到请求重发的信息后,
为保证通信正常进行,还需引入计时器(防止整个数据帧或反馈信息丢失)和帧编号(以防止接收方多次收到同一帧并递交给网络层)。
使用检错码(常用的有奇偶校验码和CR(码等)、必须是双向信
道、发送方需设置缓冲器。
3.前向纠错(FEC
前向纠错简称FEC(ForwardErrorCorrection),其原理是:
发送方将要发送的数据附加上一定的冗余纠错码一并发送,接收方则根据纠错码对数据进行差错检测,如发现差错,由接收方进行纠正,如图2-6-7所示。
图2-6-7前向纠错原理图
使用纠错码(纠错码编码效率低且设备复杂)、单向信道、发送方无需设置缓冲器。