Turbo码译码

2024-05-15

Turbo码译码(通用7篇)

Turbo码译码 篇1

1 引言

目前,Turbo码比较常见的译码算法包括最大后验概率(Map)译码算法和软输出维特比译码算法(SOVA)。从译码后的误比特率性能上看,最大后验概率(Map)译码有着明显的优势,但是其计算过于复杂。采用对数最大后验概率(Log-Map)译码算法,可以将大量的乘法运算转化为加法运算,但是其计算复杂度仍旧很高,难以直接用于工程实现。

在工程实现中,通常采用最大值近似最大对数后验概率(Max-Log-Map)译码。其计算简便,但是由于采用了近似运算,造成了一定的译码性能下降。

2 Max-Log-Map算法性能损失分析

由于在Turbo码的Log-Map译码中采用了大量的ln(ex+ey)的复杂运算,使得Log-Map译码很难在工程中得到应用。采用Max-Log-Map译码算法,通过近似等式max(x,y)≈ln(ex+ey)运算,从而极大地化简了运算量。

然而从数学角度来看,上面这种近似却是相当粗糙的。考察二元函数f(x,y)≈ln(ex+ey),f(ex+ey)值取决于max(x,y)(或者min(x,y))和|x-y|两项,其原因在于:

不妨假设x≥y,从而有y-x≤0。按照上面的Max-Log-Map算法,其近似操作为f(x,y)≈x,直接忽略了第二项ln(1+ey-x)。令t=y-x,则t≤0,考察函数g(t)=ln(1+et),为t∈[0,-∞)上的单调减函数,在t=0,取最大值g(t=ln 2≈0.693;当t→-∞时,g(t)→0。g(t)函数如图1所示。

从对以上内容的分析及图1可以看出,当|x-y|<1时,采用Max-Log-Map算法,其引入误差在0.2以上。由于这种不精确近似,导致了Max-Log-Map算法纠错性能的下降。

3 泰勒级数近似最大后验概率译码算法

从上面的分析可以看出,Max-Log-Map算法对Log-Map算法进行简化的实质是在近似时舍弃了函数值g(t)=ln(1+et),t≤0。当t值较小时,g(t)值趋近于0,这种舍弃是合理的,但是当t值接近0时,g(t)值迅速上升到0.693附近,如果直接舍去,势必造成较大误差。

为了减少直接舍弃g(t)函数所造成的误差,我们可以对g(t)函数进行逼近,最直接的办法是对g(t)函数进行泰勒级数展开,g(t)函数在t∈[0,-∞)区间收敛,且具备(n+1)阶导数,故而有:

逼近多项式精度随着t的幂函数项增多而提高,但是代价是计算量的不断增大。考虑到计算量和计算精度的折中,我们最终选取g(t)≈max(ln2+0.5t,0)。

根据如上分析,我们提出一种基于泰勒级数近似的最大对数后验概率(Taylor-Log-Map)Turbo译码算法,其在Log-Map的算法的基础上,在对f(x,y)≈ln(ex+ey)运算的简化时,不再采用Max-Log-Map算法中简单地用最大值近似。为了提升近似的精度,由以上分析,我们可以采用更加精确的近似方式:

在上面的近似表达式中,相比较Max-Log-Map算法,增加了第二项max(ln 2-0.5|x-y|,0)。其中的乘0.5运算在工程中可以通过简单的移位操作实现,除此之外为简单地减法运算。

4 仿真对比

根据上面的分析,我们对Max-Log-Map、Log-Map以及文中算法进行了仿真比照,仿真设置采取BPSK调制、Turbo1/3编码,Turbo码交织长度为1024,使用3GPP标准中CRC校验,信道噪声类型为AWGN,图2反映的是三种算法译码后的误比特率情况,图3反映了三种算法迭代次数对比。文中算法与Max-Log-Map算法相比,更加接近Log-Map算法的性能。

4 结束语

本文在分析了Log-Map和Max-Log-Map两种算法后,提出了一种基于泰勒级数近似的Log-Map算法,此算法计算量小,易于工程实现,同时具有比Max-Log-Map算法更好的译码性能。

摘要:本文主要针对目前turbo码的对数最大后验概率(Log-Map)译码算法和工程中普遍使用的最大值近似最大对数后验概率(Max-Log-Map)译码算法的性能进行了研究和分析,并提出了一种基于泰勒级数近似最大对数后验概率译码算法(Taylor-Log-Map)译码算法。此算法计算简便,易于工程实现,同时具备更加接Log-Map译码的性能。文中在对新算法进行理论推导后,给出了仿真。

关键词:最大后验概率,泰勒级数,译码

参考文献

[1]J Hagenauer and P Hoeher,"A Viterbi Algorithm with Soft-Decision Outputs and Its Applications,”Proc.IEEE Global Commun.Conf.(GLOBECOM1989),PP..1680-86,Dallas,Tex,Nov,1989.

[2]J H Lodge,P Hoeher,and J Hagenauer,“The Decoding of Multidimensional Codes Using Separable MAP filters,’’Proc.16th Biennial symp.Commun,pp.343-46,Kingston,Ontario May,1992.

[3]A J Viterbi,“An Intuitive Justification and a Simplified Implementation of the Map Decoder for Convolutional Codes,’’IEEE J.Select.Areas Commun.,SAC-16:260-64,Feb,1998.

[4]3GPP TS25.212V7.0.0(2006-3).

Turbo码译码 篇2

关键词:基于MATLAB,Turbo码,译码算法,研究分析

Turbo码属于一种无线通信应用程序的高性能纠错码, 主要应用于外层空间卫星通信。不同的Turbo码在构件码、串联方案以及SISO算法等方面都存在着差异。传统的编码在代数结构方面有一定的规则性, 随着MATLAB的应用, MATLAB为Turbo码译码算法研究提供了新的思路。本文主要结合相关文献报道, 就基于MATLAB的Turbo码译码算法研究分析如下:

1 Turbo码编译码结构分析

1.1 编码结构分析

两个相同的RSC分量编码器在交织器作用下通过并行级联可形成Turbo码编码结构。Turbo码编码的主要原理是:需要进行编码的信息序列通常按照三路进行编码, 其中一路完成信息序列向复用器的送入, 第二路是对送入复用器的信息序列通过RSC编码器完成编码, 同时进行序列1的检验, 第三路则是完成信息序列向交织器的传送, 此时原有的序列会被打断, 进而形成新的序列, 将形成新的序列继续送入RSC编码器进行后续编码, 同时对得到的序列2进行校验, 在具体的编码过程中为了提高工作效率, 此时前面得到的两个校验序列会被送入到删余阵。此时可得到最后的编码序列, 并对其进行序列校验, 此时校验序列和未编码的序列服用, 可形成最终需要的编码码字X[1]。最早的Turbo码编码器主要以并行级联卷积码结构 (Parallel Concatenated Convolutional Codes, PCCC) 为主, 该机构是由C.Berrou等学者在1993年提出的。图1所示表示的就是PCCC编码结构的示意图。从图中可以看出, Turbo码包含了交织器、分量编码器、删余矩阵以及复接等。

编码结构的运行过程主要是:信息序列{uk}的长度为N, 这一信息序列被送入第一个分量编码器后会输出, 并将其送到复接器, 与此同时, 信息序列{uk}通过交织器的交织, 可将交织完成后的序列送到第二个分量编码器, 交织器属于一个交织映射函数, 交叉长度为N, 通过不同的分量编码器可得到两个不同的校验序列, 也就是, 通过删余矩阵可以提高系统频谱以及码率的最大化利用。通过删余矩阵的校验和原有系统输出的序列进行复接, 从而得到了Turbo码编码器的输出码字序列。

1.2 Turbo码并行译码结构

两个相同结构的译码器、交织器以及解交织器最终迭代循环过程中完成了译码过程, 进而形成Turbo码并行结构。Turbo码并行译码的原理主要是对于接收的信息序列可进行复用, 同时在译码器1中送入信息位、校验位以及先验信息等, 此时有译码器1对RSC1完成译码, 通过译码可得到不同序列的似然值, 对于产生的外部信息还需要经过交织器处理, 并将得到的信息传递给译码器2, 此时的信息属于先验信息, 在RSC2的译码作用下, 继续进行译码, 再次得到似然值, 经过交织器的译码, 所有信息科反馈到译码器1, 上述所有的工作均是为下一步译码奠定基础。通过重复性的N次迭代, 使得外部信息逐渐趋于稳定, 最终得到信息序列的最佳估值序列。

2 Turbo码常用迭代译码算法分析以及对比研究

Turbo码常用迭代译码算法主要有四种, 分别是: (1) MAP算法 (最大后验概率译码算法) , 该算法是以网格的软输入软输出为基础的译码算法, 通过对噪声信道下输入与输出的逐一估计进行译码, 该运算过程中有大量的乘法运算以及指数运算; (2) SOVA算法, SOVA算法实际上是veterbi算法的扩展, 也就是从所有可行的路径中找出最优的、最大似然序列检测; (3) MAX-LOG-MAP算法, 该算法是将MAP算法中的乘法运算以及指数运算全部转化为对数域内进行, 结合雅克比等式对运算进行简化; (4) LOG-MAP算法, 该算法也是对MAP算法中运算的转化, 同样的是将MAP运算中的乘法以及指数转化到对数域, 避免了指数运算, 将盛饭转化为加法运算。

在这几种常用的算法中, MAP属于Turbo码最佳的译码算法, 该方法能够直接通过计算信息比特完成后验概率, 在具体计算过程中由于运算量太大, 而且每个比特都需要进行 (4×2V) 次加法以及 (6×2V+1) 次的乘法运算, 经过这些计算, 最终需要的存储量可达到 ( (N+1) ×2V+1) , 上述计算公式中, v表示的是编码存储, 而N表示的是编码长度;虽然理论上是最佳的, 但是实际应用难度较大。而LOG-MAP算法则是对数域的MAP算法, 也就是将计算过程中的部分乘法运算转化为加法运算, 这样在计算过程中只需要完成8次乘法运算以及 (15×2V+9) 次加法预算, 在存储方面保持不变, 一定程度上降低了运算的难度, 相对于MAP算法, 更容易实现。MAX-LOG-MAP则是对LOG-MAP算法的改进, 改进过程中将其中的部分运算转化为最大值的运算, 计算过程中同样的需要完成8次乘法运算和 (10×2V+11) 次加法运算。该方法对其进行了较大的改进, 但是影响到了译码性能。在这些算法中, SOVA运算量是v A运算量的2倍, 而LOG-MAP算法的复杂性又是SOVA的两倍。MAX-LOG-MAP的复杂性则介于上述两者之间。

3 基于MATLAB的Turbo码译码不同译码算法对Turbo码能的影响分析

Turbo码能计算过程中主要有四种运算方法, 其中性能最好的是MAP算法, MAP算法具有最优的译码算法, 图2表示的是MAP的译码算法, 帧长为1024, 通过迭代1~10词的仿真运算过程, 从图中可以看出, 在信噪比影响较小的情况下, MAP算法和LOG-MAP算法的性能差异较小, 但是随着迭代次数的增加, 误码率的曲线坡度明显变大, 比如在10-5数量级上, 在编码增益方面, 迭代10次比迭代4次高0.3d B, 当迭代次数超过6次之后, 迭代次数对于编码增益的影响较小;LOG-MAP译码算法属于简化译码算法, 其译码性能略低于MAP, 图3表示的是LOG-MAP译码算法, 从图中可以看出, 信噪比增加的情况下, 误码率降低, 而且随着迭代次数的增加, 曲线坡度变化较快, 同样的在迭代次数超过6次之后, 迭代次数对于编码增益的影响较小, 在整体译码性能方面, 和MAP之间差异较小;MAX-LOG-MAP算法虽然复杂度较低, 但是译码性能较差, 图4表示的是MAX-LOG-MAP译码算法, 从图中可以看出, 信噪比增加的额情况下, 误码率下降较快, 随着迭代次数的增加, 误码率曲线收敛较快, 在编码性能方面, 不及MAP以及MAX-LOG-MAP算法。

通过对上述不同算法的分析, 由于其复杂性影响到实际的操作性, 所以通常要对其进行优化处理, 对计算过程进行简化, 使得算法更容易实现, 当然简化过程中会损失一定的性能, 也就是说简化后的算法虽然易于实现, 但是在性能方面却不及复发程度高的算法, 综合不同算法的难易程度以及性能, LOG-MAP算法相对于而言属于Turbo码译码过程中最佳的, 该算法损失的性能较少, 同时计算过程也得到了简化[2]。

4 结语

基于MATLAB的Turbo码译码算法较多, 而且不同的算法在实现难易程度以及性能损失方面有一定的差异性, 尽管MAP算法以及LOG-MAP算法相对而言性能是最佳, 但同时也有一定的不足之处, 这些都是在运用过程中需要注意的。

参考文献

[1]叶春燚, 李晓毅, 李子, 等.紫外光通信系统Turbo码译码性能研究[J].现代电子技术, 2009 (11) .

Turbo码译码 篇3

关键词:Turbo码,Log-MAP算法,SW-Log-MAP算法,滑动窗

Turbo码是近年来编码理论上的一个重大突破,在大的交织器和BER近似为10-5条件下,它可以逼近理论最优的Shannon信道编码的极限。由于具有出色的纠错性能,Turbo码在各种通信系统中获得了应用,如移动通信、个人通信、深空通信、卫星通信等,其在第三代移动通信(3G)中的应用尤其令人关注。在3G系统中对译码时延要求不高(相对于语音通信而言)的非实时数据通信中广泛采用Turbo编码。Turbo码的优异性能来源于独特的码结构和迭代译码算法。

Turbo码在3G系统中结构[1]可以参见3GPP的建议3G TS25.222,它由一个内部交织器和两个结构相同的RSC分量编码器并行级联而成。Turbo码是一种带有交织器的并行级联码, 它的组成方框图如图1所示。 RSC的生成多项式可表示为G(D)=[1,g1(D)g0(D)],其中逆向反馈多项式g0(D)=1+D2+D3,前向反馈多项式g1(D)=1+D+D3。

传统的迭代译码分别对两个RSC码进行最优译码,以迭代的方式使两者分享共同的信息,并利用反馈环路来改善译码器的译码性能。Turbo码的迭代译码器的基本结构如图2所示。

Turbo译码中关于两个分量码译码器DEC1和DEC2的算法有多种,其中MAP算法具有最优的性能,但计算太复杂,因此在实际中最常用到的是既能够保证译码性能,计算复杂度又可以接受的Log-MAP算法[2]。与MAP算法相比较,Log-MAP算法[2]把乘法运算转换成对数域的加法运算,可以减少运算复杂度,更利于实际实现。尽管如此,进一步简化Log-MAP算法的运算量和降低Log-MAP对存储空间的要求对算法的具体实现具有重要意义。

传统的Log-MAP算法通过式(1)计算出对数似然比LLR

L(bk)=max(s,s)bk=1*(δk-1(s)+ξk(s,s)+εk(s))-max(s,s)bk=0*(δk-1(s)+ξk(s,s)+εk(s))(1)

其中,δk(s)=lnαk(s),ξk(s′,s)=lnγk(s′,s),εk(s)=lnβk(s),αk(s),βk(s)和γk(s′,s)分别为MAP算法中的前向递推、后向递推和分支转移概率。

max*(x,y)=ln(ex+ey)=max(x,y)+ln(1+exp{-y-x})=max(x,y)+fc(y-x),计算max*(x,y)的传统办法有两种:一是通过查表,计算纠正函数fc(y-x)=ln(1+exp{-y-x}),这种方法固然快捷,但要求大量存储空间,而且过于频繁地进行存取也不可取;二是忽略对数分量,将其简化成max(·),此时译码算法退变为次优算法Max-Log-MAP,但性能将受到影响。

1 改进的SW-Log-MAP算法

本文从以下几个方面对传统的LOG-MAP算法进行改进[3,4,5,6],它在保证译码性能的前提下,大大降低其运算复杂度和存储空间。

① 计算对数似然比LLR需要反复调用前向递归α和后向递归β,因此对αβ进行简化,这样能省掉大量的运算量。

② 计算α,β和LLR均需要分支度量γ,而γ中相同的常数在计算软输出时最终被抵消,利用这一规律对γ进行简化,能有效地减少运算量。

③ 针对译码器DEC2进行简化,省掉了DEC2的系统输入的交织操作,并对其引起的其他影响进行修正。

④ 对指数和对数运算进行简化。Log-MAP算法中的max*(·)分成两部分,其中max(·)很容易实现,因此主要困难在于函数fc(x),它是一个单调递减的非线性函数。可采用数值分析的方法对其进行简化,找到逼近fc(x)的简单计算方法,在运算量和存储空间之间取得最佳结合点。

⑤ 由于前向递归α和后向递归β所需存储空间非常大,如果将滑动窗的方法应用于SISO译码模块,将大大减少存储空间,由此得到SW-LOG-MAP算法。SW-Log-MAP算法的Turbo译码器结构框图如图3所示。

2 具体译码过程

第1步:将接收数据(xk,yk(1),yk(2))分解成(xk,yk(1))和(0,yk(2)),分别作为码字信息送到DEC1和DEC2中。

第2步:设迭代次数j=1,对于DEC1,z1k=0,k=1,2,…,M

第3步:对于DEC1,利用滑动窗方法对每块数据进行处理,比如每块数据长度取256,两块数据之间交迭长度为30。

改进后的前向递归和后向递归分别为:

α′(sk)=max*[α′(sk-1,bs1)+

γ′(sk-1→sk,bs1),

β′(sk)=max*[β′(sk+1,bs1)+

γ′(sksk+1,bs1),

其中,α′(sk-1,bs2)+γ′(sk-1→sk,bs2)],β′(sk+1,bs2)+γ′(sksk+1,bs2)],γ′(sksk+1)=mk·z1k+xk·mk+yk(1)·c1kp,max*(·)中的函数fc(x)采用拟合曲线来表示。

①保留α′(s227)作为下一块数据的α′(sk)的初值。

②根据式(3)计算每一块的外信息lk,并将每块数据中有效的软输出外信息放入总的外信息l1k

lk=ln{S1exp[α(sk)+γe(sksk+1)+β(sk+1)]S0exp[α(sk)+γe(sksk+1)+β(sk+1)]}(3)

直到最后一块数据计算完,一个SISO过程结束;

第4步:根据式(4),由外信息l1k和系统数据xk得到DEC2的先验信息z2k送入DEC2。

z2k=(l′1k)interleaver=(l1k+xk)interleaver (4)

第5步:对于DEC2,首先,根据与DEC1同样的滑动窗算法计算l2k

然后,如果j<最大迭代次数,根据式(5)由前L位外信息l2k得到DEC1的先验信息z1k,送入DEC1中。

z1k=(l′2k)interleaver=(l2k)interleaver (5)

第6步:j=j+1,如果j<最大迭代次数,继续执行第3步进行下一次迭代。

第7步:当j=最大迭代次数,利用式(6)计算总信息Λ2k

Λ2k=l′2k+z2k (6)

第8步:将Λ2k解交织得到对数似然比LLR,与0门限相比较,进行硬判决,得到译码比特b^k的估计值:

L(bk)≥0,则译码比特b^k为1

L(bk)<0,则译码比特b^k为0

第9步:执行完当前帧的译码数据后,转到第1步对下一帧数据进行译码。

3 算法性能分析

下面将通过MATLAB仿真对Turbo码的误码率性能进行研究,仿真中的相关约定如下:

①信道类型:AWGN。

②编码方案:3GPP提出的Turbo码编码方案。

③调制类型:BPSK。

④SW-Log-MAP算法的滑动窗参数:每块数据长度为256,两块数据交迭长度为30。

⑤交织长度为1024,8次迭代。

图4所示的仿真表明:虽然改进的SW-Log-MAP在算法复杂度和存储空间上比传统的Log-MAP性能减少了很多,但是保持着原有Log-MAP算法的优良性能。

参考文献

[1]3GPP TS25.222V3.5.0,3rd Generation Partnership Project;Tech-nical Specification Group Radio access Network;Multiplexing and channel coding(TDD),2000-12[Z].

[2]Robertson P,Hoeher P,Villebrun E.Optimal and sub-optimal maxi-muma posteriori algorithms suitable for turbo decoding[J].European Trans.On Telecommun.Mar.-Apr.1997,8(2):119-125.

[3]Pietrobon S S.Efficient Implementation of Continuous MAP Decoders and a Synchronisation Technique for Turbo Decoders[C].Proc.Int.Symp.Inform.Theory Appl.,Victoria,Canada,Sep,1996:586-589.

[4]Benedetto S,Divsalar D,Montorsi G,et al.Soft-Output Decoding Algorithms for Continuous Decoding of Parallel Concatenated Convolu-tional Codes[C].Proc.ICC’96,Dallas,USA,June,1996:112-117.

[5]Viterbi AJ.An Intuitive Justification and a Simplified Implementation of the MAP Decoderfor Convolutional Codes[J].IEEEJ.Selected Ar-ea in ommun.,1998,16(2):260-264.

Turbo码译码 篇4

随着高性能数字通信系统需求的迅速增长, 要求信息传输的误码率最小。信道编码是消除或减少误码率的有效手段之一, Turbo码是目前最好的信道编码方案, 它可以获得几乎接近shannon理论极限的译码性能[1]。

Turbo译码器的设计, 是通过构建一个Turbo译码器和以太网络通信的SoPC (System-on-a-Programmable-Chip) 系统来实现的, 译码器的输入和输出数据是借助以太网传输的。同时, Turbo译码器是改进型的, 即在传统译码器结构上添加两个权重模块, 这两个模块的引入是为了补偿Turbo编码器中被删除的校验位的, 这样可提高译码的性能[2,3]。首先, 在Xilinx ISE 9.1i中设计Turbo译码器的硬件电路, 并用ModelSim SE 6.1做功能仿真和时序仿真;然后, 利用Xilinx EDK (Embedded Development Kit) 构建一个内嵌MicroBlaze处理器的SoPC系统, 编写以太网络模块的C程序代码, 通过系统的OPB (On-chip Peripheral Bus) 总线将Turbo译码器 (作为一个IP核) 和以太网络模块加入到SoPC系统中, 用软硬件协同设计的方法来开发整个系统;最后, 把整个SoPC系统的硬件比特流和软件程序下载到Spartan 3s1500MB开发板上进行验证, 将译码输出信息通过以太网口传输到PC机上。

1 Turbo译码器的FPGA实现

Turbo译码器结构 (如图1所示) 是对传统译码器结构的改进, 增加了输入存储、权重模块1和权重模块2三个模块。其中, 输入存储就是为了存储实时通信的数据, 而两个权重模块就是分别对两个分量译码器产生的外信息值进行加权。分量译码器采用的译码算法是软输出的维特比算法SOVA (soft-output Viterbi algorithm) 。

Turbo译码器的FPGA (Field Programmable Gate Array) 实现[4]分为五个模块, 分别是:顶层模块、Turbo译码模块、SOVA分量译码模块、权重模块和交织/解交织模块, 采用超高速集成电路硬件描述语言VHDL (Very-High-Speed Integrated Circuit Hardware Description Language) 编写各模块代码, 利用ISE和ModelSim软件进行仿真、综合、布局布线。

1.1 顶层模块

Turbo译码器的顶层模块, 主要实现FPGA板与PC机之间的通信, 获得译码的输入信息, 包括系统信息和校验信息, 并对译码输入信息进行存储和译码, 并输出译码输出信息。顶层模块的总体框架如图2所示。

该模块用ISE的Core Generator产生了三个SRAM, 分别存储系统信息、校验信息1和校验信息2。由于本设计中帧长为1024位, 故空间大小定义为1024×16。这三个SRAM的写入是在该模块完成的, 而读出是由Turbo译码模块控制的, 即由Turbo译码模块提供三个SRAM的读允许信号及读地址信号。

1.2 Turbo译码模块

Turbo译码模块, 主要实现的功能是对接收到的系统信息和校验信息进行Turbo译码, 产生Turbo译码器的译码输出信息。该模块是根据所设计Turbo译码器的结构来编写代码的, 主要调用了SOVA分量译码模块、权重模块和交织/解交织模块。迭代结束后, 直接将SOVA2产生的似然值作为Turbo译码器的译码输出, 而对似然值进行解交织和硬判决的过程是在SOVA分量译码模块完成的。

SOVA分量译码模块, 主要实现的功能是利用SOVA译码算法产生似然值, 并对似然值进行解交织和硬判决, 以及计算外信息值。权重模块实现的是图1中权重模块1和权重模块2的功能。交织/解交织模块实现的是图1中交织器和解交织器的功能, 交织器采用的是分组交织器[5]。

Turbo译码模块的功能仿真结果如图3所示。假设编码器的输入序列为0100110110101110, 产生的校验信息1为0010001000001010, 校验信息2为0101010001010100。从仿真波形中可以看出, 译码器输入的系统信息 (is_sram_di) 为0100110110100110 (经过加噪) , 则译码器的译码输出信息 (sova_datao) 为0100110110101110, 与编码器的输入序列是一致的, 纠正了译码输入中的一个错误, 说明Turbo译码模块能实现纠错功能。

2 SoPC系统的设计

EDK是Xilinx公司特别为FPGA设计的SoPC软硬件开发工具[6], 利用EDK的设计流程, 可以开发内嵌MicroBlaze与Power PC 处理器的Xilinx嵌入式系统。本文利用EDK软件构建了一个内嵌MicroBlaze处理器的SoPC系统[7], 通过系统的OPB总线将Turbo译码器和以太网络模块加入到SoPC系统中, 并把生成的硬件比特流和软件程序下载到Spartan-3S1500开发板上进行验证。Spartan-3 FPGA芯片是一款高性能的系统级逻辑器件, 特别适合于嵌入式系统设计。

2.1 以太网络模块

为了将译码器的输入和输出数据借助以太网传输, 实现动态传输和实时纠错, 需要构建一个以太网络通信模块, 用来实现PC机和FPGA开发板之间的网络通信。

首先, 利用EDK的软核——OPB 10/100 Ethernet MAC, 作为开发板上网络芯片的控制器, 网络芯片是BroadCom公司的单物理层芯片BCM5221;然后, 利用EDK软件提供的LwIP函数库[8], 来编写网络程序。该网络采用http协议, 基于C/S模式, 将FPGA板作为服务器, PC机作为客户机, 用网页来实现浏览, 只要在浏览器中输入开发板的IP地址, 即可访问该板。利用EDK软件提供的LwIP函数库, 用C语言编写以太网络模块的程序代码, 主要有两个:一是用来建立TCP/IP网络连接和设置板的IP地址、子网掩码、网关等的程序;二是利用http协议来进行网页操作的程序。

2.2 SoPC系统

首先, 在EDK软件平台中, 选择主菜单“Hardware”下的“Create or Import Peripheral...”选项, 生成Turbo译码器IP核, 并进行相应修改;然后, 将Turbo译码器IP核加入SoPC网络系统中, 并将整个SoPC下载到Xilinx Spartan-3S1500开发板上进行硬件验证。所构建的整个SoPC的综合结果如图4所示。

这样, 只要在浏览器中输入FPGA开发板的IP地址即可访问“EDK网络传输系统” 网页 (如图5所示) 。Turbo译码器的输入信息 (包括系统信息和校验信息) 和输出信息可在该网页中显示。

本方案得出的误码率与信噪比的关系如图6所示。

3 结 论

本文利用EDK构建了一个能实现动态传输的Turbo译码SoPC系统。编写了各功能模块的VHDL代码, 在ISE和ModelSim中仿真、综合、布局布线;并将Turbo译码器作为一个IP核加入到SoPC系统中, 在Spartan-3S1500开发板上验证, 通过网络通信得到了Turbo译码器的译码输入信息和输出信息。实验结果表明, 所设计的Turbo译码器能实现网络通信和信道纠错。

参考文献

[1]刘东华.Turbo码原理与应用技术[M].北京:电子工业出版社, 2004.

[2]Fujii H, Saba T, Sasase I.Novel decoding algorithm with weighting ofextrinsic information for punctured turbo-codes[C]//4th EuropeanPersonal Mobile Communications Conference, 2001.

[3]蔡剑卿, 陈怀铭, 黄春晖.Turbo译码器在数据协调中的应用与仿真[J].现代电子技术, 2008, 274 (11) :40-42.

[4]Sharma S, Attri S, Chauhan R C.A Simplified and Efficient Implemen-tation of FPGA-Based Turbo Decoder[J].Performance, computing andcommunications conference, 2003, 4:207-213.

[5]高晶, 达新宇, 褚振勇.基于FPGA的改进型分组交织器的设计与实现[J].微计算机信息:嵌入式与SOC, 2008, 24 (6-2) :228-230.

[6]Xilinx Inc.Embedded System Tools Guide v6.3, 2004.

[7]Embedded System Tools Reference Guide[EB/OL].http://www.xil-inx.com/ise/embedded/edk9_1docs/est_rm.pdf.

Turbo码译码 篇5

Turbo码又称并行级联卷积码( Parallel Concatenated Convolutional Codes,PCCC) ,1993年由Berro[1]等人在ICC国际会议上提出。由于其充分利用了Shannon信道编码定理的随机化编码条件,因此获得几乎接近Shannon理论极限的译码性能。Turbo码在低信噪比应用环境下有着如此优异性能,这使得其在卫星通信中有着很大的应用前景[2,3]。新一代卫星导航系统导航信号体制也将Turbo码作为信道编码的方案之一。但是,Turbo码存在着译码复杂度大、译码时延长的问题,这使得实现和应用都受到了一定的局限。本文实现了一种导航信号用的码长为588、码率为1 /2的Turbo码的FPGA编码器和译码器的布局布线、综合优化。实现结果表明,编码器消耗逻辑资源少于1% ,存储器资源少于1% ,最高主频高于200 MHz,在最大译码迭代次数为5时,译码器消耗逻辑资源1% ,存储器资源少于1% ,最高主频高于200 MHz。

1 导航用 Turbo 码结构

Turbo优异的译码性能源自于它独特的编码结构和迭代译码的思想。在Turbo码编码器中,为了得到更好的编码性能,一般采用递归系统卷积码( Recursive System Convolutional Codes,RSC) 作为分量编码器。为了避免重复输出原比特序列,Turbo码的子编码器采用了RSC而不是非系统码( Nonsystem Convolutional Codes,NSC) ,这样对于相同的限制长度,虽然两者具有相同的最小自由距离,但在较小的信噪比时,前者的性能要略好一些。和传统的卷积码相比较,RSC码最大的特点是它存在着反馈。常用的RSC编码器一般由2 ~ 4级移位寄存器构成,如图1所示。

编码器输入信息位294 bit,编码开始后,在294个连续的时钟内输出588 bit,在随后的6个时钟内输出12个卷尾比特,同时编码器归零。编码过程还包括交织器[4]和删余操作[5],向上进行信息编码,向下进行卷尾编码。分量码编码器内包含3个寄存器,即编码器记忆深度为3,状态数为8,整体是一个RSC码编码器,其生成多项式矩阵为:

式中,第1项的1表示信息位,即Turbo码是系统码;第2项分子多项式即对应于前馈多项式,分母对应于反馈多项式。Turbo内交织器的交织深度为294。删余表中0表示该比特删除,1表示该比特输出。删余表的信息比特和卷尾比特的删余规则如表1所示。

交织深度为294,输入分辨率为5 bit,迭代次数为5,采用Max-Log-MAP算法的译码器性能曲线如图2所示。

图2中的曲线表明,在输入信号信噪比为3. 5d B时,Turbo译码器就能将误码率从3. 38×10-2降低到1. 85×10-7。

2 Turbo 编码器 FPGA 实现

编码器的硬件实现结构如图3所示。首先地址产生器获取帧长信息,完成交织地址生成的准备过程,同时信息序列被依次写入双口RAM,在待一帧数据写完后,地址产生器开始生成顺序地址和交织地址,双口RAM按2个地址读取信息序列X和交织后的信息序列X' 进行RSC编码,最后经删除与复接单元输出。

Turbo编码器RTL级原理如图4所示。编码器包含1个控制模块,负责控制整体的时序逻辑; 1个交织ROM,用于存储交织图样; 1个消息RAM,用于缓存输入消息段数据帧; 2个RSC编码器,进行1 /2码率的Turbo编码,对2个RSC输出的码字中校验位进行删余,得到码率1 /2的Turbo码,并进行适当的控制,输出12个卷尾比特,完成编码。

Turbo编码器在Model Sim下的仿真波形如图5所示。图5中,clk为时钟信号,rst为复位信号,din为编码输入数据,ipt _ rqs为编码数据输入帧头,ipt_vld为编码数据输入有效标志,opt_vld编码输出有效标志,code为编码输出。具体细节这里不再给出,经过局部放大,可以验证,编码无误。

编码器消耗寄存器数量为44,RAM资源均为3 234 bit,在Altera EP4SE360F35I4芯片上实现编码器消耗逻辑资源少于1% ,内存资源少于1% ,最高主频高于257. 56 MHz。

3 Turbo 译码器 FPGA 实现

目前,Turbo码译码算法主要分为两大类: 由Viterbi演化而来的软输出维特比算法 ( Soft OutputViterbi Algorithm,SOVA )[6]算法和性 能优异的BCJR算法[7]。SOVA是一种最大似然算法( ML) ,具有最低的译码复杂度,但是性能最差,并且译码性能不够稳 定。BCJR则是最大 后验概率 算法( MAP) 。BCJR算法具有最优的译码性能,但是由于计算中存在着大量的乘法和指数运算,译码复杂度高,不便于硬件实现,通常作为理论分析的参考。这2类算法在研究发展中自身也演变出很多算法,SOVA类的有传统SOVA、滑动窗SOVA和双向SOVA等[6],MAP类的有MAP、Log-MAP和Max-LogMAP[8,9,10]。Log-MAP算法和Max-Log-MAP算法都是由MAP算法简化而来,通过将原来的运算转化到对数域进行,从而将乘法运算变成了加法运算,避免了指数运算,大大降低了译码复杂度。就译码性能而言,Log-MAP算法仅仅次于MAP算法,Max-LogMAP算法略微次于Log-MAP算法。就译码复杂度而言,Max-Log-MAP算法的译码复杂度低于LogMAP算法,更易于硬 件实现,特别是FPGA实现[11,12]。

这里不再详细给出Turbo译码算法的推导过程,仅给出Turbo码译码Max-Log-MAP算法的FPGA实现方案。与编码器相对应的基于FPGA的Turbo译码器结构如图6所示,译码器1和译码器2分别与分量编码器1和分量编码器2相对应,交织器和解交织器与编码器中的交织器交织规则一致。译码器1软判决输出经交织后作为译码器2的先验信息Λ2(dk),与y2k和y1k一起进行译码; 译码器2软判决输出经解交织后又反馈回译码器1作为其先验信息Λ1(dk),参与下一轮迭代,这样构成了一个循环迭代译码结构。

但是考虑到具体FPGA实现时,如果将一个完整的码字存入RAM计算α、β和 γ ,需要的RAM资源将随着码长显著增长,从而在实际实现时考虑滑窗处理。滑窗算 法示意如 图7所示。图7中,dummy Beta表示Beta的训练过程。滑窗算法要求计算dummy Beta是因为将数据分为多个窗口会打破传统译码器后向分支量度计算的连贯性,使得窗口初始值的设定成为困难,如果想减少由于初始化造成的性能降低,则必须对后向分支量度进行训练。这里为了减少后期对数据翻转的操作要求,采用在每个窗口内逆序输入训练所需数据。滑窗算法的每个操作窗口内,顺序输入数据用于Alpha计算的同时,逆序输入数据用于dummy Beta的计算来训练Beta ,与此同时,Beta从dummy Beta的上一个操作窗口获得训练后的初始化值,计算后向分支度量,并计算LLR和Le ,直到最后一个窗口,Beta的初始化值将来自尾比特的初始化过程tb Init。

Turbo译码器RTL级原理如图8所示。Turbo译码器包含1个译码器控制模块,用于译码器总体的时序逻辑控制; 1个软输入软输出译码器( Soft Input Soft Output,SISO) ,用于Max-Log-MAP译码算法的计算和译码判决输出。译码器的量化采用分集量化处理,迭代次数为5,外层信道信息LLR量化为5bit,其中1位表示符号位,2位表示整数位,2位表示小数位; 中层先验信息( 外信息) LLR量化为7 bit,其中1位表示符号位,4位表示整数位,2位表示小数位; 内层状态量度信息量化为10 bit,其中1位表示符号位,6位表示整数位,3位表示小数位。具体的参数确定基于前期的量化仿真结果。滑窗的窗口长度选择为21,故而码长294×2 + 12 = 600的码字,每个分量码在卷尾初始化后的294个数据深度中,可以分为294 /21 = 14个窗口。

Turbo译码器在Model Sim下的仿真波形如图9所示。图中,clk为时钟信号; rst为复位信号; data为译码输入数据; rding为译码输入数据有效标志; opting为译码输出有效标志; infodec译码输出信号。具体细节这里不再给出,经过局部放大,可以验证,译码无误。

该译码器消耗寄存器数量为991,RAM资源均为23 832 bit,在Altera EP4SE360F35I4芯片上实现编码器消耗逻辑资源少于1% ,内存资源少于1% ,最高主频达到217. 89 MHz。

4 结束语

Turbo码译码 篇6

Turbo码具有几乎接近Shannon理论极限的译码性能[1]。但Turbo码存在着译码复杂度大、译码时延长的问题,同时早期基于并行结构的Turbo码在应用中发现存在所谓的错误平层,不适于在高要求场合使用(如密码通信)。一系列改进的Turbo译码方案被提出,如MaxLog-MAP降低了译码器硬件实现复杂度,滑动窗时序减少了译码时延,1996年S.Benedetto等人提出了串行Turbo码解决了错误平层的问题。本文针对密码通信Turbo译码器硬件实现方向进行研究,采用串行级联结构与Max-Log-MAP算法,在硬件译码算法中提出一种新时序,译码延时比滑动窗小,并且消除了其带来的码性能损失。

2 串行Turbo编译码器原理

2.1 串行Turbo码编译码器结构

串行Turbo码由内码外码2个RSC子码级联而成,根据级联与子码选取方式不同,码构造方式很多,图1和图2分别为本文设计中所用的编码译码结构,本文编码器是由2个(7,5)RSC子码串联而成。图1中左边为原始信息输入端称为外码编码器,经过外码编码得到的校验信息与原信息复用交织后送入右边的内码编码器,内码编码调制后直接送入传输信道。对应于其编码结构,图2中的译码器也分为内码译码器(MAP1)与外码译码器(MAP2)。其译码过程为:内码译码器将信道软输入解译后输出软概率信息,解交织解复用后送到外码译码器译码,外码译码器译完1帧计算出外信息送回内码译码器迭代,如此循环,直至迭代结束由外码译码器输出硬判决信息,译码过程结束。

2.2 Max-Log-MAP译码算法

为了方便硬件实现,本设计中采用MAP算法在对数域上近似的Max-Log-MAP算法。该算法将原MAP算法中大量的乘法运算映射到加法,而后又将取对数运算用雅可比公式近似成比较取大运算,在实现中只需完成加法、比较及选择取大运算,十分适合FPGA设计[2,3]。

3 窗口二分时序的译码改进

3.1 经典时序的问题

Turbo译码在计算第k时刻后验概率(LLR)时,需要对应第k时刻的3个状态度量,即前向、后向及分支度量,分支度量可以随时计算,但前向度量须由前向后逐个递推得到,而后向状态度量须由后向前逐个递推得到。这样,要递推完所有k时刻的前后向度量才能开始计算LLR,设计算每个时刻度量需要时间T,则帧长为L情况下递推完前向度量时延LT,计算后向度量与后验概率LLR也需LT的时延。因此,计算一帧数据的总时延为2LT。经典译码时序如图3所示。

为满足现实通信中实时译码的需求,出现了滑动窗技术,其时序如图4(S=L/N),主要思想是将一次迭代分为N段,不用等所有的前向递推结束就可开始输出后验概率,第1段前向递推从1递推到S,第2段开始即从S处开始后向度量递推,同时开始输出S→1的LLR,而与此同时递推第S到2S的前向度量,以此类推。当所有的前向度量递推完毕时,还有S长度(L→L-S段)的后向度量与LLR未计算,即再延迟ST的时间即可完成一次迭代,总时间为(L+S)T=(1+1/N)LT,比经典算法节约了(1-1/N)LT时延,N越大省时越多。

滑动窗使Turbo码的时延大大降低,提高了其工程使用价值,但其后向度量是从中间开始递推的,其初始度量值未知,给递推带来了误差,离窗口后向递推起始点越近损失越大,窗口越多码性能越低。有些改进的滑动窗算法在后向递推时先做长度为S的初始化工作[4],得到窗口处初值后再计算LLR,但这种做法使码性能较经典时序有所损失。为此,在深入研究了其问题根源的基础上,笔者提出了一种比滑动窗更快速且无码性能损失的新时序,其LLR分为两部分并行输出,因此称之为窗口二分法。

3.2 窗口二分法译码改进

经研究发现,递推进行到一半时刻开始,前后度量值开始有了交迭,而此时,已经具备输出LLR的条件了。因此,只要将时序分为前向后向两部分,存储下前LT/2时间的前后向度量值,从递推的一半时刻开始,前向时序输出L/2→L的LLR,后向时序同时输出L/2→0的LLR,只需LT/2的时间即可输出L全部的LLR,加上前面递推的LT/2时间,则一帧译码时间只需要LT,比滑动窗算法的(1+1/N)LT还少。同时,前向递推和后向递推过程都没有中断,没有码性能损失。其时序关系见图5。

对3种时序的性能进行直观对比,结果见表1。可见,“二分法”时序在译码时间上最为节省。

4 Matlab验证与硬件实现

4.1 Matlab性能验证

本文采用以下参数在Matlab中对算法进行验证。仿真参数为:译码算法Max-Log-MAP,帧长256;码率1/4;BPSK调制高斯白噪声信道;行列交织;最大发送数据次数为2.56×108;在SNR=5时,译码后误码率低至3.9×10-8,纠错前的误码率为1.04×10-1。

仿真结果显示,在原始错误比特达26 706 698 bit的情况下,经过本文结构时序译码,只剩下10 bit的错误,误码率极低。

4.2 译码器FPGA实现

对图2的译码器结构进行硬件化设计,其内外译码器采用窗口二分法时序,在Xilinx的Spartan3上综合并通过了布局布线后仿真。图6为实现窗口二分时序的硬件数据流结构,在前LT/2时钟内译码模块只进行α(前)β(后向)度量计算并存入相应的RAM,从LT/2开始llr_α读出β_Ram中的数据计算L/2→L部分LLR,同理,llr_β按相同时序输出L/2→0的LLR,即可并行二分输出LLR。

基于以上结构,采用Verilog语言进行实现并用ISE平台综合,用Modelsim进行时序仿真,其译码性能与前面Matlab验证相当,同时满足了窗口二分法的时序要求,保证了译码器性能,同时提高了译码速度。

参考文献

[1]BERROU C,GLAVIEUX A,THITIMASJSHIMA P.Near Shannon limit error-correcting coding and decoding:Turbo-codes[C]//IEEEInternational Conference on Communication.Geneva,Switzerland:IEEE Press,1993:1064-1070.

[2]刘东华.Turbo码原理与应用技术[M].北京:电子工业出版社,2004.

[3]BENEDETTO S,DICSALAR D,MONTORSI G,et al.A softinput softoutput APP module for iterative decoding of concatenated codes[J].IEEE Communication Letters,1997(1):22-25.

Turbo码译码 篇7

非二进制Turbo码(Non-binary Turbo Code)具有迭代收敛快、对删余不敏感等优点。它和CRSC(Circular Recursive Systematic Convolutional Codes)结尾方法相结合,首先应用在DVB-RCS中,在IEEE 802.16的WirelessMan-OFDM[1]物理层中CTC(Convolutional Turbo Codes)采用了几乎相同的技术。文献[2]对比研究了二进制和非二进制Turbo码级连RS码的性能。

802.16 CTC编码时先将初状态置零,进行预编码后得到结束状态。根据结束状态查表得到编码初状态,根据编码初状态再次编码,则初状态和末状态相同。由于发送端在编码和映射之间为比特交织,为BICM(Bit Inteleaved Coded Modulation)[3],所以接收端应首先进行软解映射输出比特似然比信息,而后反交织,再经过Turbo解码。

非二进制Turbo码的解码有基于符号似然比,而后分离出比特似然比的[2],也可以直接基于比特似然比的SISO译码。由于后者运算量更小,因此,本文的解码基于比特似然比。

1MAP算法 SISO译码[4]

Turbo解码一般采用MAP(Maximal a Posteriori Probaility)算法。对应第k个时刻,SISO译码模块的输入为Pk(c,I)和Pk(u,I),其输出为Pk(c,O)和Pk(u,O),输入、输出之间的关系为:

undefined。 (1)

undefined。 (2)

式中,e为前、后状态之间的转移,4项乘积项分别对应e的4个组成部分的度量:前向、后向状态度量和信息、编码度量。αk(s)和βk(s)服从递推公式:

undefined。 (3)

undefined。 (4)

通过简化并转化为Log域,输出的未编码比特似然比、编码比特似然比分别为:

undefined

undefined

Log域前向、后向状态度量分别为:

undefined

undefined

式中,

MAX log MAP算法取fc(|x-y|)=0。

2BICM软解映射

BICM是信道编码后以比特为单位进行交织而后映射的方法,最先由文献[3]提出。传统串行级连编码下,为分散信道衰落及突发错误,降低它们的影响,常采用符号交织,此为CM(Coded Modulation)。文献[3]中指出,采用Gray 映射,BICM的信道容量接近CM的信道容量。

采用BICM的系统,接收端先由软解映射模块输出关于ck,i,i=1,2,…,2p的似然信息L(ck,i),经过反交织而后解码。

当采用QAM调制方式时,设星座点数为m=22p,因此每个接收符号yk对应2p个比特ck,i,i=1,2,…,2p。设星座点的坐标为An,n=1,2,…,m,则L(ck,i)可以表示为:

undefined。 (10)

式中,b=0,1;χ(i,b);表示An中第i个比特为b的点集。由于未解调之前P(Xk=An)是未知的,因此认为Xk均匀分布于An,n=1,2,…,22p中的各点时,

undefined。 (11)

在高斯白噪声信道下,有

undefined。 (12)

在平衰落信道下,存在衰落系数Hk,由Yk=HkXk+nk得:

undefined。 (13)

此时,式(13)可使用式(9)的max*(·)函数。当认为I、Q信道是相互独立时,以上计算可以简化,I、Q路分别进行,计算每比特LLR所需求取的欧氏距离由22p个降低到2p个。文献[5]中提出了一种在QAM下的近似方法,不需要求取欧氏距离,但在衰落信道中,解映射前要用除法进行信道均衡。文献[6]进一步做了改进,不需要除法进行信道均衡,并用于卷积码的Vitebi解码中,映射到I、Q轴的比特似然比为:

式中,di=2p+1-i。值得注意的是,在使用式(14)和式(15)进行MAP-SISO译码时,需乘以归一化系数2/σ2。

3Non-binary Turbo Code性能仿真

IEEE 802.16中WirelessMan-OFDM物理层规定了3种可选的信道编码方法,分别是级联码、Turbo块码和非二进制卷积Turbo 码。本文对CTC编码性能在高斯和瑞利衰落信道下进行了仿真。取OFDM分配的载波数Nsub=16,设未编码数据有N对比特,遍历标准中所有的调制方式和码率组合,即QPSK下码率为1/2、2/3、3/4,16QAM下为1/2、3/4,64QAM下为2/3、3/4,则对应N分别为96、128、144、192、188、384、432。CTC编码BER在高斯信道下的性能如图1所示,图1中实线为采用式(11)的情况;虚线为采用近似式(14)和式(15)时的情况,最大迭代次数为12,最少为5次。图2为对应为瑞利衰落信道下的情况。

可以看到,非二进制卷积Turbo 码在短的编码长度下仍提供了比常规Turbo码(如并行级联卷积Turbo码)要高的编码增益。在2种信道下,采用近似公式与精确公式相比,误码—信噪比曲线十分接近,近似公式带来的Eb/N0损失很小。如果仿真的次数足够多,结果更为明显。由图2可见,在瑞利衰落信道中,1/2编码速率16QAM性能要比3/4编码速率QPSK性能要好,表明瑞利信道下应选择低的编码码率,才能获得低的误码率。

4结束语

对WirelessMan-OFDM中非二进制Turbo码的解码方法进行了研究,首次采用了一种基于比特似然比的软解映射方法,其在性能相差很小的情况下大大降低了信道均衡和解码复杂度,具有很大的实用价值。

摘要:非二进制Turbo码是无线城域网标准IEEE802.16物理层规范中WirelessMan-OFDM信道编码的可选方案之一。采用基于SISO的Turbo译码方法,基于比特似然比,对WirelessMan-OFDM非二进制Turbo码的性能进行了仿真研究;译码时首次采用了一种简化的软解映射方法,其误码性能与传统方法相差很小,而计算量却大大降低,解映射的同时对信道进行了均衡,因此该方法具有很大的实用价值。

关键词:正交频分复用,非二进制Turbo码,软输入软输出解码,解映射

参考文献

[1]IEEE Std802.16-2004,IEEE Standard of Local and Metropolitan Area Networks Part16:Air Interface for Fixed Broad Band Wireless Access Systems[S].

[2]晓丽,葛建华,王勇.非二进制Turbo级联码的性能分析[J].电子与信息学报,2005,27(10):1593-1596.

[3]CAIRE G,TARICCO G,BIGLIERI E.Bit-Interleaved Coded Modulation[J].IEEE Transactions on Information Theory,1998,44(3):927-946.

[4]BENEDETTOS,MONTORSI G,DIVSALAR D,et al.Soft-input Soft-output Modules for the Construction and Distributed Decoding of Code Networks[J].European Transactions on Telecommunications,1998,9(2):155-172.

[5]TOSATOF,BISAGLIA P.Simplified Soft-output Demapper for Binary Interleaved COFDMwith Application to HIPERLAN/2[C].Italy:ICC,2002:664-668.

【Turbo码译码】推荐阅读:

编码译码08-17

上一篇:全光照喷雾下一篇:磷酸三丁酯

本站热搜

    相关推荐