主要内容

LTE Turbo译码器

  • 库:
  • 无线HDL工具箱/错误检测和纠正

  • LTE Turbo解码块

描述

的<年代p一个ncl一个年代年代="block">LTE Turbo译码器模块实现了LTE标准TS 36.212所需的turbo译码器<一个href="//www.tianjin-qmedu.com/help/wireless-hdl/ref/lteturbodecoder.html" class="intrnllnk">[1]并提供针对HDL代码生成和硬件部署优化的接口和体系结构。块迭代两个最大解码器。您可以指定迭代的数量。编码率为1/3。该块接受编码位作为软编码值的3×1向量,[s p1 p2].在这个向量,年代是系统的部分吗P1P2.是两个编码器的奇偶校验位。

此块使用带有相关控制信号总线的流样本接口。该接口使块能够独立于帧大小进行操作,并易于与其他无线HDL工具箱™块连接。该块接受并返回一个代表单个样本的值和一个包含三个控制信号的总线。这些信号表明每个样本的有效性和帧的边界。要将矩阵转换为样本流和这些控制信号,请使用<一个href="//www.tianjin-qmedu.com/help/wireless-hdl/ref/frametosamples.html">帧样本块或块<一个href="//www.tianjin-qmedu.com/help/wireless-hdl/ref/whdlframestosamples.html">Whdlflamestosamples.函数。有关接口的完整描述,请参见<一个href="//www.tianjin-qmedu.com/help/wireless-hdl/ug/streaming-sample-interface.html" class="a">流示例接口

块只有在完成前一帧的解码后才能接受下一帧。你必须离开迭代* 2 *半曲线+BlockSize输入帧之间+4个空闲周期。中描述了半迭代延迟<一个href="//www.tianjin-qmedu.com/help/wireless-hdl/ref/lteturbodecoder.html" class="intrnllnk">算法部分。或者,您可以使用输出信号<年代trong class="guilabel">ctrl结束以确定块何时可以接受新输入。

这个波形显示了120个样本(+ 4个尾位)的输入帧,帧之间有2632个空闲周期。每个输入样本都是由三个定点软判决值组成的向量。输入输出<年代trong class="guilabel">ctrl总线扩展以显示控制信号。开始结束显示框架边界,并且有效的限定数据样本。

港口

输入

全部展开

输入样本,指定为三元整数矢量。值表示软编码概率。如果值为否定,则该位更容易为0.如果值为正,则该比特更可能是1.第一元素是顺序位,另一个元素是奇偶校验位。该块期望输入帧BlockSize+ 12个样本。该帧大小包括尾位,按LTE标准TS 36.212指定的顺序<一个href="//www.tianjin-qmedu.com/help/wireless-hdl/ref/lteturbodecoder.html" class="intrnllnk">[1]

对于硬件实现,使用两个或三个整数位和一个到四个小数位的定点类型。内部数据类型派生自该数据类型,较低精度的类型可能导致解码精度的损失。如果输入数据类型的小数位为零或小于两个整数位,则块返回一个警告。支持模拟万博1manbetx,但不支持HDL代码生成。

数据类型:fixdt(1、WL FL)||

采样流附带的控制信号,指定为samplecontrol公共汽车。公共汽车包括开始结束,有效的控制信号,表明帧的边界和样本的有效性。

  • 开始—输入帧的开始位置

  • 结束- 表示输入框的末尾

  • 有效的—表示输入的数据<年代trong class="guilabel">数据港口是有效的

有关更多细节,请参见<一个href="//www.tianjin-qmedu.com/help/wireless-hdl/ug/samplecontrol-bus.html" class="a">样品控制总线

数据类型:公共汽车

Turbo码块大小,指定为整数。该值必须是LTE标准中指定的188个值之一,从这些间隔为40到6144:[40:8:512 528:16:1024 1056:32:2048 2112:64:6144]

依赖关系

设置时出现此端口<年代trong class="guilabel">块大小的源输入端口

数据类型:||uint16|Fixdt(0,13,0)

算法

全部展开

该块使用一个解码器和一个交织器实现一个迭代解码算法。

这个图显示了一次迭代的概念算法。虽然图中显示了两个解码器和三个交织器,但该块实际上只使用一个解码器和一个交织器来实现算法。解码器执行一次半迭代并将结果交叉。然后将输出路由回下一个半迭代的输入。交错器根据块大小计算交错索引。交织器的具体实现请参见<一个href="//www.tianjin-qmedu.com/help/wireless-hdl/ref/lteturboencoder.html">LTE涡轮编码器

奇半迭代计算非交错比特(P1, S和P2译码的反交错结果)的似然比。偶数半迭代从交错位(P2和P1和S译码的交错结果)计算似然比。

解码器块使用BCJR算法来找到特定位的似然比<一个href="//www.tianjin-qmedu.com/help/wireless-hdl/ref/lteturbodecoder.html" class="intrnllnk">[2]

l u k 日志 P u k + 1 | y P u k + 1 | y 日志 年代 + p 年代 k 1 年代 年代 k 年代 y / p y 年代 p 年代 k 1 年代 年代 k 年代 y / p y

概率也可以用当前和未来的状态表示:

p 年代 年代 y α k 1 年代 γ. k 年代 年代 β k 年代 α k 1 年代 P 年代 y < k γ. k 年代 年代 P y k 年代 | 年代 β k 年代 P y < k | 年代

其中α概率表示前一状态,β概率表示当前状态,ɣ概率表示下一状态。该算法根据输入值计算ɣ。α和β概率是用格架的可能状态的正向和向后递归计算的,也依赖于ɣ。所有的计算都在日志域。

α k α k 1 年代 γ. k 年代 年代 β k 1 年代 β k 年代 γ. k 年代 年代

α和β的初始条件是:

α 0 年代 1 年代 0 0 年代 0 β 0 年代 1 年代 0 0 年代 0

这张图显示了半迭代译码器和交织器的结构。初始可能性设为零。

在正常的BCJR架构中,算法不能计算β,直到整个帧都在内存中。它必须执行一个全帧前向跟踪,然后是一个全帧后向跟踪,这意味着一个半迭代的延迟是两个帧长度。所需内存为BlockSizenumstates.DataWidth.在这种情况下,numstates.是8个,来自LTE标准TS 36.212<一个href="//www.tianjin-qmedu.com/help/wireless-hdl/ref/lteturbodecoder.html" class="intrnllnk">[1]

然而,这个解码器的实现使用滑动窗口来减少所需的内存和算法的延迟<一个href="//www.tianjin-qmedu.com/help/wireless-hdl/ref/lteturbodecoder.html" class="intrnllnk">[3].窗口大小为32个样本,是网格约束长度7的5倍。一个半迭代的延迟为:

c e l B l o c k 年代 z e W n 年代 z e + 2 × W n 年代 z e + P p e D e l 一个 y

滑动窗口所需内存为2*32*numstates.DataWidth.该图显示了β计算迹线的痕迹和解码一个窗口的时间,在A和B计算块之间交替输入。

参考

[1] 3gpp ts 36.212。"多路复用和信道编码"第三代合作伙伴计划;技术规范集团无线电接入网络;进化通用地面无线电接入(E-UTRA).URL:<一个href="https://www.3gpp.org" target="_blank">https://www.3gpp.org.

[2] Bahl, L. R., J. Cocke, F. Jelinek, J. Raviv。“最小化符号错误率的线性码的最优译码”。IEEE信息理论汇刊.第1T-20卷,1974年3月,284-287页。

[3] Viterbi,Andrew J。“”卷积码的地图解码器的直观理由和简化实施。IEEE通信选定领域期刊.卷。16,1998年2月2日。

扩展功能

另请参阅

功能

  • (LTE工具箱)|<年代p一个n我temscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">(LTE工具箱)
介绍了R2017b