多比特并行校验方法及装置、存储介质及Turbo译码器

文档序号:1878093 发布日期:2021-11-23 浏览:10次 >En<

阅读说明:本技术 多比特并行校验方法及装置、存储介质及Turbo译码器 (Multi-bit parallel checking method and device, storage medium and Turbo decoder ) 是由 吴肖亮 于 2021-08-19 设计创作,主要内容包括:本发明公开了一种多比特并行校验方法及装置、存储介质及Turbo译码器,方法包括:在Turbo译码器的半迭代译码过程中,确定Turbo译码器中每个译码单元同时输出的硬判决比特;在每个译码单元同时输出硬判决比特时,根据每个译码单元同时输出的硬判决比特进行循环冗余校验。由此,通过在半迭代译码过程中的每个译码单元输出硬判决比特之后立即开始进行CRC校验,无需等待全部码块的硬判决比特输出之后才开始CRC校验,减少了因CRC校验带来的延迟,提高了Turbo译码器的利用率。(The invention discloses a multi-bit parallel check method and device, a storage medium and a Turbo decoder, wherein the method comprises the following steps: in the semi-iterative decoding process of the Turbo decoder, determining the hard decision bit output by each decoding unit in the Turbo decoder at the same time; and when each decoding unit simultaneously outputs the hard decision bit, performing cyclic redundancy check according to the hard decision bit simultaneously output by each decoding unit. Therefore, the CRC check is started immediately after each decoding unit outputs the hard decision bits in the semi-iterative decoding process, the CRC check is started without waiting for the hard decision bits of all code blocks to be output, the delay caused by the CRC check is reduced, and the utilization rate of the Turbo decoder is improved.)

多比特并行校验方法及装置、存储介质及Turbo译码器

技术领域

本发明涉及通信技术领域,尤其涉及一种多比特并行校验方法及装置、存储介质及Turbo译码器。

背景技术

通常LTE(Long Term Evolution,长期演进技术)系统中的下行Turbo译码器译码之后,每个传输块会进行CRC(Cyclic Redundancy Check,循环冗余校验)校验,以此来判断是否提前终止Turbo译码器译码,以节省功耗,以及判断译码是否正确,以完成上报,因此在Turbo译码器的每次半迭代译码之后均需要知道本次半迭代译码的CRC校验结果。

相关技术中,在每次完成半迭代译码之后才开始启动CRC校验,并在获得CRC校验结果之后才开始下一次的半迭代译码,在此过程中,由于需要独立的CRC校验时间,因而会加大Turbo译码器的译码时长,导致Turbo译码器的利用率低下。

发明内容

本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明的第一个目的在于提出一种多比特并行校验方法,通过在半迭代译码过程中的每个译码单元输出硬判决比特之后立即开始进行CRC校验,无需等待全部码块的硬判决比特输出之后才开始CRC校验,减少了因CRC校验带来的延迟,提高了Turbo译码器的利用率。

本发明的第二个目的在于提出一种计算机可读存储介质。

本发明的第三个目的在于提出一种Turbo译码器。

本发明的第四个目的在于提出一种多比特并行校验装置。

为达到上述目的,本发明第一方面实施例提出了一种多比特并行校验方法,应用于Turbo译码器中,方法包括:在Turbo译码器的半迭代译码过程中,确定Turbo译码器中每个译码单元同时输出的硬判决比特;在每个译码单元同时输出硬判决比特时,根据每个译码单元同时输出的硬判决比特进行循环冗余校验。

根据本发明实施例的多比特并行校验方法,在Turbo译码器的半迭代译码过程中,确定Turbo译码器中每个译码单元同时输出的硬判决比特,并在每个译码单元同时输出硬判决比特时,根据每个译码单元同时输出的硬判决比特进行循环冗余校验。由此,通过在半迭代译码过程中的每个译码单元输出硬判决比特之后立即开始进行CRC校验,无需等待全部码块的硬判决比特输出之后才开始CRC校验,减少了因CRC校验带来的延迟,提高了Turbo译码器的利用率。

根据本发明的一个实施例,根据每个译码单元同时输出的硬判决比特进行循环冗余校验,包括:将每个译码单元同时输出的硬判决比特与上一次半迭代译码过程中对应输出的硬判决比特进行比较,获得每个译码单元对应的更新后硬判决比特;根据每个译码单元对应的更新后硬判决比特和每个硬判决比特对应的偏移地址确定每个译码单元对应的查找表;根据每个译码单元对应的查找表和预先确定的计算参数进行运算,获得校验结果。

根据本发明的一个实施例,在将每个译码单元同时输出的硬判决比特与上一次半迭代译码过程中对应输出的硬判决比特进行比较时,将相同的比特置0,以获得每个译码单元对应的更新后硬判决比特。

根据本发明的一个实施例,根据每个译码单元对应的更新后硬判决比特和每个硬判决比特对应的偏移地址确定每个译码单元对应的查找表,包括:针对每个译码单元,根据每个硬判决比特对应的偏移地址确定第一查找表;根据第一查找表建立每个译码单元的硬判决比特与输出查找表之间的关系表;根据每个译码单元对应的更新后硬判决比特和关系表确定每个译码单元对应的查找表。

根据本发明的一个实施例,针对每个译码单元,根据每个硬判决比特对应的偏移地址确定第一查找表,包括:对每个译码单元对应的偏移地址进行模运算,获得第一模运算结果;将第一模运算结果划分为多个相位,其中,相位的数量与每个译码单元对应的偏移地址的数量相同;根据每个硬判决比特对应的偏移地址读出每个相位的查找表。

根据本发明的一个实施例,根据以下公式确定计算参数:

F(i)=f(P-1-i),

其中,F(i)为所述计算参数,0≤i≤P-1,P为译码单元的数量,f(0)=预先确定的基值,f(1)=xM mod g(x),f(i+1)=f(i)+f(1),x为有限域上的元素,M为半迭代译码过程中数据块的长度与译码单元的数量之间的比值,mod为模运算,g(x)为循环冗余校验的生成多项式。

根据本发明的一个实施例,根据每个译码单元对应的查找表和预先确定的计算参数进行运算,获得校验结果,包括:对每个译码单元对应的查找表和每个译码单元对应的计算参数进行卷积运算,获得多个卷积运算结果;对多个卷积运算结果进行累加运算,获得累加运算结果;对累加运算结果进行模2运算,获得第二模运算结果;重复执行M次,并将M次获得的第二模运算结果进行模2运算,获得校验结果,其中,M为半迭代译码过程中数据块的长度与译码单元的数量之间的比值。

为达到上述目的,本发明第二方面实施例提出了一种计算机可读存储介质,其上存储有多比特并行校验程序,该多比特并行校验程序被处理器执行时实现如上述的多比特并行校验方法。

根据本发明实施例的计算机可读存储介质,通过上述的多比特并行校验方法,通过在半迭代译码过程中的每个译码单元输出硬判决比特之后立即开始进行CRC校验,无需等待全部码块的硬判决比特输出之后才开始CRC校验,减少了因CRC校验带来的延迟,提高了Turbo译码器的利用率。

为达到上述目的,本发明第三方面实施例提出了一种Turbo译码器,包括存储器、处理器及存储在存储器上并可在处理器上运行的多比特并行校验程序,处理器执行多比特并行校验程序时,实现上述的多比特并行校验方法。

根据本发明实施例的Turbo译码器,通过上述的多比特并行校验方法,通过在半迭代译码过程中的每个译码单元输出硬判决比特之后立即开始进行CRC校验,无需等待全部码块的硬判决比特输出之后才开始CRC校验,减少了因CRC校验带来的延迟,提高了Turbo译码器的利用率。

为达到上述目的,本发明第四方面实施例提出了一种多比特并行校验装置,应用于Turbo译码器中,装置包括:确定模块,用于在Turbo译码器的半迭代译码过程中,确定Turbo译码器中每个译码单元同时输出的硬判决比特;校验模块,用于在每个译码单元同时输出硬判决比特时,根据每个译码单元同时输出的硬判决比特进行循环冗余校验。

根据本发明实施例的多比特并行校验装置,通过确定模块在Turbo译码器的半迭代译码过程中,确定Turbo译码器中每个译码单元同时输出的硬判决比特,并通过校验模块在每个译码单元同时输出硬判决比特时,根据每个译码单元同时输出的硬判决比特进行循环冗余校验。由此,通过在半迭代译码过程中的每个译码单元输出硬判决比特之后立即开始进行CRC校验,无需等待全部码块的硬判决比特输出之后才开始CRC校验,减少了因CRC校验带来的延迟,提高了Turbo译码器的利用率。

本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

图1a为相关技术中CRC校验的流程示意图;

图1b为相关技术中提高CRC计算并行度后的校验流程图;

图2为相关技术中提高CRC计算并行度后的CRC检验的结构示意图;

图3为根据本发明一个实施例的多比特并行校验方法的流程示意图;

图4为根据本发明一个实施例的多比特并行校验方法的流程图;

图5为根据本发明另一个实施例的多比特并行校验方法的流程图;

图6为根据本发明一个实施例的查找表内部结构示意图;

图7为根据本发明一个实施例的计算参数的生成示意图;

图8为根据本发明一个实施例的多比特并行校验方法的结构示意图;

图9为根据本发明一个实施例的多比特并行校验装置的结构示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。

LTE系统中的下行Turbo译码器译码之后,每个传输块会进行CRC校验,以此来判断是否提前终止Turbo译码器译码,以节省功耗,以及判断译码是否正确,以完成上报,因此在Turbo译码器的每次半迭代译码之后均需要知道本次半迭代译码的CRC校验结果。

相关技术中,CRC校验处理流程如图1a所示:在Turbo译码器每次完成半迭代译码之后才开始启动CRC校验,并在获得CRC校验结果之后才开始下一次的半迭代译码,在CRC校验的时间段内,Turbo译码器处于等待状态,由此会加大Turbo译码器的译码时长,导致Turbo译码器的利用率低下。为了缩减CRC校验所占用的时间,达到如图1b所示的结果,目前主要通过提高CRC校验的并行度来实现。具体来说,参考图2所示,在CRC校验时,首先将Turbo译码器得到的硬判决比特数据划分为若干段如P段,存储在P个传输块中,并对各个传输块进行CRC校验,得到各个传输块的CRC校验结果,而后利用存储在存储器中的参数,通过点乘和异或运算将各个传输块的CRC校验结果串联起来,得到整块数据的CRC校验结果。为了缩减CRC校验所占用的时间,一般通过增加传输块的个数,或者CRC并行校验的比特宽度(如32比特或64比特)来提高CRC校验的并行度。

虽然采用上述两种方式在一定程度上能够缩减CRC校验所占用的时间,进而减少Turbo译码器的译码时长,但是仍然需要独立的CRC校验时间,Turbo译码器的利用率仍不高;同时传输块数量的增加会导致硬判决比特存储器的深度减小,CRC并行校验比特宽度的增加会导致硬判决比特存储器的宽度增大,两种方式均会导致硬判决比特存储器的面积增大,且实现难度增大;同时提高CRC校验的并行度需要增加计算资源,导致CRC面积开销大。

针对上述技术问题,本申请提供了一种多比特并行校验方法及装置、存储介质及Turbo译码器,将CRC校验设置在Turbo译码器的半迭代译码过程中,具体是在Turbo译码器的译码单元开始输出硬判决比特时开始,如图3所示,当每次完成半迭代译码之后,整个码块的CRC校验也会同步完成,并得到CRC校验结果,硬判决之后立即开始下一次的半迭代译码,Turbo译码器一直处于工作状态,大大提高了Turbo译码器的利用率,且本申请的硬判决比特存储器更易管理,不存在因并行度导致的存储器深度和宽度变化的问题。

下面详细描述本申请提供的多比特并行校验方法及装置、存储介质及Turbo译码器。

图4为根据本发明一个实施例的多比特并行校验方法的流程图,以该方法应用于Turbo译码器为例,参考图4所示,该多比特并行校验方法可包括以下步骤:

步骤S100,在Turbo译码器的半迭代译码过程中,确定Turbo译码器中每个译码单元同时输出的硬判决比特。

举例来说,首先定义待译码数据块的长度为K,在LTE系统中K的最大值是6144,假设Turbo译码器具有P个译码单元,每个译码单元译码的数据长度均为M,则M*P=K,且每个译码单元同时输出至少一个硬判决比特。在Turbo译码器的半迭代译码过程中,判断每个译码单元是否同时输出了硬判决比特,如果是,则获取每个译码单元输出的硬判决比特。

步骤S200,在每个译码单元同时输出硬判决比特时,根据每个译码单元同时输出的硬判决比特进行循环冗余校验。

具体来说,在半迭代译码过程中,如果每个译码单元同时输出了硬判决比特,则立即开始根据每个译码单元同时输出的硬判决比特进行CRC校验,而非等待全部码块的硬判决比特输出之后才开始CRC校验,这样在每次半迭代译码结束之后,整个码块的CRC校验也会同步完成,而后进行下一次的半迭代译码,从而省去了CRC校验单独占用的时间。

本实施例中,通过在Turbo译码器的半迭代译码过程中,在Turbo译码器的每个译码单元同时输出硬判决比特之后立即开始进行CRC校验,而非等待全部码块的硬判决比特输出之后,即本次半迭代译码结束之后才开始CRC校验,从而消除了因CRC校验带来的延迟,大大提高了Turbo译码器的利用率。

进一步的,在一些实施例中,参考图5所示,根据每个译码单元同时输出的硬判决比特进行CRC校验,包括:

步骤S201,将每个译码单元同时输出的硬判决比特与上一次半迭代译码过程中对应输出的硬判决比特进行比较,获得每个译码单元对应的更新后硬判决比特。

具体来说,在CRC校验时,可先将每个译码单元同时输出的硬判决比特与上一次半迭代译码过程中对应输出的硬判决比特进行比较,得到新的硬判决比特,即更新后硬判决比特。需要说明的是,半迭代译码包括多个半迭代循环,这里的上一次半迭代译码具体是指上一次半迭代循环,例如图3所示的奇数半迭代译码包括多个半迭代循环,在CRC校验时,将本次半迭代循环中每个译码单元同时输出的硬判决比特与上一次半迭代循环中每个译码单元对应输出的硬判决比特进行比较,得到新的硬判决比特。

可选的,在将每个译码单元同时输出的硬判决比特与上一次半迭代译码过程中对应输出的硬判决比特进行比较时,将相同的比特置0,以获得每个译码单元对应的更新后硬判决比特。举例来说,假设每个译码单元同时输出4个硬判决比特,以其中一个译码单元为例,在本次半迭代译码时输出的4个硬判决比特为{A1、A2、A3、A4},上一次半迭代译码时输出的4个硬判决比特为{A11、A21、A31、A41},如果A1与A11相同,则将该比特置0,否则保持不变;如果A2与A21相同,则将该比特置0,否则保持不变;依次类推,最终获得更新后硬判决比特如{0、A2、0、A4}。对于其它译码单元与该译码单元具有相同的处理方式,这里不再赘述。由此,当本次迭代某个循环下输出的硬判决比特与上次迭代相同比特位置输出的硬判决比特相同时,将该硬判决比特置0,可以省略该循环下对应比特的CRC计算,以在Turbo译码器快要收敛时有效降低CRC检验的功耗。

步骤S202,根据每个译码单元对应的更新后硬判决比特和每个硬判决比特对应的偏移地址确定每个译码单元对应的查找表。

需要说明的是,每个硬判决比特都有一个偏移地址,仍以4个硬判决比特为例,那么4个硬判决比特对应的偏移地址可表示为{oa3,oa2,oa1,oa0},且每个硬判决比特对应的偏移地址均处于[0,M-1]的范围内,其中M为相应译码单元译码的数据长度。可选的,所有译码单元相同位置的硬判决比特对应的偏移地址是相同的,也就是说,所有译码单元中每个译码单元的4个硬判决比特对应的偏移地址可均为{oa3,oa2,oa1,oa0}。

假设,获得的每个译码单元对应的4个更新后硬判决比特为{b3,b2,b1,b0},4个硬判决比特对应的偏移地址为{oa3,oa2,oa1,oa0},那么可根据每个译码单元对应的4个更新后硬判决比特{b3,b2,b1,b0}和4个硬判决比特对应的偏移地址{oa3,oa2,oa1,oa0}确定每个译码单元对应的查找表。需要说明的是,查找表(Look Up Table,LUT)本质上是一个RAM,其将数据事先写入RAM(RaMdom Access Memory,随机存取存储器)后,每当输入一个信号就等于输入一个地址进行查表,找出地址对应的内容并输出。

可选的,在一些实施例中,根据每个译码单元对应的更新后硬判决比特和每个硬判决比特对应的偏移地址确定每个译码单元对应的查找表,包括:针对每个译码单元,根据每个硬判决比特对应的偏移地址确定第一查找表;根据第一查找表建立每个译码单元的硬判决比特与输出查找表之间的关系表;根据每个译码单元对应的更新后硬判决比特和关系表确定每个译码单元对应的查找表。

具体来说,在确定每个译码单元对应的查找表时,以其中一个译码单元为例,可先根据4个硬判决比特对应的偏移地址{oa3,oa2,oa1,oa0}确定第一查找表,得到4个第一查找表{lut3,lut2,lut1,lut0},而后根据4个第一查找表{lut3,lut2,lut1,lut0}建立该译码单元的硬判决比特{b3,b2,b1,b0}与输出查找表L(i)之间的关系表,即由4个第一查找表{lut3,lut2,lut1,lut0}确定两者之间的关系,最后根据更新后硬判决比特{b3,b2,b1,b0}和关系表确定该译码单元对应的查找表L(i)。

可选的,在一些实施例中,针对每个译码单元,根据每个硬判决比特对应的偏移地址确定第一查找表,包括:对每个译码单元对应的偏移地址进行模运算,获得第一模运算结果;将第一模运算结果划分为多个相位,其中,相位的数量与每个译码单元对应的偏移地址的数量相同;根据每个硬判决比特对应的偏移地址读出每个相位的查找表。

具体来说,查找表的总体深度为K/P,当K为6144时,总体深度为6144/P,宽度可为24比特,内部存储的是xi mod g(x),其中,x为有限域上的元素,0≤i≤M-1,M为每个译码单元译码的数据长度,mod表示模运算,这里表示取xi除以g(x)的余数,g(x)为CRC校验的生成多项式。该查找表可根据译码单元对应的偏移地址进行模运算得到的第一模运算结果划分为多个相位,例如,先对4个硬判决比特对应的偏移地址{oa3,oa2,oa1,oa0}进行模4运算(如模4加),得到第一模运算结果,而后,将第一模运算结果划分为4个相位记为{phase3,phase2,phase1,phase0},具体结构如图6所示,最后根据4个硬判决比特对应的偏移地址{oa3,oa2,oa1,oa0}读出每个相位的查找表,得到4个第一查找表{lut3,lut2,lut1,lut0}。需要说明的是,由于译码单元输出的4个硬判决比特对应的偏移地址{oa3,oa2,oa1,oa0}正好满足4个不同的相位条件,因此在读取查找表时,不会存在地址冲突的问题。

进一步的,在获得4个第一查找表后,可根据4个第一查找表{lut3,lut2,lut1,lut0}建立译码单元的硬判决比特{b3,b2,b1,b0}与输出查找表L(i)之间的关系表,如表1所示:

表1

在表1中,表示异或运算。

最后,根据译码单元的硬判决比特{b3,b2,b1,b0}和关系表确定该译码单元对应的查找表L(i)。例如,当硬判决比特{b3,b2,b1,b0}为{0000}时,对应的查找表L(i)为0x000000;又如,当硬判决比特{b3,b2,b1,b0}为{0111}时,对应的查找表L(i)为

步骤S203,根据每个译码单元对应的查找表和预先确定的计算参数进行运算,获得校验结果。

具体来说,在通过前述方式获得每个译码单元对应的查找表L(i)后,根据每个译码单元对应的查找表L(i)和预先确定的计算参数F(i)进行运算,最终获得CRC校验结果。需要说明的是,每个译码单元对应有一个计算参数F(i)。可选的,计算参数F(i)的生成过程如图7所示,且满足F(i)=f(P-1-i),其中,0≤i≤P-1,P为译码单元的数量,f(0)=预先确定的基值,例如f(0)=0x800000,f(1)=xM mod g(x),f(i+1)=f(i)+f(1),x为有限域上的元素,M为半迭代译码过程中数据块的长度与译码单元的数量之间的比值,也即译码单元译码的数据长度,mod为模运算,这里表示取xi除以g(x)的余数,g(x)为循环冗余校验的生成多项式。

需要说明的是,图7中的卷积运算单元是将两个24比特的输入进行卷积得到47比特数据,模运算单元是将输入的47比特进行mod g(x)得到24比特数据。

可选的,在一些实施例中,根据每个译码单元对应的查找表和预先确定的计算参数进行运算,获得校验结果,包括:对每个译码单元对应的查找表和每个译码单元对应的计算参数进行卷积运算,获得多个卷积运算结果;对多个卷积运算结果进行累加运算,获得累加运算结果;对累加运算结果进行模2运算,获得第二模运算结果;重复执行M次,并将M次获得的第二模运算结果进行模2运算,获得校验结果,其中,M为半迭代译码过程中数据块的长度与译码单元的数量之间的比值。

具体来说,在获得每个译码单元对应的查找表L(i)之后,对每个译码单元对应的查找表L(i)和相应计算参数F(i)进行卷积运算,得到P个卷积运算结果,而后对P个卷积运算结果进行累加计算(即求和)得到累加运算结果,并对累加运算结果进行模2运算(如模2和)得到第二模运算结果,重复M次(即K/P),最终将M次获得的第二模运算结果进行模2运算(如模2和)得到CRC校验结果。

作为一个具体的示例,参考图8所示,多比特并行校验可包括如下过程:

以数据块的长度K=6144、译码单元的数量P=16为例。可预先按照图7所对应的计算参数生成方式生成16个计算参数F(i),F(i)=f(15-i),其中0≤i≤15,计算结果为:

f(0)=0x800000;

f(1)=xM mod g(x),其中,M=K/P;

f(2)=f(1)+f(1)mod 2;

f(3)=f(2)+f(1)mod 2;

f(i+1)=f(i)+f(1)mod 2;

f(15)=f(14)+f(1)mod 2。

在Turbo译码器的半迭代译码过程中,当16个译码单元同时输出了硬判决比特,则立即开始CRC校验。在CRC校验时,每个译码单元输出4个硬判决比特至比较单元,比较单元将每个译码单元输出的4个硬判决比特与上一次半迭代输出的相同位置的硬判决比特进行比较,将相同比特的硬判决比特置0,得到更新后的4个硬判决比特{b3,b2,b1,b0},并输出4个硬判决比特对应的偏移地址{oa3,oa2,oa1,oa0},4个硬判决比特对应的偏移地址进行模4运算存储在4个相位中。而后,查找表单元根据4个硬判决比特对应的偏移地址{oa3,oa2,oa1,oa0}查找对应的第一查找表,得到4个第一查找表{lut3,lut2,lut1,lut0},并根据每个译码单元对应的4个硬判决比特{b3,b2,b1,b0}选择对应的查找表L(i),0≤i≤15。而后,卷积运算单元将每个译码单元对应的查找表L(i)与相应的计算参数F(i)进行卷积计算,得到16个卷积结果,并将16个卷积结果通过累加单元累加得到累加运算结果,以及对累加计算结果通过模运算单元进行模2运算,得到CRC校验结果。重复K/P次,并将结果累加求模2运算,得到整个码块的CRC校验结果。

由此,在Turbo译码器的半迭代译码过程中,在译码单元同时输出硬判决比特之后,立即开始进行CRC校验,而非等待全部码块硬判决比特输出之后开始,减少了相关技术中因CRC校验带来的延迟,提高了Turbo译码器的利用率,而且本申请的硬判决比特存储器更易管理,即图8中的查找表单元更易管理,不存在因并行度导致的深度和宽度变化的问题,如译码单元的数量未发生变化,相应的深度未变,对应的比特可以为24,宽度未变。

需要说明的是,图8中的卷积运算单元和模运算单元可与图7所示的卷积运算单元和模运算单元共用,即在不同的计算过程中可以复用,从而可以节省计算资源,提高利用率。

综上所述,通过在半迭代译码过程中的每个译码单元输出硬判决比特之后立即开始进行CRC校验,而无需等待全部译码单元输出硬判决比特之后才开始进行CRC校验,减少了因CRC校验带来的延迟,提高了Turbo译码器的利用率。此外,本申请的硬判决比特buffer更易管理,不存在因为并行度导致buffer深度和宽度变化的问题。

在一些实施例中,本发明的实施例还提供了一种计算机可读存储介质,其上存储有多比特并行校验程序,该多比特并行校验程序被处理器执行时实现如上述的多比特并行校验方法。

根据本发明实施例的计算机可读存储介质,通过上述的多比特并行校验方法,通过在半迭代译码过程中的每个译码单元输出硬判决比特之后立即开始进行CRC校验,无需等待全部码块的硬判决比特输出之后才开始CRC校验,减少了因CRC校验带来的延迟,提高了Turbo译码器的利用率。

在一些实施例中,本发明的实施例还提供了一种Turbo译码器,包括存储器、处理器及存储在存储器上并可在处理器上运行的多比特并行校验程序,处理器执行多比特并行校验程序时,实现上述的多比特并行校验方法。

根据本发明实施例的Turbo译码器,通过上述的多比特并行校验方法,通过在半迭代译码过程中的每个译码单元输出硬判决比特之后立即开始进行CRC校验,无需等待全部码块的硬判决比特输出之后才开始CRC校验,减少了因CRC校验带来的延迟,提高了Turbo译码器的利用率。

图9为根据本发明一个实施例的多比特并行校验装置的结构示意图,以该装置应用于Turbo译码器为例,参考图9所示,该多比特并行校验装置90包括:确定模块91和校验模块92。

其中,确定模块91用于在Turbo译码器的半迭代译码过程中,确定Turbo译码器中每个译码单元同时输出的硬判决比特。校验模块92用于在每个译码单元同时输出硬判决比特时,根据每个译码单元同时输出的硬判决比特进行循环冗余校验。

在一些实施例中,校验模块92具体用于:将每个译码单元同时输出的硬判决比特与上一次半迭代译码过程中对应输出的硬判决比特进行比较,获得每个译码单元对应的更新后硬判决比特;根据每个译码单元对应的更新后硬判决比特和每个硬判决比特对应的偏移地址确定每个译码单元对应的查找表;根据每个译码单元对应的查找表和预先确定的计算参数进行运算,获得校验结果。

在一些实施例中,校验模块92具体用于:在将每个译码单元同时输出的硬判决比特与上一次半迭代译码过程中对应输出的硬判决比特进行比较时,将相同的比特置0,以获得每个译码单元对应的更新后硬判决比特。

在一些实施例中,校验模块92具体用于:针对每个译码单元,根据每个硬判决比特对应的偏移地址确定第一查找表;根据第一查找表建立每个译码单元的硬判决比特与输出查找表之间的关系表;根据每个译码单元对应的更新后硬判决比特和关系表确定每个译码单元对应的查找表。

在一些实施例中,校验模块92具体用于:对每个译码单元对应的偏移地址进行模运算,获得第一模运算结果;将第一模运算结果划分为多个相位,其中,相位的数量与每个译码单元对应的偏移地址的数量相同;根据每个硬判决比特对应的偏移地址读出每个相位的查找表。

在一些实施例中,校验模块92具体用于根据以下公式确定计算参数:

F(i)=f(P-1-i),

其中,F(i)为计算参数,0≤i≤P-1,P为译码单元的数量,f(0)=预先确定的基值,f(1)=xM mod g(x),f(i+1)=f(i)+f(1),x为有限域上的元素,M为半迭代译码过程中数据块的长度与译码单元的数量之间的比值,mod为模运算,g(x)为循环冗余校验的生成多项式。

在一些实施例中,校验模块92具体用于:对每个译码单元对应的查找表和每个译码单元对应的计算参数进行卷积运算,获得多个卷积运算结果;对多个卷积运算结果进行累加运算,获得累加运算结果;对累加运算结果进行模2运算,获得第二模运算结果;重复执行M次,并将M次获得的第二模运算结果进行模2运算,获得校验结果,其中,M为半迭代译码过程中数据块的长度与译码单元的数量之间的比值。

需要说明的是,关于本申请中多比特并行校验装置的描述,请参考本申请中关于多比特并行校验方法的描述,具体这里不再赘述。

根据本发明实施例的多比特并行校验装置,通过确定模块在Turbo译码器的半迭代译码过程中,确定Turbo译码器中每个译码单元同时输出的硬判决比特,并通过校验模块在每个译码单元同时输出硬判决比特时,根据每个译码单元同时输出的硬判决比特进行循环冗余校验。由此,通过在半迭代译码过程中的每个译码单元输出硬判决比特之后立即开始进行CRC校验,无需等待全部码块的硬判决比特输出之后才开始CRC校验,减少了因CRC校验带来的延迟,提高了Turbo译码器的利用率。

需要说明的是,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

16页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种针对QAM调制的片上集成实时校准网络

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类