附图说明
图1是现有二维Turbo乘积码的编码结构示意图;
图2是现有二维Turbo乘积码的译码可纠正错误示意图;
图3是现有二维Turbo乘积码的译码不可纠正错误示意图;
图4是本发明实施例一提供的对Turbo乘积码编码的方法的实现流程示意图;
图5是本发明实施例二提供的对原始信息矩阵采用如现有的二维Turbo乘积码相同的编码方式编码得到的第一码字矩阵示意图;
图6是本发明实施例三提供的对第二信息矩阵进行编码得到第一校验矩阵并将第一校验矩阵置于行校验矩阵之后得到的第二码字矩阵示意图;
图7是本发明实施例四提供的对第三信息矩阵进行编码得到第二校验矩阵并将第二校验矩阵置于第一校验矩阵之后得到的第三码字矩阵示意图;
图8是本发明实施例五提供的对第三信息矩阵进行编码得到第二校验矩阵并将第二校验矩阵置于第一校验矩阵列校验矩阵之下得到的第四码字矩阵示意图;
图9是本发明实施例六提供的对Turbo乘积码编码的装置的结构示意图的结构示意图;
图10是本发明实施例七提供的对Turbo乘积码编码的装置的结构示意图的结构示意图;
图11是本发明实施例八提供的对Turbo乘积码编码的装置的结构示意图的结构示意图;
图12-a是本发明实施例九提供的对Turbo乘积码编码的装置的结构示意图的结构示意图;
图12-b是本发明实施例十提供的对Turbo乘积码编码的装置的结构示意图的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例提供一种对Turbo乘积码编码的方法,所述方法包括:对原始信息矩阵采用如现有的二维Turbo乘积码相同的编码方式编码得到第一码字矩阵,所述第一码字矩阵包括原始信息矩阵块和位于所述原始信息矩阵块右边的行校验矩阵块;将所述第一码字矩阵中的原始信息矩阵块进行交织得到第二信息矩阵块;对所述第二信息矩阵块进行编码得到第一校验矩阵块并将所述第一校验矩阵块置于所述行校验矩阵块右边得到第二码字矩阵。本发明实施例还提供相应的对Turbo乘积码编码的装置。以下分别进行详细说明。
请参阅附图4,是本发明实施例一提供的对Turbo乘积码编码的方法的实现流程示意图,主要包括以下步骤S401至步骤S403,详细说明如下:
S401,对原始信息矩阵编码得到第一码字矩阵。具体的编码方式可以采用二维Turbo乘积码等实现。
在本发明实施例中,对原始信息矩阵编码得到的第一码字矩阵,可以是采用如现有的二维Turbo乘积码相同的编码方式编码,也可以采用其他编码方式;现有的二维Turbo乘积码的编码方式在本申请的说明书的背景技术部分已经说明,此处不做赘述。第一码字矩阵如附图5所示,第一码字矩阵包括信息矩阵块、位于所述信息矩阵块右边的行校验矩阵块、位于所述信息矩阵块之下的列校验矩阵块以及位于行校验矩阵块向下延伸和列校验矩阵向右延伸交叉的部位的校验位校验矩阵块,其中,信息矩阵块包括原始信息矩阵块或者所述原始信息矩阵块经交织后得到的信息矩阵块,原始信息矩阵是由原始信息构成的矩阵,而原始信息即发送端需要发送、编码而接收端真正需要的信息净荷,其在编码之前通常没有经过交织、编码等复杂的处理,位于某个矩阵中的原始信息矩阵就是原始信息矩阵块,行校验矩阵块是对信息矩阵块的kr个行所包含的信息分别进行编码时产生的校验信息构成的矩阵块,列校验矩阵块是对信息矩阵块的kc个列所包含的信息分别进行编码时产生的校验信息构成的矩阵块,而校验位校验矩阵块则是对行校验矩阵块和列校验矩阵块所包含的信息进行编码时产生的校验信息构成的矩阵块。若信息矩阵块是kr×kc阶矩阵块,则行校验矩阵块是kr×(nc-kc)阶矩阵块,列校验矩阵块是(nr-kr)×kc阶矩阵块,校验位校验矩阵块是(nr-kr)×(nc-kc)阶矩阵块。
S402,将第一码字矩阵中的原始信息矩阵块进行交织得到第二信息矩阵块。
与现有技术对Turbo乘积码的处理方式不同,在本发明实施例中,在原始信息矩阵块经过编码得到第一码字矩阵后,继续对第一码字矩阵中的原始信息矩阵块进行交织。由于对原始信息矩阵块进行了交织,客观上对使用硬译码算法进行译码时一些不可纠正的错误图样进行了扰乱、破坏,从而使得这些不可纠正的错误图样变成可纠正的错误图样。
至于对原始信息矩阵块进行交织时所采用的交织方法,可以是按照对角线方向进行交织,也可以是其他的交织方法,本发明对此不做限制;原则上,只要对使用硬译码算法进行译码时一些不可纠正的错误图样能够进行扰乱、破坏的交织方法,本发明都可以使用。
S403,对第二信息矩阵块进行编码得到第一校验矩阵块并将第一校验矩阵块置于行校验矩阵块右边得到第二码字矩阵。
对第二信息矩阵块进行编码可以是现有技术中的任何一种编码方式。假设对第二信息矩阵块进行编码得到的第一校验矩阵块是kr×(ni-ki)阶矩阵块,经步骤S403得到的第二码字矩阵如附图6所示。
在附图6所示的第二码字矩阵中,第一校验矩阵块向下延伸与校验位校验矩阵块向右延伸交叉的部位属于空缺部分,其大小与(nr-kr)×(ni-ki)阶矩阵可以存储的信息相同。在本发明实施例中,第一校验矩阵向下延伸与校验位校验矩阵向右延伸交叉的部位可以填充第一开销比特。例如,为了进一步降低误码率,提高可靠性,可以对第一校验矩阵块进行编码,将编码得到的校验信息即第一校验矩阵块的校验位信息存储在第一校验矩阵块向下延伸与校验位校验矩阵块向右延伸交叉的部位。
从上述附图4示例的对Turbo乘积码编码的方法可知,由于对经过编码得到的第一码字矩阵中的原始信息矩阵进行了交织,使得在使用硬译码算法进行译码时,一些不可纠正的错误图样被打乱、破坏,从而能够显著降低硬译码算法的误码率,改善Turbo乘积码的硬译码性能。
为了更加清楚地说明附图4示例的对Turbo乘积码编码的方法,以下举例以一个(15,11,1)BCH码为子码进行说明,该码的纠错能力为1,分别在行、列和对角线方向进行编码和译码。首先,根据生成多项式以及矩阵初等变换,可以得到一个系统码的编码矩阵G为:
校验矩阵H为:
假设原始信息矩阵K为:
对原始信息矩阵K采用如现有的二维Turbo乘积码相同的编码方式,例如,通过行与列编码得到的第一码字矩阵C'为:
然后,对第一码字矩阵C'中原始信息矩阵块进行交织,得到第二信息矩阵块K为:
通过对上述第二信息矩阵块K进行编码得到第一校验矩阵块P'为:
最后,将第一校验矩阵块P'置于第一码字矩阵C'中的行校验矩阵块之后得到第二码字矩阵C为:
对上述第二码字矩阵C,在第一校验矩阵块P'向下与校验位校验矩阵块向后延伸交叉的部位,即上述第二码字矩阵C中“*”部分填充第一开销比特。
在接收端,假设接收到的第二码字矩阵C经过硬判决后,检测出存在7处错误,其码字矩阵R如下所示:
在上述码字矩阵R中的7处错误中包含着不可纠正错误图样(见矩阵R中加重的元素)。
通过Turbo乘积码的硬译码算法,进行第一次行和列的译码,得到的译码结果R1'如下:
通过第一次行和列的译码,可以发现,第一次译码纠正了3个错误。由于不可纠正错误图样的存在,在译码过程中,信息矩阵块部分产生了4个错误。
为了纠正上述4个错误,按照与对第一码字矩阵C'中原始信息矩阵块交织时相同的交织方式(例如,对角线方向交织)对的R1'信息矩阵块进行交织,然后进行译码。由于原先不可纠正的错误图样已经通过交织被打乱,不再为不可纠正错误,因此,此次译码纠正了位于信息矩阵块中的4个错误,译码的结果R″1如下:
而后,进入迭代译码的第二次译码,此次译码可纠正全部错误,得到正确的接收矩阵,此时,提取矩阵中的信息矩阵块,得到发送端传送的原始信息K。
对于附图4示例的方法,由于对第一码字矩阵中的原始信息矩阵进行交织后,接收端在使用硬译码算法进行译码时仍然有可能存在不可纠错图样,这种情况在低信噪比、高误码率时出现的概率更大。为了解决这一问题,在本发明实施例中,对第二信息矩阵块进行编码得到第一校验矩阵块并将第一校验矩阵块置于行校验矩阵块右边得到第二码字矩阵之后,所述方法还包括:将第二信息矩阵块进行交织得到第三信息矩阵块;对第三信息矩阵块进行编码得到第二校验矩阵块并将第二校验矩阵块置于第一校验矩阵块之后得到第三码字矩阵,或者,将第二校验矩阵块置于列校验矩阵块之下得到第四码字矩阵,其中,第三码字矩阵的结构如附图7所示,第四码字矩阵的结构如附图8所示。
需要说明的是,对第二信息矩阵块进行编码得到第一校验矩阵块并将第一校验矩阵块置于行校验矩阵块之后得到第二码字矩阵之后,将第二信息矩阵块进行交织不限于只进行一次,即,可以根据实际情况,例如,在得到第三信息矩阵块后,接收端在使用硬译码算法进行译码时仍然存在不可纠错图样,此时,可以对第三信息矩阵块进行再一次的交织。
如前述对第二码字矩阵处理的方式类似,在本发明实施例中,对于第三码字矩阵,在第二校验矩阵块向下延伸与第一交叉部位向右延伸交叉的部位填充第二开销比特,其中,第一交叉部位为第一校验矩阵块向下延伸与校验位校验矩阵块向右延伸交叉的部位;或者,对第四码字矩阵,在第二交叉部位或者在第二交叉部位向右延伸与第一交叉部位向下延伸交叉的部位填充第三开销比特,其中,第二交叉部位为第二校验矩阵块向右延伸与校验位校验矩阵块向下延伸交叉的部位。
请参阅附图9,是本发明实施例六提供的对Turbo乘积码编码的装置的结构示意图。为了便于说明,附图9仅示出了与本发明实施例相关的部分。附图9示例的对Turbo乘积码编码的装置可以是附图4示例的对Turbo乘积码编码的方法的执行主体。附图9示例的对Turbo乘积码编码的装置主要包括第一编码模块901、第一交织模块902和第二编码模块903,其中:
第一编码模块901,用于对原始信息矩阵编码得到第一码字矩阵,其中,第一码字矩阵包括原始信息矩阵块和位于所述原始信息矩阵块右边的行校验矩阵块;
第一交织模块902,用于将第一码字矩阵中的原始信息矩阵块进行交织得到第二信息矩阵块;
第二编码模块903,用于对第二信息矩阵块进行编码得到第一校验矩阵块并将第一校验矩阵块置于行校验矩阵块右边得到第二码字矩阵。
需要说明的是,以上附图9示例的对Turbo乘积码编码的装置的实施方式中,各功能模块的划分仅是举例说明,实际应用中可以根据需要,例如相应硬件的配置要求或者软件的实现的便利考虑,而将上述功能分配由不同的功能模块完成,即将所述对Turbo乘积码编码的装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。而且,实际应用中,本实施例中的相应的功能模块可以是由相应的硬件实现,也可以由相应的硬件执行相应的软件完成,例如,前述的第一编码模块,可以是具有执行前述对原始信息矩阵编码得到第一码字矩阵的硬件,例如第一编码器,也可以是能够执行相应计算机程序从而完成前述功能的一般处理器或者其他硬件设备;再如前述的第一交织模块,可以是执行将第一码字矩阵中的原始信息矩阵块进行交织得到第二信息矩阵块的硬件,例如第一交织器,也可以是能够执行相应计算机程序从而完成前述功能的一般处理器或者其他硬件设备(本说明书提供的各个实施例都可应用上述描述原则)。
附图9示例的对Turbo乘积码编码的装置中,第一码字矩阵还包括位于信息矩阵块之下的列校验矩阵块以及位于行校验矩阵块之下的校验位校验矩阵块,其中,信息矩阵块包括原始信息矩阵块或者原始信息矩阵块经交织后得到的信息矩阵块,此时,附图9示例的对Turbo乘积码编码的装置还可以包括第一空余比特处理模块1001,如附图10所示本发明实施例七提供的对Turbo乘积码编码的装置。第一空余比特处理模块1001用于在第一校验矩阵块向下延伸与校验位校验矩阵块向右延伸交叉的部位填充第一开销比特。
附图9示例的对Turbo乘积码编码的装置还可以包括第二交织模块1101和第三编码模块1102,如附图11所示本发明实施例八提供的对Turbo乘积码编码的装置,其中:
第二交织模块1101,用于第二编码模块903对第二信息矩阵块进行编码得到第一校验矩阵块并将第一校验矩阵块置于行校验矩阵块右边得到第二码字矩阵之后,将第二信息矩阵块进行交织得到第三信息矩阵块;
第三编码模块1102,用于对第三信息矩阵块进行编码得到第二校验矩阵块并将第二校验矩阵块置于第一校验矩阵块右边得到第三码字矩阵,或者,将第二校验矩阵块置于列校验矩阵块之下得到第四码字矩阵。
附图11示例的对Turbo乘积码编码的装置还可以包括第二空余比特处理模块1201或第三空余比特处理模块1202,如附图12-a或附图12-b所示本发明实施例九或十提供的对Turbo乘积码编码的装置,其中:
第二空余比特处理模块1201,用于在第三码字矩阵中,在第二校验矩阵块向下延伸与第一交叉部位向右延伸交叉的部位填充第二开销比特,其中,第一交叉部位为第一校验矩阵块向下延伸与校验位校验矩阵块向右延伸交叉的部位;
第三空余比特处理模块1202,用于在第四码字矩阵中,在第二交叉部位或者在第二交叉部位向右延伸与第一交叉部位向下延伸交叉的部位填充第三开销比特,其中,第二交叉部位为第二校验矩阵块向右延伸与校验位校验矩阵块向右延伸交叉的部位。
当然,本领域的技术人员还可以依据实际的继续进行交织,每进行一次的交织就获得多一个额外的校验矩阵块,将多出的校验矩阵块放置在第一行行方向的最后或者第一列列方向的最后,然后进行交叉操作,以获得交叉部分,放置其他的开销比特。以下以图8的基础上进行说明:进行n+m次的交织(n,m均大于1),获得额外的n-1个行方向的第一校验矩阵块和m-1个列方向的第二校验矩阵块,所有的矩阵块交叉,再将交叉得到的部分作为填入开销比特的空间。
需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,其带来的技术效果与本发明方法实施例相同,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁盘或光盘等。
以上对本发明实施例所提供的对Turbo乘积码编码的方法和装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。