CN111224674B - 多进制ldpc码的解码方法、装置及解码器 - Google Patents
多进制ldpc码的解码方法、装置及解码器 Download PDFInfo
- Publication number
- CN111224674B CN111224674B CN201811438257.XA CN201811438257A CN111224674B CN 111224674 B CN111224674 B CN 111224674B CN 201811438257 A CN201811438257 A CN 201811438257A CN 111224674 B CN111224674 B CN 111224674B
- Authority
- CN
- China
- Prior art keywords
- confidence
- output queue
- target
- virtual matrix
- module
- 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
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000004590 computer program Methods 0.000 claims description 21
- 230000008569 process Effects 0.000 claims description 19
- 238000013139 quantization Methods 0.000 claims description 13
- 239000011159 matrix material Substances 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 12
- 238000003780 insertion Methods 0.000 claims description 8
- 230000037431 insertion Effects 0.000 claims description 8
- 238000000605 extraction Methods 0.000 claims description 7
- 238000012163 sequencing technique Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 8
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction Methods 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/1148—Structural properties of the code parity-check or generator matrix
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明实施例适用于编解码技术领域,提供了一种多进制LDPC码的解码方法、装置及解码器,所述方法包括:根据两个有序的置信度输入队列确定当前的置信度虚拟矩阵;提取所述置信度虚拟矩阵的左上角第一个元素***动态排序表;识别所述动态排序表中的置信度最大值对应的目标元素,将所述目标元素***置信度输出队列;提取在所述置信度虚拟矩阵中所述目标元素的右侧元素和下方元素***所述动态排序表;依据所述动态排序表和所述置信度输出队列,生成置信度目标输出队列;采用所述置信度目标输出队列对多进制LDPC码进行解码操作。本实施例减少了对虚拟矩阵中的各个元素进行搜索排序的时间,降低了校验节点更新的操作复杂度,加快了多进制LDPC码的解码效率。
Description
技术领域
本发明属于编解码技术领域,特别是涉及一种多进制LDPC码的解码方法、一种多进制LDPC码的解码装置、一种解码器及一种计算机可读存储介质。
背景技术
二进制LDPC(Binary Low-Density-Parity-Check,简称B-LDPC)码是一种具有稀疏校验矩阵的分组纠错码,适用于几乎所有的信道,可以以码长指数的形式快速接近香农理论的信道容量,是编码界近年来的研究热点。然而,当码长相对较短时,B-LDPC码的性能会出现一定程度的降低。因此,有学者在B-LDPC码的基础上提出了多进制LDPC(Non-BinaryLow-Density-Parity-Check,简称NB-LDPC)码。相对于B-LDPC码,特别是当码长较短时,NB-LDPC码理论上具有更优异的性能,目前,NB-LDPC码也开始逐渐被相关行业采纳为编码标准。例如,北斗卫星导航***(BDS)。
但是,NB-LDPC码的应用也带来了更为复杂的解码算法。总体而言,NB-LDPC解码算法是一种基于置信度传播的迭代算法,常见的包括基本的置信度传播算法(BeliefPropagation,BP)、基于快速傅里叶变换的置信度传播算法(FFT-BP)和扩展最小和算法(Extended Minimum Sum,EMS)等。
如图1所示,是现有技术中NB-LDPC迭代解码算法的流程示意图。该流程包括如下步骤:
(1.1)初始化:初始化符号置信度,设置最大迭代次数等;
(1.2)变量节点更新(又称为水平更新或后向更新):利用属于同一校验节点下的其他变量节点的信息更新当前变量节点的置信度;
(1.3)校验节点更新(又称垂直更新或前向更新),利用属于同一变量节点的其他校验节点的信息更新当前校验节点的置信度;
(1.4)符号判决:选择置信度最大的符号输出;
(1.5)校验计算:对输出的符号进行校验,若通过校验,则解码成功,否则重复步骤(1.2)和(1.3),继续进行迭代直至迭代次数超过设置的最大迭代次数。
按照上述流程,采用BP或FFT-BP等算法可以获得NB-LDPC码最优的解码性能,但其解码的时间和空间复杂度均很高,而采用EMS算法则可以在不明显降低解码性能的情况下大幅降低解码的时间和空间复杂度。因而EMS算法成为了普遍采用的NB-LDPC解码算法。尽管如此,基于EMS的NB-LDPC解码算法相对于常用的B-LDPC解码算法仍然过于复杂,因此需要改进。
发明内容
有鉴于此,本发明实施例提供了一种多进制LDPC码的解码方法、装置及解码器,以解决现有技术中解码多进制LDPC码时复杂度较高的问题。
本发明实施例的第一方面提供了一种多进制LDPC码的解码方法,包括:
根据两个有序的置信度输入队列确定当前的置信度虚拟矩阵;
提取所述置信度虚拟矩阵的左上角第一个元素***动态排序表;
识别所述动态排序表中的置信度最大值对应的目标元素,将所述目标元素***置信度输出队列;
提取在所述置信度虚拟矩阵中所述目标元素的右侧元素和下方元素***所述动态排序表;
依据所述动态排序表和所述置信度输出队列,生成置信度目标输出队列,所述置信度目标输出队列中各个元素的符号互不相同;
采用所述置信度目标输出队列对多进制LDPC码进行解码操作。
本发明实施例的第二方面提供了一种多进制LDPC码的解码装置,包括:
置信度虚拟矩阵确定模块,用于确定当前的置信度虚拟矩阵;
初始元素提取模块,用于提取所述置信度虚拟矩阵的左上角第一个元素***动态排序表;
目标元素***模块,用于识别所述动态排序表中的置信度最大值对应的目标元素,将所述目标元素***置信度输出队列;
中间元素***模块,用于提取在所述置信度虚拟矩阵中所述目标元素的右侧元素和下方元素***所述动态排序表;
置信度目标输出队列生成模块,用于依据所述动态排序表和所述置信度输出队列,生成置信度目标输出队列,所述置信度目标输出队列中各个元素的符号互不相同;
多进制LDPC码解码模块,用于采用所述置信度目标输出队列对多进制LDPC码进行解码操作。
本发明实施例的第三方面提供了一种解码器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述多进制LDPC码的解码方法的步骤。
本发明实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述多进制LDPC码的解码方法的步骤。
与现有技术相比,本发明实施例包括以下优点:
本发明实施例,通过根据两个有序的置信度输入队列确定当前的置信度虚拟矩阵,在提取置信度虚拟矩阵的左上角第一个元素***动态排序表,识别该动态排序表中的置信度最大值对应的目标元素,并将目标元素***置信度输出队列后,可以提取在置信度虚拟矩阵中上述目标元素的右侧元素和下方元素***动态排序表,从而能够依据动态排序表和置信度输出队列,生成置信度目标输出队列,采用上述置信度目标输出队列对多进制LDPC码进行解码操作,能够减少对虚拟矩阵中的各个元素进行搜索排序的时间,降低校验节点更新的操作复杂度,进而大幅降低NB-LDPC迭代解码算法的复杂度,加快NB-LDPC码的解码效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中NB-LDPC迭代解码算法的流程示意图;
图2是现有技术中校验节点的搜索排序过程示意图;
图3是本发明一个实施例的一种多进制LDPC码的解码方法的步骤流程示意图;
图4是本发明一个实施例的校验节点的搜索排序过程示意图;
图5a是本发明一个实施例的第一次校验节点的搜索排序结果示意图;
图5b是本发明一个实施例的第二次校验节点的搜索排序结果示意图;
图5c是本发明一个实施例的最后一次校验节点的搜索排序结果示意图;
图6是本发明一个实施例的一种多进制LDPC码的解码装置的示意图;
图7是本发明一个实施例的一种解码器的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定***结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域技术人员应当清楚,在没有这些具体细节的其他实施例中也可以实现本发明。在其他情况中,省略对众所周知的***、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
下面通过具体实施例来说明本发明的技术方案。
从图1所示的NB-LDPC迭代解码算法的流程中可以看出,校验节点更新作为解码算法的核心,需要参与每一次的迭代操作,而且由于其计算复杂度比变量节点更新更高,因此,降低解码算法的时间复杂度的关键便在于降低校验节点更新的操作复杂度。
校验节点更新的基本操作是从两个有序的置信度队列中提取出包含若干个符号不重复的元素的有序置信度队列,其操作过程包括采用两个有序的置信度队列构建虚拟矩阵、对虚拟矩阵中的各个元素进行搜索排序得到置信度输出队列等步骤。
如图2所示,是现有技术中校验节点的搜索排序过程示意图,按照图2所示的过程对虚拟矩阵进行搜索和排序可以包括如下步骤:
(2.1)将第一列(或者第一行)的元素导入至一个排序表中;
(2.2)选择排序表中的置信度最大值,判断其对应的符号是否已经在输出符号队列中,如果不存在,则将该置信度元素和对应的符号元素***置信度输出队列和符号输出队列中,否则直接舍弃该元素;
(2.3)取该元素右方(或者下方)的元素,并***排序表中;
(2.4)重复步骤(2.2)和(2.3),直至在置信度输出队列中***最后一个元素。
在上述搜索排序过程中,并没有充分利用输入的两个置信度队列均是有序队列的信息,导致搜索和排序效率较低。事实上,由于输入的两个置信度队列均是逆序队列,据此构建出的虚拟矩阵中任一元素均大于或等于其右下方元素(包括正右方元素和正下方元素)。因此,提出了本发明实施例的核心构思在于,根据输入的两个置信度队列均是有序队列的信息,通过沿着虚拟矩阵边界向右和向下两个方同时进行搜索可以避免不必要的排序操作,进而有效地提高搜索和排序的效率。
参照图3,示出了本发明一个实施例的一种多进制LDPC码的解码方法的步骤流程示意图,具体可以包括如下步骤:
S301、根据两个有序的置信度输入队列确定当前的置信度虚拟矩阵;
需要说明的是,本方法可以应用于对多进制LDPC(NB-LDPC)码的解码过程中。为了降低在对NB-LDPC码进行解码时的计算复杂度,可以通过降低校验节点更新的操作复杂度来实现。
在本发明实施例中,在对校验节点进行更新时,可以首先确定当前的置信度虚拟矩阵。
在具体实现中,可以通过接收逆序排列的两个置信度输入队列,并依据上述两个置信度输入队列,构建置信度虚拟矩阵。
需要说明的是,两个置信度输入矩阵中的各个元素均具有对应的符号,该符号可以通过数值表示。例如,以64进制LDPC为例,上述各个元素的符号可以以0-63共64个数值中的其中一个数值表示,该数值对应的置信度即表示该符号的概率。
因此,在构建置信度虚拟矩阵时,还可以分别确定逆序排列的两个置信度输入队列对应的两个符号队列,并依据两个符号队列,构建虚拟符号矩阵。上述置信度虚拟矩阵中各个元素的符号与上述虚拟符号矩阵对应位置的符号相同。
如图4所示,是本发明一个实施例的校验节点的搜索排序过程示意图,假定U和I为按照从大到小排列的两个置信度输入队列,它们对应的符号队列分别为βU和βI,那么,可以按照如下公式构建置信度虚拟矩阵及虚拟符号矩阵:
其中,M为置信度虚拟矩阵,βM为虚拟符号矩阵(图中未示出),j、p为两个置信度输入队列和符号队列中对应的元素的序号。
需要说明的是,通常,对于两个2*1的一维数组,通过将对应位置的元素值相加,可以组成一个2*2的矩阵。因此,上述置信度虚拟矩阵M可以是对两个置信度输入队列U和I对应位置的元素值直接相加得到的,但在构建上述虚拟符号矩阵βM时,对对应位置的元素值相加则是指在有限域上的加法操作。
S302、提取所述置信度虚拟矩阵的左上角第一个元素***动态排序表;
在本发明实施例中,由于构建置信度虚拟矩阵M的两个置信度输入队列U和I均是按照逆序排列的有序队列,因此,构建出的置信度虚拟矩阵M的左上角第一个元素对应的置信度应当是该矩阵中的置信度最大值。此时,可以直接将该元素***动态排序表中。
S303、识别所述动态排序表中的置信度最大值对应的目标元素,将所述目标元素***置信度输出队列;
在本发明实施例中,若在将置信度虚拟矩阵的左上角第一个元素***动态排序表前,动态排序表为空,则当前***的置信度虚拟矩阵的左上角第一个元素即是置信度最大值对应的目标元素,可以直接将该目标元素***置信度输出队列。
通过对图4中所示的动态排序表中的各个元素对应的置信度进行比较,可以将置信度最大值对应的目标元素***置信度输出队列V中。
S304、提取在所述置信度虚拟矩阵中所述目标元素的右侧元素和下方元素***所述动态排序表;
同样的,由于构建置信度虚拟矩阵M的两个置信度输入队列U和I均是按照逆序排列的有序队列,因此,在该置信度虚拟矩阵M的左上角第一个元素的右侧元素和下方元素的置信度应当至少不小于置信度虚拟矩阵M中的其他元素的置信度。
此时,可以提取目标元素的右侧元素和下方元素***动态排序表,也就是将置信度虚拟矩阵的左上角第一个元素的右侧元素和下方元素***到动态排序表中。
在具体实现中,可以首先提取在置信度虚拟矩阵中目标元素的右侧元素和下方元素,然后逐个判断该右侧元素或下方元素对应的符号是否已在动态排序表或置信度输出队列中,若右侧元素或下方元素对应的符号已在动态排序表或置信度输出队列中,则可以舍弃该右侧元素或下方元素;若右侧元素或下方元素对应的符号未在动态排序表及置信度输出队列中,则可以将该右侧元素或下方元素***动态排序表。
需要说明的是,对上述右侧元素或下方元素进行处理应当是分别进行的。即,可以首先判断右侧元素对应的符号是否已在动态排序表或置信度输出队列中,若在动态排序表或置信度输出队列存在上述右侧元素对应的符号,则可以将该元素舍弃,再对下方元素进行判断;若在动态排序表和置信度输出队列中均不存在上述右侧元素对应的符号,则可以将该右侧元素***到动态排序表中,然后再对下方元素进行判断。对下方元素进行判断的过程与对右侧元素进行判断的过程类似。
当然,也可以首先对下方元素进行处理,在确定是需要舍弃该下方元素或需要***至动态序列表后,再对右侧元素进行处理,本实施例对上述两个元素处理过程的先后顺序不作限定。
S305、依据所述动态排序表和所述置信度输出队列,生成置信度目标输出队列,所述置信度目标输出队列中各个元素的符号互不相同;
在本发明实施例中,可以通过重复执行识别动态排序表中的置信度最大值对应的目标元素,将目标元素***置信度输出队列,以及,提取在置信度虚拟矩阵中目标元素的右侧元素和下方元素***动态排序表的步骤来生成置信度目标输出队列。
当然,在此过程中,还需要确定置信度输出队列中各个元素的符号,通过舍弃符号相同的各个元素,直至在置信度输出队列中***最后一个元素,从而生成置信度目标输出队列。
假定两个置信度输入队列U和I分别表示如下:
U=[15,14,14,13,11,10,10,9]
I=[15,13,12,10,10,9,9,8]
为了描述的方便和简洁,假定以下搜索排序步骤中符号不重复。那么,按照本实施例上述步骤所描述的过程进行校验节点的搜索排序时,可以首先提取置信度虚拟矩阵左上角第一个元素即30***动态排序表,通过比较,该元素为动态排序表中置信度最大值,因此可以将该元素***置信度输出队列,然后,将置信度虚拟矩阵上述元素的右侧元素29和下方元素28***动态虚拟表,得到如图5a所示的第一次校验节点的搜索排序结果。然后重复上述过程,可以得到如图5b所示的第二次校验节点的搜索排序结果,直至如图5c所示的最后一次的校验节点的搜索排序结果。
因此,生成的置信度目标输出队列可以表示为:
I=[30,29,29,28,28,27,27,27]
S306、采用所述置信度目标输出队列对多进制LDPC码进行解码操作。
在本发明实施例中,在得到置信度目标输出队列后,可以采用上述置信度目标输出队列对多进制LDPC码进行解码操作。
在本发明实施例中,为了降低多进制LDPC码的解码的空间复杂度,还可以对置信度目标输出队列进行量化。
因此,在本发明实施例中,可以首先对置信度目标输出队列进行量化处理,得到置信度最终输出队列,然后采用上述置信度最终输出队列对多进制LDPC码进行解码操作。
在量化过程中,可以将更多的比特用于区分置信度值较大的部分,而将更少的比特用于区分置信度值较小的部分,即置信度值较大的部分占用更多的比特数,置信度值较小的部分占用更少的比特数,甚至在量化比特数有限的情况下不占用比特数。
在具体实现中,在对置信度目标输出队列进行量化处理时,可以首先确定量化处理的比特数,然后将置信度目标输出队列中的最大值量化为对应比特数的最大整数;通过分别确定上述置信度目标输出队列中各个元素的置信度与最大整数之间的差值,从而可以以该差值对应的队列作为置信度最终输出队列。
以步骤S305中得到的置信度目标输出队列为例,在量化时,可以首先确定量化处理的比特数,例如,可以是5比特。
然后,确定置信度目标输出队列中的最大值即30对应的最大整数为15(即2N-1-1),通过分别确定上述置信度目标输出队列中各个元素的置信度与最大整数15之间的差值,从而可以得到置信度最终输出队列,即:
I=[15,14,14,13,13,12,12,12]
在本发明实施例中,通过根据两个有序的置信度输入队列确定当前的置信度虚拟矩阵,在提取置信度虚拟矩阵的左上角第一个元素***动态排序表,识别该动态排序表中的置信度最大值对应的目标元素,并将目标元素***置信度输出队列后,可以提取在置信度虚拟矩阵中上述目标元素的右侧元素和下方元素***动态排序表,从而能够依据动态排序表和置信度输出队列,生成置信度目标输出队列,采用上述置信度目标输出队列对多进制LDPC码进行解码操作,能够减少对虚拟矩阵中的各个元素进行搜索排序的时间,降低校验节点更新的操作复杂度,进而大幅降低NB-LDPC迭代解码算法的复杂度,加快NB-LDPC码的解码效率。
需要说明的是,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
参照图6,示出了本发明一个实施例的一种多进制LDPC码的解码装置的示意图,具体可以包括如下模块:
置信度虚拟矩阵确定模块601,用于根据两个有序的置信度输入队列确定当前的置信度虚拟矩阵;
初始元素提取模块602,用于提取所述置信度虚拟矩阵的左上角第一个元素***动态排序表;
目标元素***模块603,用于识别所述动态排序表中的置信度最大值对应的目标元素,将所述目标元素***置信度输出队列;
中间元素***模块604,用于提取在所述置信度虚拟矩阵中所述目标元素的右侧元素和下方元素***所述动态排序表;
置信度目标输出队列生成模块605,用于依据所述动态排序表和所述置信度输出队列,生成置信度目标输出队列,要求所述置信度目标输出队列中各个元素的符号互不相同;
多进制LDPC码解码模块606,用于采用所述置信度目标输出队列对多进制LDPC码进行解码操作。
在本发明实施例中,所述置信度虚拟矩阵确定模块601具体可以包括如下子模块:
置信度输入队列接收子模块,用于接收逆序排列的两个置信度输入队列;
置信度虚拟矩阵构建子模块,用于依据所述两个置信度输入队列,构建置信度虚拟矩阵。
在本发明实施例中,所述中间元素***模块604具体可以包括如下子模块:
中间元素提取子模块,用于提取在所述置信度虚拟矩阵中所述目标元素的右侧元素和下方元素;
中间元素判断子模块,用于逐个判断所述右侧元素或所述下方元素对应的符号是否已在所述动态排序表或所述置信度输出队列中;
中间元素舍弃子模块,用于若所述右侧元素或所述下方元素对应的符号已在所述动态排序表或所述置信度输出队列中,则舍弃所述右侧元素或所述下方元素;
中间元素***子模块,用于若所述右侧元素或所述下方元素对应的符号未在所述动态排序表及所述置信度输出队列中,则将所述右侧元素或所述下方元素***所述动态排序表。
在本发明实施例中,所述置信度目标输出队列生成模块605具体可以包括如下子模块:
调用子模块,用于重复调用所述目标元素***模块603识别所述动态排序表中的置信度最大值对应的目标元素,将所述目标元素***置信度输出队列,以及,调用所述中间元素***模块604提取在所述置信度虚拟矩阵中所述目标元素的右侧元素和下方元素***所述动态排序表;
元素符号确定子模块,用于确定所述置信度输出队列中各个元素的符号;
置信度目标输出队列生成子模块,用于舍弃所述符号相同的各个元素,直至在所述置信度输出队列中***最后一个元素,生成置信度目标输出队列。
在本发明实施例中,所述各个元素的符号通过调用如下模块确定:
符号队列确定模块,用于分别确定逆序排列的两个置信度输入队列对应的两个符号队列;
虚拟符号矩阵构建模块,用于依据所述两个符号队列,构建虚拟符号矩阵,所述置信度虚拟矩阵中各个元素的符号与所述虚拟符号矩阵对应位置的符号相同。
在本发明实施例中,所述多进制LDPC码解码模块606具体可以包括如下子模块:
置信度目标输出队列量化子模块,用于对所述置信度目标输出队列进行量化处理,得到置信度最终输出队列;
多进制LDPC码解码子模块,用于采用所述置信度最终输出队列对多进制LDPC码进行解码操作。
在本发明实施例中,所述置信度目标输出队列量化子模块具体可以包括如下单元:
比特数确定单元,用于确定量化处理的比特数;
最大值量化单元,用于将所述置信度目标输出队列中的最大值量化为对应所述比特数的最大整数;
置信度最终输出队列生成单元,用于分别确定所述置信度目标输出队列中各个元素的置信度与所述最大整数之间的差值,以所述差值对应的队列作为所述置信度最终输出队列。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述得比较简单,相关之处参见方法实施例部分的说明即可。
参照图7,示出了本发明一个实施例的一种解码器的示意图。如图7所示,本实施例的解码器700包括:处理器710、存储器720以及存储在所述存储器720中并可在所述处理器710上运行的计算机程序721。所述处理器710执行所述计算机程序721时实现上述多进制LDPC码的解码方法各个实施例中的步骤,例如图1所示的步骤S301至S306。或者,所述处理器710执行所述计算机程序721时实现上述各装置实施例中各模块/单元的功能,例如图6所示模块601至606的功能。
示例性的,所述计算机程序721可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器720中,并由所述处理器710执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段可以用于描述所述计算机程序721在所述解码器700中的执行过程。例如,所述计算机程序721可以被分割成置信度虚拟矩阵确定模块、初始元素提取模块、目标元素***模块、中间元素***模块、置信度目标输出队列生成模块和多进制LDPC码解码模块,各模块具体功能如下:
置信度虚拟矩阵确定模块,用于根据两个有序的置信度输入队列确定当前的置信度虚拟矩阵;
初始元素提取模块,用于提取所述置信度虚拟矩阵的左上角第一个元素***动态排序表;
目标元素***模块,用于识别所述动态排序表中的置信度最大值对应的目标元素,将所述目标元素***置信度输出队列;
中间元素***模块,用于提取在所述置信度虚拟矩阵中所述目标元素的右侧元素和下方元素***所述动态排序表;
置信度目标输出队列生成模块,用于依据所述动态排序表和所述置信度输出队列,生成置信度目标输出队列,所述置信度目标输出队列中各个元素的符号互不相同;
多进制LDPC码解码模块,用于采用所述置信度目标输出队列对多进制LDPC码进行解码操作。
所述解码器700可以是桌上型计算机、笔记本、掌上电脑、云端服务器等计算设备、导航模块、授时模块等。所述解码器700可包括,但不仅限于,处理器710、存储器720。本领域技术人员可以理解,图7仅仅是解码器700的一种示例,并不构成对解码器700的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述解码器700还可以包括输入输出设备、网络接入设备、总线等。
所述处理器710可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器720可以是所述解码器700的内部存储单元,例如解码器700的硬盘或内存。所述存储器720也可以是所述解码器700的外部存储设备,例如所述解码器700上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等等。进一步地,所述存储器720还可以既包括所述解码器700的内部存储单元也包括外部存储设备。所述存储器720用于存储所述计算机程序721以及所述解码器700所需的其他程序和数据。所述存储器720还可以用于暂时地存储已经输出或者将要输出的数据。
本领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明。实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置/终端设备的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。上述***中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其他实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其他的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一方面,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其他的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件完成,所述的计算机程序可存储于计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制。尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (8)
1.一种多进制LDPC码的解码方法,其特征在于,包括:
根据两个有序的置信度输入队列确定当前的置信度虚拟矩阵;
提取所述置信度虚拟矩阵的左上角第一个元素***动态排序表;
识别所述动态排序表中的置信度最大值对应的目标元素,将所述目标元素***置信度输出队列;
提取在所述置信度虚拟矩阵中所述目标元素的右侧元素和下方元素***所述动态排序表;
依据所述动态排序表和所述置信度输出队列,生成置信度目标输出队列,所述置信度目标输出队列中各个元素的符号互不相同;
采用所述置信度目标输出队列对多进制LDPC码进行解码操作;
其中,所述提取在所述置信度虚拟矩阵中所述目标元素的右侧元素和下方元素***所述动态排序表的步骤包括:
提取在所述置信度虚拟矩阵中所述目标元素的右侧元素和下方元素;
逐个判断所述右侧元素或所述下方元素对应的符号是否已在所述动态排序表或所述置信度输出队列中;
若所述右侧元素或所述下方元素对应的符号已在所述动态排序表或所述置信度输出队列中,则舍弃所述右侧元素或所述下方元素;
若所述右侧元素或所述下方元素对应的符号未在所述动态排序表及所述置信度输出队列中,则将所述右侧元素或所述下方元素***所述动态排序表;
所述依据所述动态排序表和所述置信度输出队列,生成置信度目标输出队列的步骤包括:
重复执行识别所述动态排序表中的置信度最大值对应的目标元素,将所述目标元素***置信度输出队列,以及,提取在所述置信度虚拟矩阵中所述目标元素的右侧元素和下方元素***所述动态排序表的步骤;
确定所述置信度输出队列中各个元素的符号;
舍弃所述符号相同的各个元素,直至在所述置信度输出队列中***最后一个元素,生成置信度目标输出队列。
2.根据权利要求1所述的方法,其特征在于,所述根据两个有序的置信度输入队列确定当前的置信度虚拟矩阵的步骤包括:
接收逆序排列的两个置信度输入队列;
依据所述两个置信度输入队列,构建置信度虚拟矩阵。
3.根据权利要求2所述的方法,其特征在于,所述各个元素的符号通过如下步骤确定:
分别确定逆序排列的两个置信度输入队列对应的两个符号队列;
依据所述两个符号队列,构建虚拟符号矩阵,所述置信度虚拟矩阵中各个元素的符号与所述虚拟符号矩阵对应位置的符号相同。
4.根据权利要求1所述的方法,其特征在于,所述采用所述置信度目标输出队列对多进制LDPC码进行解码操作的步骤包括:
对所述置信度目标输出队列进行量化处理,得到置信度最终输出队列;
采用所述置信度最终输出队列对多进制LDPC码进行解码操作。
5.根据权利要求4所述的方法,其特征在于,所述对所述置信度目标输出队列进行量化处理,得到置信度最终输出队列的步骤包括:
确定量化处理的比特数;
将所述置信度目标输出队列中的最大值量化为对应所述比特数的最大整数;
分别确定所述置信度目标输出队列中各个元素的置信度与所述最大整数之间的差值,以所述差值对应的队列作为所述置信度最终输出队列。
6.一种多进制LDPC码的解码装置,其特征在于,包括:
置信度虚拟矩阵确定模块,用于根据两个有序的置信度输入队列确定当前的置信度虚拟矩阵;
初始元素提取模块,用于提取所述置信度虚拟矩阵的左上角第一个元素***动态排序表;
目标元素***模块,用于识别所述动态排序表中的置信度最大值对应的目标元素,将所述目标元素***置信度输出队列;
中间元素***模块,用于提取在所述置信度虚拟矩阵中所述目标元素的右侧元素和下方元素***所述动态排序表;
置信度目标输出队列生成模块,用于依据所述动态排序表和所述置信度输出队列,生成置信度目标输出队列,所述置信度目标输出队列中各个元素的符号互不相同;
多进制LDPC码解码模块,用于采用所述置信度目标输出队列对多进制LDPC码进行解码操作;
其中,所述中间元素***模块具体包括如下子模块:
中间元素提取子模块,用于提取在所述置信度虚拟矩阵中所述目标元素的右侧元素和下方元素;
中间元素判断子模块,用于逐个判断所述右侧元素或所述下方元素对应的符号是否已在所述动态排序表或所述置信度输出队列中;
中间元素舍弃子模块,用于若所述右侧元素或所述下方元素对应的符号已在所述动态排序表或所述置信度输出队列中,则舍弃所述右侧元素或所述下方元素;
中间元素***子模块,用于若所述右侧元素或所述下方元素对应的符号未在所述动态排序表及所述置信度输出队列中,则将所述右侧元素或所述下方元素***所述动态排序表;
所述置信度目标输出队列生成模块具体包括如下子模块:
调用子模块,用于重复调用所述目标元素***模块识别所述动态排序表中的置信度最大值对应的目标元素,将所述目标元素***置信度输出队列,以及,调用所述中间元素***模块提取在所述置信度虚拟矩阵中所述目标元素的右侧元素和下方元素***所述动态排序表;
元素符号确定子模块,用于确定所述置信度输出队列中各个元素的符号;
置信度目标输出队列生成子模块,用于舍弃所述符号相同的各个元素,直至在所述置信度输出队列中***最后一个元素,生成置信度目标输出队列。
7.一种解码器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述多进制LDPC码的解码方法的步骤。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述多进制LDPC码的解码方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811438257.XA CN111224674B (zh) | 2018-11-27 | 2018-11-27 | 多进制ldpc码的解码方法、装置及解码器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811438257.XA CN111224674B (zh) | 2018-11-27 | 2018-11-27 | 多进制ldpc码的解码方法、装置及解码器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111224674A CN111224674A (zh) | 2020-06-02 |
CN111224674B true CN111224674B (zh) | 2023-05-26 |
Family
ID=70832037
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811438257.XA Active CN111224674B (zh) | 2018-11-27 | 2018-11-27 | 多进制ldpc码的解码方法、装置及解码器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111224674B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11968039B2 (en) * | 2021-08-27 | 2024-04-23 | Huawei Technologies Co., Ltd. | Systems and methods for executing forward error correction coding |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1960190A (zh) * | 2006-10-20 | 2007-05-09 | 北京泰美世纪科技有限公司 | Ldpc码校验矩阵构造方法及利用该方法的编码解码装置 |
CN101047387A (zh) * | 2007-03-23 | 2007-10-03 | 北京大学 | 一种多码率兼容ldpc码的构造方法及其译码器 |
CN103944587A (zh) * | 2014-05-07 | 2014-07-23 | 四川大学 | 一种有序排列非零元素的多进制ldpc码校验矩阵构造方法 |
CN107863972A (zh) * | 2017-11-06 | 2018-03-30 | 山东大学 | 一种低译码复杂度的快速多元ldpc码译码方法 |
-
2018
- 2018-11-27 CN CN201811438257.XA patent/CN111224674B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1960190A (zh) * | 2006-10-20 | 2007-05-09 | 北京泰美世纪科技有限公司 | Ldpc码校验矩阵构造方法及利用该方法的编码解码装置 |
CN101047387A (zh) * | 2007-03-23 | 2007-10-03 | 北京大学 | 一种多码率兼容ldpc码的构造方法及其译码器 |
CN103944587A (zh) * | 2014-05-07 | 2014-07-23 | 四川大学 | 一种有序排列非零元素的多进制ldpc码校验矩阵构造方法 |
CN107863972A (zh) * | 2017-11-06 | 2018-03-30 | 山东大学 | 一种低译码复杂度的快速多元ldpc码译码方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111224674A (zh) | 2020-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107370560B (zh) | 一种极化码的编码和速率匹配方法、装置及设备 | |
CN111384972B (zh) | 多进制ldpc解码算法的优化方法、装置及解码器 | |
US10585944B2 (en) | Directed graph compression | |
KR20060068168A (ko) | 저 복잡도 ldpc복호 장치 및 그 방법 | |
CN109983705B (zh) | 用于生成极化码的装置和方法 | |
CN110545162B (zh) | 基于码元可靠优势度节点子集划分准则的多元ldpc译码方法及装置 | |
CN111224674B (zh) | 多进制ldpc码的解码方法、装置及解码器 | |
US9998149B2 (en) | Constant hamming weight coding | |
KR20070058430A (ko) | 블록 부호를 재귀반복적으로 복호하기 위한 방법 및 장치 | |
KR101631128B1 (ko) | 크기조정 상수를 사용하는 가변 노드 업데이터를 갖는 ldpc 디코더 | |
KR20160116980A (ko) | Ldpc 복호기의 vss 알고리즘을 위한 h 행렬의 스케줄링 장치 및 그 방법 | |
CN111384971B (zh) | 有限域中的数据处理方法、装置和解码器 | |
CN109756231B (zh) | 循环移位处理装置及方法 | |
CN108933604B (zh) | 一种变量节点处理方法及装置 | |
CN111384976B (zh) | 稀疏校验矩阵的存储方法和读取方法 | |
CN108062289B (zh) | 快速傅里叶变换fft地址换序方法、信号处理方法及装置 | |
CN111384974B (zh) | 多进制ldpc码的置信度量化方法、装置及解码器 | |
CN111384973B (zh) | 多进制ldpc解码算法的优化方法、装置及解码器 | |
US8402340B2 (en) | Parity-check-code decoder and recording controller | |
CN111384975B (zh) | 多进制ldpc解码算法的优化方法、装置及解码器 | |
US11165615B2 (en) | Data shifting operation apparatus and method having multiple operation modes | |
KR101976315B1 (ko) | 이산대칭채널에서의 극 부호 설계 방법 및 그 장치 | |
WO2020052770A1 (en) | Decoders and methods for decoding polar codes and product codes | |
WO2020052769A1 (en) | Apparatuses and methods for mapping frozen sets between product codes and component polar codes | |
CN110289863B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: Decoding Method, Device, and Decoder of Multi base LDPC Code Granted publication date: 20230526 Pledgee: China Co. truction Bank Corp Guangzhou Tianhe subbranch Pledgor: TECHTOTOP MICROELECTRONICS Co.,Ltd. Registration number: Y2024980005780 |