CN109245777B - 一种阶梯码解码方法和阶梯码解码装置 - Google Patents
一种阶梯码解码方法和阶梯码解码装置 Download PDFInfo
- Publication number
- CN109245777B CN109245777B CN201710555986.2A CN201710555986A CN109245777B CN 109245777 B CN109245777 B CN 109245777B CN 201710555986 A CN201710555986 A CN 201710555986A CN 109245777 B CN109245777 B CN 109245777B
- Authority
- CN
- China
- Prior art keywords
- sub
- code
- decoded
- decoding
- code blocks
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
- H03M13/2909—Product codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/27—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2939—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using convolutional codes
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明公开了一种阶梯码解码方法和阶梯码解码装置,其中所述方法包括:步骤1,获取滑动窗的长度L,按照接收时间由前到后的顺序,连续获取L个所述子码块作为所述滑动窗中的待解码子码块,L为正整数;步骤2,将所述待解码子码块分组后分别进行解码,根据解码结果更新所述待解码子码块获取更新子码块,并输出前M个所述更新子码块作为解码结果,M小于L;步骤3,将所述滑动窗向后滑动M个所述子码块的长度,将所述滑动窗内剩余的所述更新子码块与滑入所述滑动窗的所述子码块,重新组合为所述滑动窗内的所述待解码子码块,并返回步骤2,直至输出所有所述子码块的解码结果。本发明降低了硬件电路的实现复杂度,减小了解码的时间延迟。
Description
技术领域
本发明涉及光通信FEC技术领域,尤其涉及一种阶梯码解码方法和阶梯码解码装置。
背景技术
前向纠错(Forward Error Correction,FEC)技术目前已经被广泛地应用于光通信***中,以达到改善***的误码率性能、提高***通信的可靠性的目的。其中,阶梯码是一种新型的FEC码型,它结合了卷积码及乘积码的思想,阶梯码的编码方式与乘积码的编码方式类似,同时任意相邻的两个子码块之间都有很强的相关性,也就是任意相邻的两个阶梯码子码块都可以组合成一个完整的bch码块单元,这样整个阶梯码可以看作一个长度趋于无穷的链式结构。在阶梯码的解码方式中,每完成一个阶梯码子码块的解码输出,需要进行来回反复多次的解码过程,而且要想获取较高的解码性能则需要增加解码次数,导致硬件电路实现复杂度高、功耗大、解码延迟大,同时解码后的性能也较差。
发明内容
本发明提供一种阶梯码解码方法和阶梯码解码装置,用以解决现有技术中用于FEC码解码的硬件电路实现复杂度高、功耗大、解码延迟大且解码性能差的问题。
依据本发明的一个方面,提供一种阶梯码解码方法,包括:
步骤1,获取滑动窗的长度L,按照接收时间由前到后的顺序,在接收到的子码块中,连续获取L个所述子码块作为所述滑动窗中的待解码子码块,其中,L为正整数;
步骤2,将所述待解码子码块分组后分别进行解码,根据解码结果更新所述待解码子码块,获取更新子码块,并输出前M个所述更新子码块作为解码结果,其中M小于L;
步骤3,将所述滑动窗按照所述接收时间,向后滑动M个所述子码块的长度,将所述滑动窗内剩余的所述更新子码块与滑入所述滑动窗的所述子码块,重新组合为所述滑动窗内的所述待解码子码块,并返回步骤2,直至输出所有所述子码块的解码结果。
本发明还提供一种阶梯码解码装置,包括:
待解码子码块获取模块,用于获取滑动窗的长度L,按照接收时间由前到后的顺序,在接收到的子码块中,连续获取L个所述子码块作为所述滑动窗中的待解码子码块,其中,L为正整数;
解码结果输出模块,用于将所述待解码子码块分组后分别进行解码,根据解码结果更新所述待解码子码块获取更新子码块,并输出前M个所述更新子码块作为解码结果,其中M小于L;
滑动模块,用于将所述滑动窗按照所述接收时间,向后滑动M个所述子码块的长度,将所述滑动窗内剩余的所述更新子码块与滑入所述滑动窗的所述子码块,重新组合为所述滑动窗内的所述待解码子码块,并将所述待解码子码块输入所述解码结果输出模块。
本发明所提供的阶梯码解码方法,通过将所述滑动窗内的待解码子码块进行分组后分别解码,根据解码结果更新所述待解码子码块获取更新子码块后,输出M个更新子码块作为解码结果,并将所述滑动穿向后滑动M个子码块后重复上述步骤。通过分组后分别解码输出更新子码块,再将所述滑动窗滑动后重复分组及解码步骤,依次输出更新子码块作为解码结果,每完成一个阶梯码子码块的解码输出,只需要进行较少次数的迭代解码过程,大大降低了硬件电路的实现复杂度,减小了解码的时间延迟,并提高了解码性能。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明方法实施例1中的阶梯码解码方法的流程图;
图2为本发明方法实施例2中的阶梯码解码方法分组解码的流程图;
图3为本发明方法实施例3中的阶梯码解码方法的流程图;
图4为本发明方法实施例4中的阶梯码硬解码的初始化解码方法的流程图;
图5为本发明方法实施例4中的阶梯码硬解码的解码方法的流程图;
图6为本发明方法实施例5中的阶梯码软解码的初始化解码方法的流程图;
图7为本发明方法实施例5中的阶梯码软解码的解码方法的流程图;
图8为本发明方法实施例6中的阶梯码软硬结合解码的初始化解码方法的流程图;
图9为本发明方法实施例6中的阶梯码软硬结合解码的解码方法的流程图;
图10为本发明方法实施例7中的阶梯码解码装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1为本发明方法实施例1中的阶梯码解码方法的流程图,如图1所示的本发明方法实施例1中的阶梯码解码方法,包括:
步骤1,获取滑动窗的长度L,按照接收时间由前到后的顺序,在接收到的子码块中,连续获取L个所述子码块作为所述滑动窗中的待解码子码块,其中,L为正整数。
具体地,所述滑动窗用于在阶梯码的解码过程中,在待解码子码块中前后滑动,并辅助一定的解码方法进行解码。所述滑动窗的长度L可以根据需求进行预先的设定。在本实施例所提供的方法中,按照接收时间由前到后的顺序连续获取L个所述子码块,作为所述滑动窗内的待解码子码块。所述L可设定为大于2的正整数,以保证完整的完成本方法。
步骤2,将所述待解码子码块分组后分别进行解码,根据解码结果更新所述待解码子码块,获取更新子码块,并输出前M个所述更新子码块作为解码结果,其中M小于L。
具体地,将所述滑动窗内的所述待解码子码块进行分组后分别进行解码,由于是分别进行解码,可将所述各分组内的待解码子码块按照一定的顺序分别解码,也可以同时进行解码,但各所述分组之间的解码过程没有关联。
所述输出前M个所述更新子码块,为根据接收时间由前到后的顺序,在所述滑动窗内的最先接收到的M个所述待解码子码块对应的所述更新子码块。由于本步骤直接输出前M个所述更新子码块作为解码结果,在满足解码的速率的要求和预期的准确性需求的前提下,应将M值设定的尽量小。所述M可设定为小于100以内的正整数。
步骤3,将所述滑动窗按照所述接收时间,向后滑动M个所述子码块的长度,将所述滑动窗内剩余的所述更新子码块与滑入所述滑动窗的所述子码块,重新组合为所述滑动窗内的所述待解码子码块,并返回步骤2,直至输出所有所述子码块的解码结果。
具体地,在输出M个所述更新子码块后,将所述滑动窗向后滑动M个所述子码块,将滑动后依然位于所述滑动窗内的剩余的更新子模块,和新滑入的所述子码块,重新作为所述滑动窗的待解码子码块,返回步骤2进行分组解码,并又输出M个更新子码块作为解码结果,直至输出所述子码块对应的所有更新子码块作为解码结果,或根据需求,将上述迭代解码步骤停止于设定好的子码块位置。
本发明所提供的阶梯码解码方法,通过将所述滑动窗内的待解码子码块进行分组后分别解码,根据解码结果更新所述待解码子码块获取更新子码块后,输出M个更新子码块作为解码结果,并将所述滑动窗向后滑动M个子码块后重复上述步骤。通过分组后分别解码输出更新子码块,再将所述滑动窗滑动后重复分组及解码步骤,依次输出更新子码块作为解码结果,每完成一个阶梯码子码块的解码输出,只需要进行较少次数的迭代解码过程,大大降低了硬件电路的实现复杂度,减小了解码的时间延迟,并提高了解码性能。
在其中一个实施例中,由于需要对所述滑动窗内的待解码子码块进行分组,且由于阶梯码的特点,所述L优选为偶数,以便于本实施例中的所述分组包括将所述待解码子码块进行两两分组。
在其中一个实施例中,为保证解码结果的准确率,M优选为1,即每次输出1个更新子码块作为解码结果,滑动窗向后滑动一个子码块进行迭代解码。
图2为本发明方法实施例2中的阶梯码解码方法中分组解码的流程图,如图2所示的本发明方法实施例2中的阶梯码解码方法,为所述实施例1的中“所述将所述待解码子码块分组后分别进行解码,根据解码结果更新所述待解码子码块”的优选步骤,包括:
步骤10,从第一个所述待解码子码块开始,以一个为间隔将所述待解码子码块进行转置,获取待解码转置子码块。
具体地,根据阶梯码的特点,在两两分组进行解码时,需要将其中一个子码块进行转置,本实施例所提供的方法,以一个所述待解码子码块为间隔,从第一个开始进行转置,获取待解码转置子码块。
步骤20,将所述待解码转置子码块和与相邻的后接收到的所述待解码子码块拼接后作为一组进行分组,获取待解码组。
具体地,在获取到的待解码组中,先接收到的所述待解码子码块进行了转置,后接收到的待解码子码块没有进行转置。
步骤30,分别解码所述待解码组,根据解码结果更新所述待解码子码块,获取更新子码块。
具体地,将各所述待解码组分别逐行进行解码,且各所述待解码组之间的解码没有任何关联,可以根据需求任意设定解码的顺序或同时进行解码。需要说明的是,本实施例主要完成将所述待解码子码块进行分组以及解码,其中分组的步骤,也可以采用将所述待解码子码块按照所述接收时间,以相邻的两个所述待解码子码块作为一组进行分组,获取待解码组,且一个所述待解码子码块只属于一个所述待解码组,然后再将所述待解码组中先接收到的所述待解码子码块进行转置后,再进行后续的解码步骤。
本实施例所提供的阶梯码解码方法中,将所述滑动窗内的待解码子码块按照接收时间由前到后的顺序进行两两分组后,分别解码并更新待解码子码块。由于对待解码子码块进行了分组后分别解码,大大提高了阶梯码的解码速率。
在其中一个实施例中,所述分别解码所述待解码组,包括当所述待解码组中的所述待解码子码块是经过硬判的码时,利用线性分组码进行解码;否则,利用软解码算法进行解码。本实施例针对不同的待解码子码块,支持不同的解码方式,提高了本发明所提供的阶梯码解码的适用范围。
在其中一个实施例中,所述连续获取L个所述子码块作为所述滑动窗中的待解码子码块,包括:当获取到的第一个子码块为所有所述子码块中第一个接收到的所述子码块时;将全零码块补充为所述滑动窗中的第一个所述待解码子码块,并将所述滑动窗中的第L个所述待解码子码块滑出所述滑动窗;所述根据解码结果更新所述待解码子码块,包括:根据解码结果更新除所述全零码块外的所述待解码子码块。本实施例给出了当所述滑动窗中第一个接收到的待解码子码块,为所有所述子码块中第一个接收到的子码块时,需要在所述滑动窗的第一个位置补充一个全零码,以便对第一个所述待解码子码块进行解码。本实施例通过在第一个子码块前补充全零码的方式,解决了第一个子码块分组后的解码问题,提高了本发明所提供的阶梯码的适用范围。
图3为本发明方法实施例3中的阶梯码解码方法的流程图,如图3所示的本发明方法实施例3中的阶梯码解码方法,是在本发明实施例1步骤1之前的优选步骤,包括:
步骤100,从接从接收到第一个所述子码块开始,到接收到第L个所述子码块为止,按顺序将相邻的两个所述子码块作为一组进行分组,获取待解码初始组,所述一个子码块只属于所述一个待解码初始组,其中,当接收后解码到的子码块个数为奇数时,补充所述全零码与所述子码块进行分组。
具体地,在实施例1中的步骤1开始之前,当接收到的子码块的数量不够L个时,为了提高阶梯码的解码准确度,本实施例将接收到的子码块进行分组,当接收到第一个子码块时,补充全零码组成两个一组,当接收到第二个子码块时,再将第一个和第二个子码块组成两个一组,接收到第三个子码块时,将全零码和第一个组成一组,并将第二个和第三个组成一组,以此类推。
其中,在每个待解码初始组中,先接收到的所述子码块需要进行转置。
步骤200,解码所述待解码初始组,并根据解码结果更新所述子码块后返回步骤100,直至接收到第L个所述子码块。
具体地,从接收到第一个子码块开始,与全零码组成第一个待解码初始组后,解码所述待解码初始组,并能根据所述解码结果更新除所述第一个子码块,全零码不更新。当接收到第二个子码块时,利用更新后的第一个子码块和接收到的第二个子码块组成待解码初始组后,进行解码,并更新第一个和第二个子码块,以此类推,直至接收到第L个所述子码块。
本实施例所提供的阶梯码解码方法,在接收到预设的滑动窗的长度L个子码块之前,利用两个一组的方式,将接收到的子码块进行初始化的解码过程,通过所述初始化的解码过程,在后续的解码过程开始之前,已经将接收到的子码块进行了完整的迭解码,从而降低本发明所提供的阶梯码的解码误码率。
下面分别以本发明的硬解码、软解码、软硬结合解码的初始化解码,以及本发明的硬解码、软解码、软硬结合解码的正常解码过程进行举例说明。
图4为本发明方法实施例4中的阶梯码硬解码的初始化解码方法的流程图,以L=6为例,接收到的阶梯码是经过硬判的码,则解码过程直接进行线性分组码硬解码,如图4所示的本发明方法实施例4中的阶梯码硬解码的初始化解码方法包括:
(1)当接收到第1个子码块B1的时候,对[BT 0,B1](其中T为转置的意思)进行解码(图4左图中实线箭头1所示),并只更新B1码块中的信息。
(2)当接收到第2个子码块B2的时候,对[BT 1,B2]进行解码(图4左图中实线箭头2所示),并同时更新B1及B2码块中的信息。
(3)当接收到第3个子码块B3的时候,对[BT 0,B1]及[BT 2,B3]进行解码(图4左图中实线箭头3、4所示),并同时更新B1、B2及B3码块中的信息。
(4)当接收到第4个子码块B4的时候,对[BT 1,B2]及[BT 3,B4]进行解码(图4左图中实线箭头5、6所示),并同时更新B1、B2、B3及B4码块中的信息。
(5)当接收到第5个子码块B5的时候,对[BT 0,B1]、[BT 2,B3]及[BT 4,B5]进行解码(图4左图中实线箭头7、8、9所示),并同时更新B1、B2、B3、B4及B5码块中的信息。
如果算上子码块B0,滑动窗中已经有了6个子码块(图4左图中斜线部分所示),但是由于子码块B0是阶梯码约定好的全0子码块,不是真正的接收码块,所以初始化解码完成后,并没有解码输出。接下来接收到的新码块是B6子码块,滑动窗将向右滑动1个码块的长度(图4右图中斜线部分所示)。滑动窗新位置里面包括的6个子码块分别是B1、B2、B3、B4、B5及B6。实际实现的时候,滑动窗对应电路中的缓存装置。下面结合图5来阐述本发明方法实施例4中的阶梯码硬解码的解码方法。
图5为本发明方法实施例4中的阶梯码硬解码的解码方法的流程图,以L=6为例,接收到的阶梯码是经过硬判的码,则解码过程直接进行线性分组码硬解码,如图5所示的本发明方法实施例4中的阶梯码硬解码的解码方法,包括:
(1)将滑动窗中6个子码块(图5左图中斜线部分所示)以相邻两个位单位分成3组:[BT 1,B2]、[BT 3,B4]及[BT 5,B6](其中T为转置的意思);为了后续的表述方便,将这些组分别记为:B(1)=[BT 1,B2]、B(2)=[BT 3,B4]、B(3)=[BT 5,B6]。
(2)对B(1)、B(2)及B(3)码组单元分别逐行进行解码(图5左图中虚线箭头1、2、3所示);同时更新B(1)、B(2)及B(3)码块中两个子码块的信息,然后输出B(1)中的B1。
B1、B2、B3、B4、及B5经历了初始化解码的过程后已经经历了几次解码,这样输出的B1出则经历了3次迭代解码(1次完整的迭代解码包括1次横向及1次纵向解码)。
(3)对滑动窗向后滑动1个码块长度,则滑动窗新位置里面包括的6个阶梯码子码块分别是:B2、B3、B4、B5、B6及B7(图5右图中斜线部分所示);其中B2、B3、B4、B5、B6为上次滑动窗中解码后更新的码块数据,B7为新加入滑动窗中的数据。将这6个子码块以相邻两个位单位分成3组:B(1)=[BT 2,B3]、B(2)=[BT 4,B5]、B(3)=[BT 6,B7];
(4)对B(1)、B(2)及B(3)码组单元分别进行解码(图5右图中虚线箭头4、5、6所示);同时更新B(1)、B(2)及B(3)码块中的信息,并输出B(1)中的B2;这样输出的B2同样经历了3次迭代解码。
(5)重复步骤(3)及步骤(4)中的操作,进而完成B3、B4、…及后面所有接收到的阶梯码子码块的解码输出,所有的输出都经历了3次迭代解码。
在本实施例中,每完成一个阶梯码子码块的解码输出,只需要进行3次的码块迭代解码过程。因此在硬件电路实现复杂度上大大降低;同时也大大降低了解码的时间延迟,有利于网络的metro应用;另外,在性能上有较大的提升。
图6为本发明方法实施例5中的阶梯码软解码的初始化解码方法的流程图,取L=4,接收到的是没有经过硬判的软信息,则解码方法则可以选择各种软解码算法。如图6所示的本发明方法实施例5中的阶梯码软解码的初始化解码方法,包括:
(1)当接收到第1个子码块B1的时候,对[BT 0,B1](其中T为转置的意思)进行软解码(图6左图中实线箭头1所示),并只更新B1码块中的软信息;
(2)当接收到第2个子码块B2的时候,对[BT 1,B2]进行软解码(图6左图中实线箭头2所示),并同时更新B1及B2码块中的软信息;
(3)当接收到第3个子码块B3的时候,对[BT 0,B1]及[BT 2,B3]进行软解码(图6左图中实线箭头3、4所示),并同时更新B1、B2及B3码块中的软信息;
如果算上子码块B0,滑动窗中已经有了4个子码块(图6左图中斜线部分所示),但是由于子码块B0是阶梯码约定好的全0子码块,不是真正的接收码块,所以初始化解码完成后,并没有解码输出。接下来接收到的新码块是B4子码块,滑动窗将向右滑动1个码块的长度(图6右图中斜线部分所示)。滑动窗新位置里面包括的4个子码块分别是B1、B2、B3及B4。实际实现的时候,滑动窗对应电路中的缓存装置。
图7为本发明方法实施例5中的阶梯码软解码的解码方法的流程图,接收到的是没有经过硬判的软信息,则解码方法则可以选择各种软解码算法。如图7所示的本发明方法实施例5中的阶梯码软解码的解码方法,包括:
(1)将滑动窗中4个子码块(图7左图中斜线部分所示)以相邻两个位单位分成2组:[BT 1,B2]、[BT 3,B4](其中T为转置的意思);为了后续的表述方便,将这些组分别记为:B(1)=[BT 1,B2]、B(2)=[BT 3,B4]。
(2)对B(1)、B(2)码组单元分别逐行进行软解码(图7左图中虚线箭头1、2所示);同时更新B(1)、B(2)码块中两个子码块的信息,然后将B(1)中的B1软信息作硬判后输出;
B1、B2、B3、B4经历了初始化软解码的过程后已经经历了几次解码,输出的B1出则经历了2次迭代解码(1次完整的迭代解码包括1次横向及1次纵向解码)。
(3)对滑动窗向后滑动1个码块长度,则滑动窗新位置里面包括的4个阶梯码子码块分别是:B2、B3、B4、B5(图7右图中斜线部分所示);其中B2、B3、B4为上次滑动窗中解码后更新的码块数据,B5为新加入滑动窗中的数据。将这4个子码块以相邻两个位单位分成2组:B(1)=[BT 2,B3]、B(2)=[BT 4,B5]。
(4)对B(1)、B(2)码组单元分别进行软解码(图7右图中虚线箭头3、4所示);同时更新B(1)、B(2)码块中的软信息,并将B(1)中的B2软信息作硬判后输出;输出的B2同样经历了2次迭代解码。
(5)重复步骤(3)及步骤(4)中的操作,进而完成B3、B4、…及后面所有接收到的阶梯码子码块的解码输出,所有的输出都经历了2次迭代解码。
图8为本发明方法实施例6中的阶梯码软硬结合解码的初始化解码方法的流程图,L=6,本实施例接收到的是没有经过硬判的软信息,则解码方法则硬解码算法结合软解码算法的混合解码,如图8所示的本发明方法实施例6中的阶梯码软硬结合解码的初始化解码方法,包括:
(1)当接收到第1个子码块B1的时候,对[BT 0,B1](其中T为转置的意思)进行软解码(图8左图中实线箭头1所示),并只更新B1码块中的软信息。
(2)当接收到第2个子码块B2的时候,对[BT 1,B2]进行软解码(图8左图中实线箭头2所示),并同时更新B1及B2码块中的软信息。
(3)当接收到第3个子码块B3的时候,对[BT 0,B1]及[BT 2,B3]进行软解码(图8左图中实线箭头3、4所示),并同时更新B1、B2及B3码块中的软信息。
(4)当接收到第4个子码块B4的时候,对[BT 1,B2]及[BT 3,B4]进行软解码(图8左图中实线箭头5、6所示),并同时更新B1、B2、B3及B4码块中的软信息。
(5)当接收到第5个子码块B5的时候,对[BT 0,B1]、[BT 2,B3]及[BT 4,B5]进行软解码(图8左图中实线箭头7、8、9所示),并同时更新B1、B2、B3、B4及B5码块中的软信息。
算上子码块B0,滑动窗中已经有了6个子码块(图8左图中斜线部分所示),但是由于子码块B0是阶梯码约定好的全0子码块,不是真正的接收码块,所以初始化解码完成后,并没有解码输出。接下来接收到的新码块是B6子码块,此时滑动窗将向右滑动1个码块的长度(图8右图中斜线部分所示)。此时滑动窗新位置里面包括的6个子码块分别是B1、B2、B3、B4、B5及B6。实际实现的时候,滑动窗对应电路中的缓存装置。
图9为本发明方法实施例6中的阶梯码软硬结合解码的解码方法的流程图,L=6,本实施例接收到的是没有经过硬判的软信息,则解码方法则硬解码算法结合软解码算法的混合解码,如图9所示的本发明方法实施例6中的阶梯码软硬结合解码的解码方法,包括:
(1)将滑动窗中6个子码块(图9左图中斜线部分所示)以相邻两个位单位分成2组:[BT 1,B2]、[BT 3,B4]、[BT 5,B6](其中T为转置的意思);为了后续的表述方便,将这些组分别记为:B(1)=[BT 1,B2]、B(2)=[BT 3,B4]、B(3)=[BT 5,B6]。
(2)对B(1)码组单元中的数据先进行硬判,然后分别逐行进行硬解码(图9左图中粗虚线箭头1所示),同时更新B(1)码块中两个子码块的硬信息;对B(2)、B(3)码组单元分别逐行进行软解码(图9左图中细虚线箭头2、3所示),同时更新B(1)、B(2)码组中两个子码块的信息;然后输出B(1)中的硬信息B1。
(3)对滑动窗向后滑动1个码块长度,则滑动窗新位置里面包括的6个阶梯码子码块分别是:B2、B3、B4、B5、B6、B7(图9右图中斜线部分所示);其中B2、B3、B4、B5、B6为上次滑动窗中解码后更新的码块数据,B7为新加入滑动窗中的数据。将这6个子码块以相邻两个位单位分成3组:B(1)=[BT 2,B3]、B(2)=[BT 4,B5]、B(3)=[BT 6,B7]。
(4)对B(1)码组单元中的数据先进行硬判,然后分别逐行进行硬解码(图9右图中粗虚线箭头4所示),同时更新B(1)码块中两个子码块的硬信息;对B(2)、B(3)码组单元分别逐行进行软解码(图9右图中细虚线箭头5、6所示),同时更新B(2)、B(3)码块中两个子码块的信息;然后输出B(1)中的硬信息B2。
(5)重复步骤(3)及步骤(4)中的操作,进而完成B3、B4、…及后面所有接收到的阶梯码子码块的解码输出,所有的输出都经历了3次迭代解码。
图10为本发明方法实施例7中的阶梯码解码装置的结构示意图,如图10所示的本发明方法实施例7中的阶梯码解码装置,包括:
待解码初始组获取模块100,用于从接收到第一个所述子码块开始,到接收到第L个所述子码块为止,按顺序将相邻的两个所述子码块作为一组进行分组,获取待解码初始组,所述一个子码块只属于所述一个待解码初始组,其中,当接收后解码到的子码块个数为奇数时,补充所述全零码与所述子码块进行分组。
待解码初始组解码模块200,用于解码所述待解码初始组,并根据解码结果更新所述子码块后返回待解码初始组获取模块,直至接收到第L个所述子码块。
待解码子码块获取模块300,用于获取滑动窗的长度L,按照接收时间由前到后的顺序,在接收到的子码块中,连续获取L个所述子码块作为所述滑动窗中的待解码子码块,其中,L为正整数;优选的,L为偶数。具体用于当获取到的第一个子码块为所有所述子码块中第一个接收到的所述子码块时;将全零码块补充为所述滑动窗中的第一个所述待解码子码块,并将所述滑动窗中的第L个所述待解码子码块滑出所述滑动窗。
解码结果输出模块400,用于将所述待解码子码块分组后分别进行解码,根据解码结果更新所述待解码子码块获取更新子码块,并输出前M个所述更新子码块作为解码结果,其中M小于L;优选的,M为1。包括分组单元,用于从第一个所述待解码子码块开始,以一个为间隔将所述待解码子码块进行转置,获取待解码转置子码块;将所述待解码转置子码块和与相邻的后接收到的所述待解码子码块作为一组进行分组,获取待解码组;解码单元,用于分别解码所述待解码组,根据解码结果更新所述待解码子码块,获取更新子码块,具体用于当所述待解码子码块是经过硬判的码时,利用线性分组码进行解码;否则,利用软解码算法进行解码。具体用于根据解码结果更新除所述全零码块外的所述待解码子码块。
滑动模块500,用于将所述滑动窗按照所述接收时间,向后滑动M个所述子码块的长度,将所述滑动窗内剩余的所述更新子码块与滑入所述滑动窗的所述子码块,重新组合为所述滑动窗内的所述待解码子码块,并将所述待解码子码块输入所述解码结果输出模块400。
本发明所提供的阶梯码解码装置,通过将所述滑动窗内的待解码子码块进行分组后分别解码,根据解码结果更新所述待解码子码块获取更新子码块后,输出M个更新子码块作为解码结果,并将所述滑动穿向后滑动M个子码块后重复上述步骤。通过分组后分别解码输出更新子码块,再将所述滑动窗滑动后重复分组及解码步骤,依次输出更新子码块作为解码结果,每完成一个阶梯码子码块的解码输出,只需要进行较少次数的迭代解码过程,大大降低了硬件电路的实现复杂度,减小了解码的时间延迟,并提高了解码性能。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
总之,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种阶梯码解码方法,其特征在于,所述方法包括以下步骤:
步骤1,获取滑动窗的长度L,按照接收时间由前到后的顺序,在接收到的子码块中,连续获取L个所述子码块作为所述滑动窗中的待解码子码块,其中,L为大于等于4的正整数,且L为偶数;
步骤2,将所述待解码子码块分组后分别进行解码,根据解码结果更新所述待解码子码块,获取更新子码块,并输出前M个所述更新子码块作为解码结果,其中M小于L;
步骤3,将所述滑动窗按照所述接收时间,向后滑动M个所述子码块的长度,将所述滑动窗内剩余的所述更新子码块与滑入所述滑动窗的所述子码块,重新组合为所述滑动窗内的所述待解码子码块,并返回步骤2,直至输出所有所述子码块的解码结果;
所述将所述待解码子码块分组后分别进行解码,根据解码结果更新所述待解码子码块,包括:
从第一个所述待解码子码块开始,以一个为间隔将所述待解码子码块进行转置,获取待解码转置子码块;
将所述待解码转置子码块和相邻的后接收到的所述待解码子码块拼接后作为一组进行分组,获取待解码组;
分别解码所述待解码组,根据解码结果更新所述待解码子码块,获取更新子码块。
2.如权利要求1所述的阶梯码解码方法,其特征在于:M为1。
3.如权利要求1所述的阶梯码解码方法,其特征在于,所述分别解码所述待解码组,包括:
当所述待解码组中的所述待解码子码块是经过硬判的码时,利用线性分组码进行解码;否则,
利用软解码算法进行解码。
4.如权利要求1所述的阶梯码解码方法,其特征在于,所述连续获取L个所述子码块作为所述滑动窗中的待解码子码块,包括:
当获取到的第一个子码块为所有所述子码块中第一个接收到的所述子码块时;
将全零码块补充为所述滑动窗中的第一个所述待解码子码块,并将所述滑动窗中的第L个所述待解码子码块滑出所述滑动窗;
所述根据解码结果更新所述待解码子码块,包括:
根据解码结果更新除所述全零码块外的所述待解码子码块。
5.如权利要求4所述的阶梯码解码方法,其特征在于,在所述步骤1之前,所述方法还包括:
步骤100,从接收到第一个所述子码块开始,到接收到第L个所述子码块为止,按顺序将相邻的两个所述子码块作为一组进行分组,获取待解码初始组,所述一个子码块只属于所述一个待解码初始组,其中,当接收后解码到的子码块个数为奇数时,补充所述全零码与所述子码块进行分组;
步骤200,解码所述待解码初始组,并根据解码结果更新所述子码块后返回步骤100,直至接收到第L个所述子码块。
6.一种阶梯码解码装置,其特征在于,包括:
待解码子码块获取模块,用于获取滑动窗的长度L,按照接收时间由前到后的顺序,在接收到的子码块中,连续获取L个所述子码块作为所述滑动窗中的待解码子码块,其中,L为大于等于4的正整数且L为偶数;
解码结果输出模块,用于将所述待解码子码块分组后分别进行解码,根据解码结果更新所述待解码子码块,获取更新子码块,并输出前M个所述更新子码块作为解码结果,其中M小于L;
滑动模块,用于将所述滑动窗按照所述接收时间,向后滑动M个所述子码块的长度,将所述滑动窗内剩余的所述更新子码块与滑入所述滑动窗的所述子码块,重新组合为所述滑动窗内的所述待解码子码块,并将所述待解码子码块输入所述解码结果输出模块;
所述解码结果输出模块,包括分组单元,用于从第一个所述待解码子码块开始,以一个为间隔将所述待解码子码块进行转置,获取待解码转置子码块;将所述待解码转置子码块和相邻的后接收到的所述待解码子码块拼接后作为一组进行分组,获取待解码组;解码单元,用于分别解码所述待解码组,根据解码结果更新所述待解码子码块,获取更新子码块。
7.如权利要求6所述的阶梯码解码装置,其特征在于:M为1,
所述解码单元,具体用于当所述待解码子码块是经过硬判的码时,利用线性分组码进行解码;否则,利用软解码算法进行解码;
所述待解码子码块获取模块,具体用于当获取到的第一个子码块为所有所述子码块中第一个接收到的所述子码块时;将全零码块补充为所述滑动窗中的第一个所述待解码子码块,并将所述滑动窗中的第L个所述待解码子码块滑出所述滑动窗;所述解码结果输出模块,具体用于根据解码结果更新除所述全零码块外的所述待解码子码块。
8.如权利要求6所述的阶梯码解码装置,其特征在于,还包括:
待解码初始组获取模块,用于从接收到第一个所述子码块开始,到接收到第L个所述子码块为止,按顺序将相邻的两个所述子码块作为一组进行分组,获取待解码初始组,所述一个子码块只属于所述一个待解码初始组,其中,当接收后解码到的子码块个数为奇数时,补充全零码与所述子码块进行分组;
待解码初始组解码模块,用于解码所述待解码初始组,并根据解码结果更新所述子码块后返回待解码初始组获取模块,直至接收到第L个所述子码块。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710555986.2A CN109245777B (zh) | 2017-07-10 | 2017-07-10 | 一种阶梯码解码方法和阶梯码解码装置 |
PCT/CN2018/104349 WO2019011348A1 (zh) | 2017-07-10 | 2018-09-06 | 一种阶梯码解码方法和阶梯码解码装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710555986.2A CN109245777B (zh) | 2017-07-10 | 2017-07-10 | 一种阶梯码解码方法和阶梯码解码装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109245777A CN109245777A (zh) | 2019-01-18 |
CN109245777B true CN109245777B (zh) | 2021-11-12 |
Family
ID=65001051
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710555986.2A Active CN109245777B (zh) | 2017-07-10 | 2017-07-10 | 一种阶梯码解码方法和阶梯码解码装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109245777B (zh) |
WO (1) | WO2019011348A1 (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8522116B2 (en) * | 2010-08-04 | 2013-08-27 | Marvell Israel (M.I.S.L.) Ltd. | Systems and methods for performing forward error correction |
CN103166649B (zh) * | 2011-12-19 | 2016-06-15 | 国际商业机器公司 | 用于解码循环码的方法、装置和解码器 |
CN102938647B (zh) * | 2012-11-20 | 2015-09-30 | 华为技术有限公司 | 转换电路及芯片 |
US9325351B2 (en) * | 2013-03-13 | 2016-04-26 | Mediatek Singapore Pte. Ltd. | Adaptive multi-core, multi-direction turbo decoder and related decoding method thereof |
CN104052503B (zh) * | 2013-03-15 | 2017-10-13 | 广达电脑股份有限公司 | 纠错码 |
CN105429646B (zh) * | 2015-06-30 | 2019-03-22 | 南京大学 | 一种咬尾阶梯码的编码及解码方法 |
CN106248117B (zh) * | 2016-08-29 | 2018-11-30 | 珠海格力电器股份有限公司 | 定光栅和光电编码器 |
-
2017
- 2017-07-10 CN CN201710555986.2A patent/CN109245777B/zh active Active
-
2018
- 2018-09-06 WO PCT/CN2018/104349 patent/WO2019011348A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2019011348A1 (zh) | 2019-01-17 |
CN109245777A (zh) | 2019-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108702290B (zh) | 级联极化编码和滑动窗口极化编码 | |
CN106571831B (zh) | 一种基于深度学习的ldpc硬判决译码方法及译码器 | |
CN105637767B (zh) | 编码的速率匹配处理方法和装置 | |
US6304995B1 (en) | Pipelined architecture to decode parallel and serial concatenated codes | |
CN108292967B (zh) | 极化码的编译码方法及其装置 | |
US11171741B2 (en) | Polar code transmission method and apparatus | |
EP3748882A1 (en) | Polar code encoding method and device | |
CN109150383B (zh) | 一种Polar码的编码方法及装置 | |
CN109245846B (zh) | 一种阶梯码解码方法和阶梯码解码装置 | |
US20120151295A1 (en) | Device and method for turbo-encoding a block of data | |
US20160049962A1 (en) | Method and apparatus of ldpc encoder in 10gbase-t system | |
CN109245777B (zh) | 一种阶梯码解码方法和阶梯码解码装置 | |
CN109245847B (zh) | 一种阶梯码解码方法和阶梯码解码装置 | |
JP2005539451A (ja) | データウィンドウを使用してデータを復号化するための方法 | |
CN110022158B (zh) | 一种译码方法及装置 | |
CN109245848B (zh) | 一种阶梯码解码方法和阶梯码解码装置 | |
US10516418B2 (en) | Hybrid type iterative decoding method and apparatus | |
CN110784283A (zh) | 确定前向纠错帧边界的方法、装置和解码*** | |
CN107453761B (zh) | Turbo码译码方法及Turbo码译码器 | |
CN107733445B (zh) | Turbo码码字的生成方法和译码方法 | |
JP2004282787A (ja) | 信号送信装置および符号化装置 | |
CN112398483A (zh) | 一种ldpc编码方法、装置、基站及可读存储介质 | |
RU2541844C1 (ru) | Способ декодирования кода-произведения с использованием упорядоченного по весу смежного класса векторов ошибок и устройство его реализующее | |
CN116707549A (zh) | 一种基于双滑窗策略的Braided自正交码译码方法 | |
JP2011135471A (ja) | ターボ符号の誤り訂正復号装置及び誤り訂正復号方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |