基于置信度判定的循环冗余校验纠错技术

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

文章编号:1001-893X(2007)01-0175-04
基于置信度判定的循环冗余校验纠错技术*
陈士毅,李玉柏
(电子科技大学通信与信息工程学院,成都610054)
摘要:以S模式下行数据链的检纠错为例,给出了基于置信度判定的循环冗余校验多位纠错技术,实现了突发和随机分布的多位差错的纠正,在不增加冗余码的情况下大大增强了循环冗余校验码的纠错能力。

关键词:S模式数据链;纠错;循环冗余校验(CRC);置信度判定;校正子;错误图样
中图分类号:TN919.3文献标识码:A
Error Correction usi ng Cyclic Re dundancy Chec k
Base d on Confi dence Declaration
CH EN Shi-yi,LI Yu-bai
(Schoo l of Co mm un icati o n and I n for m ati o n Eng i n eering,Un i v ersity of E lectr onic
Sc ience and T echnology of China,Chengdu610054,Ch i n a)
Abstract:Tak i n g the M ode S do w n data li n k processing as exa m ple,th i s paper i n troduces t w o m ulti-error correcti o n m et h ods using cyclic redundancy check based on b it and confidence dec laration:one fo r correc-ti n g burst errors,the other for correcti n g rando m err ors.Both techniques enhance the error co rrecti n g ab il-i ty of cyclic redundancy check.
Key w ords:m ode S data li n k;error correction;cyclic redundancy check(CRC);confidence dec laration;
syndro m e;error pattern
1引言
很多年来人们一直使用循环冗余校验(Cyclic Redundancy Check,CRC)来发现数据传输中的错误。

有很多文献论述CRC检错的技术:文献[1]、[2]分别描述了CRC检错在卫星遥测和SNS实时数据链中的应用。

但是在流行的文献中很少有涉及CRC纠错的。

文献[3]阐述了纠正一位错误的CRC 纠错码;文献[4]提出了通过变换和重构码字排列实现纠正突发错误的方法,这种方法实际上是利用CRC的一位纠错技术,它的纠错能力十分有限。

正因为循环冗余校验码本身纠错能力的局限性,所以对CRC错误的处理一般使用自动请求重发(ARQ)方式。

但是在一些应用中ARQ是不合适的,如:一些无线信道干扰比较严重,这会导致大量的重发,从而严重降低信道的性能;重传的代价比较高或不存在反馈信道;某些应用例如卫星通信中,重传增加的时延相对帧传输时间较长,这时重发很可能导致接下来的几帧也都出错。

在这些应用中的循环冗余校验技术必须具有一定的纠错能力。

而要达到纠正多位差错的目的,必须从接收信号中得到更多信息。

本文给出的基于置信度判定的循环冗余校验纠错技术正是利用了比特置信度信息,它可以应用于任何能够对数据比特进行有效置信度判定的数据传输系统,其基本思想是:利用CRC进行检错,如果检出有错,则利用置信度判定的结果结合CRC码的特性找到错误位置,从而完成纠错。

我们在T M SC6416DSP平台上实现了这种技术。

#
175
#
*收稿日期:2006-03-02;修回日期:2006-07-15
2置信度判定
S模式是一种新型的具有数据链能力的二次监视雷达(SSR)系统,它的下行数据链信号是脉冲位置调制的,即对于任一比特位,脉冲能量出现在前一半(chip1)表示/10,出现在后一半(chip0)表示/00。

因此,我们可以通过比较每个比特中前后两个ch i p的能量分布来判定比特及其置信度。

有多种方法可以实现这种判定,这里采用基线多样点算法[5]。

基线多样点算法充分利用了每个比特位的所有10个采样值。

最高的分数决定比特的值,如果相等则为比特/00。

如果差值大于等于3[5]则为高置信度,否则为低置信度。

进行置信度判定后,我们得到字节类型的码字数组和低置信度数组,低置信度数组记录有低置信度比特的位置信息。

3循环冗余校验(Cyc li c Redundancy Check)给定消息m(x)和生成多项式g(x),则循环冗余校验中被传送的码字c(x)可由下列式子得到:
r(x)=m(x)m od g(x)
式中m od表示模二求余运算,则
c(x)=m(x)x n-k+r(x)
式中n和k分别是码字和消息对应的二进制序列的比特数,即码字c(x)由k比特消息码后面跟着n-k 位冗余比特组成:
c(x)=m k-1x n-1+,+m0x n-k
+r n-k-1x n-k-1+,+r0
在接收端,设c c(x)=c(x)+e(x)为接收到的码字,其中e(x)为传输过程中产生的错误图样。

由于c(x)m od g(x)=0,所以C RC校正子:
s(x)=c c(x)m od g(x)
=(c(x)+e(x))m od g(x)
=e(x)m od g(x)
如果校正子s(x)X0,则一定有差错发生,并且校正子与错误图样的对应关系只与码制(n,k)及生成多项式g(x)有关,而与信息码元m(x)无关;如果s(x)=0,则没有错误发生(e(x)=0)或有不可检测的错误发生(e(x)X0且e(x)m od g(x)=0)。

S模式下行数据链采用一种改进的(缩短的)使用下列生成多项式的(112,88)(即n=112,k=88)循环冗余校验码:
g(x)=x24+x23+x22+x21+x20+x19+x18+x17
+x16+x15+x14+x13+x12+x10+x3+1
由此生成多项式生成的CRC码可以检测出任何突发长度小于等于n-k=24的突发错,并且对于长度等于25的突发错的未检错率为1/2r-1=1.19 @10-7;对于长度大于25的突发错的未检错率为1/2r=5.96@10-8,参见文献[6]。

同时,此CRC码的汉明距离是d=6[5],这意味着它可以检测出任意小于等于d-1=5个差错。

本文采用一种表驱动的高效的C语言算法[7]来计算CRC校正子,即检错。

如果校正子为零就接受此消息,如果不为零则进入纠错程序。

4纠正突发错误的保守技术
由于g(x)的最高次幂等于n-k,若e(x)的最高次幂小于n-k(即错误图样在码字的最后n-k 比特内),则余数将是该错误图样的准确映像,即:
r(x)=e(x)m od g(x)=e(x)(1)根据循环码的循环移位特性,对余数补0做模2除,余数将循环出现,对应错误图样循环左移,即设(e(x)的一次循环左移为e1(x)):
e1(x)m od g(x)=x#r(x)m od g(x)=r c(x)
其中,后一个等式又可表示为
x#r(x)=q(x)g(x)+r c(x)
q(x)=0或1(2)于是,一边对码字进行循环左移,一边对余数补0做模2除。

如果在码字的最后n-k比特发现一个与关联的余数相匹配的低置信度比特图样,那么将对应余数中的/10的低置信度比特取反(仅当余数中的/10全都对应低置信度比特时)即可实现纠错。

但是,实际应用中很多C RC编码并非标准的循环码,即不满足g(x)是x n-1的因式的条件。

在式(2)中,x#r(x)的最低位是0,g(x)的最低位是1,所以,当r c0=0时,q(x)=0,于是:
x#r(x)=r c(x)]r(x)=
r c(x)
x
当r c0=1时,q(x)=1,于是:
x#r(x)=g(x)+r c(x)]r(x)=
g(x)+r c(x)
x 因此,我们得到错误图样的非循环右移与对应余数的关系:错误图样右移一位,相应的余数若最后一位是/00,则余数直接循环右移一位,若最后一位是/10,则余数先与生成多项式模二和再右移一位。

这样,利用错误图样的右移与相应余数的关系,
# 176 #
计算将低置信度图样移到码字最后n-k比特时的余数,并利用式(1)找出错误图样,如图1所示。

这种算法对于标准或非标准的CRC 码都有效。

图1纠正突发错误的保守技术
只有当所有的低置信度位都在一个n-k比特窗内时,保守技术(Conservati v e technique)才试图进行纠错。

具体实现方法如下:
(1)根据低置信度数组计算低置信度比特图样lcbp,并设接收消息的CRC校正子为R,index是从左边数起的第一个低置信度比特的序号;
(2)检测R的最后一位,若为/00则R右移一位;若为/10则R异或上G再右移一位。

如此进行k +1-i n dex次,得到R k+1-in cdex;
(3)比较lcbp和R k+1-index,如果lcbp中的/10完全包含R k+1-index中的/10,即R k+1-index&lcbp=R,则将对应R k+1-ind ex中的/10的低置信度比特取反即可实现纠错;否则放弃纠错。

设发送码字(H ex)为
BF2CADA6230D6053DBCCB57EEE0C
并随机产生错误图样和低置信度图样)))令错误比特总为低置信度比特(低置信度比特可能不是错误比特),于是我们可以得到M atlab仿真数据。

分析得到的数据可知,每个R89-index均是错误图样的准确映像,即发现了错误图样。

由于只能对付一个突发长度不超过n-k比特的错误图样,保守技术单独使用时成功纠错的概率较低,但是它产生了非常低的未检错率。

如果已经正确地完成置信度判定算法,即所有的错误比特都被判为低置信度,那么只要低置信度图样跨度不超过n-k比特,保守技术一定能够找出错误图样,除非此消息本身是虚假的。

5纠正随机错误的蛮力技术
蛮力技术(B r ute force techn i q ue)针对随机分布的不超过d-1比特的错误图样。

循环冗余校验码的不同位发生错误时,应该使余数不同,即每一个错误位置对应一个唯一的CRC 校正子,并且对这些单个位校正子进行组合(异或)以后,得到那个组合的一个校正子。

以下/+0代表模二和,R i是单个位的校正子,E i是单个位错误的错误图样。


E=E1+E2+,
E1m od G=R1
E2m od G=R2
,,
若E1X E2X,,则R1X R2X,,并且:
E m od G={E1+E2+,}m od G
=E1m od G+E2m od G+,
=R1+R2+,
如果已经正确地完成置信度判定算法,那么数据里所有可能的错误应该只出现在低置信度位上。

于是,将所有低置信度位对应的校正子都尝试结合(把它们模二加),然后接收与错误校正子匹配的那一个组合(假设只有一个成功匹配的),把这个组合对应的那些低置信度位取反即完成纠错。

即:若R =R i+R j+R k+,(R是接收码字的错误校正子,R i 是第i个低置信度位对应的校正子),则可判定E= E i+E j+E k+,(E i表示第i个低置信度位为错误比特的错误图样)。

如果有两个或多个低置信度位的组合跟这个错误校正子匹配,就丢弃该消息;然而,如果一个高置信度比特事实上是错误比特,并且只有一个低置信度位的组合与此错误校正子匹配,则消息会被/纠正0为错误的消息,产生了一个未检测错误(如果没有组合与此校正子匹配,那么很可能是有一个高置信度位有错)。

基于处理时间和未检错率的考虑,蛮力技术限定要处理的低置信度位数的最大值为d-1。

如果接收码字里有n个低置信度比特,则要考虑的组合数为C0n+C1n+,+C n n=2n。

未检错率与情况的数量成正比,即也按n的指数方式增长。

本文所讨论的(112,88)CRC编码的汉明距离是6,这意味着如果错误比特数小于等于5,那么就没有任何未检测到的错误。

接收机里存放有事先计算好的单个位校正子的表。

单个位校正子的计算基于:给定码组长度n和最高次幂为n-k的生成多项式,余数与出错位的对应关系也就确定了。

#
177
#
设发送码字(H ex)为
2E2351D0E43BFCE 5E2521CE98187
并随机产生错误图样和低置信度图样)))令错误比特总为低置信度比特(低置信度比特可能不是错误比特),于是我们可以得到M atlab 仿真数据。

6 结合以上两种技术的一种纠错流程
如图2所示,将以上两种CRC 纠错技术结合起来,既可纠突发差错又可纠随机差错,从而大大提高CRC
码的纠错能力。

图2 结合保守技术和蛮力技术的一种纠错流程
7 结 论
保守技术和蛮力技术在不增加冗余码的情况下大大增强了循环冗余校验码的纠错能力,从而提高了信号传输的可靠性。

假定所有的错误图样都具有相同的发生概率,则这里使用的CRC 码的未检错率
大约为5.96@10-8
,又假设一个消息中发生传输错误的概率是p (p <1),于是,我们可以计算出剩余差错率为p @5.96@10-8。

同时,S 模式下行数据链中发生能够被检测到的24比特内突发错误的概率较
大。

因此,我们有理由相信剩余差错率在10-9
数量级或更少。

当然这两种技术的成功实现有赖于以下两个方面:首先,必须找到有效的置信度判定的方法,具有较低的误判率,特别是错误比特被误判成高置信度的概率要非常低。

由于以上两种纠错技术均只从低
置信度比特中寻找错误图样,因此如果有一个错误
比特被误判成高置信度,那么这个信号将不能被纠错。

对于有很多正确比特被判成低置信度的情况,如果错判使得低置信度图样的跨度超出了n -k 比特窗的范围,保守技术将无法对其进行纠错;如果错判使得低置信度比特数大于d -1,蛮力技术将无法对其进行纠错,即使错判未令低置信度比特数大于5,也会大大增加蛮力技术的计算量。

其次,接收端应具备较强的处理能力,这一点随着技术的进步以及DSP 处理器性能的不断提升将不成问题。

参考文献:
[1] L I Shi-zhong,HU X i n ,L v Y uan ,et a.l A nalysis and
Study on E rro r C ontro l T echno l ogy o f M icro Sa tellite f o r
R e m ote Sensing [C]M .Comm ission THS ,W G THS /3.ISPR S Congress .Istanbu ,l 12-23July 2004.[2] E B j orkl und .Cy cli c R edundancy Check Codes U sed in t he S N S R ea l-T i m e D a ta L i nk [Z ].SNS A SD T ech N ote S N S-NOTE-CNTRL -45,M arch 2002.
[3] B illM cDan i e.l A n A l go rith m for E rro r Correcti ng Cyclic
R edundance Checks[J].C /C ++U sers Journa,l J une 2003.
[4] A ndre w S T anenbau m.Co m puter N et w orks[M ].P rentice
-H al,l 1996.[5] ADS-B 1090M OPS ,R ev ision A,A ppend i x I Ex tended
Squ itte r Enhanced R eception T echniques[S].[6] TV R a m abadran ,SS G a itonde .A T utor i a l on CRC Co m-putations[J].IEEE M icro ,1988.[7] R N W illia m s .A Pa i nless G uide to CRC E rror D e tecti on
A l gor it hm s[Z].1993.[8] G e rard J H olz m ann .D esi gn and V ali dati on of Compu ter
P ro t o co ls[M ].PRENT I CE-HALL,1991:Chapter3.[9] 陈运,周亮,陈新.信息论与编码[M ].北京:电子工业出版社,2002.
作者简介
:
陈士毅(1977-),男,电子科技大学通信学院信号与信息处理专业硕士研究生,研究方向为实时数字信号处理,(电子信箱)shiy i chan @g m a i.l com;
李玉柏(1965-),男,教授,电子科技大学通信学院副院长,从事信号分析、信号处理等方面的研究工作,(电子信箱)ybl@i uestc .edu .cn 。

#
178#。

相关文档
最新文档