本发明涉及信号处理技术,尤其涉及一种turbo迭代译码的输出控制方法、装置及译码设备。
背景技术:
在现代通信系统中,为了保证各种数据在信道中可靠有效的传输,往往需要利用纠错编码技术。尤其随着无线数字通信的发展和各种高速率、突发性强的业务的出现,对纠错码技术提出了越来越高的要求。turbo码具有卓越的纠错性能,性能接近香农限。
turbo码采用迭代译码算法,通过分量译码器之间的软信息交换来提高译码可靠性。现有的turbo码译码方法以一个预设的最大迭代次数来实现停止迭代的判决,且预设的最大迭代次数一般会取得足够大以适应信道环境较差情况。
虽然迭代次数越高,译码性能越好,但相应地译码处理所需时间也会越长,译码复杂度也会随之增大。此外,当达到一定的迭代次数后,误比特率不会再随着迭代次数的增加而下降,即达到“误码平层”,此时,继续进行迭代只会白白增加译码时延,降低译码速度。现有turbo码译码方法在复杂多变的信道环境中使用不够灵活,存在译码速度较慢的问题。
技术实现要素:
本发明提供一种turbo迭代译码的输出控制方法、装置及译码设备,以提高turbo码的译码速度。
本发明的第一方面,提供一种turbo迭代译码的输出控制方法,包括:
在第i次迭代译码过程中,根据第一分量译码器的第一输出信息,获取第一硬判决结果,所述i为大于1的整数,且所述i小于或等于预设最大迭代次数i;
在第i次迭代译码过程中,根据所述第二分量译码器的第二输出信息,获取第二硬判决结果;
判断所述第一硬判决结果和所述第二硬判决结果是否相等;
若所述第一硬判决结果和所述第二硬判决结果相等,对所述第一硬判决结果或所述第二硬判决结果进行crc检验,根据crc检验结果,获得译码结果并输出;
若所述第一硬判决结果和所述第二硬判决结果不相等,则控制所述第一分量译码器和所述第二分量译码器重复执行迭代过程。
可选地,若所述第一硬判决结果和所述第二硬判决结果相等,所述根据crc检验结果,获得译码结果并输出,包括:
当所述第一硬判决结果或所述第二硬判决结果满足crc检验时,将检验后的第一硬判决结果或检验后的第二硬判决结果确认为译码结果并输出;
当所述第一硬判决结果或所述第二硬判决结果不满足crc检验时,判断所述i是否等于所述i,若是,则将检验后的第一硬判决结果或检验后的第二硬判决结果确认为译码结果并输出,若否,则发送所述第二输出信息至第一分量译码器以使得继续执行迭代译码过程,直至获取到译码结果并输出。
可选地,若所述第一硬判决结果和所述第二硬判决结果不相等,所述根据crc检验结果,获得译码结果并输出,具体为:
判断所述i是否等于所述i,若是,则对所述第二硬判决结果进行crc检验,将检验后的第二硬判决结果确定为译码结果并输出,若否,则发送所述第二输出信息至第一分量译码器以使得继续执行迭代译码过程,直至获取到译码结果并输出。
可选地,所述根据第一分量译码器的第一输出信息,获取第一硬判决结果,包括:
对所述第一分量译码器的第一输出信息进行硬判决处理,获取所述第一硬判决结果。
可选地,所述根据所述第二分量译码器的第二输出信息,获取第二硬判决结果,包括:
对所述第二输出信息进行硬判决处理,获取所述第二硬判决结果。
本发明的第二方面,提供一种turbo迭代译码的输出控制装置,包括:
第一硬判决结果获取模块,用于在第i次迭代译码过程中,根据第一分量译码器的第一输出信息,获取第一硬判决结果,所述i为大于1的整数,且所述i小于或等于预设最大迭代次数i;
第二硬判决结果获取模块,用于在第i次迭代译码过程中,根据所述第二分量译码器的第二输出信息,获取第二硬判决结果;
处理模块,用于判断所述第一硬判决结果和所述第二硬判决结果是否相等;若所述第一硬判决结果和所述第二硬判决结果相等,对所述第一硬判决结果或所述第二硬判决结果进行crc检验,根据crc检验结果,获得译码结果并输出;若所述第一硬判决结果和所述第二硬判决结果不相等,则控制所述第一分量译码器和所述第二分量译码器重复执行迭代过程。
可选地,所述处理模块还具体用于:
在所述第一硬判决结果和所述第二硬判决结果相等时,当所述第一硬判决结果或所述第二硬判决结果满足crc检验时,将检验后的第一硬判决结果或检验后的第二硬判决结果确认为译码结果并输出;当所述第一硬判决结果或所述第二硬判决结果不满足crc检验时,判断所述i是否等于所述i,若是,则将检验后的第一硬判决结果或检验后的第二硬判决结果确认为译码结果并输出,若否,则发送所述第二输出信息至第一分量译码器以使得继续执行迭代译码过程,直至获取到译码结果并输出。
可选地,所述处理模块还具体用于:
在所述第一硬判决结果和所述第二硬判决结果不相等时,判断所述i是否等于所述i,若是,则对所述第二硬判决结果进行crc检验,将检验后的第二硬判决结果确定为译码结果并输出,若否,则发送所述第二输出信息至第一分量译码器以使得继续执行迭代译码过程,直至获取到译码结果并输出。
可选地,所述第一硬判决结果获取模块具体用于:对所述第一分量译码器的第一输出信息进行硬判决处理,获取所述第一硬判决结果。
可选地,所述第二硬判决结果获取模块具体用于:对所述第二输出信息进行硬判决处理,获取所述第二硬判决结果。
本发明第三方面提供一种turbo译码设备,包括如本发明第二方面提供的任一所述的turbo迭代译码的输出控制装置。
本发明提供的turbo迭代译码的输出控制方法、装置及译码设备,通过在第i次迭代译码过程中,根据第一分量译码器的第一输出信息,获取第一硬判决结果,i为大于1的整数,且i小于或等于预设最大迭代次数i;在第i次迭代译码过程中,根据第二分量译码器的第二输出信息,获取第二硬判决结果;判断第一硬判决结果和第二硬判决结果是否相等;若第一硬判决结果和第二硬判决结果相等,对第一硬判决结果或第二硬判决结果进行crc检验,根据crc检验结果,获得译码结果并输出;若第一硬判决结果和第二硬判决结果不相等,则控制第一分量译码器和第二分量译码器重复执行迭代过程;实现译码结果是否收敛的快速判断,降低了译码结果未收敛时过早停止迭代的可能性,进而在保证译码性能的前提下缩短了turbo码的译码时延,提高了turbo码的译码效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有的turbo迭代译码器结构示意图;
图2为本发明实施例提供的一种turbo译码设备的结构示意图;
图3为本发明实施例提供的一种turbo迭代译码的输出控制方法流程示意图;
图4为本发明实施例提供的另一种turbo迭代译码的输出控制方法流程示意图;
图5为本发明实施例提供的一种turbo迭代译码的输出控制装置结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
应当理解,本文中使用的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。
取决于语境,如在此所使用的“在……时”可以被解释成为“当……时”或“响应于确定”或“响应于检测”或“若”。
下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图1为现有的turbo迭代译码器结构示意图。现有的turbo迭代译码器如图1所示,主要包含两个软输入软输出的分量译码器:第一分量译码器和第二分量译码器。译码器初始化时第一先验信息le1清零,第一分量译码器的输入端输入从信道获取的待译码信息序列x1、校验信息序列y1,以及全部为0的le1,第一分量译码器输出第一输出信息dec1_out。turbo迭代译码器以第一交织器对dec1_out进行交织处理,获取到第二分量译码器的第二先验信息le2。第二分量译码器的输入端输入待译码信息序列x2、校验信息序列y2以及第二先验信息le2,其中待译码信息序列x2为待译码信息序列x1经过交织处理的信息序列。第二分量译码器输出第二输出信息dec2_out。turbo迭代译码器以第二输出信息dec2_out在解交织处理后的解交织信息作为下一次迭代译码过程的第一先验信息le1输入第一分量译码器,由此完成一次迭代循环。下一次迭代译码过程的待译码信息序列x1、校验信息序列y1、待译码信息序列x2以及校验信息序列y2都没有改变,仅第一先验信息le1和第二先验信息le2随着迭代译码过程的循环而逐渐收敛。直到迭代译码过程的执行次数达到预设最大迭代次数时,对所述解交织信息进行硬判决处理获取译码结果c_out。turbo迭代译码器输出所述译码结果c_out,译码结束。
在不同的信道环境中,译码收敛需要不同的迭代次数。信道环境越好,信噪比越高,译码收敛越快,需要的迭代次数就越少,在一定的迭代次数之后,译码性能将不再提高;反之在较差的信道环境中需要的迭代次数会相对较多,甚至在信道环境非常差的极端情况下,无论进行多少次迭代译码过程也无法完全纠正待译码信息序列中的错误。预设的最大迭代次数一般会取得足够大以适应较差情况,导致实际使用时无法对复杂多变的信道环境自适应停止迭代,尤其是在较好的信道环境中多余的迭代译码过程降低了译码速度。
本发明实施例采用两个分量译码器输出硬判决结果并结合crc检验的方法,不仅降低了在译码结果未收敛时过早停止迭代的可能性,还在保证译码性能的前提下缩短了译码时延,提高了译码效率。
图2为本发明实施例提供的一种turbo译码设备的结构示意图,该译码设备包括第一分量译码器、第二分量译码器、第一交织器、第二交织器、解交织器以及本发明提供的turbo迭代译码的输出控制装置。该输出控制装置可以对两个分量译码器的输出进行硬判决等处理,得到译码结果。该输出控制装置可以通过软件和/或硬件实现,或者该输出控制装置可以被集成在处理器等处理设备中实现。该turbo译码设备可以为手机、电脑、平板等具有通信功能的终端。下面采用详细的实施例,对本发明提供的turbo迭代译码的输出控制装置和该turbo迭代译码的输出控制装置执行的方法流程进行详细说明。
图3为本发明实施例提供的一种turbo迭代译码的输出控制方法流程示意图。该方法的执行主体可以为图2所示实施例中的turbo迭代译码的输出控制装置。包括:
s110,在第i次迭代译码过程中,根据第一分量译码器的第一输出信息,获取第一硬判决结果。
其中,所述i为大于1的整数,且所述i小于或等于预设最大迭代次数i。
本步骤中,可以是从图2所示turbo译码设备的第一分量译码器获取第一输出信息dec1_out。本步骤中根据第一输出信息获取第一硬判决结果的一种实现方式可以是:对所述第一分量译码器的第一输出信息进行硬判决处理,获取所述第一硬判决结果。
所述硬判决处理,是指对信号进行简单量化,高于门限值的认为是1,低于门限值的认为是0,并将量化结果转化为由0和1组成的判决结果。以对第一输出信息进行硬判决为例,硬判决处理就是判定第一输出信息中的数据的正负,若数据为正,则判定第一硬判决结果相应位置数据为1,若数据为负,则判定第一硬判决结果相应位置数据为0,例如第一输出信息为[0.20.5-0.30.1-0.1-0.2],则第一硬判决结果为[110100]。
s120,在第i次迭代译码过程中,根据第二分量译码器的第二输出信息,获取第二硬判决结果。
s110和s120可以同时执行,也可以先执行s110后执行s120,还可以先执行s120后执行s110,本发明不限于此。
本步骤中,从图2所示turbo译码设备的第二分量译码器获取第二输出信息dec2_out。本步骤中根据第二输出信息获取第二硬判决结果的一种实现方式可以是:对所述第二输出信息进行解交织获得解交织信息,再对解交织信息进行硬判决处理,获取所述第二硬判决结果。
s130,判断所述第一硬判决结果和所述第二硬判决结果是否相等;若否,则执行s1301,若是,则执行s1302。
第一硬判决结果和所述第二硬判决结果是两串由0和1组成的序列,本步骤对这两串序列进行比较,可以实现译码结果是否收敛的快速判断。
具体地,若第一硬判决结果和第二硬判决结果相等,则表明译码结果已经收敛,此时,可执行s1302;若第一硬判决结果和第二硬判决结果不相等,则表明译码结果不收敛,可执行s1301。
s1301,重复执行迭代译码过程。
在迭代译码过程中,控制第一分量译码器和第二分量译码器执行迭代译码过程。具体的迭代译码过程,可参见上述的图1和图2所述。
s1302,对所述第一硬判决结果或所述第二硬判决结果进行crc检验,根据crc检验结果,获得译码结果并输出。
本实施例以第一硬判决结果进行crc检验为例,进行说明。当第一硬判决结果满足crc检验时,根据crc检验结果,获得译码结果并输出。
当第一硬判决结果不满足crc检验时,根据当前迭代次数,进行后续的操作。例如,在当前迭代次数i小于最大迭代次数i时,继续进行迭代译码。在当前迭代次数i等于最大迭代次数i时,根据该crc检验结果,获得指示译码结果可靠性的crc指示信息,然后获得译码结果并输出。
本实施例提供的turbo迭代译码的输出控制方法,通过在第i次迭代译码过程中,根据第一分量译码器的第一输出信息,获取第一硬判决结果,i为大于1的整数,且i小于或等于预设最大迭代次数i;在第i次迭代译码过程中,根据第二分量译码器的第二输出信息,获取第二硬判决结果;判断第一硬判决结果和第二硬判决结果是否相等;实现译码结果是否收敛的初步判断;若第一硬判决结果和第二硬判决结果相等,则对第一硬判决结果或第二硬判决结果进行crc检验,根据crc检验结果,获得译码结果并输出;若第一硬判决结果和第二硬判决结果不相等,则控制第一分量译码器和第二分量译码器重复执行迭代译码过程,从而降低迭代提前终止的可能性。通过两个分量译码器输出的硬判决结果做比较,并且结合crc检验,可降低迭代提前终止的可能,从而提升系统译码性能;本实施例的计算复杂度低,硬件电路实现较简单;本实施例在保证译码性能的基础上,减少了迭代停止运算过程中调用crc的次数,减小译码时延,最终实现了译码速度的提高。
为了更加清楚地描述图3所示的实施例,以下对上述实施例上述图3实施例中的s1301和s1302的过程进行详细说明。
图4为本发明实施例提供的另一种turbo迭代译码的输出控制方法流程示意图。
s110,在第i次迭代译码过程中,根据第一分量译码器的第一输出信息,获取第一硬判决结果。
其中,所述i为大于1的整数,且所述i小于或等于预设最大迭代次数i。
s120,在第i次迭代译码过程中,根据第二分量译码器的第二输出信息,获取第二硬判决结果。
图4中的s110~s120的实现方式可参见图3实施例所示,本实施例此处不再赘述。
s130,判断所述第一硬判决结果和所述第二硬判决结果是否相等;若否,则执行s131,若是,则执行s140。
s131,判断所述i是否等于i,若是,则执行s132。若否,则执行s143。
具体地,判断迭代次数是否达到预设最大迭代次数。若i等于i,表明迭代次数已达到预设最大迭代次数,则转入s132;若i不等于i,表明迭代次数还未到达预设最大迭代次数,则转入s143。
s132,对第二硬判决结果进行crc检验。
crc检验是为了获得指示此时的第二硬判决结果是否收敛的crc指示信息。此时的crc检验不作为停止迭代的判决,而仅仅是译码结果的相关信息。无论s132中第二硬判决结果是否满足crc检验,都继续执行s133。
s133,将检验后的第二硬判决结果确定为译码结果,并转入s150。
s140,判断第一硬判决结果或第二硬判决结果是否满足crc检验;若是,则执行s141,若否,则执行s142。
s141,将检验后的第一硬判决结果或检验后的第二硬判决结果确定为译码结果,并继续执行s150。
本实施例获取的译码结果是删除crc冗余码后的译码结果。应理解的是,本申请中经过crc检验后的信息,都是删除了crc冗余码后的信息。即,检验后的第一硬判决结果和检验后的第二硬判决结果都不含有crc冗余码。
s142,判断所述i是否等于i;若是,则执行s141,若否,则执行s143。
具体地,判断迭代次数是否达到预设最大迭代次数。若i等于i,表明迭代次数已达到预设最大迭代次数,则转入s141;若i不等于i,表明迭代次数还未到达预设最大迭代次数,则转入s143。
s143,控制所述第一分量译码器和所述第二分量译码器重复执行迭代译码过程。
具体地,在下一次迭代译码后,继续执行本实施例的方法s110和s120,直至获取到满足crc检验的译码结果或迭代次数为i时的译码结果并输出。
在每一次迭代译码过程完成时,执行所述s110和s120,如果获取到满足crc检验的译码结果或迭代次数为i时的译码结果,则结束迭代译码过程并将译码结果输出,如果还无法获取到满足crc检验的译码结果或迭代次数为i时的译码结果,则将第二输出信息解交织之后发送至第一分量译码器,作为下一次迭代译码过程中的第一先验信息,继续进行下一次迭代译码过程。
s150,输出译码结果。
本实施例通过在第i次迭代译码过程中,根据第一分量译码器的第一输出信息,获取第一硬判决结果,i为大于1的整数,且i小于或等于预设最大迭代次数i;在第i次迭代译码过程中,根据第二分量译码器的第二输出信息,获取第二硬判决结果;在确定第一硬判决结果和第二硬判决结果相等时,对第一硬判决结果或第二硬判决结果进行crc检验;在确定第一硬判决结果或第二硬判决结果满足crc检验时,将检验后的第一硬判决结果或检验后的第二硬判决结果作为译码结果输出;由此实现了降低译码结果未收敛时过早停止迭代的可能性。在确定第一硬判决结果和第二硬判决结果不相等时,判断当前的迭代次数i是否达到最大迭代次数i,若是,则对第二硬判决结果进行crc检验,将检验后的第二硬判决结果作为译码结果输出,实现输出译码结果的快速判断。本实施例在保证译码性能的前提下缩短了turbo码的译码时延,提高了turbo码的译码效率。
其中,本发明实施例中所述crc检验是指循环冗余检验(cyclicredundancycheck,crc)。发送设备在编码时在每个数据帧后附加crc冗余码,再把这个扩展的数据帧进行turbo编码。接收设备在译码时也执行类似的算法对接收数据进行crc检验,以保证数据传输的正确性和完整性。由于crc检验的漏检率足够低,满足crc检验的译码结果输出可以被认为是可靠的。crc检验具有简单方便、易于硬件实现的特点。
图5为本发明实施例提供的一种turbo迭代译码的输出控制装置结构框图。所述装置包括:
第一硬判决结果获取模块501,用于在第i次迭代译码过程中,根据第一分量译码器的第一输出信息,获取第一硬判决结果,所述i为大于1的整数,且所述i小于或等于预设最大迭代次数i。
第二硬判决结果获取模块502,用于在第i次迭代译码过程中,根据第二分量译码器的第二输出信息,获取第二硬判决结果。
处理模块503,用于判断所述第一硬判决结果和所述第二硬判决结果是否相等;若所述第一硬判决结果和所述第二硬判决结果相等,则对所述第一硬判决结果或所述第二硬判决结果进行crc检验,根据crc检验结果,获得译码结果并输出;若所述第一硬判决结果和所述第二硬判决结果不相等,则控制所述第一分量译码器和所述第二分量译码器重复执行迭代译码过程。
图5所示实施例的装置对应地可用于执行图3所示方法实施例的步骤,其实现原理和技术效果类似,此处不再赘述。
在上述实施例的基础上,处理模块503具体用于:
在所述第一硬判决结果和所述第二硬判决结果相等时,
当所述第一硬判决结果或所述第二硬判决结果满足crc检验时,将检验后的第一硬判决结果或检验后的第二硬判决结果确认为译码结果并输出;
当所述第一硬判决结果或所述第二硬判决结果不满足crc检验时,判断所述i是否等于所述i,若是,则将检验后的第一硬判决结果或检验后的第二硬判决结果确认为译码结果并输出,若否,则继续执行迭代译码过程,直至满足迭代译码终止条件时输出译码结果,所述迭代译码终止条件为i等于i,或者所述第一硬判决结果或所述第二硬判决结果满足crc检验。
在上述实施例的基础上,所述处理模块503还具体用于:
在所述第一硬判决结果和所述第二硬判决结果不相等时,判断所述i是否等于所述i;若是,则对所述第二硬判决结果进行crc检验,将检验后的第二硬判决结果确定为译码结果并输出,若否,则控制所述第一分量译码器和所述第二分量译码器重复执行迭代译码过程,直至满足迭代译码终止条件并输出译码结果,所述迭代译码终止条件为i等于i,或者所述第一硬判决结果或所述第二硬判决结果满足crc检验。
在上述实施例的基础上,所述第一硬判决结果获取模块501用于:对所述第一分量译码器的第一输出信息进行硬判决处理,获取所述第一硬判决结果。第二硬判决结果获取模块502具体用于:对所述第二输出信息解交织获得解交织信息;对所述解交织信息进行硬判决处理,获取所述第二硬判决结果。
本发明还提供了一种turbo译码设备,包括图5所示的turbo迭代译码的输出控制装置。
此外,本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当用户设备的至少一个处理器执行该计算机执行指令时,用户设备执行上述各种可能的方法。
其中,计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于asic中。另外,该asic可以位于用户设备中。当然,处理器和存储介质也可以作为分立组件存在于通信设备中。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。