电力技术论文发表浅析循环冗余校验算法
发布时间:2015-07-07
循环冗余检查是一种数据传输检错功能,数据错误是个经典的问题,一般我的处理方式选属性”——“工具”——“查错”把自动修复文件系统错误和扫描并试图恢复坏扇区打上勾。修复一下就可以处理问题,数据错误是个很复杂的问题,下面小编推荐一篇关于循环冗余
摘要:针对循环冗余校验(CRC准则在信道条件恶化时可能使译码出现较大迭代次数及错误的问题,提出了基于可靠度的迭代停止算法及重传算法。首先,每次迭代后,计算本次译码中间结果的可靠度,通过判断其是否达到阈值来实现迭代的提前结束;然后,将具有最大可靠度的中间结果保存并作为最终译码结果;最后,每次译码后,通过判断最大可靠度是否低于重传阈值来决定是否重传,通过至多3次传输的译码结果来计算最佳译码结果。仿真结果表明,在信噪比低于1.2dB时,与CRC准则相比,迭代停止算法能在不增加迭代次数的基础上减少1或2个比特错误,重传算法能进一步减少至少2个比特错误,基于可靠度的算法可以实现更少的误比特数和迭代次数。
关键词:Turbo码;译码;迭代停止;循环冗余校验准则;可靠度;重传;阈值
0引言
Turbo码将卷积码和随机交织器结合在一起,实现了随机编码的思想,并采用软输出迭代译码来逼近最大似然译码。模拟表明[1],当采用大小为65535的随机交织器,进行18次迭代,在信噪比不小于0.7dB时,码率为1/2的Turbo码在加性高斯白噪声(Additive White Gaussian Noise, AWGN信道上的误比特率不大于10-5,达到了近香农限的性能。
Turbo码译码的一个主要特点就是采用迭代译码,随着迭代次数的增加,误比特率下降,且下降的幅度逐渐减小,计算复杂度和译码延时随之增加。考虑到并非对所有数据序列采用相同的迭代次数才能获得最优的译码结果,使用迭代停止准则就能够动态地设置不同被译码序列的迭代次数,因而可以在不影响译码性能或使性能不是下降很多的情况下有效地提高译码效率和减少迭代译码延时[2]。因此,在不降低译码性能的前提下,如何减少迭代的次数,也是研究的目标之一。常用的迭代停止准则包括交叉熵(Cross Entropy, CE准则[3]、符号改变率(Sign Change Ratio, SCR准则、 硬判决辅助(Hard Decision Aided, HDA准则[4]和循环冗余校验(Cyclic Redundancy Check, CRC准则[5]等。本文在CRC准则的基础上,加入了可靠度度量来对其进行改进,并进一步提出了一种重传机制,最后通过仿真进行了改进前后的性能比较。
1CRC迭代停止准则
在Turbo码译码时,CRC准则通过CRC码来判断是否停止迭代。在发送端,信息序列在进行Turbo码编码前,需先进行CRC编码,然后将生成的CRC校验码与信息序列一同送入编码器,进行Turbo码编码。在接收端,每次迭代后,Turbo码译码器进行临时硬判决,然后对硬判决序列进行CRC校验:若校验结果完全正确,则停止迭代,输出结果;否则继续迭代至最大迭代次数为止[6]。
在信道条件较好时,CRC准则较适用,且迭代次数很小,但当信道条件恶化时,就可能出现较大的迭代次数甚至译码错误。显然,CRC准则需要进行CRC编码及译码,也会在一定程度上降低Turbo码的编码效率和译码性能[7]。考虑到CRC准则具有复杂度低且计算量小的优点,也可将其与SCR准则、HDA准则相结合[8],来降低迭代次数及提高译码性能。
第3期
胡方家等:基于可靠度的循环冗余校验算法
计算机应用 第35卷
2基于可靠度的CRC算法
基于CRC准则在信道条件恶化时所表现出的性能缺陷,本章提出了一种改进的CRC迭代停止算法,即基于可靠度的CRC迭代停止算法,用精确的循环冗余校验(PrEcision Cyclic Redundancy Check, PECRC算法来表示,来降低迭代次数,并在其可靠度度量的基础上,提出了一种重传算法,来进一步提高译码准确度。
2.1基于可靠度的CRC迭代停止算法
本节提出的迭代停止算法,在CRC准则的基础上,主要作了如下2方面的改进:
1加入了可靠度度量,为每次迭代的硬判决结果计算相应的译码可靠度;
2保存具备最大可靠度的译码中间结果,来代替最后一次迭代的译码结果作为输出。
在实际的Turbo码通信系统中,往往将数据信息转换为双极性非归零码,然后在信道中进行传输,这种传输码具有抗干扰能力强的特点[9]。设某一信道的信噪比为sn,则当信道中传输双极性非归零码时,其误比特率F与sn的关系[10]表示为:
F=erfcD(sn/2(1
其中:
D(x=10x20(2
erfc(x=1-2π ∫x0e-θ2dθ(3
1译码可靠度的计算。
设信道接收端接收到的信息序列为S=(s0s1s2…sn,PECRC算法在每次迭代后,有一个用来判定是否停止迭代的度量,这里称之为译码可靠度,表示为P,其具体计算方法如下。
①从S中提取出所有的CRC校验部分,形成序列S1=(a0a1a2…am,且m ②将S送入译码器中,从每次迭代后的硬判决序列中分别提取出CRC码的信息部分和校验部分,形成序列s=(s0s1s2…st和S2=(b0b1b2…bm,且t ③对得到的序列s进行CRC编码,然后从得到的编码序列中提取出校验部分形成序列S3=(c0c1c2…cm。
④计算译码可靠度P如下:
P=PRE1(S1,S2+PRE2(S2,S3(4
其中:
PRE1(S1,S2=(1-Q1-length(S1,S2,0len-F(5
PRE2(S2,S3=Qlength(S2,S3,1len(6
len为提取出的CRC校验序列的长度,F为由当前信噪比计算得到的误比特率,Q为信道的可靠性值[11],length函数用来计算不同校验序列间的异同,分别计算如下:
len=m+1(7
Q=4aenrate(8
length(X1,X2,k=X1序列与X2序列不同比特的个数,k=0
X1序列与X2序列相同比特的个数,k=1; k∈{0,1}(9
在式(8中,a为信道的衰落幅度,en为转换为十进制的sn,rate为码率。在式(5中,当序列S1和S2不同比特的个数与总个数的比值越接近信道的误比特率时,本次迭代的译码结果越可靠。
2算法的实现步骤。
在此算法中,会设置一个阈值T,用以判断是否提前停止迭代,具体流程如图1所示。
图片
图1PECRC迭代停止算法的工作流程
2.2基于可靠度的CRC重传算法
本节提出的重传算法,在使用2.1节提出的PECRC迭代停止算法的基础上,通过比较至多3次传输的译码结果,来得到本帧数据的最佳译码结果。
小编推荐优秀的电子期刊 《信息工程大学学报》
《信息工程大学学报》(双月刊)创刊于2000年,是由解放军信息工程大学主办的公开发行的以基础理论、应用科学和工程技术为主的理工科综合性学术刊物,本刊的主要任务是反映大学在教学、科学研究中的学术论文和科研成果,促进学术交流,发展科学技术,推动教学改革,提高科研水平。