发明名称 一种低复杂度近性能限的Turbo译码器的实现方法
摘要 本发明公开了一种低复杂度近性能限的Turbo译码器的实现方法,主要解决传统的基于查找表的Turbo译码器复杂度高,基于Max-Log-MAP算法的译码器性能差的问题。该方法包括:对输入软信息流进行解复用并存储在RAM中;SISO(软输入软输出)译码器根据译码器状态指示信号从RAM中选择数据;SISO译码器迭代计算后向度量、前向度量和对数似然比,采用基于线性近似的Log-MAP算法;前后半轮迭代复用同一个SISO译码器;逆序访问交织地址单元,对外信息进行交织和解交织。本发明通过对Log-MAP算法进行线性近似,比传统的近似方案获得了更好的纠错性能,比基于查找表的方案大大降低了复杂度,可用于LTE系统。
申请公布号 CN105634508A 申请公布日期 2016.06.01
申请号 CN201510969407.X 申请日期 2015.12.21
申请人 西安空间无线电技术研究所 发明人 李雄飞;孙垂强;张鹏;张璐;马楠
分类号 H03M13/29(2006.01)I 主分类号 H03M13/29(2006.01)I
代理机构 中国航天科技专利中心 11009 代理人 杨春颖
主权项 一种低复杂度近性能限的Turbo译码器的实现系统,其特征在于包括:解复用模块、第一存储器、第二存储器、第三存储器、SISO译码器、加法器、交织器、解交织器、硬判决器;解复用模块对输入译码器的量化软信息,量化位宽为L,进行解复用,输入译码器的量化软信息包括串行的比特软信息流、第一校验比特软信息流和第二校验比特软信息流,解复用分流后得到并行的比特软信息流、第一校验比特软信息流和第二校验比特软信息流,分别存储在第一存储器、第二存储器、第三存储器中;将SISO译码器的先验信息初始化为零,然后SISO译码器从第一存储器、第二存储器中读取比特软信息和第一校验比特软信息;在读取比特软信息和第一校验比特软信息的同时,SISO译码器根据读取的比特软信息<img file="FDA0000885413210000011.GIF" wi="54" he="69" />和第一校验比特软信息<img file="FDA0000885413210000012.GIF" wi="78" he="70" />确定转移度量<img file="FDA0000885413210000013.GIF" wi="174" he="79" />的状态值,公式如下:设定<img file="FDA0000885413210000014.GIF" wi="175" he="78" />为转移度量,若在Trellis图上存在一条从s到s′的路径,则<img file="FDA0000885413210000015.GIF" wi="173" he="79" />按如下公式计算:<maths num="0001"><math><![CDATA[<mrow><msub><mover><mi>&gamma;</mi><mo>~</mo></mover><mi>k</mi></msub><mrow><mo>(</mo><mi>s</mi><mo>,</mo><msup><mi>s</mi><mo>&prime;</mo></msup><mo>)</mo></mrow><mo>=</mo><msub><mi>u</mi><mi>k</mi></msub><mi>L</mi><mrow><mo>(</mo><msub><mi>u</mi><mi>k</mi></msub><mo>)</mo></mrow><mo>+</mo><msubsup><mi>c</mi><mi>k</mi><mi>s</mi></msubsup><mi>L</mi><mrow><mo>(</mo><msubsup><mi>y</mi><mi>k</mi><mi>s</mi></msubsup><mo>)</mo></mrow><mo>+</mo><msubsup><mi>c</mi><mi>k</mi><mi>p</mi></msubsup><mi>L</mi><mrow><mo>(</mo><msubsup><mi>y</mi><mi>k</mi><mi>p</mi></msubsup><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000885413210000016.GIF" wi="813" he="94" /></maths>式中,u<sub>k</sub>为输入的量化软信息预先编码后的比特,L(u<sub>k</sub>)为u<sub>k</sub>的先验信息,<img file="FDA0000885413210000017.GIF" wi="135" he="95" />和<img file="FDA0000885413210000018.GIF" wi="141" he="95" />为比特软信息<img file="FDA0000885413210000019.GIF" wi="53" he="69" />的先验信息和第一校验比特软信息<img file="FDA00008854132100000110.GIF" wi="54" he="69" />的先验信息;若Trellis图上不存在从s到s′的路径,则<img file="FDA00008854132100000111.GIF" wi="277" he="79" />根据<img file="FDA00008854132100000112.GIF" wi="206" he="79" />进行后向度量的迭代,迭代的初始条件为<img file="FDA00008854132100000113.GIF" wi="478" he="158" />迭代的公式如下:<maths num="0002"><math><![CDATA[<mrow><msub><mover><mi>&beta;</mi><mo>~</mo></mover><mi>k</mi></msub><mrow><mo>(</mo><mi>s</mi><mo>)</mo></mrow><mo>=</mo><munder><mrow><mi>m</mi><mi>a</mi><mi>x</mi></mrow><msup><mi>s</mi><mo>&prime;</mo></msup></munder><mo>*</mo><mrow><mo>(</mo><msub><mover><mi>&beta;</mi><mo>~</mo></mover><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>(</mo><msup><mi>s</mi><mo>&prime;</mo></msup><mo>)</mo><mo>+</mo><msub><mover><mi>&gamma;</mi><mo>~</mo></mover><mi>k</mi></msub><mo>(</mo><mrow><mi>s</mi><mo>,</mo><msup><mi>s</mi><mo>&prime;</mo></msup></mrow><mo>)</mo><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000885413210000021.GIF" wi="913" he="119" /></maths>式中<img file="FDA0000885413210000022.GIF" wi="132" he="85" />表示当前时刻的后向度量,<img file="FDA0000885413210000023.GIF" wi="166" he="86" />表示当前时刻的下一时刻的后向度量,<img file="FDA0000885413210000024.GIF" wi="174" he="79" />表示转移度量,s表示当前时刻SISO译码器状态,s′表示当前时刻的下一时刻SISO译码器状态;将迭代的初始条件<img file="FDA0000885413210000025.GIF" wi="480" he="157" />代入迭代公式右边的<img file="FDA0000885413210000026.GIF" wi="223" he="78" />即通过对Trellis图上的路径求和计算,得到二元Jacobi对数函数:max*(x,y)=ln(e<sup>x</sup>+e<sup>y</sup>)=max(x,y)+log(1+e<sup>‑|x‑y|</sup>)做如下线性近似:当|x‑y|&gt;2.5时,max*(x,y)=max(x,y);当|x‑y|&lt;2.5时,max*(x,y)=max(x,y)‑0.25×(|x‑y|‑2.5);用<img file="FDA0000885413210000027.GIF" wi="167" he="79" />和<img file="FDA0000885413210000028.GIF" wi="171" he="79" />代替max*(x,y)中的未知量x和y进行线性近似计算,计算后的max*(x,y)即为后向度量<img file="FDA0000885413210000029.GIF" wi="156" he="87" />在读取比特软信息和第一校验比特软信息的同时,SISO译码器根据读取的比特软信息和第一校验比特软信息,进行前向度量的迭代,初始条件为<maths num="0003"><math><![CDATA[<mrow><msub><mover><mi>&alpha;</mi><mo>~</mo></mover><mn>0</mn></msub><mrow><mo>(</mo><mi>s</mi><mo>)</mo></mrow><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><mn>0</mn><mo>,</mo></mrow></mtd><mtd><mrow><mi>s</mi><mo>=</mo><mn>0</mn></mrow></mtd></mtr><mtr><mtd><mrow><mo>-</mo><mi>&infin;</mi><mo>,</mo></mrow></mtd><mtd><mrow><mi>s</mi><mo>&NotEqual;</mo><mn>0</mn></mrow></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FDA00008854132100000210.GIF" wi="461" he="151" /></maths>迭代的公式如下:<maths num="0004"><math><![CDATA[<mrow><msub><mover><mi>&alpha;</mi><mo>~</mo></mover><mi>k</mi></msub><mrow><mo>(</mo><mi>s</mi><mo>)</mo></mrow><mo>=</mo><munder><mrow><mi>m</mi><mi>a</mi><mi>x</mi></mrow><msup><mi>s</mi><mo>&prime;</mo></msup></munder><mo>*</mo><mrow><mo>(</mo><msub><mover><mi>&alpha;</mi><mo>~</mo></mover><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>(</mo><msup><mi>s</mi><mo>&prime;</mo></msup><mo>)</mo><mo>+</mo><msub><mover><mi>&gamma;</mi><mo>~</mo></mover><mi>k</mi></msub><mo>(</mo><mrow><msup><mi>s</mi><mo>&prime;</mo></msup><mo>,</mo><mi>s</mi></mrow><mo>)</mo><mo>)</mo></mrow><mo>;</mo></mrow>]]></math><img file="FDA00008854132100000211.GIF" wi="726" he="102" /></maths>式中,<img file="FDA00008854132100000212.GIF" wi="132" he="79" />为当前时刻的前向度量,<img file="FDA00008854132100000213.GIF" wi="166" he="79" />为当前时刻前一时刻的前向度量;根据当前时刻后向度量<img file="FDA00008854132100000214.GIF" wi="126" he="86" />和当前时刻前一时刻的前向度量<img file="FDA00008854132100000215.GIF" wi="197" he="79" />计算对数似然比,对数似然比计算与前向度量计算同时进行,对数似然比计算公式如下<maths num="0005"><math><![CDATA[<mrow><mi>L</mi><mrow><mo>(</mo><msub><mover><mi>u</mi><mo>^</mo></mover><mi>k</mi></msub><mo>)</mo></mrow><mo>=</mo><munder><mrow><mi>m</mi><mi>a</mi><mi>x</mi></mrow><mrow><mo>(</mo><msup><mi>s</mi><mo>&prime;</mo></msup><mo>,</mo><mi>s</mi><mo>)</mo><mo>,</mo><msub><mi>u</mi><mi>k</mi></msub><mo>=</mo><mn>1</mn></mrow></munder><mo>*</mo><mrow><mo>(</mo><msub><mover><mi>&alpha;</mi><mo>~</mo></mover><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>(</mo><msup><mi>s</mi><mo>&prime;</mo></msup><mo>)</mo><mo>+</mo><msub><mover><mi>&gamma;</mi><mo>~</mo></mover><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>(</mo><mrow><msup><mi>s</mi><mo>&prime;</mo></msup><mo>,</mo><mi>s</mi></mrow><mo>)</mo><mo>+</mo><msub><mover><mi>&beta;</mi><mo>~</mo></mover><mi>k</mi></msub><mo>(</mo><mi>s</mi><mo>)</mo><mo>)</mo></mrow><mo>-</mo><munder><mrow><mi>m</mi><mi>a</mi><mi>x</mi></mrow><mrow><mo>(</mo><msup><mi>s</mi><mo>&prime;</mo></msup><mo>,</mo><mi>s</mi><mo>)</mo><mo>,</mo><msub><mi>u</mi><mi>k</mi></msub><mo>=</mo><mn>0</mn></mrow></munder><mo>*</mo><mrow><mo>(</mo><msub><mover><mi>&alpha;</mi><mo>~</mo></mover><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>(</mo><msup><mi>s</mi><mo>&prime;</mo></msup><mo>)</mo><mo>+</mo><msub><mover><mi>&gamma;</mi><mo>~</mo></mover><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>(</mo><mrow><msup><mi>s</mi><mo>&prime;</mo></msup><mo>,</mo><mi>s</mi></mrow><mo>)</mo><mo>+</mo><msub><mover><mi>&beta;</mi><mo>~</mo></mover><mi>k</mi></msub><mo>(</mo><mi>s</mi><mo>)</mo><mo>)</mo></mrow></mrow>]]></math><img file="FDA00008854132100000216.GIF" wi="1692" he="111" /></maths>式中,<img file="FDA00008854132100000217.GIF" wi="134" he="79" />表示对数似然比;SISO译码器的先验信息,即输出的对数似然比信息初值,减去SISO译码器输出的对数似然比,得到比特软信息,即得到交织器和解交织器的输入,分别送至交织器和解交织器,进行交织或者解交织后,作为SISO译码器的新的先验信息反馈给SISO译码器,替换原来的SISO译码器的先验信息,进行新一轮的迭代运算,直至达到设定的最大迭代次数时,输出解交织后的比特软信息到硬判决器,硬判决器对该比特软信息进行硬判决,得到最终的判决结果。
地址 710100 陕西省西安市长安区西街150号