CN112583419A - 一种译码方法及装置 - Google Patents
一种译码方法及装置 Download PDFInfo
- Publication number
- CN112583419A CN112583419A CN201910944426.5A CN201910944426A CN112583419A CN 112583419 A CN112583419 A CN 112583419A CN 201910944426 A CN201910944426 A CN 201910944426A CN 112583419 A CN112583419 A CN 112583419A
- Authority
- CN
- China
- Prior art keywords
- decoding
- check matrix
- ldpc code
- decoded
- bit sequence
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 104
- 239000011159 matrix material Substances 0.000 claims abstract description 274
- 230000010287 polarization Effects 0.000 claims abstract description 60
- 230000015654 memory Effects 0.000 claims description 29
- 238000004590 computer program Methods 0.000 claims description 13
- 230000006854 communication Effects 0.000 abstract description 22
- 238000004891 communication Methods 0.000 abstract description 21
- 238000010586 diagram Methods 0.000 description 30
- 238000013461 design Methods 0.000 description 28
- 230000008569 process Effects 0.000 description 28
- 238000004364 calculation method Methods 0.000 description 19
- 230000006870 function Effects 0.000 description 17
- 238000012545 processing Methods 0.000 description 6
- 125000004122 cyclic group Chemical group 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012804 iterative process Methods 0.000 description 2
- 241000169170 Boreogadus saida Species 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000010977 unit operation Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1108—Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
-
- 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
-
- 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1128—Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
本申请涉及通信技术领域,公开了一种译码方法及装置。其中方法包括:获取待译码比特序列对应的LLR序列,LLR序列包括2w个LLR,待译码比特序列是通过对第一比特序列进行极化码编码得到的;w为大于或等于1的整数;确定待译码比特序列对应的低密度奇偶校验LDPC码校验矩阵;基于LDPC码校验矩阵对LLR序列进行译码,得到第一译码结果;根据第一译码结果得到译码比特序列。采用上述方法,针对于通过极化码编码得到的待译码比特序列,通过确定待译码比特序列对应的LDPC码校验矩阵,能够使用LDPC码译码器对待译码比特序列对应的LLR序列进行译码,从而使得极化码译码和LDPC码译码可以实现共模译码,节省硬件开销。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种译码方法及装置。
背景技术
无线通信的快速演进预示着未来第五代(5th generation,5G)通信系统将呈现出一些新的特点,最典型的三个通信场景包括增强型移动互联网(enhance mobilebroadband,eMBB)、海量机器连接通信(massive machine type communication,mMTC)和高可靠低延迟通信(ultra reliable low latency communication,URLLC),这些通信场景的需求将对现有长期演进(long term evolution,LTE)技术提出新的挑战。信道编码作为最基本的无线接入技术,是满足5G通信需求的重要研究对象之一。
极化(Polar)码在5G标准中被选作控制信道编码方式,Polar码是第一种、也是已知的唯一能够被严格证明“达到”信道容量的信道编码方法,在不同码长下,尤其对于有限码,Polar码的性能较优。低密度奇偶校验(low density parity check,LDPC)码在5G标准中被选作数据信道编码方式,LDPC码是一种具有稀疏校验矩阵的线性分组码,不仅具有逼近香农(Shannon)极限的良好性能,而且译码复杂度较低,结构灵活。
由于控制信道和数据信道采用不同的编码方式,因此对控制信道接收到的信息和数据信道接收到的信息需要分别译码,从而导致实现较为复杂,且硬件开销较大。
发明内容
有鉴于此,本申请提供了一种译码方法及装置,用于实现对控制信道接收到的信息和数据信道接收到的信息进行共模译码,有效降低硬件开销。
第一方面,本申请实施例提供了一种译码方法,该方法包括:获取待译码比特序列对应的对数似然比LLR序列,所述LLR序列包括2w个LLR,所述待译码比特序列是通过对第一比特序列进行极化码编码得到的,所述第一比特序列中包括信息比特;w为大于或等于1的整数;确定所述待译码比特序列对应的低密度奇偶校验LDPC码校验矩阵;基于所述LDPC码校验矩阵对所述LLR序列进行译码,得到第一译码结果;根据所述第一译码结果得到译码比特序列。
采用上述方法,针对于通过极化码编码得到的待译码比特序列,通过确定待译码比特序列对应的LDPC码校验矩阵,能够使用LDPC码译码器对待译码比特序列对应的LLR序列进行译码,从而使得极化码译码和LDPC码译码可以实现共模译码,节省硬件开销。
在一种可能的设计中,基于所述LDPC码校验矩阵对所述LLR序列进行译码,得到第一译码结果,包括:基于所述LDPC码校验矩阵使用LDPC码分层译码器对所述LLR序列进行译码,得到所述第一译码结果。
如此,采用LDPC码分层译码方法可改善译码性能,降低译码错误的概率。
在一种可能的设计中,根据所述第一译码结果得到译码比特序列,包括:使用极化码译码器对所述第一译码结果进行译码,得到所述译码比特序列。
采用上述方法,由于使用LDPC码译码器对LLR序列进行译码得到了第一译码结果,因此,只需使用极化码译码器对第一译码结果进行译码即可,相比于现有技术中使用极化码译码器对待译码比特序列对应的LLR序列进行译码来说,本申请实施例中所需的极化码译码器的复杂度可以远远小于现有技术中极化码译码器的复杂度,从而能够有效降低硬件开销。
在一种可能的设计中,确定所述待译码比特序列对应的LDPC码校验矩阵,包括:确定所述待译码比特序列对应的极化码因子图,所述极化码因子图包括2w*(w+1)个节点;根据所述极化码因子图中不同节点之间的校验关系,确定LDPC码Tanner图,所述Tanner图中包括2k*(k+1)个变量节点和2k*k个校验节点,每个所述变量节点对应所述极化码因子图中的2p个节点,k为大于或等于1的整数,p为大于或等于0的整数,w=p+k;根据所述2k*(k+1)个变量节点和所述2k*k个校验节点确定所述待译码比特序列对应的LDPC码校验矩阵。
如此,通过分析极化码因子图中不同节点之间的校验关系,从而能够对极化码因子图进行变形得到LDPC码Tanner图,进而得到待译码比特序列对应的LDPC码校验矩阵。
在一种可能的设计中,根据所述2k*(k+1)个变量节点和2k*k个校验节点确定所述待译码比特序列对应的LDPC码校验矩阵,包括:根据所述2k*(k+1)个变量节点和2k*k个校验节点确定第一校验矩阵;对所述第一校验矩阵执行以下一种或多种操作得到所述LDPC码校验矩阵:行交换、列交换、行合并、列合并、行删除、列删除。
如此,通过对第一校验矩阵执行上述操作,从而使得得到的LDPC码校验矩阵符合极化码译码方法在译码过程中具有串行特性,以便于使用LDPC码分层译码方法进行译码,改善译码性能。
在一种可能的设计中,所述待译码比特序列对应的LDPC码校验矩阵为准循环QC-LDPC码校验矩阵。
在一种可能的设计中,确定出的LDPC码校验矩阵为:
0 | 0 | 0 | -1 |
-1 | 0 | -1 | 0 |
其中,所述LDPC码校验矩阵包括第一层和第二层,所述第一层包括第一行,所述第二层包括第二行。
在一种可能的设计中,所述w为大于或等于2的整数;确定出的LDPC码校验矩阵为:
0 | -1 | 0 | -1 | 0 | -1 | -1 | -1 | -1 | -1 |
-1 | 0 | -1 | 0 | -1 | 0 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | 0 | 0 | 0 | -1 | -1 | -1 |
-1 | -1 | 0 | 0 | -1 | -1 | -1 | -1 | 0 | -1 |
-1 | -1 | -1 | -1 | -1 | 0 | -1 | 0 | -1 | -1 |
-1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | 0 |
其中,所述LDPC码校验矩阵包括第一层、第二层和第三层,所述第一层包括第一行和第二行,所述第二层包括第三行和第四行,所述第三层包括第五行和第六行。
在一种可能的设计中,w为大于或等于3的整数;确定出的LDPC码校验矩阵为:
0 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | 0 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | 0 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | 0 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | 0 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | 0 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | 0 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | 0 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | 0 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | 0 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | 0 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 |
;
其中,所述LDPC码校验矩阵包括第一层、第二层、第三层和第四层,所述第一层包括第一行至第四行,所述第二层包括第五行至第八行,所述第三层包括第九行至第十二行,所述第四层包括第十三行至第十六行。
在一种可能的设计中,w为大于或等于4的整数;确定出的LDPC码校验矩阵为:
其中,所述LDPC码校验矩阵包括第一层至第五层,所述第一层包括第一行至第八行,所述第二层包括第九行至第十六行,所述第三层包括第十七行至第二十四行,所述第四层包括第二十五行至第三十二行,所述第五层包括第三十三行至第四十行。
第二方面,本申请提供一种译码装置,该装置具有实现上述第一方面和第一方面的任一种可能的设计中所述的方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块或单元。
在一个可能的设计中,当所述功能的部分或全部通过硬件实现时,所述译码装置包括:输入接口电路,用于获取待译码比特序列对应的LLR序列;逻辑电路,用于执行上述第一方面和第一方面的任一种可能的设计中所述的方法;输出接口电路,用于输出译码比特序列。
可选的,所述译码装置可以是芯片或者集成电路。
在一个可能的设计中,当所述功能的部分或全部通过软件实现时,所述译码装置包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述译码装置可以实现如上述第一方面和第一方面的任一种可能的设计中所述的方法。
可选的,上述存储器可以是物理上独立的单元,也可以与处理器集成在一起。
在一个可能的设计中,当所述功能的部分或全部通过软件实现时,所述译码装置包括处理器。用于存储程序的存储器位于所述译码装置之外,处理器通过电路/电线与存储器连接,用于读取并执行所述存储器中存储的程序。
第三方面,本申请实施例提供一种通信系统,该通信系统包括网络设备和终端设备,所述网络设备、所述终端设备均可以执行如上述第一方面或第一方面的任一种可能的设计所述的方法。
第四方面,本申请实施例提供一种计算机存储介质,存储有计算机程序,该计算机程序包括用于执行上述第一方面或第一方面的任一种可能的设计所述的方法的指令。
第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面的任一种可能的设计所述的方法。
附图说明
图1a为本申请实施例提供的一个极化信道单元的示意图;
图1b为本申请实施例提供的一个极化码因子图(8个LLR)示例;
图1c为本申请实施例提供的SC译码计算过程示意图;
图1d为本申请实施例提供的SCL译码方法中的译码路径示意图;
图1e为本申请实施例提供的译码计算过程示意图;
图1f为本申请实施例提供的一个LDPC码Tanner图示例;
图2为本申请实施例适用的一种网络架构示意图;
图3a为本申请实施例提供的一种极化码编译码过程示意图;
图3b为本申请实施例提供的对控制信道接收到的信息和数据信道接收到的信息需要分别译码示意图;
图3c为采用本申请实施例提供的译码方法对控制信道接收到的信息和数据信道接收到的信息进行共模译码示意图;
图4为本申请实施例提供的译码方法所对应的流程示意图;
图5a为LDPC校验矩阵在迭代过程中多个层的更新示意图;
图5b为根据图1b所示意的因子图得到的Tanner图;
图5c为本申请实施例提供的一个极化码因子图(16个LLR)示例;
图5d为本申请实施例提供的2*2的极化码蝶形网络单元对应的Tanner图示例;
图6为本申请实施例提供的译码过程的逻辑示意图;
图7为图6中所示意的SCL译码器示意图;
图8为本申请实施例中所涉及的装置的可能的示例性框图;
图9为本申请实施例提供的一种译码装置的结构示意图;
图10为本申请实施例提供的又一种译码装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
首先对本申请实施例中所涉及的极化码、极化码译码以及LDPC码和LDPC码译码进行介绍。
(1)极化码的编码
极化码的编码策略利用无噪信道传输用户有用的信息,全噪信道传输约定的信息或者不传信息。极化码是一种线性块码,其生成矩阵为GN,其编码过程为 是一个二进制的行矢量,长度为N(即码长);且这里BN是一个N×N的转置矩阵,例如比特逆序转置矩阵;其中,BN是可选量,生成矩阵GN的运算过程可以省略BN的运算。定义为log2N个矩阵F2的克罗内克(Kronecker)乘积,x1 N是编码后的比特(也叫码字),与生成矩阵GN相乘后就得到编码后的比特,相乘的过程就是编码的过程。
极化码的编码过程中,中的一部分比特用来携带信息,称为信息比特集合,这些比特的索引的集合记作A;另外的一部分比特设置为接收端和发送端预先约定的固定值,称之为固定比特集合或冻结比特集合(frozen bits),其索引的集合用A的补集Ac表示。极化码的编码过程相当于:这里,GN(A)是GN中由集合A中的索引对应的那些行得到的子矩阵,GN(Ac)是GN中由集合Ac中的索引对应的那些行得到的子矩阵。uA为中的信息比特集合,数量为K;为中的固定比特集合,其数量为(N-K),是已知比特。这些固定比特通常被设置为0,但是只要接收端和发送端预先约定,固定比特可以被任意设置。从而,极化码的编码输出可简化为:
(2)极化码的译码
极化码的译码方法可以有多种,比如串行抵消(successive cancellation,SC)译码方法、串行抵消列表(successive cancellation list,SCL)译码方法、概率传播(beliefpropagation,BP)译码方法。极化码的各种译码方法都可以基于极化码的蝶形网络(也可以称为因子图(factor graph))进行计算,因子图的结构与极化码的构造结构有关,例如,图1a为一个极化信道单元的示意图,u1u2为输入,经编码后的x1x2可写作
x1=u1+u2
x2=u2
其中,“+”表示模2加。
经过如上图所示极化单元运算后,得到两个新的信道(W1和W2),其中一个信道的信道容量下降,另一个信道的信道容量提升。因此,只要反复迭代调用该极化单元,理论上就可以使一部分信道的信道容量趋近于1,而另一部分信道的信道容量趋近于0,只要在信道容量趋近于1的信道上放置信息比特,在信道容量趋近于0的信道上放置已知比特(冻结比特),理论上即可实现无差错传输。反复级联后的极化单元网络可以称作蝶形网络或者因子图,如图1b所示,LLR序列中包括23=8个LLR,分别为LLR0、LLR1、LLR2、LLR3、LLR4、LLR5、LLR6、LLR7,该因子图中包含3+1=4层(分别为layer0、layer1、layer2、layer3)、每一层中包括23个节点,共23(3+1)=32个节点(如图中所示的灰色圆点),图中每个交叉的单元表示图1a中所示的一个极化单元。
其中,SC译码方法是指根据待译码比特序列对应的LLR序列逐个计算每一个译码比特的LLR,进行逐比特判决。当译码比特为信息比特时,若译码比特的LLR>0,则该译码比特为0,若译码比特的LLR<0,则该译码比特为1;当译码比特为固定比特时,无论LLR为多少译码结果都置为0。图1c为SC译码计算过程示意图,以译码比特为4个为例,图1c中共有8个计算节点,其中有4个F节点,4个G节点,F节点和G节点分别对应F运算和G运算。F节点的运算需要其右侧2项LLR输入,G节点的运算需要其右侧2项LLR输入以及上一级的输出也作为输入,只有输入项计算完成后,才能计算输出。
其中,F运算采用简化运算,F运算公式为:
F(a,b)=sign(a)sign(b)min(|a|,|b|);
G运算采用简化运算,G运算公式为:
按照上述计算规则,图1c中从右侧开始,按序计算获得的译码比特依次为①→②→③→④,至此译码完成。
SCL译码方法是指根据待译码比特序列对应的LLR序列,在译码每个信息比特时,将0和1对应的译码结果都保存作为2个分支译码路径(简称路径分裂),图1d为SCL译码方法中的译码路径示意图,如图1d所示,每一层代表1个译码比特,若译码结果为0,则沿着左子树发展路径,若译码结果为1,则沿着右子树发展路径,当译码路径的总数超过预设的路径宽度L(一般L=2、4、8、16或32)时,选择出路径度量(path metric,PM)值最佳的L条路径保存并继续发展路径以译出后续的译码比特,其中的PM值用于判断路径的好坏,PM值通过LLR计算得出。对于每一级的译码比特,对L条路径的PM值按照从小到大排序,并通过PM值筛选出正确的路径,如此反复,直到译完最后一个比特。
下面再结合图1e来介绍一下译码运算,如图1e所示,右侧为LLR输入侧,或者称为码字侧;左侧为信息侧,或者称为译码比特侧。yi为待译码信息,ui为译码比特。从译码开始,层级依次为s=4、s=3、s=2、s=1和s=0。假设待译码信息的长度N=16,若采用SCL译码方法,则在s=4的层级上,待译码信息对应的16个LLR进行F/G运算,得到s=3的层级上的8个LLR。则s=3的层级上的8个LLR继续进行F/G运算,得到s=2的层级上的4个LLR,s=2的层级上的4个LLR继续进行F/G运算,得到s=1的层级上的2个LLR,s=1的层级上的2个LLR继续进行F/G运算,得到s=0的层级上的1个LLR,在s=0的层级上逐比特分裂路径。译码开始时,从码字侧读入LLR,并进行概率传递,得到第一个译码比特的LLR值,对LLR值进行判决,得到第一个译码比特的译码结果,第一个译码比特的判决比特值作为第二个译码比特的输入,进行第二个译码比特的计算,直到计算完s=0层级上的所有译码比特。译码比特中包含固定比特和信息比特,固定比特位置无论LLR为多少判决比特值都为0;信息比特位置的判决比特值可以有0和1两种,因此可以分裂为两个路径。
BP译码方法是指基于极化码的蝶形网络架构,采用置信度传播公式,对极化码的所有输入LLR并行译码,通过多次迭代至收敛以实现高并行度的译码。
(3)LDPC码校验矩阵
LDPC码是一种线性分组码,由m行n列的稀疏矩阵H确定,其中,H由元素0和元素1构成,由于矩阵中除了少数元素为1外,其余大部分元素都是0,所以称之为稀疏矩阵,稀疏矩阵H又可称为LDPC码校验矩阵,H满足以下条件:矩阵的行重(每行1的个数)、列重(每列1的个数)与码长的比值远小于1;任意两行(列)最多只有一个相同位置上的1;任意线性无关的列数尽量大。
准循环(quasi-cycle,QC)-LDPC码是LDPC码的一个子类,其校验矩阵H具有循环的特性。QC-LDPC码校验矩阵H通常可以表示为如下阵列:
其中,每个矩阵Ai,j都是大小为Z×Z的循环矩阵。如果将校验矩阵H的行数和列数分别记为M=ρZ和N=cZ的话,待传输的信息序列分组长度则为K=N-M。发送端需要用校验矩阵对待传输的信息序列分组进行编码,而接收端也需要基于校验矩阵进行译码。QC-LDPC码的设计过程涉及三个重要概念:循环置换矩阵(Circular permutation matrix,CPM)、基模图(Base graph)和基矩阵。
QC-LDPC码校验矩阵的构造方法有很多种,一种构造准循环LDPC码校验矩阵的可能的方法为:首先构造一个大小为ρ×c的基矩阵B,例如:
QC-LDPC码的基模图是与基矩阵大小相同的矩阵,元素非0即1的:“1”表示基矩阵相应位置的移位值不等于-1;“0”则表示基矩阵相应位置的移位值为-1。例如,上述例子中基矩阵的基模图为:
然后,将基矩阵B中的每个非“-1”元素扩展成大小为Z×Z的循环置换矩阵,将“-1”元素则扩展成大小为Z×Z的全零矩阵。假设采用Pi表示一个Z×Z的循环置换矩阵,也称为基矩阵的子循环矩阵,i则称为Pi的移位值。例如:
以Z=8为例:
可以看出,P0为单位阵,每个循环置换矩阵Pi实际上是由单位阵循环右移i位得到。而且,对于一个给定的Z,共有Z个Pi,即i∈{0,1,2,…,Z-1}。每个Pi(0≤i<Z)用于对基矩阵B中取值为i的元素进行扩展。
这样,可以根据不同的码率,截取基矩阵B的不同部分扩展为相应的校验矩阵,其中,最大可以得到一个(ρZ)×(cZ)的检验矩阵;从而可以根据获得的不同检验矩阵,在不同码率下对待传输的信息序列进行编解码。
(4)Tanner图
LDPC码校验矩阵可以由LDPC码校验矩阵对应的Tanner图来定义。比如,LDPC码校验矩阵和其对应校验方程的一个示例为:
其中,“+”表示模2加。
该校验矩阵对应的Tanner图可以表示如图1f所示,图1f中的每个圆形节点为变量节点,代表校验矩阵H中的一列,每个方形节点为校验节点,代表校验矩阵H中的一行,图1f中的每条连接校验节点和变量节点的边代表这两个节点所对应的行与列交汇的位置存在一个非零元素。
(5)本申请实施例中涉及的第一、第二等各种数字编号仅为描述方便进行的区分,并不用来限制本申请实施例的范围,也不表示先后顺序。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。“至少一个”是指一个或者多个。至少两个是指两个或者多个。“至少一个”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个、种),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
以及,除非有特别说明,本申请实施例提及“第一”、“第二”等序数词是用于对多个对象进行区分,不用于限定多个对象的顺序、时序、优先级或者重要程度。
图2为本申请实施例适用的一种网络架构示意图。该网络架构可以包括至少一个网络设备100(仅示出1个)以及与网络设备100连接的一个或多个终端设备200。
网络设备100可以是能和终端设备200通信的设备。网络设备100可以是任意一种具有无线收发功能的设备。包括但不限于:基站(例如,基站NodeB、演进型基站eNodeB、第五代(the fifth generation,5G)通信系统中的基站、未来通信系统中的基站或网络设备、WiFi系统中的接入节点、无线中继节点、无线回传节点)等。网络设备100还可以是云无线接入网络(cloud radio access network,CRAN)场景下的无线控制器。网络设备100还可以是小站,传输节点(transmission reference point,TRP)等。当然不申请不限于此。
终端设备200是一种具有无线收发功能的设备可以部署在陆地上,包括室内或室外、手持、穿戴或车载;也可以部署在水面上(如轮船等);还可以部署在空中(例如飞机、气球和卫星上等)。所述终端设备可以是手机(mobile phone)、平板电脑(Pad)、带无线收发功能的电脑、虚拟现实(virtual rality,VR)终端设备、增强现实(augmented reality,AR)终端设备、工业控制(industrial control)中的无线终端、无人驾驶(self driving)中的无线终端、远程医疗(remote medical)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端等等。本申请的实施例对应用场景不做限定。终端设备有时也可以称为用户设备(user equipment,UE)、接入终端设备、UE单元、UE站、移动站、移动台、远方站、远程终端设备、移动设备、UE终端设备、终端设备、无线通信设备、UE代理或UE装置等。
需要说明的是,上述所示意的网络架构可以适用于各种无线接入技术的通信系统中,例如,5G通信系统以及其它可能的通信系统中。
本申请实施例描述的系统架构以及业务场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着通信系统架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
在图2所示意的网络架构中,为对抗信息发送中的干扰,发送端设备(比如网络设备100)可以对信息比特进行编码(比如极化码编码或LDPC码编码);相应地,接收端设备(比如终端设备200)可以进行译码(若发送端设备采用极化码编码,则接收端设备进行极化码译码;若发送端设备采用LDPC码编码,则接收端设备进行LDPC码译码)以得到信息比特。示例性地,以极化码编译码为例,发送端设备和接收端设备通信过程中所涉及的极化码编译码流程如图3a所示,包括:步骤301、发送端设备获取编码输入比特序列(a bit sequenceinput for coding),编码输入比特序列中可以包括信息比特和固定比特。步骤302、发送端设备进行校验(比如循环冗余校验(cyclic redundancy check,CRC))编码,获得校验编码码字。步骤303、发送端设备对校验编码码字进行交织操作。步骤304、发送端设备对交织操作后的校验编码码字进行极化码编码,得到编码输出比特序列(a bit sequence outputfor coding)。步骤305,发送端设备将编码输出比特序列映射成调制符号,并通过信道来处理和发送编码输出比特序列。步骤306、接收端设备获取待译码比特序列对应的LLR序列,LLR序列包括多个LLR。步骤与307,接收端设备根据LLR序列进行极化码译码。步骤308、接收端设备对译码后的序列进行解交织操作。步骤309,接收端设备通过CRC校验判断译码结果是否译码成功。需要说明的是,图3a仅是一种简单示例,具体实施中,还可以在图3a的基础上增加其它可能的步骤,比如无线网络临时标识(radio network tempory identity,RNTI)加扰、速率匹配、解扰、解速率匹配等,具体不做限定。
以5G通信系统为例,网络设备100和终端设备200可以通过控制信道传输控制信息,以及可以通过数据信道传输数据信息。下面以网络设备100为发送端设备,终端设备200为接收端设备为例,控制信道可以为物理下行控制信道(physical downlink controlchannel,PDCCH),比如,网络设备100可以通过PDCCH向终端设备200发送下行控制信息(downlink control information,DCI);数据信道可以为物理下行共享信道(physicaldownlink shared channel,PDSCH),比如,网络设备100可以通过PDSCH向终端设备200发送数据信息。
然而,由于控制信道和数据信道采用不同的编码方式,比如控制信道采用极化码编码方式,数据信道采用LDPC码编码方式,因此,接收端设备(比如终端设备200)对控制信道接收到的信息和数据信道接收到的信息需要分别译码,如图3b所示,终端设备200将从控制信道接收到的信息输入到极化码译码器进行译码得到译码结果1,以及将从数据信道接收到的信息输入到LDPC码译码器进行译码得到译码结果2。由于极化码译码器和LDPC译码器分别对应不同的硬件结构,从而导致硬件开销较大,成本较高。类似地,当终端设备200作为发送端设备,网络设备100作为接收端设备时,也存在同样的问题。
基于此,本申请实施例提供一种译码方法,用于实现对控制信道接收到的信息和数据信道接收到的信息进行共模译码,有效降低硬件开销。示例性地,该方法通过对待译码比特序列对应的极化码因子图进行变形,使其具有和LDPC码校验矩阵相似的结构,从而可以通过LDPC码译码器对待译码比特序列对应的LLR序列进行译码。采用该方法,如图3c所示,接收端设备(比如终端设备200)可以将从控制信道接收到的信息输入到LDPC码译码器进行译码得到译码结果3,进而基于译码结果3得到译码结果1(比如将译码结果3输入到极化码译码器得到译码结果1),以及可以将从数据信道接收到的信息输入到LDPC码译码器进行译码得到译码结果2。由于使用LDPC码译码器对LLR序列进行了译码,因此,图3c中极化码译码器的结构复杂度可以小于图3b中极化码译码器的结构复杂度,从而能够降低硬件开销。
需要说明的是,本申请实施例提供的译码方法可以由接收端设备或者设置在接收端设备中的芯片来执行,其中,接收端设备可以为图2中所示意的网络设备100,或者也可以为图2中所示意的终端设备200。
图4为本申请实施例提供的译码方法所对应的流程示意图。下面以该方法由接收端设备来执行为例进行描述,如图4所示,该方法包括:
步骤401,获取待译码比特序列对应的对数似然比LLR序列,LLR序列可以包括2w个LLR。
示例性地,待译码比特序列是通过对第一比特序列进行极化码编码得到的,第一比特序列即为图3a中所示意的待编码比特序列,第一比特序列中可以包括信息比特,还可以包括冻结比特。
本申请实施例中,待译码比特序列中可以包括2w个待译码比特(待译码比特可以包括待译码的信息比特和待译码的冻结比特),2w个待译码比特中的每个待译码比特对应一个LLR。
示例性地,接收端设备可以根据信道的噪声方差,计算得到每个待译码比特对应的LLR。在一个示例中,可以通过如下公式计算待译码比特对应的LLR:
其中,t表示待译码比特,LLR(t)表示待译码比特对应的LLR,p(t|0)表示待译码比特取值为0的概率,p(t|1)表示待译码比特取值为1的概率,σ表示信道的噪声方差。
举个例子,2w=4,4个待译码比特分别为t1、t2、t3、t4,4个待译码比特的LLR分别为:LLR(t1)=1.5、LLR(t2)=2、LLR(t3)=-1、LLR(t3)=-3。如此可得LLR序列为[1.5、2、-1、-3]。
需要说明的是,2w也可以理解为极化码母码的长度,若发送端设备在发送比特序列时未进行速率匹配,则接收端设备可以从发送端设备接收2w个待译码比特;若发送端设备在发送比特序列时进行了速率匹配(比如打孔(puncturing)和/或截短(shortening)),则接收端设备可以从发送端设备接收N’(N’可以为小于2w的数值,具体不做限定)个待译码比特,并根据N’个待译码比特进行解速率匹配,得到2w个待译码比特。也就是说,上述2w个LLR中可以包含被打孔和/或被截短的比特对应的LLR。
步骤402,确定待译码比特序列对应的LDPC码校验矩阵。
此处,待译码比特序列对应的LDPC码校验矩阵为下文所描述的第一校验矩阵或者目标LDPC码校验矩阵,其中,目标LDPC码校验矩阵是通过对第一校验矩阵执行以下一种或多种操作得到的:行交换、列交换、行合并、列合并、行删除、列删除。本申请实施例中,以待译码比特序列对应的LDPC码校验矩阵为目标LDPC码校验矩阵为例进行描述。
步骤403,基于待译码比特序列对应的LDPC码校验矩阵使用LDPC码译码器对LLR序列进行译码,得到第一译码结果。
示例性地,LDPC码译码器可以为LDPC码分层译码器或者其它可能的LDPC码译码器(可以称为LDPC码非分层译码器),具体不做限定。比如,待译码比特序列对应的LDPC码校验矩阵为下文所描述的第一校验矩阵时,可以采用LDPC码非分层译码器;当待译码比特序列对应的LDPC码校验矩阵为目标LDPC码校验矩阵时,可以采用LDPC码分层译码器。采用LDPC分层译码器可以将目标LDPC校验矩阵按行划分成多个层,每次迭代过程中,每层内的行可以并行更新,不同层内则是串行更新,如图5a所示。其中,并行更新是指对指定范围内所有校验式同时做校验节点更新和变量节点更新;串行更新是指按指定范围内校验式的排列顺序,逐次对校验式做校验节点更新和变量节点更新。采用LDPC码分层译码方法可改善译码性能,降低译码错误的概率。
步骤404,根据第一译码结果得到译码比特序列。
示例性地,使用极化码译码器对第一译码结果进行译码,得到译码比特序列。其中,第一译码结果可以理解为LDPC码译码器输出的软值(即经过LDPC译码器译码得到的LLR序列),将这些软值输入极化码译码器做进一步译码,进而得到译码比特序列。
进一步地,通过LDPC码译码器和极化码译码器进行译码的过程可以为迭代过程,比如,将待译码比特序列对应的LLR序列输入LDPC码译码器,LDPC码译码器输出译码结果a1;将译码结果a1输入极化码译码器,极化码译码器输出译码结果b1;将译码结果b1输入LDPC码译码器,LDPC码译码器输出译码结果a2;将译码结果a2输入极化码译码器,极化码译码器输出译码结果b2;以此类推,经过多次迭代后,极化码译码器可以输出译码比特序列。其中,迭代次数可以与待译码比特序列对应的LLR序列中的LLR个数有关。由此可知,在同时包含LDPC码译码器和极化码译码器的通信装置(如5G通信系统中的网络设备和终端设备)中,由于极化码的大部分译码操作可通过LDPC译码器实现,从而使得极化码译码器的复杂度大大降低。
本申请实施例中,针对于通过极化码编码得到的待译码比特序列,通过确定待译码比特序列对应的LDPC码校验矩阵,能够使用LDPC码译码器对待译码比特序列对应的LLR序列进行译码,从而使得极化码译码和LDPC码译码可以实现共模译码;进一步地,由于使用LDPC码译码器对LLR序列进行译码得到了第一译码结果,因此,只需使用极化码译码器对第一译码结果进行译码即可,即可以通过LDPC译码器实现极化码的大部分译码操作,相比于现有技术中使用极化码译码器对待译码比特序列对应的LLR序列进行译码来说,本申请实施例中所需的极化码译码器的复杂度可以远远小于现有技术中极化码译码器的复杂度,从而能够有效降低硬件开销。
示例性地,上述步骤402中,接收端设备确定待译码比特序列对应的目标LDPC码校验矩阵的实现方式可以有多种。比如,在一种可能的实现方式中,可以预先通过下文所描述的确定目标LDPC码校验矩阵的过程对多种极化码因子图进行变形,得到多个LDPC码校验矩阵,并存储在接收端设备可以访问的存储介质中,如此,在步骤402中,接收端设备可以依据LLR序列所包括的LLR的个数从多个LDPC码校验矩阵中确定出目标LDPC码校验矩阵,进一步地,还可以依据Tanner图中的一个变量节点所对应的极化码因子图中的节点的个数来确定目标LDPC码校验矩阵,比如,LLR的个数为16,Tanner图中的一个变量节点所对应的极化码因子图中的节点的个数为2,进而可以确定出目标LDPC码校验矩阵为下文中示例3所示意的目标LDPC码校验矩阵。在又一种可能的实现方式中,在步骤402中,接收端设备也可以依据LLR序列所包括的LLR的个数通过下文所描述的确定目标LDPC码校验矩阵的过程来确定目标LDPC码校验矩阵。
下面对确定目标LDPC码校验矩阵的过程进行详细说明。
本申请实施例中,接收端设备可以根据LLR序列中LLR的个数,得到待译码比特序列对应的极化码因子图,进而根据极化码因子图中不同节点之间的校验关系,确定LDPC码Tanner图,并根据LDPC码Tanner图确定第一校验矩阵,进而根据第一校验矩阵得到目标LDPC码校验矩阵。由此可知,确定目标LDPC码校验矩阵的过程包括两部分内容:(1)确定第一校验矩阵;(2)根据第一校验矩阵得到目标LDPC码校验矩阵。下面对这两部分内容分别进行描述。
(1)确定第一校验矩阵
示例性地,当LLR序列包括2w个LLR时,得到的极化码因子图中可以包含w+1层,每一层包含2w个节点,进而共有2w(w+1)个节点。比如LLR序列中LLR的个数为4(此时w=2),则对应的因子图中包括3层,共12个节点;又比如,LLR序列中LLR的个数为8(此时w=3),则对应的因子图中包括4层,共32个节点;又比如,LLR序列中LLR的个数为16(此时w=4),则对应的因子图中包括5层,共80个节点。
根据因子图中的节点可以确定Tanner图中的变量节点,比如Tanner图中的一个变量节点可以对应因子图中的2p(p为大于或等于0的整数)个节点。当p等于0时,Tanner图中的一个变量节点可以对应因子图中的一个节点,即因子图中的每一个节点可以视为Tanner图中的一个变量节点;当p大于0时(比如p=1),Tanner图中的一个变量节点可以对应因子图中的2个节点,即因子图中的每两个节点可以视为Tanner图中的一个变量节点。
在该实现方式的一个示例(示例1)中,Tanner图中的一个变量节点可以对应因子图中的一个节点,参见图1b所示意的因子图,该因子图中共包括32个节点,则对应的Tanner图中包括32个变量节点。该因子图中的不同节点之间具有一定的校验关系,比如x0+x4=x5,进而有x0+x4+x5=0,其中,x0表示节点0,x4表示节点4,x5表示节点5,因此,若节点0对应Tanner图中的变量节点0、节点4对应变量节点4、节点5对应变量节点5时,变量节点0、变量节点4、变量节点5可以与同一校验节点(比如校验节点0)连接。进而基于因子图中不同节点之间的校验关系,可以得到如图5b所示意的Tanner图。图5b中,圆形节点为Tanner图中的变量节点,方形节点为Tanner图中的校验节点,进而将该Tanner图写成基模图的形式,如下所示:
1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
。
进一步地,根据上述基模图得到第一校验矩阵(为便于描述,称为LDPC码校验矩阵1),如下所示:
0 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | 0 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | 0 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 |
。
上述所得到的LDPC码校验矩阵1的每一行按照从上到下的顺序,对应图5b所示意的Tanner图中按从右往左从上到下顺序的每一个方形节点,例如,LDPC码校验矩阵1中第一行对应Tanner图中最右上角处的方形节点(即校验节点0)。上述所得到的LDPC码校验矩阵1的每一列按照从左到右的顺序,对应图5b所示意的Tanner图中从右往左从上到下顺序的每一个圆形节点,例如,LDPC码校验矩阵1中第一列对应Tanner图中最右上角处的圆形节点(即变量节点0)。
由此可知,在该示例中,若因子图包括2w(w+1)个节点,则对应的Tanner图中包括2w(w+1)个变量节点和2w*w个校验节点,进而对应的第一校验矩阵中包括2w(w+1)列,2w*w行。
在该实现方式的又一个示例(称为示例2)中,Tanner图中的一个变量节点可以对应因子图中的多个节点,以Tanner图中的一个变量节点可以对应因子图中的2个节点(即p=1)为例,参见图5c所示意的因子图,该因子图中共包括80(24(4+1)=80,即w=4)个节点,则对应的Tanner图中包括32(23(3+1)=32,即k=w-p=3)个变量节点,如图5c中每个虚线椭圆代表一个变量节点,一个变量节点对应因子图中的两个节点。根据32个变量节点之间的校验关系,可以得到与32个变量节点连接的24(23*3=24)个校验节点。此种情形下,只对因子图右侧4层做变换,即图中虚线圆圈包含的部分。这对于该因子图的layer1至layer4,若是将其中每相邻两个节点看成一个整体,则需要变形的部分和一个图1b中因子图的连接关系是完全等价的,因此对图5c所示意的因子图的layer1至layer4变形后得到的第一校验矩阵(为便于描述,称为LDPC码校验矩阵2),如下所示:
0 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | 0 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | 0 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | 0 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 |
。
上述所得到的LDPC码校验矩阵2中的每个元素都表示一个2*2的子矩阵,其中-1表示一个2*2的全0矩阵,0表示一个2*2的单位矩阵,即LDPC码校验矩阵2具有QC结构,为QC-LDPC码校验矩阵。
针对于上述示例1和示例2可知:上述示例1中,Tanner图的一个变量节点包括因子图中的一个节点,从而能够对完整的因子图进行变形,得到LDPC码校验矩阵1;此种情形下,LDPC码校验矩阵1并非QC-LDPC码校验矩阵,也就是说,当对完整的因子图进行变形时所得到的LDPC码校验矩阵不是QC-LDPC码校验矩阵。示例2中,Tanner图的一个变量节点包括因子图中的多个节点(比如2个),从而对因子图的一部分进行变形得到LDPC码校验矩阵2,从图9中可以看出是对因子图中的layer1至layer4进行变形,而未对layer0进行变形;此种情形下,所得到的LDPC码校验矩阵为QC-LDPC码校验矩阵。
需要说明的是:上述示例2中,是以Tanner图的一个变量节点包括因子图中的2(p=1)个节点为例进行描述,当p的取值为其它数值时可以参照上述方式执行。其中,当p=1时,所得到的LDPC码校验矩阵中的每个元素都表示一个2*2的子矩阵,当p=2时,所得到的LDPC码校验矩阵中的每个元素都表示一个4*4的子矩阵,当p=3时,所得到的LDPC码校验矩阵中的每个元素都表示一个8*8的子矩阵。也就是说,当Tanner图中的一个变量节点包括因子图中的2p(p为大于或等于0的整数)个节点时,所得到的LDPC码校验矩阵中的每个元素都表示一个2p*2p的子矩阵。示例性地,当Tanner图中的一个变量节点对应极化码因子图中的多个节点(即p大于或等于1)时,所得到的目标LDPC码校验矩阵均可以为QC-LDPC码校验矩阵,即具有准循环特征。
(2)根据第一校验矩阵得到目标LDPC码校验矩阵
示例性地,可以对第一校验矩阵进行以下一种或多种操作:行交换、列交换、行合并、列合并、列删除。比如,通过对第一校验矩阵执行上述一种或多种操作得到目标LDPC码校验矩阵,目标LDPC码校验矩阵可以被划分为多个层,以使用LDPC分层译码器进行译码。其中,第一校验矩阵可以为根据因子图变形得到的Tanner直接得到的LDPC码校验矩阵,比如上述示例1中所得到的LDPC码校验矩阵1或上述示例2中所得到的LDPC码校验矩阵2。
在一个示例中,可以对第一校验矩阵进行行变换,得到第二校验矩阵;对第二校验矩阵进行列合并和删除,得到目标LDPC码校验矩阵。
下面分别对行变换、列合并和删除分别进行说明。
①行变换
由于极化码译码方法在译码过程中具有串行特性,因此可考虑对第一校验矩阵进行行变换,以满足极化码译码方法的串行特性。
示例性地,极化码译码方法在译码过程中的串行特征具体表现为:①因子图里,不同层之间逐层进行计算,前一层计算完后再计算后一层;②因子图里,同一层内的计算包含上节点运算和下节点运算两部分,通常需要先进行上节点运算,再进行下节点运算。图5d为2*2的极化码蝶形网络单元对应的Tanner图示例,图5d中的C0、C1、C2、C3代表变量节点,R0和R1代表校验节点;其中,上节点运算,也可以称为F运算,是指在2*2的极化码蝶形网络单元中,计算左上角节点的运算,如图5d中计算节点C2的运算;下节点运算,也可以称为G运算,是指在2*2的极化码码蝶形网络单元中,计算左下角节点的运算,如图5d中计算节点C3的运算。由于因子图里的每一层包含的校验节点都和LDPC码校验矩阵中的行一一对应,为符合上述串行特征,需要满足以下两个条件:条件1,LDPC码校验矩阵中对应因子图中同一层的校验行连续排列,对应因子图中不同层的校验行按因子图中从左到右(或者从右到左)、从上到下的顺序连续排列;条件2,在对应因子图中同一层的一组校验行中,将对应上节点运算的校验行排列在对应下节点校验行之前。根据上述确定第一校验矩阵的过程可知,第一校验矩阵满足条件1,因此可以调整第一校验矩阵中行的顺序(即进行行交换),以满足条件2,进而符合上述串行特征。
在一个示例中,对第一校验矩阵进行行交换可以为:假设第一校验矩阵具有2w*w行(即为第1行至第2w*w行),将第2w*i+1行至第2w*(i+1)行中对应因子图中上节点运算的行按照从上到下的顺序调整至第2w*i+1行至第2w*i+2w-1行,将第2w*i+1行至第2w*(i+1)行中对应因子图中下节点运算的行按照从上到下的顺序调整至第2w*i+2w-1+1行至第2w*(i+1)行,其中,i=1,2,…,w-1。
举例来说,以LDPC码校验矩阵2为例,其对应的因子图的Tanner图如图5b所示。其中,LDPC码校验矩阵2中第1至第8行对应因子图中layer2和layer3之间的校验节点;LDPC码校验矩阵2中第9至第16行对应因子图中layer1和layer2之间的校验节点;LDPC码校验矩阵2中第17至第24行对应因子图中layer0和layer1之间的校验节点。由此可知,LDPC码校验矩阵2中对应因子图中同一层的校验行连续排列,对应因子图中不同层的校验行按因子图中从右到左、从上到下的顺序连续排列,即满足上述条件1;但由于不满足条件2,故可以对LDPC码校验矩阵2进行行交换,以满足条件2。
示例性地,LDPC码校验矩阵2中第1至第4行对应因子图layer2和layer3间校验节点的上节点运算,LDPC码校验矩阵2中第5至第8行对应因子图layer2和layer3间校验节点的下节点运算,该部分满足条件2,不需要做行交换。
LDPC码校验矩阵2中第9,10,13,14行对应因子图layer1和layer2间校验节点的上节点运算,LDPC码校验矩阵2中第11,12,15,16行对应因子图layer1和layer2间校验节点的下节点运算,不满足条件2,因此,可以将原先第9,10,13,14行调整至第9,10,11,12行,将原先第11,12,15,16行调整至第13,14,15,16行,从而满足条件2。
LDPC码校验矩阵2中第17,19,21,23行对应因子图layer0和layer1间校验节点的上节点运算,LDPC码校验矩阵2中第18,20,22,24行对应因子图layer0和layer1间校验节点的下节点运算,不满足条件2,因此,可以将原先第17,19,21,23行调整至第17,18,19,20行,将原先第18,20,22,24行调整至第21,22,23,24行,从而满足条件2。
最终,经过上述行变换后,得到满足条件1和条件2的第二校验矩阵,如下所示:
②列合并
首先对LDPC校验矩阵的行重和列重进行说明:LDPC校验矩阵的行重,表示LDPC校验矩阵中一行内非负元素的个数;LDPC校验矩阵的列重,表示LDPC校验矩阵中一列内非负元素的个数。需要说明的是,此处是以LDPC校验矩阵中全0元素用-1表示为例,但不排除其他的表示形式。
由于LDPC校验矩阵中所有行重等于2的行是将与其相连的变量节点的信息传递给另一个变量节点,因此可以把与行重等于2的行相连的两个校验节点(两列)合并,以减小LDPC校验矩阵的尺寸,进而减少译码过程中无效的运算。
假设第二校验矩阵中待合并的两列为a和b,合并过程包括如下步骤:
步骤1,将b列模2加到a列上,即将b列的值与a列的值进行模2加,并使用模2加得到的值对a列的值进行更新;步骤2,删除b列,或者将b列的所有元素置为-1,得到第三校验矩阵。
举个例子,上述第二矩阵中,第5行只有两个元素取值为0,其行重等于2,进而可以把与行重等于2的行相连的两个校验节点(第5列和第12列)合并,即将第5列和第12列做模2加,使用模2加得到的值对第5列的值进行更新,得到如下矩阵:
进而,将第12列的所有元素置为-1,得到第三校验矩阵,如下所示:
③删除:行删除和列删除
比如,删除第三校验矩阵中所有行重等于0的行和列重等于0的列,即删除第5行和第12列。
可以理解地,上述描述列合并时,是将与行重等于2的其中一行相连的两个校验节点(两列)合并为例进行描述的,若是将上述第二校验矩阵中所有行重等于2的行均做变形,则可得到目标LDPC码校验矩阵,如下所示:
需要说明的是,上述是以将上述第二校验矩阵中所有行重等于2的行均做变形为例,在其它可能的实施例中,由于LDPC码校验矩阵中最后2w列对应的校验节点为因子图中译码比特对应的校验节点,考虑到有些译码算法需要用到这些校验节点的顺序关系,因此在做列合并时,最后2w列可不参与列合并操作,此种情形下得到的目标LDPC码校验矩阵,如下所示:
经过上述操作所得到的目标LDPC码校验矩阵均可适配LDPC码的分层译码算法,目标LDPC码校验矩阵中同一个层内的校验式可并行计算而不影响计算性能。
下面给出几种可能的目标LDPC码校验矩阵的示例。
示例1,LLR序列包括2w个LLR,w为大于或等于1的整数时,目标LDPC码校验矩阵可以为:
0 | 0 | 0 | -1 |
-1 | 0 | -1 | 0 |
其中,该目标LDPC码校验矩阵包括第一层和第二层,第一层包括第一行,第二层包括第二行。
在示例1中,比如,当LLR序列包括2个LLR,Tanner图中的一个变量节点对应极化码因子图中的一个节点时,可得到上述所示的目标LDPC码校验矩阵;又比如,当LLR序列包括2w=4个LLR,Tanner图中的一个变量节点对应极化码因子图中的2个节点时,可得到上述所示的目标LDPC码校验矩阵;又比如,当LLR序列包括2w=8个LLR,Tanner图中的一个变量节点对应极化码因子图中的4个节点时,可得到上述所示的目标LDPC码校验矩阵。
示例2,LLR序列包括2w个LLR,w为大于或等于2的整数时,目标LDPC码校验矩阵可以为:
0 | -1 | 0 | -1 | 0 | -1 | -1 | -1 | -1 | -1 |
-1 | 0 | -1 | 0 | -1 | 0 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | 0 | 0 | 0 | -1 | -1 | -1 |
-1 | -1 | 0 | 0 | -1 | -1 | -1 | -1 | 0 | -1 |
-1 | -1 | -1 | -1 | -1 | 0 | -1 | 0 | -1 | -1 |
-1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | 0 |
其中,该目标LDPC码校验矩阵包括第一层、第二层和第三层,第一层包括第一行和第二行,第二层包括第三行和第四行,第三层包括第五行和第六行。
在示例2中,比如,当LLR序列包括2w=4个LLR,Tanner图中的一个变量节点对应极化码因子图中的一个节点时,可得到上述所示的目标LDPC码校验矩阵;又比如,当LLR序列包括2w=8个LLR,Tanner图中的一个变量节点对应极化码因子图中的2个节点时,可得到上述所示的目标LDPC码校验矩阵;又比如,当LLR序列包括2w=16个LLR,Tanner图中的一个变量节点对应极化码因子图中的4个节点时,可得到上述所示的目标LDPC码校验矩阵。
示例3,LLR序列包括2w个LLR,w为大于或等于3的整数时,目标LDPC码校验矩阵可以为:
0 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | 0 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | 0 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | 0 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | 0 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | 0 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | 0 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | 0 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | 0 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | 0 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | 0 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 |
,
其中,该目标LDPC码校验矩阵包括第一层、第二层、第三层和第四层,第一层包括第一行至第四行,第二层包括第五行至第八行,第三层包括第九行至第十二行,第四层包括第十三行至第十六行。
在示例3中,比如,当LLR序列包括2w=8个LLR,Tanner图中的一个变量节点对应极化码因子图中的一个节点时,可得到上述所示的目标LDPC码校验矩阵;又比如,当LLR序列包括2w=16个LLR,Tanner图中的一个变量节点对应极化码因子图中的2个节点时,可得到上述所示的目标LDPC码校验矩阵;又比如,当LLR序列包括2w=32个LLR,Tanner图中的一个变量节点对应极化码因子图中的4个节点时,可得到上述所示的目标LDPC码校验矩阵。
示例4,LLR序列包括2w个LLR,w为大于或等于4的整数时,目标LDPC码校验矩阵可以为:
其中,目标LDPC码校验矩阵包括第一层至第五层,第一层包括第一行至第八行,第二层包括第九行至第十六行,第三层包括第十七行至第二十四行,第四层包括第二十五行至第三十二行,第五层包括第三十三行至第四十行。
在示例4中,比如,当LLR序列包括2w=16个LLR,Tanner图中的一个变量节点对应极化码因子图中的一个节点时,可得到上述所示的目标LDPC码校验矩阵;又比如,当LLR序列包括2w=32个LLR,Tanner图中的一个变量节点对应极化码因子图中的2个节点时,可得到上述所示的目标LDPC码校验矩阵;又比如,当LLR序列包括2w=64个LLR,Tanner图中的一个变量节点对应极化码因子图中的4个节点时,可得到上述所示的目标LDPC码校验矩阵。
需要说明的是,在其它可能的实施例中,目标LDPC码校验矩阵也可以表示为其它形式,比如,示例1中所示意的目标LDPC码校验矩阵也可以表示为如下所示的表格形式:
上述表格中,记录了目标LDPC码校验矩阵中标记了值的元素,其中,表格第一列表示当前的行号,第二列表示所述行号中对应的某个列号,第三列表示对应元素的值,比如上述表格表示:第0行中,第0列、第1列、第2列等三列有值,它们的值分别为0,0,0;第1行中,第0列、第3列等两列有值,它们的值分别为0,0。
基于上述步骤401至步骤404,下面结合图6描述一种译码过程示例。
图6为本申请实施例提供的译码过程的逻辑示意图,如图6所示,该译码过程可以通过一个LDPC码译码器与一个SCL译码器级联实现,其中,SCL译码器可以为SCL2(即路径宽度为2)译码器,如图7所示。图6中虚线框中部分表示支持目标LDPC码矩阵的LDPC码译码器,其包含了目标LDPC码矩阵从上向下分层计算和从下往上分层计算两部分,以目标LDPC码矩阵为上述示例2中所示出的目标LDPC码矩阵为例,其具体实现可以包括:
步骤1,获取LLR序列,LLR序列中包括8个LLR。
步骤2,将8个LLR输入LDPC译码器,8个LLR分别对应示例2中矩阵从左往右数的前4列,对目标LDPC码校验矩阵从上往下逐行进行最小和(Min-Sum)或者和积(Sum-Product)译码,直到最后一行。
步骤3,将目标LDPC码校验矩阵最后4列对应的LLR(这里的LLR是指步骤2中译码得到的LLR)中,第一列对应的两个LLR输出,并将它们输入SCL译码器(L=2)中。
步骤4,SCL译码器对输入的两个LLR进行SCL译码,得到两条译码路径,每条路径包含2个输出比特,将SCL译码得到的两条路径按译码结果饱和后,反馈给LDPC译码器;后续所有运算均至少包含2条路径。
步骤5,对目标LDPC码校验矩阵从下往上逐行进行Min-Sum或者Sum-Product译码,直到第一行;再对目标LDPC码校验矩阵从上往下逐行进行Min-Sum或者Sum-Product译码,直到最后一行。
步骤6,将目标LDPC码校验矩阵最后4列对应的LLR中,第二列对应的两个LLR输出,并将它们输入SCL译码器中。
步骤7,SCL译码器对输入的两条路径的两个LLR进行SCL译码,得到新的四条译码路径,每条路径包含2个输出比特,SCL译码器在其中选择最可靠的2条译码路径,更新它们的父路径后,将译码得到的两条路径反馈给LDPC译码器。
步骤8,对目标LDPC码校验矩阵从下往上逐行进行Min-Sum或者Sum-Product译码,直到第一行;再对目标LDPC码校验矩阵从上往下逐行进行Min-Sum或者Sum-Product译码,直到最后一行。
步骤9,将目标LDPC码校验矩阵最后4列对应的LLR中,第三列对应的两个LLR输出,并将它们输入SCL译码器中。
步骤10,SCL译码器对输入的两条路径的两个LLR进行SCL译码,得到新的四条译码路径,每条路径包含2个输出比特,SCL译码器在其中选择最可靠的2条译码路径,更新它们的父路径后,将译码得到的两条路径反馈给LDPC译码器。
步骤11,对目标LDPC码校验矩阵从下往上逐行进行Min-Sum或者Sum-Product译码,直到第一行;再对目标LDPC码校验矩阵从上往下逐行进行Min-Sum或者Sum-Product译码,直到最后一行。
步骤12,将目标LDPC码校验矩阵最后4列对应的LLR中,第四列对应的两个LLR输出,并将它们输入SCL译码器中。
步骤13,SCL译码器对输入的两条路径的两个LLR进行SCL译码,得到新的四条译码路径,每条路径包含2个输出比特,SCL译码器在其中选择最可靠的2条译码路径,再在其中选择可以通过CRC校验的一条译码路径作为译码比特序列输出,如果两条路径都通过了CRC校验,则选择更可靠的一条作为译码比特序列输出。
根据图6所描述的译码过程可以看出,通过确定目标LDPC码校验矩阵,从而可以使用级联的LDPC码译码器和SCL译码器实现译码,使得极化码译码和LDPC码译码可以共模译码,有效节省硬件开销。
可以理解的是,为了实现上述功能,译码装置可以包括执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请的实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在采用集成的单元(模块)的情况下,图8示出了本申请实施例中所涉及的装置的可能的示例性框图,该装置800可以以软件的形式存在。装置800可以包括:
获取模块801,获取待译码比特序列对应的对数似然比LLR序列,所述LLR序列包括2w个LLR,所述待译码比特序列是通过对第一比特序列进行极化码编码得到的,所述第一比特序列中包括信息比特;w为大于或等于1的整数;译码模块802,用于确定所述待译码比特序列对应的低密度奇偶校验LDPC码校验矩阵;基于所述LDPC码校验矩阵对所述LLR序列进行译码,得到第一译码结果;根据所述第一译码结果得到译码比特序列。
在一种可能的设计中,译码模块802具体用于:基于所述LDPC码校验矩阵使用LDPC码分层译码器对所述LLR序列进行译码,得到所述第一译码结果。
在一种可能的设计中,译码模块802具体用于:使用极化码译码器对所述第一译码结果进行译码,得到所述译码比特序列。
在一种可能的设计中,译码模块802具体用于:确定所述待译码比特序列对应的极化码因子图,所述极化码因子图包括2w*(w+1)个节点;根据所述极化码因子图中不同节点之间的校验关系,确定LDPC码Tanner图,所述Tanner图中包括2k*(k+1)个变量节点和2k*k个校验节点,每个所述变量节点对应所述极化码因子图中的2p个节点,k为大于或等于1的整数,p为大于或等于0的整数,w=p+k;根据所述2k*(k+1)个变量节点和所述2k*k个校验节点确定所述待译码比特序列对应的LDPC码校验矩阵。
在一种可能的设计中,译码模块802具体用于:根据所述2k*(k+1)个变量节点和2k*k个校验节点确定第一校验矩阵;对所述第一校验矩阵执行以下一种或多种操作得到所述LDPC码校验矩阵:行交换、列交换、行合并、列合并、行删除、列删除。
在一种可能的设计中,所述待译码比特序列对应的LDPC码校验矩阵为准循环QC-LDPC码校验矩阵。
在一种可能的设计中,确定出的LDPC码校验矩阵为:
0 | 0 | 0 | -1 |
-1 | 0 | -1 | 0 |
其中,所述LDPC码校验矩阵包括第一层和第二层,所述第一层包括第一行,所述第二层包括第二行。
在一种可能的设计中,所述w为大于或等于2的整数;确定出的LDPC码校验矩阵为:
0 | -1 | 0 | -1 | 0 | -1 | -1 | -1 | -1 | -1 |
-1 | 0 | -1 | 0 | -1 | 0 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | 0 | 0 | 0 | -1 | -1 | -1 |
-1 | -1 | 0 | 0 | -1 | -1 | -1 | -1 | 0 | -1 |
-1 | -1 | -1 | -1 | -1 | 0 | -1 | 0 | -1 | -1 |
-1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | 0 |
其中,所述LDPC码校验矩阵包括第一层、第二层和第三层,所述第一层包括第一行和第二行,所述第二层包括第三行和第四行,所述第三层包括第五行和第六行。
在一种可能的设计中,w为大于或等于3的整数;确定出的LDPC码校验矩阵为:
0 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | 0 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | 0 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | 0 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | 0 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | 0 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | 0 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | 0 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | 0 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | 0 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | 0 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 0 |
;
其中,所述LDPC码校验矩阵包括第一层、第二层、第三层和第四层,所述第一层包括第一行至第四行,所述第二层包括第五行至第八行,所述第三层包括第九行至第十二行,所述第四层包括第十三行至第十六行。
在一种可能的设计中,w为大于或等于4的整数;确定出的LDPC码校验矩阵为:
其中,所述LDPC码校验矩阵包括第一层至第五层,所述第一层包括第一行至第八行,所述第二层包括第九行至第十六行,所述第三层包括第十七行至第二十四行,所述第四层包括第二十五行至第三十二行,所述第五层包括第三十三行至第四十行。
需要说明的是,本申请实施例中图8所示的译码装置对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
如图9所示,本申请实施例中还提供一种译码装置900,该译码装置900用于执行图4所示的译码方法。图4所示的译码方法中的部分或全部可以通过硬件来实现也可以通过软件来实现,当通过硬件实现时,译码装置900包括:输入接口电路901,用于获取待译码比特序列对应的LLR序列;逻辑电路902,用于执行图4所示的译码方法;输出接口电路903,用于输出译码比特序列。
可选的,译码装置900在具体实现时可以是芯片或者集成电路。
可选的,当图4所示的译码方法中的部分或全部通过软件来实现时,如图10所示,译码装置1000包括:存储器1001,用于存储程序;处理器1002,用于执行存储器1001存储的程序,当程序被执行时,使得译码装置1000可以实现图4所示的译码方法。
可选的,上述存储器1001可以是物理上独立的单元,也可以与处理器1002集成在一起。
可选的,当图4所示的译码方法中的部分或全部通过软件实现时,译码装置1000也可以只包括处理器1002。用于存储程序的存储器1001位于译码装置1000之外,处理器1002通过电路/电线与存储器1001连接,用于读取并执行存储器1001中存储的程序。
处理器1002可以是中央处理器(central processing unit,CPU),网络处理器(network processor,NP)或者CPU和NP的组合。
处理器1002还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmablelogic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complexprogrammable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gatearray,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。
存储器1001可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器1001也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器1001还可以包括上述种类的存储器的组合。
本申请实施例还提供一种计算机存储介质,存储有计算机程序,该计算机程序包括用于执行上述方法实施例提供的译码方法。
本申请实施例还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述方法实施例提供的译码方法。
本申请实施例提供的任一种译码装置还可以是一种芯片。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (17)
1.一种译码方法,其特征在于,所述方法包括:
获取待译码比特序列对应的对数似然比LLR序列,所述LLR序列包括2w个LLR,所述待译码比特序列是通过对第一比特序列进行极化码编码得到的,所述第一比特序列中包括信息比特;w为大于或等于1的整数;
确定所述待译码比特序列对应的低密度奇偶校验LDPC码校验矩阵;
基于所述LDPC码校验矩阵对所述LLR序列进行译码,得到第一译码结果;
根据所述第一译码结果得到译码比特序列。
2.根据权利要求1所述的方法,其特征在于,基于所述LDPC码校验矩阵对所述LLR序列进行译码,得到第一译码结果,包括:
基于所述LDPC码校验矩阵使用LDPC码分层译码器对所述LLR序列进行译码,得到所述第一译码结果。
3.根据权利要求1或2所述的方法,其特征在于,根据所述第一译码结果得到译码比特序列,包括:
使用极化码译码器对所述第一译码结果进行译码,得到所述译码比特序列。
4.根据权利要求1至3中任一项所述的方法,其特征在于,确定所述待译码比特序列对应的LDPC码校验矩阵,包括:
确定所述待译码比特序列对应的极化码因子图,所述极化码因子图包括2w*(w+1)个节点;
根据所述极化码因子图中不同节点之间的校验关系,确定Tanner图中的2k*(k+1)个变量节点和2k*k个校验节点,每个所述变量节点对应所述极化码因子图中的2p个节点,k为大于或等于1的整数,p为大于或等于0的整数,w=p+k;
根据所述2k*(k+1)个变量节点和所述2k*k个校验节点确定所述待译码比特序列对应的LDPC码校验矩阵。
5.根据权利要求4所述的方法,其特征在于,根据所述2k*(k+1)个变量节点和2k*k个校验节点确定所述待译码比特序列对应的LDPC码校验矩阵,包括:
根据所述2k*(k+1)个变量节点和2k*k个校验节点确定第一校验矩阵;
对所述第一校验矩阵执行以下一种或多种操作得到所述LDPC码校验矩阵:行交换、列交换、行合并、列合并、行删除、列删除。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述待译码比特序列对应的LDPC码校验矩阵为准循环QC-LDPC码校验矩阵。
7.根据权利要求1至6中任一项所述的方法,其特征在于,确定出的LDPC码校验矩阵为:
其中,所述LDPC码校验矩阵包括第一层和第二层,所述第一层包括第一行,所述第二层包括第二行。
8.根据权利要求1至6中任一项所述的方法,其特征在于,所述w为大于或等于2的整数;
确定出的LDPC码校验矩阵为:
其中,所述LDPC码校验矩阵包括第一层、第二层和第三层,所述第一层包括第一行和第二行,所述第二层包括第三行和第四行,所述第三层包括第五行和第六行。
11.一种译码装置,其特征在于,所述译码装置包括:
存储器,用于存储程序;
处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述处理器用于执行如权利要求1~10任一项所述的方法。
12.如权利要求11所述的装置,其特征在于,所述译码装置为芯片或集成电路。
13.一种译码装置,其特征在于,包括:
输入接口电路,用于获取待译码比特序列对应的LLR序列;
逻辑电路,用于基于获取的LLR序列执行所述权利要求1~10任一项所述的方法;
输出接口电路,用于输出译码比特序列。
14.一种芯片,其特征在于,包括:
存储器,用于存储程序;
处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述处理器用于执行如权利要求1~10任一项所述的方法。
15.一种芯片,其特征在于,包括:
输入接口电路,用于获取待译码比特序列对应的LLR序列;
逻辑电路,用于基于获取的LLR序列执行所述权利要求1~10任一项所述的方法;
输出接口电路,用于输出译码比特序列。
16.一种计算机可读存储介质,其特征在于,所述计算机存储介质中存储有计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行如权利要求1~10任意一项所述的方法。
17.一种计算机程序产品,其特征在于,当计算机读取并执行所述计算机程序产品时,使得计算机执行如权利要求1~10任意一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910944426.5A CN112583419A (zh) | 2019-09-30 | 2019-09-30 | 一种译码方法及装置 |
PCT/CN2020/116852 WO2021063217A1 (zh) | 2019-09-30 | 2020-09-22 | 一种译码方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910944426.5A CN112583419A (zh) | 2019-09-30 | 2019-09-30 | 一种译码方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112583419A true CN112583419A (zh) | 2021-03-30 |
Family
ID=75116683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910944426.5A Pending CN112583419A (zh) | 2019-09-30 | 2019-09-30 | 一种译码方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112583419A (zh) |
WO (1) | WO2021063217A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114866191A (zh) * | 2022-05-12 | 2022-08-05 | 华中科技大学 | 一种适用于cpm调制的极化码编码调制方法及译码方法 |
WO2023082519A1 (zh) * | 2021-11-15 | 2023-05-19 | 深圳市中兴微电子技术有限公司 | 并行译码方法及装置、存储介质、电子装置 |
WO2024036634A1 (zh) * | 2022-08-19 | 2024-02-22 | 华为技术有限公司 | 编码方法、译码方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103338047A (zh) * | 2008-10-10 | 2013-10-02 | 松下电器产业株式会社 | 解码器、接收装置、解码方法和接收方法 |
CN104868925A (zh) * | 2014-02-21 | 2015-08-26 | 中兴通讯股份有限公司 | 结构化ldpc码的编码方法、译码方法、编码装置和译码装置 |
US20170149446A1 (en) * | 2015-11-24 | 2017-05-25 | Texas Instruments Incorporated | Ldpc post-processor architecture and method for low error floor conditions |
CN107534511A (zh) * | 2015-11-17 | 2018-01-02 | 华为技术有限公司 | 低密度奇偶校验码的译码方法和译码器 |
WO2019134553A1 (zh) * | 2018-01-02 | 2019-07-11 | 华为技术有限公司 | 译码方法及设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104539393B (zh) * | 2015-01-07 | 2018-01-12 | 北京邮电大学 | 一种基于极化码的信源编码方法 |
US10778371B2 (en) * | 2016-11-02 | 2020-09-15 | Qualcomm Incorporated | Deeply-pipelined high-throughput LDPC decoder architecture |
TWI657669B (zh) * | 2017-11-28 | 2019-04-21 | 財團法人資訊工業策進會 | 低密度奇偶檢查碼解碼器及其解碼方法 |
-
2019
- 2019-09-30 CN CN201910944426.5A patent/CN112583419A/zh active Pending
-
2020
- 2020-09-22 WO PCT/CN2020/116852 patent/WO2021063217A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103338047A (zh) * | 2008-10-10 | 2013-10-02 | 松下电器产业株式会社 | 解码器、接收装置、解码方法和接收方法 |
CN104868925A (zh) * | 2014-02-21 | 2015-08-26 | 中兴通讯股份有限公司 | 结构化ldpc码的编码方法、译码方法、编码装置和译码装置 |
CN107534511A (zh) * | 2015-11-17 | 2018-01-02 | 华为技术有限公司 | 低密度奇偶校验码的译码方法和译码器 |
US20170149446A1 (en) * | 2015-11-24 | 2017-05-25 | Texas Instruments Incorporated | Ldpc post-processor architecture and method for low error floor conditions |
WO2019134553A1 (zh) * | 2018-01-02 | 2019-07-11 | 华为技术有限公司 | 译码方法及设备 |
Non-Patent Citations (6)
Title |
---|
何善宝, 赵春明, 史志华, 姜明: "基于稀疏二进制序列的低密度奇偶校验码", 通信学报, no. 06, 25 June 2005 (2005-06-25) * |
刘婉月;包昕;王达;金野;: "基于后验概率的低密度奇偶校验码逆向识别方法研究", 北京大学学报(自然科学版), no. 03, 17 May 2016 (2016-05-17) * |
卫霞;张文俊;: "一种改进的QC-LDPC码及其编码器FPGA实现", 重庆邮电大学学报(自然科学版), no. 01, 15 February 2016 (2016-02-15) * |
吴湛击;吴熹;: "5G控制信道极化码的研究", 北京邮电大学学报, no. 04, 28 September 2018 (2018-09-28) * |
尹芳;仇洪冰;滕舟;: "QC-LDPC的构造及性能仿真", 桂林电子科技大学学报, no. 01, 25 February 2010 (2010-02-25) * |
马丕明, 袁东风, 杨秀梅, 吴大雷: "OFDM系统中LDPC编码调制的对数似然比译码", 山东大学学报(工学版), no. 05, 30 October 2004 (2004-10-30) * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023082519A1 (zh) * | 2021-11-15 | 2023-05-19 | 深圳市中兴微电子技术有限公司 | 并行译码方法及装置、存储介质、电子装置 |
CN114866191A (zh) * | 2022-05-12 | 2022-08-05 | 华中科技大学 | 一种适用于cpm调制的极化码编码调制方法及译码方法 |
CN114866191B (zh) * | 2022-05-12 | 2024-05-14 | 华中科技大学 | 一种适用于cpm调制的极化码编码调制方法及译码方法 |
WO2024036634A1 (zh) * | 2022-08-19 | 2024-02-22 | 华为技术有限公司 | 编码方法、译码方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2021063217A1 (zh) | 2021-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7152394B2 (ja) | Ldpcコードを符号化および復号化するための方法および装置 | |
EP3556021B1 (en) | Efficiently decodable qc-ldpc code | |
US11057049B2 (en) | Generalized low-density parity check codes in digital communication system | |
WO2021063217A1 (zh) | 一种译码方法及装置 | |
KR101895164B1 (ko) | 코드 디코딩 에러 정정 방법 및 장치 | |
JPWO2009060627A1 (ja) | 符号化方法および送信装置 | |
US11101926B2 (en) | Method and apparatus for channel encoding and decoding in communication or broadcasting system | |
US11848684B2 (en) | Method, system, device and storage medium for constructing base matrix of PBRL LDPC code | |
CN109120374B (zh) | 准循环低密度奇偶校验编码设计方法及装置 | |
CN108270510B (zh) | 基于ldpc码的通信方法和通信设备 | |
WO2017105291A1 (en) | Generalized quasi-cyclic ldpc convolutional codes for digital communication systems | |
CN111130563B (zh) | 处理信息的方法和装置 | |
US20230388048A1 (en) | Method and apparatus for channel encoding and decoding in communication or broadcasting system | |
CN108234066B (zh) | 基于ldpc的通信方法和通信设备 | |
Ullah et al. | Comprehensive algorithmic review and analysis of LDPC codes | |
CN113055024B (zh) | 用于5g-nr系统短块长低码率ldpc码的修正译码方法 | |
CN112737600B (zh) | 译码方法和译码器 | |
WO2010047662A1 (en) | Computer-aided method for generation of a channel transmission error detection code matrix, encoder, decoder, and computer program product | |
KR102302366B1 (ko) | 통신 또는 방송 시스템에서 채널 부호화/복호화 방법 및 장치 | |
US11575390B2 (en) | Low-latency segmented quasi-cyclic low-density parity-check (QC-LDPC) decoder | |
Oliveira et al. | Polarization-driven puncturing for polar codes in 5g systems | |
CN116318181A (zh) | 一种极化码译码方法及装置 | |
KR20230019636A (ko) | 통신 및 방송 시스템에서 데이터 복호화 방법 및 장치 | |
Mansoor et al. | A Short Length Low Complexity Low Delay Recursive LDPC Code | |
CN107370554A (zh) | 低密度奇偶校验码的解码方法与解码器 |
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 |