Turbo编码BPSK调制系统的迭代解调解码方法及装置的制作方法

文档序号:7532270阅读:297来源:国知局
专利名称:Turbo编码BPSK调制系统的迭代解调解码方法及装置的制作方法
技术领域
本发明涉及通信领域,尤其涉及一种无线和卫星通信系统中采用BPSK调制的Turbo码的迭代解调解码方法及装置。
背景技术
无线和卫星通信系统中,传输比特受信道随机噪声的影响而产生随机错误。理论和实践证明,通过引入冗余度来提供传输可靠性的纠错编码方法是一类行之有效的手段。而近年来引入的Turbo码是至今发现的纠错能力最强的编码方案之一。
Turbo码由C.Berrou等于1993年提出[C.Berrou,A.Glavieux,and P.Thitimajshima,“Near Shannon limit error-correcting coding and decodingTurbo-codes,”in ICC’93,Geneva,Swithzerland,May,1993,pp.1064-1070],它被认为是近年来编码理论取得的最大进展之一。在高斯白噪声(Additive White Gaussian Noise-AWGN)信道下Turbo码在误码率为10-5时以0.7dB的信噪比逼近于香农(Shannon)容量极限。对于卫星信道,由于功率受限,降低卫星通信系统的工作信噪比无疑是至关重要的,引入Turbo编解码技术能很好地解决卫星信道功率受限的缺点。
C.Berrou仅考虑了高斯白噪声(AWGN)信道的解码算法,这在实际无线和卫星通信中是不够的。在实际信道下,编码数字信号一般需进行调制进行发送,这就要求收发两端有相同的频率发生器。但是由于实际器件的非理想特性,还特别由于传输媒介的时变衰落等特性,使得收发的调制信号的频偏和相位实际上在很大程度是未知的,这就要求接收机进行信道估计和跟踪以消除未知频偏和相位对发送信号的影响。这样,如何去除未知信道参数影响从而对Turbo码进行解码是广受人们关注的研究热点。该问题的困难在于Turbo码工作的信噪比要远远低于常规条件下的信噪比,而事实上在低信噪比下如何精确估计和跟踪信道参数本身就是一大难题。
在卫星与无线通信中,典型的信道未知参数为频率偏移(频偏)和载波相位。传统的信道估计技术是采用锁相环技术。由于极低信噪比下(如AWGN下Turbo码所能工作的信噪比)的通信的特殊性,传统算法一般不能工作。可能的解决方案是放弃以前信道估计和信道译码各自独立的特性而代之以联合迭代解调解码,使得信道估计能够充分利用编码提供的冗余度。
综合目前国内外的研究动态,在未知相位信道下Turbo码的解调解码方法主要有5种方法一[吴晓富,凌聪,吕晶,未知相位信道下Turbo编码的迭代解调解码算法,电子学报,2002年第一期]系统采用Turbo码加差分相位调制的方案,基于提出的未知相位信道下的差分相位调制的最佳非相干MAP算法,可用迭代解调解码的思路使得性能随迭代而提高。当系统在下列条件下采用BDPSK调制,非相干MAP状态数取32,Turbo码采用16状态的经典结构,帧长取2048,仿真表明系统在3.2dB时17次迭代能达到10-5以下,该算法对频偏有较好的鲁棒(Robust)性。但缺点在于采用差分编码与Turbo码串行级联的方案部分破坏了Turbo码的结构,使得系统性能有较大幅度的下降,而且实现复杂,很难用现有的FPGA器件实现。
方法二[G.Colavope,“Noncoherent Iterative(Turbo)Decoding,”IEEE Trans.Commun.,vol.48,no.9,Sept.2000,pp.1488-1498]Colavolpe提出的未知相位信道下Turbo码非相干序列迭代检测。该算法没有引进差分结构,而直接对接收的Turbo码信号(BPSK调制)采用非相干MAP算法,相比于我们提出的非相干MAP算法,该算法作了进一步的简化,即所谓的软非相干序列检测算法。由于该算法没有破坏Turbo码的结构,性能较好。但缺点是没有考虑频偏效应,而且实现时复杂度仍较高。
方法三[A.Anastasopoulos,and K.M.Chung,“Adaptive Iterative Detection for PhaseTracking in Turbo-Coded Systems,”IEEE Trans.Commun.,vol.49,no.12,Dec.2001,pp.2135-2144]Anastasopoulos提出了对Turbo编码调制系统进行相位跟踪的迭代检测算法,利用PSP(Per-Survivor-Processing)算法对每一条路径加以相位参数的跟踪,初始相位靠发送导频码获得。该算法实现相对比较简单性能良好,但仍然没有考虑频偏所带来的影响。由于频偏的非线性特性,该算法一般不能很好地工作(原算法主要基于相位的线性特性)。
方法四[W.Oh,and K.Cheun,“Joint decoding and carrier phase recovery algorithm forturbo codes,”IEEE.Commun.Lett.,vol.5,no.9,2001,pp375-377]Wangrok提出的联合相位恢复解码算法,将信道相位进行量化,从而将信道估计问题转变成一检测问题,利用最佳量化相位下Turbo码解码输出的软信息(对数似然比LLR)的绝对值最大原则可完成信道未知相位的检测。该算法实现简单,性能好,作者还提出了基于帧间的频偏估计算法。但是其容忍的频偏为传输码率的100ppm,而且相位在一帧间要保持恒定,显然很难满足卫星与无线通信的要求。
方法五[I.Bar-David,and A.Elia,“Augmented APP(A2P2)Module for a PosterioriProbability Calculation and Channel Parameter Tracking,”IEEE Commun.Lett.,vol.3,no.1,Jan.,1999,pp.18-20]Bar-David提出了信道存在未知频偏和相位下Turbo编码系统的解调解码方法。其构架是在原有Turbo码子码APP模块的基础上再有机地将信道跟踪模块结合进去,形成所谓的增强的APP(A2P2)解码模块。该算法实现简单,性能良好。但缺点是原文献好多关键技术含糊不清,并且信道参数初始估计问题并没很好解决。另外,对于第二个子码,由于交织器及反交织器的介入,信道参数对所传送的系统信息比特的影响关系与第一个子码不再对等(即被交织打乱),如何计算编码系统信息比特的度量对第二个子码的A2P2解码模块运行至关重要,但文献没有提及。
对以上方案的分析表明,全面考虑信道频偏和相位未知情形下的Turbo码解调解码问题并没很好解决。频偏和可实现性(考虑现有的硬件FPGA、CPLD支持)问题是关键。方案五是其中较优的选择,其全面考虑了频偏和相位的跟踪问题,且就实现复杂度来看利用已有的FPGA或CPLD器件是可实现的。剩下的问题在于初始参数的捕获问题和第二个子码增强APP模块运行所必须解决的如何计算系统信息比特所对应的度量的问题,这将在后面进一步说明。
典型的Turbo-code的编码器结构如图1所示。它通常由两个结构相同的递归系统卷积(RSC)(通常称为子码)编码构成,RSC1直接对进入的信息序列进行编码,得校验序列y1k;同时,将信息序列dk通过交织器交织后的序列dn送往RSC2进行编码,得到校验位y2k,Turbo-code码字就是由信息序列xk后接两路校验序列构成。子编码器所产生的校验位(y1k,y2k)可经不同删截矩阵删取后得到不同码率的Turbo码。
Turbo-code迭代译码结构如图2所示,它主要由两个软入软出模块(Turbo码的子译码器)组成,子译码器用来对选定的Turbo码中的RSC子码进行译码。子译码器1将子译码器2获得的信息比特dk的外信息 作为dk先验信息来对RSC1进行译码,获得关于dk改进的外信息Λ1e(dk),经交织后得到 作为子译码器2对RSC2译码的先验信息。子译码器2用与子译码器1同样的方法再次产生信息比特改进的外信息Λ2e(dj),经去交织后得到 作为下一次迭代中子译码器1的先验软值。这样在多次迭代后,对子译码器2产生的输出Λ2(dj)去交织后进行硬判决,得到每个信息比特dk的估值 由解码结构可知,AWGN信道下Turbo码的解码关键是子译码器的软入软出模块,在文献中,该模块有各种不同的叫法,如BCJR算法、MAP算法,APP算法。下面采用APP算法的描述方法。基于网格边(Edge)的APP算法的一种推导见文献[Benedetto,“A Soft-Input Soft-Output APP Module for Iterative Decoding of ConcatenatedCodes,”IEEE Commun.Lett.,vol.1,no.1,Jan.,1997,pp.22-24]。
文献[P.Robertson,E.Villebrun,and P.Hoeher,“A comparison of optimal and sub-optimal MAP decoding algorithms operating in the log domain,”in IEEE Int.Conf.onCommunications(Seatle,WA,June 1995),pp.1009-1013]表明可将MAP算法步骤转到Log域(即所谓的Log-MAP算法),从而可以用加法和查表来代替原MAP算法中的大量乘法运算,目前实际的FPGA实现普遍采用基于Log域的算法。
下面对基于Log域的APP算法原理采用Benedetto的诠释加以介绍,在此基础上对实际参数信道下的Turbo编码BPSK调制系统的解码算法加以说明。
假设RSC子码为码率为k0/n0的二进制卷积码。下面约定大写的U,C,S,E代表随机变量,小写的u,c,s,e代表相应的每次实现;用小写的k代表离散的时间,该时间取值于离散时间集K;字母I,O代表APP模块的输入输出。
这样,基于Log域的APP模块可描述如下1、输入U=(Uk)k∈K表示一串输入符号序列,对应于Turbo码子码编码器的输入信息比特(如对RSC1子码,则对应于图1中的dn)。对码率为k0/n0的一般情形,每一个输入符号Uk由k0个信息比特组成Ukj,j=1,2,Λ,k0,其实现uj∈{+1,-1}。这样,该符号序列的先验信息分布的Log域表示为Λ(u;I)=(Λk(u;I))k∈K,其中,Λk(u;I)=Σj=1k0Λk(uj;I),]]>该数值一般来自于另一APP模块的输出外信息。
2、输出C=(Ck)k∈K表示一串输出符号(即编码)序列,对应于Turbo码子码编码器的输出信息比特(如对RSC1子码,则对应于编码后的输出(xk,y1k))。对码率为k0/n0的一般情形,每一个输出符号Ck由n0个比特组成Ckj,j=1,2,Λ,n0,其实现cj∈{+1,-1}。这样,该符号序列的先验概率分布的Log域表示为Λ(c;I)=(Λk(c;I))k∈K,其中,Λk(c;I)=Σj=1n0Λk(cj;I),]]>该数值即是所谓的分支度量,一般是通过接收的样本进行计算而得。
3、网格描述(Trellis Section)如图3,取时刻k到k+1的网格段来说明,状态空间S={s1,...sN}(如时刻k的状态Sk=s,s∈S),网格段的边由卡氏积给出E=S×U={e1,e2,Λ,eN-N1}]]>,表示相邻两时刻间状态之间转移的所有可能性。这样,对于每一条边可赋予起始状态sS(e),终止状态sE(e),输入符号u(e),输出符号c(e)。这些符号间的具体关系取决于给定的递归卷积子码。
4、APP算法的目的是根据输入的先验信息Λ(u;I)及分支度量Λ(c;I)计算外信息Λ(u;O)及Λ(c;O)。首先计算前后向的跟状态有关的度量(Log域)前向度量(FSM)Ak(s)=Σe:sE(e)=s⊕{Ak-1[sS(e)]+PRk+BMk----(1)]]>后向度量(RSM)Bk(s)=Σe:sS(e)=s⊕{Bk+1[sE(e)]+PRk+1+BMk+1----(2)]]>其中,PRk=Σi=1k012ui(e)Λk[ui;I]]]>表示先验信息度量,BMk=Σi=1n012ci(e)Λk[ci;I]]]>表示支路度量(Branch Metric,BM),而运算Σe=1N⊕{Λe}=E(Λ1,Σe=2N⊕{Λe}),]]>且E(Λ1,Λ2)=max(Λ1,Λ2)+fc(|Λ1-Λ2|),后面我们称之为E运算符,而fc(x)=log(1+e-x)可用查表法简单实现。初始值设置为 S0为卷积码的初始状态,Sn为卷积码的最终状态。最终,在计算后向度量Bk(s)的同时输出外信息(APP)Λk(cj;O)=LPk(cj=+1;O)-LPk(cj=-1;O)(3)Λk(uj;O)=LPk(uj=+1;O)-LPk(uj=-1;O)(4)其中,LPk(cj;O)=Σe:Ckj(e)=cj⊕{Ak-1[sS(e)]+Σi=1k012ui(e)Λk[ui;I]+Σi=1i≠jn012ci(e)Λk[ci;I]+Bk[sE(e)]}---(5)]]>LPk(uj;O)=Σe:Ckj(e)=cj⊕{Ak-1[sS(e)]+Σi=1i≠jk012ui(e)Λk[ui;I]+Σi=1n012ci(e)Λk[ci;I]+Bk[sE(e)]}---(6)]]>由(1-6)可知,要求出Λk(uj;O),Λk(cj;O),必须知道Λk(uj;I),Λk(cj;I)。其中Λk(uj;I)实际即是信息比特的先验信息(Prior Information),迭代时是由上一级RSC的解码模块提供的外信息,需要计算的是分支度量Λk(cj;I),这在AWGN信道下可由接收的信道采样直接提供,如对子码码率为1/2而Turbo码不加删截则形成的Turbo码最终速率为k0/n0(k0=1,n0=3)的情形,假设系统采用BPSK调制,则图1所示的编码比特输出(xk,y1k,y2k)复接成BPSK信号流ckj,j=1,2,3(对应关系为ck1=2xk-1,ck2=2y1k-1,ck3=2y2k-1),]]>则接收到的BPSK信号由于AWGN的影响可表示为rv=ckj+wv,j=1,2,Λn0;v=kn0+j;k∈K----(7)]]>其中wv为均值为0,方差为σ2的高斯白噪声。设Lc=2/σ2,则Λk(cj;I)=Lcrv,j=1,2,Λn0;v=kn0+j;k∈K。(8)现在考虑实际的参数未知信道,假设系统仍采用BPSK调制,由于频偏和相位未知,接收到的信号匹配滤波(每符号采样一次)后最佳采样复输出为r~v=x~v+iy~v]]>( 表示I支路, 表示Q支路)并可表示为r~v=hvckj+wv,j=1,2,Λn0;v=kn0+j;k∈K----(9)]]>hv=exp(jvΩ+Φ0)其中,Ω,Φ0分别代表信道频偏和初始相位。一般来说,信道频偏和相位是随时间缓慢变化的(即不但需要初始估计而且需要跟踪)。显然,如何计算(8)是需要解决的问题,其中一种解决途径是在APP算法框架下引入参数估计和跟踪机制。
Bar.Darvid提出的A2P2模块很好地解决了BPSK调制下RSC子码的联合参数跟踪和软入软出功能。增强的APP模块(A2P2)工作原理可用图5来说明1、信道参数跟踪(CPE)模块CPE(Channel Parameter Estimation)模块通过对输入的信道采样进行处理而完成信道参数的不断更新并输出到CSM模块。CPE在实际实现时是内嵌在APP模块中,工作在网格图中的所有边(Edges)上,CPE在每条网格边上进行信道参数的跟踪且其工作频率与编码比特的传输频率一致,而APP的每条网格边的更新频率则是信息比特的传输频率。对码率为k0/n0的卷积码,APP模块外信息的更新频率与网格边的更新频率一致,设其为基准工作时序k(也即网格中的状态更新时序),则CPE在网格中随状态的更新时序也为k。为方便起见,下面设信道参数(频偏和相位)估计值在网格中k时刻状态s处的值表示为χk(s)=(Φv(s),Ωv(s))。另外,CPE在某一条边上都要更新n0次。因而信道参数相对于边的更新时序为v=kn0+j,j=1,2,Λ,n0。在下面的说明中假设在时刻v相对于某条边e(前向或后向)所估计的信道参数(频偏和相位)为(前向用χρv(e)=(Φρv(e),Ωρv(e)),]]>后向用χωv(e)=(Φωv(e),Ωωv(e))]]>表示)。
CPE的工作流程是在网格段上先针对每一条边更新n0次,由于多条边最终进入同一最终状态,因而该最终状态的参数是根据每条边上的度量(前向用 后向用 表示)选择最佳的边估计信道参数( )作为该状态的信道估计参数。下面我们进行详细说明。
CPE按以下步骤操作1)相应于某条边先去除(Wipe off operation)对应该边的调制数据(即cv(e),v=kn0+j,j=1,2,Λ,n0)从而得到(假设cv(e)∈{+1,-1})rv(e)=r~v·cv(e)=xv(e)+iyv(e)]]>在此基础上根据最新跟踪到的参数估计Φv′=ΩvTs+Φv进行相位旋转得到rv′(e)=rv(e)·exp(-iΦv′)=xv′(e)+yv′(e),显然 2)基于网格边(Edges)信道参数的前后向更新参数的前向迭代χρv(e)=(Φρv(e),Ωρv(e))]]>的更新可写成函数形式χρv+1(e)=CPE(χρv(e),rv(e)),]]>具体实现下式功能 参数的后向迭代χωv(e)=(Φωv(e),Ωωv(e))]]>的更新由下式完成 其中,ΔΩv=yv′(e)a(xv′(e)+b),]]>ΔΦv=aΔΩva=23LTs,]]>b=L/4,L是一参数,表示信道参数估计的记忆长度。
需要说明的是在每一网格边的起始信道参数由边的起始状态决定,即有χρkn0+1(e)=χk(s)|e:sS(e)=s;,]]>χωkn0+n0(e)=χk+1(s)|e:sE(e)=s;----(13)]]>3)基于状态的信道参数更新,为实现简单起见,我们取前向 其中, 后向χk(s)=χωkn0+1(eωmax),]]>其中,eωmax=max{mωk(e),e:sS(e)=s}----(15)]]>mωk(e)=Bk+1[sE(e)]+Σi=1k012ui(e)Λk+1[ui;I]+Σi=1i≠jn012ci(e)Λk+1[ci;I]]]>2、信道采样参数修正(CSM)模块CSM(Channel Signal Modifier)模块的功能是根据当前CPE模块输出的信道参数值对输入的信道原始采样进行修正,去除信道参数的影响,从而输出等效于AWGN信道的信号采样值。具体实现时CSM模块并非一独立模块,其功能仍然是内嵌于APP实现的,事实上,相比于AWGN下的APP算法,带CSM的APP算法唯一不同的是在每一条边上必须先进行去除未知信道参数的操作,而CPE模块的作用是得到沿边上更新的信道参数,因而在每一条边上只要进行相应的相位旋转即可。也即取Re[rv(e)·exp(-iΦv(e))]作为APP沿边上的输入(其中 指取其实部)。其他和标准APP无异。
3、APP(a)模块本模块与AWGN下的子码的APP模块基本相同,其基本功能是根据输入Λk(uj;I),Λk(cj;I)计算Λk(uj;O),Λk(cj;O)。其不同之处在于分支度量Λk(cj;I)的计算。详细地说,本模块在网格图上执行CPE和CSM模块,并在此基础上执行公式(1-6),但是(1-6)中的分支度量Λk(cj;I)的计算如下Λk(cj;I)=LcRe[rv(e)·exp(-iΦv(e))],j=1,2,Λn0;v=kn0+j;k∈K (16)其中Re[rv(e)·exp(-iΦv(e))]由CSM,CPE模块提供。
下面讨论频偏和相位未知信道下Turbo码采用A2P2模块解码存在的问题。以上所述的A2P2模块原则上可应用于频偏和相位未知条件下RSC子码采用BPSK调制时的APP译码。但是对于Turbo码的解调解码,仍存在以下两个问题1)A2P2模块可直接应用于Turbo码子码RSC1的解码,但应用于子码RSC2时要求交织后的信息符号序列也要发送到信道上(如不传系统性能要相应恶化),这一点要区别于AWGN信道,其原因在于相对于RSC2,接收的信道样本中包含系统信息比特的部分(即信息符号序列xk,见图2)由于交织的作用不再符合hv=exp(jvΩ+Φ0)的关系(因为RSC2看来时刻v的关系被交织打乱),从而A2P2模块计算时所必须的对应于RSC码字中的前k0个系统信息比特的分支度量Λk(cj;I),j=1,2,Λk0无法计算。而通过额外传输交织后的信息符号序列则无疑大大降低了通信传输的有效性;2)A2P2模块只能用于参数跟踪条件下的迭代译码,当未知的信道频偏和相位较大时,仿真表明采用A2P2模块的算法失效。

发明内容
本发明的目的是提供一种能解决如何计算A2P2模块第二个子码系统信息符号序列的度量问题的Turbo码的迭代解调解码方法和装置。
本发明的另一目的在于提供一种用于参数未知信道下Turbo编码BPSK通信系统的简单实用的迭代解调解码的方法和装置。
本发明的关于Turbo编码BPSK调制系统的迭代解调解码方法,其步骤包括1)将信道接收信号拆分后传输给相应的两子译码器,子译码器1和子译码器2;2)子译码器1收到信道接收信号后,通过其软入软出模块在网格基础上执行CPE模块,得到解调后的边估计信道参数;执行CSM模块得到等效AWGN信道信号;然后将所得等效AWGN信道信号传输给该软入软出模块的APP模块,APP模块计算支路度量,前向状态度量和后向状态度量,然后计算输出外信息,和等效系统信息比特度量;3)子译码器2接收到信道信号后,通过其软入软出模块在网格基础上对接收信号执行CPE模块和CSM模块,将所得等效AWGN信道信号(仅对应于校验比特)传递给该软入软出模块的APP模块,该APP模块接收该等效AWGN信道信号,以及子译码器1输出的外信息和交织后的等效系统信息比特度量,计算输出外信息,并将之传输给子译码器1,完成一次迭代;4)子译码器1接收子译码器2的输出外信息,再次计算输出外信息和等效系统信息比特度量,子译码器2接收子译码器1的输出,再次计算输出外信息,并将之传输给子译码器1,完成又一次迭代;5)在迭代次数达到预设值后,对子译码器2的输出外信息去交织后进行硬判决,得出每信息比特的估值,完成解码。
本发明对信道接收信号进行初始频偏估计和初始相位估计,并将估计值分别传输给两子译码器。
本发明的Turbo编码BPSK调制系统的迭代解调解码装置,包括两子译码器,子译码器1和子译码器2,每个子译码器包括CPE模块,计算解调后的边估计信道参数;CSM模块,计算等效AWGN信道信号;APP模块,在网格边上执行CPE模块和CSM模块,接收CPE模块、CSM模块的输出,计算支路度量,前向状态度量,后向状态度量,然后计算输出外信息;子译码器1还具有等效系统信息比特度量输出端,子译码器2具有等效系统信息比特度量输入端,子译码器1等效系统信息比特度量输出端输出的等效系统信息比特度量经交织后输入到子译码器2的等效系统信息比特度量输入端。
上述装置还包括初始频偏估计模块和初始相位估计模块,分别计算频偏的初始估计值和相位的初始估计值,并输入给两子译码器。
所述APP模块包括BMC模块,计算并输出支路度量;FSMC模块,接受BMC模块的输出,计算并输出前向状态度量;RSMC模块,接受BMC模块的输出,计算并输出后向状态度量;LLR模块,接收BMC模块、FSMC模块和RSMC模块的输出,对于子译码器1,计算并输出外信息和等效系统信息比特度量,对于子译码器2,计算输出外信息,在最后一次迭代,计算输出LLR。
所述初始频偏估计模块和初始相位估计模块固化在DSP芯片上,两子译码器的CPE模块、CSM模块和APP模块均固化在一主CPLD芯片上,DSP芯片将初始频偏估计模块和初始相位估计模块的计算结果通过RAM传送给主CPLD芯片。
本发明的初始信道参数的原始估计过程如下设接收到的基带复信号由(9)给出,步骤如下1.初始频偏估计1)首先作变换以去掉调制信息ρv=φ(r~v)=r~v·r~v=ei(2vΩ+2φ)+w~v----(17)]]>上述变换φ为取平方,其他变换也是可以的,如取φ(x)=|x|exp(i(2arg(x)),|x|为复数x的模,arg(x)表示取复数x的的角度。
2)作快速傅立叶变换(FFT)并搜索频偏值取N个基带复信号,对每一个复信号取2次幂,最后对幂信号进行PN点的FFT(PN=P×N,P>1),(P-1)N表示补0的个数,这样频偏估计由以下式得到。vm=maxv{|FFT{{ρv}v=1N,PN}|----(18)]]>max{|FFT()|}表示搜索FFT变换后幅度最大的点,取其序列号为vm,则Ωm=2πvm/N。
3)利用对频偏的初始范围知识最终获得频偏的初始估计值。
由步骤(2)算出的Ωm跟最终想要的初始频偏估计Ω0仍可能有180度的相位跳转,若考虑到现在频偏的范围Ω0<0.1*2*π(该条件一般能满足),最终可取 2、初始相位估计条件加入少量导频符号。
假设系统在每帧的开始前连续发送P个导频符号(Pilot Symbols),为方便起见,可认为是全1码。则接收到的信号为r~v=ei(vΩ+φ)+wv,v=1,2,Λ,P]]>则初始相位估计为Φ0=angle(Σv=1Pr~v·e-ivΩ0).----(20)]]>这样,整个算法实现简单,可用目前的FPGA硬件实现;特别适应于信道的频偏和相位未知的情形。对典型的恒参卫星信道,能获得逼近理想AWGN信道下Turbo码的性能。
本发明提供的信道参数未知下Turbo码的迭代解调解码算法基于增强的APP模块,主要解决了频偏和相位的初始估计问题和第二个子码RSC2的迭代解码问题。为解决第二个子码RSC2的迭代解码,本发明提出一种能提供等效系统信息比特度量输出的增强APP模块(下面称为ES-A2P2模块)。
ES-A2P2模块与A2P2模块原理基本一致,其不同之处在于多了一个输入和一个输出。额外输入端Λ(s;I)对应于等效系统信息比特度量输入。额外输出端Λ(s;O)为等效系统信息比特度量的输出,也即{Λk(sj;O),j=1,2,Λ,k0;k∈K},如图6,则子码RSC1采用该模块解码输出等效系统信息比特度量,经交织后传递给子码RSC2解码模块的等效系统信息比特度量输入端Λ(s;I),这样RSC2的ES-A2P2模块可用该等效信息来直接计算对应于RSC2码字中的前k0个系统信息比特的Λk(cj;I),j=1,2,Λk0。
ES-A2P2模块的执行步骤如下1)相同于A2P2模块,在网格基础上执行CPE和CSM模块的功能,见前面A2P2模块原理。
2)APP(a)模块a)类似与A2P2模块的相应模块,即执行(1-6)。不同点在于Λk(cj;I)j=1,2,Λk0;的计算,若Λk(cj;I)j=1,2,Λk0;可由来自于信道的采样样本通过公式(16)直接计算,则等效系统信息比特度量输入Λ(s;I)舍弃不用(对应于Turbo码的子码RSC1)。否则,则执行Λk(cj;I)=Λk(sj;I)j=1,2,Λk0(对应于Turbo码的子码RSC2)。
b)采用如下算法计算等效系统信息比特度量输出{Λk(sj;O),j=1,2,Λ,k0;k∈K}Λk(sj;O)=LPk(sj=+1;O)-LPk(sj=-1;O)。(21)其中LPk(sj=cj;O)=Σe:Ckj(e)=cj⊕{Ak-1[sS(e)]+12cj(e)Λk[cj;I]+Bk[sE(e)]}.----(22)]]>本发明主要解决了频偏和相位未知信道下采用BPSK调制的Turbo编码系统的迭代解调解码问题。基于Bar-David提出的A2P2模块[I.Bar-David,and A.Elia,″Augmented APP(A2P2)Module for a Posteriori Probability Calculation andChannel Parameter Tracking,″IEEE Commun.Lett.,vol.3,no.1,Jan.,1999,pp.18-20],本发明提出了ES-A2P2模块,解决了Turbo码第二个子码RSC2的解码时所需的系统信息比特的度量计算问题。另外,本发明解决了初始参数估计的问题。使得ES-A2P2模块的跟踪算法能可靠工作。
本发明提出的ES-A2P2模块,相比于A2P2模块,有额外的输入输出端。用来解决Turbo码交织器带来的对第二个子码的系统信息比特的度量计算问题。由于交织的作用,A2P2模块中的CSM模块由于不能有效地去除信道参数(频偏和相位)的影响而不能完成对应于RSC2码字中的前k0个系统信息比特的度量Λk(cj;I),j=1,2,Λk0的计算问题。而ES-A2P2模块却提供了额外的输出能计算相应于系统信息比特的度量,因而RSC1子码计算出的该额外的关于系统信息比特的度量经交织后送到RSC2子码的等效系统信息比特额外输入端用以计算经信道难以计算的系统信息比特的度量问题。所发明的ES-A2P2模块有很强的参数跟踪能力,因而放松了对初始信道参数估计精度的要求。所发明的ES-A2P2模块实现简单,可用现有的FPGA技术硬件实现。
本发明提供了一种信道参数初始估计算法,可有效用于极低信噪比下的频偏和相位估计问题。对于频偏估计,本方法无需导频符号,提高了信道利用率,并克服了一般频偏估计难以在低信噪比下(低于0dB)工作的缺点。利用少量的导频符号,在频偏估计的基础上,给出了信道相位的初始估计算法。参数的估计精度一般能保证本发明的ES-A2P2模块在典型的卫星信道上能可靠工作。
本发明的优点与积极效果总结如下1、本发明提供了一种适应于频偏和相位未知信道下Turbo编码BPSK系统的迭代解调解码的ES-A2P2模块,相比于A2P2模块,有两个额外的输入输出端。可用来有效解决Turbo码交织器带来的对第二个子码的系统信息比特的度量计算问题。;2、本发明的ES-A2P2模块,在针对上述1中的特殊输入条件时,简单实用,易于数字实现;3、本发明的初始频偏估计算法,能有效工作在低信噪比(低于0dB)条件下,易于采用数字信号处理技术快速实现;4、本发明的初始相位估计算法在初始频偏估计的基础上采用了少量导频符号,实现简单,估计精度能满足ES-A2P2模块跟踪的需要;


图1Turbo-code编码器结构;图.2Turbo-code迭代译码器结构;图3网格编码图;图4网格的边(An Edge of the trellis section);图5增强的APP模块(A2P2);其中CPE信道参数估计模块;CSM信道输入信号去除信道参数模块;APP(a)子码的软入软出模块;rk表示输入的基带复信号图6本发明的在信道频偏和相位未知下Turbo码BPSK系统的迭代解码算法框图;图7实例的FPGA开发结构示意图Din表示原始数据,Ain表示先验信息,Aout表示外信息,Px0表示等效比特输出。如果ES-A2P2模块需要平均FSMC和RSMC估计出来的相位,则加上虚框所示部分。在实际实现的时候,FSMC和BMC是糅合在一起计算的,RSMC和BMC也是一样。
图8实例所用的RSC编码器;图9译码硬件实现方案示意框图;图10FSMC模块实现单元;图11BMC模块实现单元;图12LLR模块单元;图13实例所用的RSC的格状图;图14实例的系统性能示意中横坐标为信噪比Eb/N0,纵坐标为误比特率(BER),图中4条曲线由上而下分别表示第1次到第4次迭代解码后的性能实施方案本发明的迭代解调解码方法的整体方案见图6。
本实施方案基于Alter公司的CPLD芯片EP20K400EBC652-2X,给出在典型的频偏和相位未知信道下采用第三代移动通信系统IMT-2000高速率业务中建议的Turbo码的解调解码算法的开发实例。本实例的FPGA实现结构见图7,实现主时钟为32MHz,允许的解码速率为115.2kbps。系统另有5块外部RAM和一块DSP芯片(TMSC5402),初始频偏和相位估计在DSP中完成。而CPE模块中的除法运算则采用查表实现。在对图7作出进一步说明之前,我们先给出实例中选用的Turbo码的具体编码参数。
本实例选用第三代移动通信系统IMT-2000高速率业务的信道编码。选用建议中的Turbo码由两个相同的递归卷积子码构成,递归卷积子码的生成多项式为(13,15,17)8,信息帧长2280,交织长度2298,总长2304,编码速率1/2。由IMT2000建议可知,该1/2速率的的Turbo码是通过两个RSC母码经级联删除而得。本实例选用的母码如图8所示。
Turbo码编码器中码率调整是通过删除一些校验比特来调整码率。在表1中,“1”表示输出,“0”表示删除;(X,Y0,Y1)表示第一个RSC编码器的输出,其中X是信息位,Y0和Y1是校验位,(X’,Y’0,Y’1)表示第二个RSC编码器的输出,X’是信息位,Y’0和Y’1是校验位。
注意,对于1/2速率的Turbo码,Y1和Y’1比特空置不用,在本实例的以下叙述中不计入删除的范畴。删除指示p仅用来特制Y0和Y’0比特的删除情况(p=0表示该比特被删除,p=1表示该比特没被删除)。

表 非归零比特的码率调整注对每种码率,应从上到下,从左到右读取此表本实例中假设信道为典型的卫星恒参信道,信道的初始归一化频偏(相对于符号传输速率)假设在ΔfT∈(0,0.1)随机选取的,而信道未知相位为随机选取的(0,2π)间的相位。
算法参数选择(1)为估计初始相位,所发送的导频数目为每帧20个。
(2)初始频偏估计(22-23)所述算法,FFT长度选择为N=1024,P=1;(3)系统迭代解码采用图5所示算法,其中CPE模块参数选择为信道记忆长度L=128;对以上情形的解调解码整体框架见图6。
图9给出了CPLD实现频偏和相位未知下Turbo码的迭代解码算法硬件实现示意框图,为了节省片内资源,而且根据算法的实际情况——两个ES-A2P2的子译码器不可能同时工作,我们在硬件实现的时候时分复用同一个ES-A2P2模块。
该译码器中的关键是ES-A2P2子译码器的实现,其CPLD实现结构如图7。主要芯片由Altera公司的一片EP20K400EBC652-2X,TI公司的一片DSP芯片TMSC5402和外挂的6片RAM组成。其中,DSP芯片用于初始频偏和载波相位的估计,它仅在每帧开始时工作,并将结果通过RAM传送给主CPLD芯片,以启动ES-A2P2核心解码算法模块。
而ES-A2P2算法模块中有四个主要部分前向状态度量计算模块(FSMC)、后向状态度量计算模块(RSMC)、对数似然比计算模块(LLR)和支路度量计算模块(BMC)。而6片外部RAM(A、B、C、D、E、F)用来存储FSMC模块和RSMC模块的中间计算结果。其中,外部RAM-F用来存储来自信道的帧数据(接收采样),DSP芯片计算所得的初始参数估计也存储在该片RAM上。
具体FSMC和RSMC的计算结构是很相似的,这里以FSMC为例说明其计算流程。对于FSMC,有两种方案可以选择并行计算和串行计算。如果采用并行计算,计算一个FSM所需要的时钟比较少,但所需要的硬件资源比串行的要多的多,而且计算出来的数据需要同时存储到片外RAM,读取的时候要同时读取,这样,对片外RAM的大小、硬件控制有了更高的要求。所以我们采用串行计算(如图10)。
从图10中可以看出,FSMC的实现流程和普通APP解码算法中相应FSMC的实现流程没有什么大的差别,实际上ES-A2P2和APP的差别主要体现在BMC上。ES-A2P2在BMC(如图11)时,去除了频偏和相偏的影响,使得ES-A2P2中的FSMC模块和普通的APP中的FSMC相同。
我们进行LLR时,也是串行计算,如图12。在RSC1中,我们需要计算等效输出比特度量(PS0)和外信息供给RSC2使用,在RSC2中,如果不是最后一次迭代,我们只需要计算外信息;如果是最后一次迭代,我们只需要计算最终的对数似然比LLR即可。
而基于网格的ES-A2P2模块的执行时序见图10。其具体步骤如下1、对每一帧利用公式(22-25)计算信道初始频偏Ωc和初始相位Φc,具体实现可在数字号处理(DSP)芯片上执行,计算出的参数设为χc=(Φc,Ωc)。该参数送给RSC1的ES-A2P2模块;2、解码器基于图6框架(而在硬件实现上基于图9)作迭代译码,在一次迭代中,先对RSC1子码进行译码,然后对RSC2子码进行译码,这样一次迭代完成,继续进行下一次迭代译码;3、在迭代次数t=1次时,执行RSC1子码的的ES-A2P2模块。该ES-A2P2模块基于如图13的网格时序进行,对于码率为1/2的RSC子码,网格时刻k=0,1,2,...,2297对应于编码前的信息比特。而两相邻状态间边(Edge)上的码字(X,Y0,Y1)的比特时序为2k+j,j=1,2。
1)在网格时刻k=0,ES-A2P2模块执行以下初始化工作对所有状态进行参数赋值χ0(s0)=χc,s0=0,1,2,...,7。
2)在网格时刻k=0,作前向迭代度量Ak(s)的初始值设置为 S0为卷积码的初始状态;3)由网格时刻k-1到网格时刻k,基于边(Edge),由Ak-1(s)计算Ak(s)。如图13,对网格时刻k处的某状态sk,假设它可由网格时刻k-1处的两状态sk-11和sk-22转移得到,相应的边为e1和e2;对边e1;(a)先设置初值χρ2(k-1)(e1)=χk-1(sk-1);]]>(b)CPE模块基于边上的码字比特时序工作,相继计算χρ2(k-1)+j(e1)=CPE(χρ2(k-1)+j-1(e1),p·r2(k-1)+j(e1)),j=1,2;]]>其中,p=1表示该RSC子码的对应比特没有被删除,p=0表示被删除;(c)根据公式(14)(16)计算每条边的前向度量 求出 然后更新网格时刻k处的对应于状态sk的参数 (d)同时根据公式(1)(16)计算前向度量Ak(s)。
4)网格时刻k=2298,前向迭代结束,后向迭代开始。作后向迭代度量Bk(s)的初始值设置 Sn为卷积码的最终状态;5)由网格时刻k+1到网格时刻k,基于边(Edge),由Bk+1(s)计算Bk(s);如图13,对网格时刻k处的某状态sk,假设它可由网格时刻k+1处的两状态sk+11和sk+22转移得到,相应的边为e1和e2;对边e1。
(e)先设置初值χρ2k+2(e1)=χk+1(sk+1);]]>
(f)CPE模块基于边上的码字比特时序工作,相继计算χρ2(k+1)-j(e1)=CPE(χρ2(k+1)-j+1(e1),p·r2(k+1)-f+1(e1)),j=1,2.]]>其中,p=1表示该RSC子码的对应比特没有被删除,p=0表示被删除;(g)根据公式(15)(16)计算每条边的后向度量mσk(e1),mσk(e2),]]>求出emax=maxe{mσk(e),e:sS(e)=s},]]>然后更新网格时刻k处的对应于状态sk的参数χk(sk)=χρ2k(eσmax);]]>(h)根据公式(2)(16)计算后向度量Bk(s);(i)根据公式(4)(6)(16)计算Λk(uj;O)并输出,根据(21)(22)(16)计算Λk(sj;O)并输出;6)后向迭代到网格时刻k=0,后向迭代结束。
4、在迭代次数t=1次时,执行RSC2子码的的ES-A2P2模块。该ES-A2P2模块基于如图13的网格时序进行,除了关于Λk(cj;I),j=1的计算其实现完全类等同于步骤3描述的RSC1的ES-A2P2模块,而Λk(cj;I),j=1的计算由于信道不提供RSC1的系统信息比特的相应样本,无法通过(16)进行,而这里改由RSC1子码输出的Λk(sj;O)提供,设该输出经交织后为Λk(sj;I),置Λk(cj;I)=Ak(sj;I),j=1可完成计算;5、若迭代次数t等于预先设定的迭代次数,则输出译码值,否则置t=t+1,转到3继续执行。
该实例在典型恒参信道下的经4次迭代下的性能见图14,由图14可知1、采用BPSK调制,4次迭代下,频偏和相位未知下的本文算法和AWGN下的性能仅相差0.4dB以内;2、算法复杂度本发明算法复杂度大概是AWGN下译码算法的2倍。
虽然参考其中特定的具体实施例对本发明进行了图示和说明,但是,本领域的普通技术人员将会理解,在不脱离本发明附加的权利要求所定义的精神和范围的情况下,可以对本发明进行形式和细节上的各种修改。
权利要求
1.一种Turbo编码BPSK调制系统的迭代解调解码方法,其步骤包括1)将信道接收信号拆分后传输给相应的两子译码器,子译码器1和子译码器2;2)子译码器1收到信道接收信号后,通过其软入软出模块在网格基础上执行CPE模块,得到解调后的边估计信道参数,执行CSM模块得到等效AWGN信道信号,然后将所得等效AWGN信道信号传输给该软入软出模块的APP模块,APP模块计算支路度量,前向状态度量和后向状态度量,然后计算输出外信息,和等效系统信息比特度量;3)子译码器2接收到信道信号后,通过其软入软出模块在网格基础上对接收信号执行CPE模块和CSM模块,将所得等效AWGN信道信号传递给该软入软出模块的APP模块,该APP模块接收该等效AWGN信道信号,以及子译码器1输出的外信息和交织后的等效系统信息比特度量,计算输出外信息,并将之传输给子译码器1,完成一次迭代;4)子译码器1接收子译码器2的输出外信息,再次计算输出外信息和等效系统信息比特度量,子译码器2接收子译码器1的输出,再次计算输出外信息,并将之传输给子译码器1,完成又一次迭代;5)在迭代次数达到预设值后,对子译码器2的输出外信息去交织后进行硬判决,得出每信息比特的估值,完成解码。
2.如权利要求1所述的Turbo编码BPSK调制系统的迭代解调解码方法,其特征在于对信道接收信号进行初始频偏估计和初始相位估计,并将估计值分别传输给两子译码器。
3.一种Turbo编码BPSK调制系统的迭代解调解码装置,包括两子译码器,子译码器1和子译码器2,每子译码器包括CPE模块,计算解调后的边估计信道参数;CSM模块,计算等效AWGN信道信号;和APP模块,在网格边上执行CPE模块和CSM模块,接收CPE模块CSM模块的输出计算支路度量,前向状态度量和后向状态度量,然后计算输出外信息;其特征在于子译码器1还具有等效信息比特输出端,子译码器2具有等效信息比特输入端,子译码器1等效信息比特输出端输出的等效信息比特经交织后输入到子译码器2的等效信息比特输入端。
4.如权利要求3所述的Turbo编码BPSK调制系统的迭代解调解码装置,其特征在于还包括初始频偏估计模块和初始相位估计模块,分别计算频偏的初始估计值和相位的初始估计值,并输入给两子译码器。
5.如权利要求3或4所述的Turbo编码BPSK调制系统的迭代解调解码装置,其特征在于所述APP模块包括BMC模块,计算并输出支路度量;FSMC模块,接受BMC模块的输出,计算并输出前向状态度量;RSMC模块,接受BMC模块的输出,计算并输出后向状态度量;LLR模块,接收BMC模块、FSMC模块和RSMC模块的输出,对于子译码器1,计算并输出外信息和等效信息比特,对于子译码器2,计算输出外信息,在最后一次迭代,计算输出LLR。
6.如权利要求5所述的所述的Turbo编码BPSK调制系统的迭代解调解码装置,其特征在于初始频偏估计模块和初始相位估计模块固化在DSP芯片上,两子译码器的CPE模块、CSM模块和APP模块均固化在一主CPLD芯片上,DSP芯片将初始频偏估计模块和初始相位估计模块的计算结果通过RAM传送给主CPLD芯片;各模块的中间计算结果存储在RAM中。
7.如权利要求5所述的所述的Turbo编码BPSK调制系统的迭代解调解码装置,其特征在于子译码器1和子译码器2为时分复用的同一译码器。
全文摘要
本发明涉及一种Turbo编码BPSK调制系统的迭代解调解码方法及装置,将信道接收信号拆分后传输给相应的两子译码器,子译码器1收到信道接收信号后,通过其软入软出模块计算输出外信息,和等效系统信息比特度量;子译码器2接收子译码器1输出的外信息和交织后的等效系统信息比特度量,计算输出外信息,并将之传输给子译码器1,完成一次迭代;在迭代次数达到预设值后,对子译码器2的输出外信息去交织后进行硬判决,得出每信息比特的估值,完成解码。可用来有效解决Turbo码交织器带来的对第二个子码的系统信息比特的度量计算问题;简单实用,易于数字实现;可广泛应用于无限和卫星通信领域。
文档编号H03M13/00GK1463084SQ03137079
公开日2003年12月24日 申请日期2003年6月18日 优先权日2003年6月18日
发明者吴晓富, 崔龙, 项海格 申请人:中国人民解放军理工大学通信工程学院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1