主权项 |
1.一种用于Turbo码的译码方法,其特征在于:包括Log-Map算法、纠正函数拟合、抑制溢出方法、尾比特处理及滑动窗等步骤;(1)Log-Map算法译码模块一(11)的输入为(yks,y1kp,z1k),译码模块二(31)的输入为(0,y2kp,z2k);使Turbo编码器的递归系统卷积码(RSC)I(02)被看作1/2码率,递归系统卷积码(RSC)II(03)被看作1/1码率,递归系统卷积码(RSC)II(03)的码字只是一个校验位,分支度量变为:<math> <mrow> <msup> <mi>γ</mi> <mo>′</mo> </msup> <mrow> <mo>(</mo> <msub> <mi>s</mi> <mi>k</mi> </msub> <mo>→</mo> <msub> <mi>s</mi> <mrow> <mi>k</mi> <mo>+</mo> <mn>1</mn> </mrow> </msub> <mo>)</mo> </mrow> <mo>=</mo> <mfenced open='{' close=''> <mtable> <mtr> <mtd> <msub> <mi>z</mi> <mrow> <mn>1</mn> <mi>k</mi> </mrow> </msub> <mo>·</mo> <msub> <mi>m</mi> <mi>k</mi> </msub> <mo>+</mo> <msub> <mi>L</mi> <mi>c</mi> </msub> <mo>·</mo> <msubsup> <mi>y</mi> <mrow> <mn>1</mn> <mi>k</mi> </mrow> <mi>s</mi> </msubsup> <mo>·</mo> <msub> <mi>m</mi> <mi>k</mi> </msub> <mo>+</mo> <msub> <mi>L</mi> <mi>c</mi> </msub> <mo>·</mo> <msubsup> <mi>y</mi> <mrow> <mn>2</mn> <mi>k</mi> </mrow> <mi>s</mi> </msubsup> <mo>·</mo> <msubsup> <mi>c</mi> <mrow> <mn>1</mn> <mi>k</mi> </mrow> <mi>p</mi> </msubsup> <mo>,</mo> <mi>DEC</mi> <mn>1</mn> </mtd> </mtr> <mtr> <mtd> <msub> <mi>z</mi> <mrow> <mn>2</mn> <mi>k</mi> </mrow> </msub> <mo>·</mo> <msub> <mi>m</mi> <mi>k</mi> </msub> <mo>+</mo> <msub> <mi>L</mi> <mi>c</mi> </msub> <mo>·</mo> <msubsup> <mi>y</mi> <mrow> <mn>2</mn> <mi>k</mi> </mrow> <mi>p</mi> </msubsup> <mo>·</mo> <msubsup> <mi>c</mi> <mrow> <mn>2</mn> <mi>k</mi> </mrow> <mi>p</mi> </msubsup> <mo>,</mo> <mi>DEC</mi> <mn>2</mn> </mtd> </mtr> </mtable> </mfenced> </mrow> </math> 译码模块二(31)信息数据的交织省去;由于zk和Lc·yks是已知的输入,本算法设置新外信息<math> <mrow> <msubsup> <mi>l</mi> <mi>k</mi> <mo>′</mo> </msubsup> <mo>=</mo> <msub> <mi>L</mi> <mi>c</mi> </msub> <mo>·</mo> <msubsup> <mi>y</mi> <mi>k</mi> <mi>s</mi> </msubsup> <mo>+</mo> <msub> <mi>l</mi> <mi>k</mi> </msub> <mo>,</mo> </mrow> </math>因此Λk=zk+lk′,上述式中外信息可表示为:<math> <mrow> <msup> <mi>l</mi> <mi>k</mi> </msup> <mo>=</mo> <msup> <munder> <mi>max</mi> <msub> <mi>S</mi> <mn>1</mn> </msub> </munder> <mo>*</mo> </msup> <mo>[</mo> <msup> <mi>α</mi> <mo>′</mo> </msup> <mrow> <mo>(</mo> <msub> <mi>s</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>L</mi> <mi>c</mi> </msub> <mo>·</mo> <msubsup> <mi>y</mi> <mi>k</mi> <mi>p</mi> </msubsup> <mo>·</mo> <msubsup> <mi>c</mi> <mi>k</mi> <mi>p</mi> </msubsup> <mo>+</mo> <msup> <mi>β</mi> <mo>′</mo> </msup> <mrow> <mo>(</mo> <msub> <mi>s</mi> <mrow> <mi>k</mi> <mo>+</mo> <mn>1</mn> </mrow> </msub> <mo>)</mo> </mrow> <mo>]</mo> <mo>-</mo> <msup> <munder> <mi>max</mi> <msub> <mi>S</mi> <mn>0</mn> </msub> </munder> <mo>*</mo> </msup> <mo>[</mo> <msup> <mi>α</mi> <mo>′</mo> </msup> <mrow> <mo>(</mo> <msub> <mi>s</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>L</mi> <mi>c</mi> </msub> <mo>·</mo> <msubsup> <mi>y</mi> <mi>k</mi> <mi>p</mi> </msubsup> <mo>·</mo> <msubsup> <mi>c</mi> <mi>k</mi> <mi>p</mi> </msubsup> <mo>+</mo> <msup> <mi>β</mi> <mo>′</mo> </msup> <mrow> <mo>(</mo> <msub> <mi>s</mi> <mrow> <mi>k</mi> <mo>+</mo> <mn>1</mn> </mrow> </msub> <mo>)</mo> </mrow> <mo>]</mo> </mrow> </math> 其中yks包含在译码模块一(11)的外信息中,并作为先验信息的一部分输入译码模块二(31),译码模块一(11)的新外信息l1k′为:<math> <mrow> <msubsup> <mi>l</mi> <mrow> <mn>1</mn> <mi>k</mi> </mrow> <mo>′</mo> </msubsup> <mo>=</mo> <msub> <mi>l</mi> <mrow> <mn>1</mn> <mi>k</mi> </mrow> </msub> <mo>+</mo> <msub> <mi>L</mi> <mi>c</mi> </msub> <mo>·</mo> <msubsup> <mi>y</mi> <mi>k</mi> <mi>s</mi> </msubsup> </mrow> </math> 其中l1k为译码模块一(11)直接输出的外信息;译码模块一(11)的新外信息经交织器(21)后输入到译码模块二(31)作为其先验信息,则译码模块二(31)有:<math> <mrow> <msub> <mi>z</mi> <mrow> <mn>2</mn> <mi>k</mi> </mrow> </msub> <mo>=</mo> <msub> <mrow> <mo>(</mo> <msubsup> <mi>l</mi> <mrow> <mn>1</mn> <mi>k</mi> </mrow> <mo>′</mo> </msubsup> <mo>)</mo> </mrow> <mi>interleaver</mi> </msub> <mo>=</mo> <msub> <mrow> <mo>(</mo> <msub> <mi>z</mi> <mrow> <mn>2</mn> <mi>k</mi> </mrow> </msub> <mo>)</mo> </mrow> <mi>old</mi> </msub> <mo>+</mo> <msub> <mrow> <mo>(</mo> <msub> <mi>L</mi> <mi>c</mi> </msub> <mo>·</mo> <msubsup> <mi>y</mi> <mi>k</mi> <mi>s</mi> </msubsup> <mo>)</mo> </mrow> <mi>interleaver</mi> </msub> </mrow> </math> 若译码模块二(31)输入的系统信息数据变为0,则译码模块二(31)的输出似然比为: Λ2k=z2k+l2k=z2k+l2k′其直接经解交织(22)后输入到译码模块一(11),在迭代完成后对输出对数似然比A2k进行解交织(41),然后硬判决(51),输出:A2k=l2k′+z2k;改进算法中,SISO译码模块一和二(11、31)的新外信息为:<math> <mrow> <msubsup> <mi>l</mi> <mi>k</mi> <mo>′</mo> </msubsup> <mo>=</mo> <msub> <mi>Λ</mi> <mi>k</mi> </msub> <mo>-</mo> <msub> <mi>z</mi> <mi>k</mi> </msub> <mo>=</mo> <msub> <mi>l</mi> <mi>k</mi> </msub> <mo>+</mo> <mfenced open='{' close=''> <mtable> <mtr> <mtd> <msub> <mi>L</mi> <mi>c</mi> </msub> <mo>·</mo> <msubsup> <mi>y</mi> <mi>k</mi> <mi>s</mi> </msubsup> <mo>,</mo> <mi>DEC</mi> <mn>1</mn> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> <mo>,</mo> <mi>DEC</mi> <mn>2</mn> </mtd> </mtr> </mtable> </mfenced> </mrow> </math> (2)纠正函数拟合turbo码译码算法中,包括外信息lk、前向路径度量α′和后向路径度量β′的计算,在计算lk、α′和β′时均需要反复调用函数max*(x,y)=max(x,y)+fc(|y-x|),其中非线性的纠正函数为:fc(x)=ln(1+e-x) x≥0,采用数值分析的方法对纠正函数进行简化求得该函数的最佳拟合函数fc′(x)=-0.25*min(x,2.4544/Lc)来代替它进行译码,经简化求得的非线性纠正函数就由一个最小值运算和右移两位操作完成;(3)抑制溢出方法针对前/后向路径度量α′和β′随着递归的进行可能会产生溢出,采用一种负向在任意k时刻,每一个α′和β′均由它们减去该时刻零状态的α′和β′来代替,即:<math> <mrow> <msup> <mi>α</mi> <mo>′</mo> </msup> <mrow> <mo>(</mo> <msub> <mi>s</mi> <mi>k</mi> </msub> <mo>,</mo> <mi>bs</mi> <mo>)</mo> </mrow> <mo>⇐</mo> <msup> <mi>α</mi> <mo>′</mo> </msup> <mrow> <mo>(</mo> <msub> <mi>s</mi> <mi>k</mi> </msub> <mo>,</mo> <mi>bs</mi> <mo>)</mo> </mrow> <mo>-</mo> <msup> <mi>α</mi> <mo>′</mo> </msup> <mrow> <mo>(</mo> <msub> <mi>s</mi> <mi>k</mi> </msub> <mo>,</mo> <mn>0</mn> <mo>)</mo> </mrow> <mo>,</mo> <msup> <mi>β</mi> <mo>′</mo> </msup> <mrow> <mo>(</mo> <msub> <mi>s</mi> <mi>k</mi> </msub> <mo>,</mo> <mi>bs</mi> <mo>)</mo> </mrow> <mo>⇐</mo> <msup> <mi>β</mi> <mo>′</mo> </msup> <mrow> <mo>(</mo> <msub> <mi>s</mi> <mi>k</mi> </msub> <mo>,</mo> <mi>bs</mi> <mo>)</mo> </mrow> <mo>-</mo> <msup> <mi>β</mi> <mo>′</mo> </msup> <mrow> <mo>(</mo> <msub> <mi>s</mi> <mi>k</mi> </msub> <mo>,</mo> <mn>0</mn> <mo>)</mo> </mrow> </mrow> </math> 其中bs表示每个状态;(4)尾比特处理将SISO译码模块一和二(11、31)的尾部外信息均进行以下处理,对译码模块一(11)的尾部外信息l_tail1和译码模块二(31)的尾部外信息l_tail2赋初值[0;0;0];每次迭代过程中,它们的值将随着译码模块一和二(11、31)的外信息的最后三位而变化,即: l_tail1=l1k(L+1:L+3) l_tail2=l2k(L+1:L+3)每次迭代过程中,译码模块一和二(11、31)的输入先验信息的尾比特分别为: z1k(L+1:L+3)=l_tail1<math> <mrow> <msub> <mi>z</mi> <mrow> <mn>2</mn> <mi>k</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>L</mi> <mo>+</mo> <mn>1</mn> <mo>:</mo> <mi>L</mi> <mo>+</mo> <mn>3</mn> <mo>)</mo> </mrow> <mo>=</mo> <mi>l</mi> <mo>_</mo> <mi>tail</mi> <mn>2</mn> <mo>+</mo> <msubsup> <mi>y</mi> <mi>k</mi> <mi>s</mi> </msubsup> <mrow> <mo>(</mo> <mi>L</mi> <mo>+</mo> <mn>1</mn> <mo>:</mo> <mi>L</mi> <mo>+</mo> <mn>3</mn> <mo>)</mo> </mrow> </mrow> </math> (5)滑动窗方法通过在一些相互交叠30位的256位长的存储跨度内分别执行改进的Log-MAP译码算法,删除重复部分,即可在每隔一段延时就可处理一块数据,并输出一段连续的软输出概率分布放入总的外信息lk,直到最后一块数据计算完,一个SISO译码过程结束。 |