一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于MAP算法的卷积Turbo码译码器的制作方法

2021-11-16 01:21:00 来源:中国专利 TAG:

一种基于map算法的卷积turbo码译码器
技术领域
1.本实用新型涉及通信领域硬件实现技术领域,更具体地说,涉及一种基于map算法的卷积turbo码译码器。


背景技术:

2.turbo码又称并行级联卷积码(parallel concatenated convolutional code,pccc),它在实现随机编码思想的同时,通过交织器实现了由短码构造长码的方法,并采用软输出迭代译码来逼近最大似然译码。turbo码充分利用了shannon信道编码定理的基本条件,因此得到了接近shannon极限的性能。
3.在802.16e协议中,引入了一种卷积turbo码(convolutional turbo code,ctc)作为一种可选的信道编码。ctc是一种并行双二进制输入的turbo码,它不需要结尾比特使编码器状态归零,而只是保证编码器的首尾状态相同。与传统的turbo码相比,ctc具有迭代收敛性强、码字最小距离特性被改善、码率提高的特点。
4.最大后验概率(maximum a posterori,map)算法是一种用来估计无记忆噪声下的马尔可夫过程的最优算法。1993年turbo码被提出后,map算法得到了广泛的应用。map算法不仅可以译出序列的比特值,同时还能输出关于每比特译出的可靠性信息,非常符合turbo码的迭代译码特性。
5.map算法的运算中包含大量的乘法和加法,还有数字电路中较难实现的指数和对数运算,不适合应用。koch和baier及erfanian等人提出的max

log

map算法,在计算中进行了一定的近似,省去了指数和对数运算,大大地简化了map算法的复杂性。在turbo硬件译码器中被广泛的使用。
6.同时,专用集成电路(application

specific integrated circuit,asic)是为特定用户和电子系统的需求而设计和制造的集成电路,与通用的架构相比具有高性能、低成本、硬件开销小的优势。如何在保证算法性能与硬件可靠性的条件下,降低硬件功耗,减小开销,且能具有较好的算法适应性成为了asic领域的重要研究方向之一。
7.现有的卷积turbo译码硬件实现在实际中存在着以下几个问题:
8.1、现有的卷积turbo译码器的主频通常不高,导致吞吐率有限,且不便在高主频soc中集成;
9.2、现有的卷积turbo译码器的交织方法较为固定,无法兼容不同的交织标准;
10.3、现有的turbo译码器多采用滑窗结构,对卷积turbo码的衔尾比特特性支持不好。


技术实现要素:

11.1.要解决的技术问题
12.针对现有技术中存在的ctc译码器不便在高频集成、无法兼容不同的交织标准、对卷积turbo码的衔尾比特特性支持不好等问题,本实用新型提供一种基于map算法的卷积
turbo码译码器,综合考虑硬件实现的精度、面积功耗和迭代周期方面,设计高主频、可变交织的高性能ctc译码器,提出硬件友好的ctc译码方案并进行对应的硬件实现,提高通信系统的性能。
13.2.技术方案
14.本实用新型的目的通过以下技术方案实现。
15.本实用新型提出一种基于map算法的卷积turbo码译码器,有效降低译码的复杂度,提升硬件实现的主频和吞吐率,进而提高整个系统的性能。
16.一种基于map算法的卷积turbo码译码器,包括数据预处理模块、子译码器模块和硬判决模块,数据与处理模块与子译码器模块连接,子译码器模块还连接硬判决模块,数据预处理模块用于对输入编码数据进行切分和预交织,子译码器模块对数据预处理模块发送的数据进行训练、推理和数据交织,硬判决模块对子译码器模块多次迭代计算后数据进行硬判决;
17.所述译码器还包括核心控制模块和存储器,核心控制模块与数据预处理模块、子译码器模块和硬判决模块均连接,用于进行计算任务的调度和数据流的衔接;存储器与数据预处理模块、子译码器模块和硬判决模块均连接,用于存储译码器中各模块数据。
18.本实用新型在数据预处理模块输入交织图像用于译码内交织的控制,可以支持到802.16e协议之外非标准的交织器类型。
19.优选的,子译码器模块包括若干译码器计算单元,每个译码器计算单元均包括训练单元、推理单元和数据交织单元,训练单元的输出端连接推理单元的输入端,推理单元的输出端通过数据交织单元与训练单元的输入端连接,推理单元的输出端同时也是子译码器的输出端;训练单元用于计算分支度量值,推理单元用于计算外信息,数据交织单元用于将计算出的外信息再次送入子译码器模块迭代计算。
20.优选的,编码数据在数据预处理模块分成的数据子块通道数不大于子译码器模块的译码器计算单元数量。本实用新型实现卷积turbo码的分块并行译码,分割的数据子块数不大于子译码器模块的译码器计算单元数量,各译码器计算单元并行处理,提高译码器性能。本实用新型可根据不同的子块长度n调用不同的并行度,为了保证译码效果,子块长度n不得小于24。
21.优选的,每个译码器计算单元包括四个加法器,两个比较器和两个选择器;
22.第一加法器的输出端、第二加法器的输出端和第一选择器的输出端均连接第四加法器,第四加法器的输入信号还包括编码数据的校验位对数似然比,第一加法器的输入信号为编码数据系统位对数似然比,第二加法器的输入信号为编码数据先验信息的对数似然比,第一选择器的输入信号第三加法器的输出信号以及迭代度量值,第三加法器的输入信号为分支度量信号;
23.第四加法器的输出端连接第二选择器的输入端,第二选择器的输出端连接第一比较器和第二比较器,第二比较器的输出信号归一化操作后反馈至第一选择器的迭代度量值输入。
24.优选的,选择器包括训练模式和推理模式,在训练单元计算时选择器处于训练模式,在推理单元计算时选择器处于推理模式。
25.优选的,子编码器模块训练单元输出的分支度量包括前向分支度量和后向分支度
量,前向分支度量和后向分支度量在同一硬件流水线上并行计算。前向分支度量和后向分支度量共享第一级与第三级流水,数据以交织的方式送入训练单元,填充了流水线迭代计算的空闲时间。
26.本实用新型基于map的卷积turbo译码器硬件实现结构简单,易于实现,支持非标准卷积turbo码的硬件译码,可配置型强,在芯片面积减小的基础上保证译码器译码性能,使用数据交织单元提高译码器的并行度,提升译码器的吞吐率,适于广泛应用。
27.一种基于map算法的卷积turbo码译码方法,使用所述的一种基于map算法的卷积turbo码译码器,包括以下步骤:
28.步骤1:在数据预处理模块通过外部配置对译码器配置交织图样,设置译码器的迭代信息,将输入的编码信息拆分为若干通道数据子块并进行预交织处理;
29.步骤2:子译码器模块根据输入的编码信息训练分支度量值,推理外信息及进行数据交织,通道间边界信息在相邻的译码器计算单元之间双向交换;
30.步骤3:重复步骤2进行数据迭代计算,当子译码器模块中数据的迭代次数等于设定值时,子译码器模块将软比特输出发送至硬判决模块,完成判决。
31.经过信道的输入卷积turbo编码信息拆分为若干通道数据子块送入单一软输入软输出译码器中进行译码,软输入软输出译码器可以保留每个码字的对数似然比信息,进行迭代译码时可以提高性能。
32.子译码器模块中的通道间边界信息在相邻的译码器计算单元之间双向交换,交换方法为前一个通道的最后一个前向分支度量alpha赋值给后一个通道的第一个前向分支度量alpha,后一个通道的第一个后向分支度量beta赋值给前一个通道的最后一个后向分支度量beta。
33.alpha
i 1,start
=alpha
i,end
34.beta
i

1,start
=beta
i,end
35.其中,i表示子译码器模块中的第i个通道,start表示该通道第一个分支度量,end表示该通道最后一个分支度量。
36.子译码器模块训练单元根据输入编码信息的系统位、校验位和软比特输出训练分支度量值,所述分支度量值包括前向分支度量和后向分支度量;
37.子译码器推理单元根据输入编码信息的系统位、校验位、软比特输出和分支度量值推理得到外信息。
38.子译码器模块训练单元输出的分支度量值进行归一化处理,子译码器模块推理单元输出的外信息使用自适应系数调整。子译码器的训练单元使用定值归一化方法进行归一化处理,当一组分支度量中有某个值大于归一化边界b时,这组分支度量会执行归一化,所有的度量将减去b,抑制译码器中分支度量的增长。
39.子译码器模块推理单元使用移位和查找表方法计算外信息。本实用新型在推理单元使用移位和查找表方法替代定点数乘法,得到更高的时钟频率和更小的面积,避免硬件设计中因为乘法器设置产生较大的面积开销,以及降低对时序有影响。
40.本实用新型公开的译码方法基于所述硬件结构,结合该硬件结构实现基于map的卷积turbo码译码,在译码过程中采用自适应并行度,在有限存储的情况下平衡窗口大小与分块的长度,确保通信硬件系统中的性能和精度要求。同时在计算单元中使用交替式流水
线迭代方法,极大降低计算资源开销与译码延时,高可配置性符合通信系统中的传输要求,性能好且适配性高。
41.3.有益效果
42.相比于现有技术,本实用新型的优点在于:
43.本实用新型公开一种基于map的卷积turbo码译码器硬件实现,硬件设计可配置性强,支持非标准卷积turbo码的硬件译码。对比目前存在的卷积turbo码译码器方案,具有面积优势和时序优势,同时可以达到精确度要求,进而提高整个系统的性能。
44.基于本实用新型公开译码器的译码方法有效地提高芯片主频、提高译码器吞吐率、降低硬件开销和译码复杂度。本实用新型在硬件结构中使用移位和查找表单元替代乘法器和求模,将计算分割为流水线,优化电路的时序,提高芯片主频。
45.本实用新型在子译码器计算时先通过数据预处理模块进行分块和预交织,将分块后的数据并行输入子译码器模块计算,提高译码的并行度,进而提升译码器的吞吐率。同时在硬件上使用外部配置的可变交织器,通过外部配置的交织图样,实现内部交织的可变性以及硬件实现的轻量化。
附图说明
46.图1是本实用新型基于map的卷积turbo码译码器硬件模块示意图;
47.图2是本实用新型基于map的卷积turbo码译码器译码方法流程图;
48.图3是本实用新型子译码器模块运算流水线硬件结构示意图;
49.图4是本实用新型子译码器模块的结构示意图。
具体实施方式
50.下面结合说明书附图和具体的实施例,对本实用新型作详细描述。
51.实施例1
52.本实例公开一种基于map算法的卷积turbo码译码器的硬件实现,如图1所示,所述译码器包括数据预处理模块、子译码器模块和硬判决模块,数据预处理模块对输入数据进行预处理,将预处理后数据发送至子译码器模块,子译码器模块对数据预处理模块发送的数据进行训练、推理和数据交织,多次迭代后将数据发送至硬判决模块进行硬判决,作为译码的结构输出,所述译码器还包括核心控制模块和存储器,核心控制模块与数据预处理模块、子译码器模块和硬判决模块均连接,进行计算任务的调度和数据流的衔接,存储器也与数据预处理模块、子译码器模块和硬判决模块均连接,用于对译码器中各模块数据进行存储。
53.如图1所示,数据预处理模块用于处理外部输入的交织图样并根据交织图样对输入码字进行预交织,在预交织过程中对码块进行切分,将子码块放置在各通道源数据区。所述数据预处理模块包括若干存储单元,所述存储单元连接输入外部输入的交织图样、迭代信息和经过卷积turbo编码的llr序列。数据预处理模块在数据处理时将数据从动态存储器dram搬运至静态存储器sram,虽然dram具有比sram更大的存储空间,但是sram的存储和读取数据的速度更快,因此本实施例存储器使用sram,加快译码器的运算速度。
54.子译码器模块包括若干译码器计算单元,每个译码器计算单元均包括训练单元、
推理单元和数据交织单元,如图4所示译码器计算单元结构示意图,训练单元的输出端连接推理单元的输入端,推理单元的输出端通过数据交织单元与训练单元的输入端连接,推理单元的输出端也连接硬判决模块的输入端。数据预处理模块将编码信息拆分成若干通道数据子块后并行输入子译码器模块,子译码器模块并行译码,提高译码效率。
55.译码器计算单元流水硬件结构如图3所示,包括四个加法器,两个比较器和两个选择器,选择器在训练单元计算时处于训练模式,选择器在推理单元计算时处于推理模式。
56.第一加法器的输出端、第二加法器的输出端和第一选择器的输出端均连接第四加法器,第四加法器的输入端还接收编码数据校验位输出的llr,其中第一加法器为系统位加法器,第一加法器的输入端连接系统位的llr,第二加法器为先验信息加法器,第二加法器的输入端连接先验信息的llr,第一选择器为分支度量选择器,第一选择器的输入端为前向分支度量alpha与后向分支度量beta之和(通过第三加法器实现),以及迭代度量值,第一选择器在训练模式选通迭代度量值,在推理模式下选通第三加法器的输出端;第四加法器的输出端连接第二选择器的输入端,第二选择器对多个第四加法器的输出值进行比较,输出最大值;第二选择器的输出端分别连接第一比较器和第二比较器,第一比较器为八输入比较器,第二比较器为四输入比较器,第二选择器在训练模式选通第二比较器,在推理模式选通第一比较器,第二比较器的输出端通过归一化单元反馈至第一选择器的迭代度量值输入端。
57.子译码器模块训练单元控制每个通道数据子块对应的的子译码器读取子块的系统位与校验位,通过map算法递推计算前向分支度量与后向分支度量后,将数据发送至中间结果存储器。分支度量的基本计算公式为:
58.a
k
(s)=max[a
k
‑1(s

) γ
k
‑1(s

,s)],
[0059]
b
k
‑1(s

)=max[b
k
(s) γ
k
(s

,s)],
[0060]
其中,a
k
(s)表示前向分支度量alpha,b
k
(s)表示后向分支度量beta,s和s

表示ctc码的不同状态,γ
k
(s

,s)表示从状态s转移到状态s

的度量值,k表示不同时刻,计算分支度量时,遍历计算ctc码中所定义的八种状态s,计算出从当前码字状态s

到下一个码字的四种可能状态s的度量值γ
k
(s

,s),再与当前的度量相加后选出最大值。
[0061]
训练单元每算完一次分支度量之后,均进行归一化处理。即将所有的分支度量与归一化边界b做比较之后,如果含有大于b的分支度量,则所有分支度量都减去分支度量边界b。本实施例中分支度量边界b设为8。
[0062]
子译码器模块推理单元在前向分支度量与后向分支度量计算完成后,使用前向分支度量与后向分支度量联合推理出软比特输出信息l
all
,根据l
all
计算外信息l
e
,外信息l
e
经过数据交织单元形成下一次子译码器输入,推理单元计算数据也发送至中间结果存储器。
[0063]
根据前向分支度量alpha与后向分支度量beta推理软比特输出信息l
all
,软比特输出l
all
的计算公式为:
[0064]
l
all
=max(a
k
‑1(s

) γ
k
(s

,s) b
k
‑1(s)),
[0065]
根据l
all
计算外信息l
e
,将外信息l
e
乘以一个自适应系数用以修正max

log

map算法的近似运算造成的外信息的不可靠性,公式为:
[0066]
l
all
=factor*l
e
[0067]
自适应系数根据译码需要进行缩小或增大,本实施例中自适应系数为0.75。
[0068]
数据交织单元在子译码器一次译码完成后,变更交织或解交织数据,将根据软比特输出信息l
all
计算出的外信息l
e
再次送入子译码器译码,形成下一次子译码器输入l
a

[0069]
核心控制模块控制将解调后的编码码字发送至译码器,并控制中间结果数据的存取以及译码的迭代,将译码器输入l
a
送入硬判决模块中,完成最后的译码计算,l
a
表示码字为0为1的可能性,当l
a
为正数表示码字为0,当l
a
为负数表示码字为1。
[0070]
硬判决模块用于在子译码器模块迭代结束后对子译码器模块的软比特输出进行硬判决。当迭代次数i达到n
iter
时,硬判决单元对子译码器输出的软比特信息l
all
直接判决。为节省硬件资源,减少芯片大小,子译码器包括第一译码器和第二译码器两种模式,在一次迭代译码过程中两种模式译码器轮替进行,一般来说,在进行一轮译码开始时均作为第一译码器进行工作。为了节省一次交织时间,硬判决模块在子译码器模块作为第一译码器的时候对输出进行判决,判决完成后译码过程结束。
[0071]
基于所述的译码器硬件结构,所述基于map算法的卷积turbo码译码方法如图2所示,包括以下步骤:
[0072]
步骤1:设置译码器的交织图样和迭代信息,将编码后的码字比特信息输入数据预处理模块进行数据预交织处理。
[0073]
译码开始时,将交织图样从外部dram配置进入译码器的交织图样存储区中,并将输入的码字子块切分为多通道进行预交织。对于输入的经过信道的卷积turbo编码,将其按码字顺序输入数据预处理模块,所述码字顺序即协议中固定的从外部输入的编码后顺序。
[0074]
数据预处理模块根据协议所规定的方法计算出的交织所需要的地址索引,一一对应的地址映射,使交织图样完成数据的预处理和子块的分割,数据预处理模块将预处理后的数据发送至子译码器模块,子译码器模块各译码器并行处理编码码字的子块数据,提高译码的并行度,进而提升译码器的吞吐率。
[0075]
步骤2:子译码器模块对数据预处理模块输出的数据进行训练、推理和数据交织。
[0076]
子译码器模块包括若干个译码器计算单元,每个译码器计算单元均包括训练单元、推理单元和数据交织单元,训练单元根据编码数据训练分支度量,推理单元根据训练单元的数据推理出外信息。核心控制模块控制子译码器模块中每个通道数据子块对应译码器计算单元进行训练和推理的迭代,将数据从译码器系统的存储模块中取出,送入对应的通道中,并对中间结果进行通道间的互换。
[0077]
如图3和图4所示,子译码器模块训练单元接收读取的系统位x
s
、校验位x
p
和先验信息l
a
序列,流水交替计算出前向分支度量alpha和后向分支度量beta,如图3所示,a、b输入值为系统位x
s
中两个码字的对数似然比,y输入值为校验位x
p
的对数似然比,l1、l2输入值为两个码字的先验信息x
p
的对数似然比。当硬件中的分支度量模式控制信号值为1时,该周期输出的分支度量为前向分支度量alpha;当分支度量模式控制信号值为2时,该周期输出的分支度量为后向分支度量beta。
[0078]
子译码器模块推理单元接收读取的子译码器模块训练单元发送的系统位x
s
、校验位x
p
、先验信息l
a
和分支度量alpha/beta序列,通过硬件流水线硬件结构计算出软比特输出l
all
。软比特输出l
all
经过计算后转换为外信息l
e
,外信息l
e
经过子译码器模块数据交织单元交织修正后,发送给下一级的子译码器作为先验信息l
a

[0079]
子译码器通道间边界信息在相邻的子译码器之间双向交换,交换方法为前一个通
道的最后一个前向分支度量alpha赋值给后一个通道的第一个前向分支度量alpha,后一个通道的第一个后向分支度量beta赋值给前一个通道的最后一个后向分支度量beta。
[0080]
alpha
i 1,start
=alpha
i,end
[0081]
beta
i

1,start
=beta
i,end
[0082]
其中,i表示子译码器模块第i个通道,start表示该通道第一个分支度量,end表示该通道最后一个分支度量。
[0083]
子译码器模块的子译码器完成一次计算后,核心控制模块控制子译码器在第一译码器与第二译码器之间切换,定义子译码器从第一译码器变为第二译码器再回到第一译码器的过程为译码的一次迭代。
[0084]
步骤3:子译码器模块中数据的迭代次数等于设定值时,子译码器模块将数据发送至硬判决模块进行判决。
[0085]
根据数据处理要求设置迭代次数n
iter
,核心控制模块通过迭代计数器控制子译码器模块的迭代次数。迭代计数器计数值与设置的迭代次数n
iter
不同时,子译码器进行迭代计算;当迭代计数器计数值与设置的迭代次数n
iter
相等时,译码器将第一译码器的软比特输出送入硬判决模块进行判决,完成译码。在硬判决模块判决时,子译码器模块输出的内信息对数似然比l
a
表示码字为0或1的可能性,当对数似然比l
a
为正数时代表码字为0,当对数似然比l
a
为负数时代表码字为1。
[0086]
本实施例将编码后的码块切分为多通道由子译码器模块的各译码器计算单元并行译码,结合外部输入的可配交织图样,所述的卷积turbo译码器的硬件实现可在符合802.16e标准的下的各通信场景中使用,可以用专用集成电路的形式实现,可以通过现场可编程门阵列的形式实现。
[0087]
以上示意性地对本实用新型及其实施方式进行了描述,该描述没有限制性,在不背离本实用新型的精神或者基本特征的情况下,能够以其他的具体形式实现本实用新型。附图中所示的也只是本实用新型的实施方式之一,实际的结构并不局限于此,权利要求中的任何附图标记不应限制所涉及的权利要求。所以,如果本领域的普通技术人员受其启示,在不脱离本创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本专利的保护范围。此外,“包括”一词不排除其他元件或步骤,在元件前的“一个”一词不排除包括“多个”该元件。产品权利要求中陈述的多个元件也可以由一个元件通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献