CN117609488B - 小重量码字的搜索方法、装置、计算机存储介质及终端 - Google Patents
小重量码字的搜索方法、装置、计算机存储介质及终端 Download PDFInfo
- Publication number
- CN117609488B CN117609488B CN202410089244.5A CN202410089244A CN117609488B CN 117609488 B CN117609488 B CN 117609488B CN 202410089244 A CN202410089244 A CN 202410089244A CN 117609488 B CN117609488 B CN 117609488B
- Authority
- CN
- China
- Prior art keywords
- vector
- weight
- small
- vectors
- linear
- 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 description 67
- 239000013598 vector Substances 0.000 claims abstract description 296
- 239000011159 matrix material Substances 0.000 claims abstract description 109
- 230000009466 transformation Effects 0.000 claims abstract description 64
- 238000012216 screening Methods 0.000 claims abstract description 50
- 238000004590 computer program Methods 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 11
- 230000001131 transforming effect Effects 0.000 claims description 3
- 238000004422 calculation algorithm Methods 0.000 description 21
- 238000004891 communication Methods 0.000 description 8
- 238000001914 filtration Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 3
- 238000012937 correction Methods 0.000 description 2
- 238000005336 cracking Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000010845 search algorithm Methods 0.000 description 2
- 102100025471 Epiphycan Human genes 0.000 description 1
- 101001056751 Homo sapiens Epiphycan Proteins 0.000 description 1
- 241000764238 Isis Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000012804 iterative process 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
- 238000012360 testing method Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/335—Filtering based on additional data, e.g. user or group profiles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/38—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- 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/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/612—Aspects specific to channel or signal-to-noise ratio estimation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Library & Information Science (AREA)
- Computational Linguistics (AREA)
- Algebra (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开一种小重量码字的搜索方法、装置、计算机存储介质及终端,本公开实施例在遍历搜索行向量组合前,通过生成包含用于位置筛选的整数向量和二进制向量的筛选器向量,筛选出有更大概率能够组合出小重量码字的行向量,仅需对基矩阵中通过筛选的行向量进行小重量码字的遍历搜索,减少了参与遍历搜索行向量组合的数量,提高了能够组合出小重量码字的几率和搜索运行的整体效率;每一次判断出搜索小重量码字的次数小于预先设定的迭代次数阈值时,对基矩阵进行线性变换并执行下一次迭代,增加搜索新的行向量组合,提升了搜索到小重量码字的概率。
Description
技术领域
本申请涉及但不限于通信编码技术,其中涉及一种小重量码字的搜索方法、装置、计算机存储介质及终端。
背景技术
信道编码技术是通信***用于纠正信道差错、保证信息传输可靠性与效率的核心技术。线性编码是一种被广泛应用的信道编码方法,其纠错能力的关键通常取决于码字间的最小汉明距离,即最小码重。因此,在给定的信道编码线性空间中搜索其小重量码字,是评估其纠错性能的核心步骤,同时也是解决一系列通信编码领域难题的关键。例如:在稀疏线性编码的盲识别问题中用于在校验空间中搜索稀疏向量,进而重建出编码的稀疏校验矩阵;在伴随式译码问题中用于求解小重量的错误向量,进而求解出无错误的码字;在破解Mc-Eliece(一种基于代数编码理论的不对称加密算法,利用线性码的困难问题来实现加密)加密编码中用于求解特定重量的许用码字,进而求得私钥的生成多项式等。
小重量码字搜索算法通常以给定线性空间的一组基向量作为输入,在一定的时间内输出在该线性空间内搜索到的全部汉明重量小于给定阈值的向量。相关技术中的小重量码字搜索算法大多基于遍历搜索基向量组合的方法,即若某几个基向量的和向量为一个小重量向量,则此和向量即为待搜索的小重量码字。部分算法如Stern算法、Canteaut-Chabaud算法对基向量组合进行选择性遍历,即只对较大概率组合出小重量码字的基向量组合计算其和向量及其重量;选择性遍历相比于遍历全部基向量组合的方法可降低搜索一个小重量码字所需计算和向量的次数,进而减少计算复杂度。
上述已有算法对线性空间的基向量组合进行选择的规则不够高效,导致需要计算和向量的次数过多。相关技术中,小重量码字搜索算法如Stern算法、Canteaut-Chabaud算法等,主要面向码长较短的编码。对于常用的通信标准大多采用的码长n大于10000的编码,已有算法计算和向量的次数和二进制运算操作数随码长的增大而增大,导致计算复杂度过高。因此,相关技术中的小重量码字搜索算法难以支持常用标准编码下大码长的小重量码字搜索,无法满足应用需求。
发明内容
以下是对本申请详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
本公开实施例提供一种小重量码字的搜索方法、装置、计算机存储介质及终端,能够支持大码长的小重量码字搜索。
本公开实施例提供了一种小重量码字的搜索方法,包括:
将一组线性无关的二进制基向量通过高斯行变换获得线性空间的基矩阵,其中,线性无关的二进制基向量张成待搜索的线性空间;
根据预设方式确定的筛选器向量对获得的基矩阵进行筛选,从基矩阵的符合筛选位置的行向量中选出与二进制向量相等的行向量,并获得由选出的行向量组成的行向量集合,其中,筛选器向量中包括:随机生成的二进制向量和包含筛选位置的整数向量;
遍历搜索获得的行向量集合中每两个或两个以上行向量的线性组合,根据遍历搜索的线性组合的和向量的汉明重量,获得一组小重量码字;
每一次判断出搜索小重量码字的次数小于预先设定的迭代次数阈值时,对基矩阵进行一次线性变换,并重新通过筛选器向量对线性变换获得的基矩阵重新进行筛选,遍历搜索获得每一次线性变换获得的基矩阵对应的一组小重量码字;
搜索小重量码字的次数大于或等于迭代次数阈值时,输出所有搜索到的小重量码字。
另一方面,本公开实施例还提供一种计算机存储介质,所述计算机存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现上述小重量码字的搜索方法。
再一方面,本公开实施例还提供一种终端,包括:存储器和处理器,所述存储器中保存有计算机程序;其中,
处理器被配置为执行存储器中的计算机程序;
所述计算机程序被所述处理器执行时实现如上述小重量码字的搜索方法。
还一方面,本公开实施例还提供一种小重量码字的装置,包括:高斯行变换单元、筛选单元、遍历搜索单元、判断处理单元和判断输出单元;其中,
高斯行变换单元设置为:将一组线性无关的二进制基向量通过高斯行变换获得线性空间的基矩阵,其中,线性无关的二进制基向量张成待搜索的线性空间;
筛选单元设置为:根据预设方式确定的筛选器向量对获得的基矩阵进行筛选,从基矩阵的符合筛选位置的行向量中选出与二进制向量相等的行向量,并获得由选出的行向量组成的行向量集合,其中,筛选器向量中包括:随机生成的二进制向量和包含筛选位置的整数向量;
遍历搜索单元设置为:遍历搜索获得的行向量集合中每两个或两个以上行向量的线性组合,根据遍历搜索的线性组合的和向量的汉明重量,获得一组小重量码字;
判断处理单元设置为:每一次判断出搜索小重量码字的次数小于预先设定的迭代次数阈值时,对基矩阵进行一次线性变换,并重新通过筛选器向量对线性变换获得的基矩阵重新进行筛选,遍历搜索获得每一次线性变换获得的基矩阵对应的一组小重量码字;
判断输出单元设置为:搜索小重量码字的次数大于或等于迭代次数阈值时,输出所有搜索到的小重量码字。
本公开实施例在遍历搜索行向量组合前,通过生成包含用于位置筛选的整数向量和二进制向量的筛选器向量,筛选出有更大概率能够组合出小重量码字的行向量,仅需对基矩阵中通过筛选的行向量进行小重量码字的遍历搜索,减少了参与遍历搜索行向量组合的数量,提高了能够组合出小重量码字的几率和搜索运行的整体效率;每一次判断出搜索小重量码字的次数小于预先设定的迭代次数阈值时,对基矩阵进行线性变换并执行下一次迭代,增加搜索新的行向量组合,提升了搜索到小重量码字的概率。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的其他优点可通过在说明书以及附图中所描述的方案来实现和获得。
附图说明
附图用来提供对本申请技术方案的理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1为本公开实施例小重量码字的搜索方法的流程图;
图2为本公开实施例小重量码字的搜索装置的结构框图。
具体实施方式
本申请描述了多个实施例,但是该描述是示例性的,而不是限制性的,并且对于本领域的普通技术人员来说显而易见的是,在本申请所描述的实施例包含的范围内可以有更多的实施例和实现方案。尽管在附图中示出了许多可能的特征组合,并在具体实施方式中进行了讨论,但是所公开的特征的许多其它组合方式也是可能的。除非特意加以限制的情况以外,任何实施例的任何特征或元件可以与任何其它实施例中的任何其他特征或元件结合使用,或可以替代任何其它实施例中的任何其他特征或元件。
本申请包括并设想了与本领域普通技术人员已知的特征和元件的组合。本申请已经公开的实施例、特征和元件也可以与任何常规特征或元件组合,以形成由权利要求限定的独特的发明方案。任何实施例的任何特征或元件也可以与来自其它发明方案的特征或元件组合,以形成另一个由权利要求限定的独特的发明方案。因此,应当理解,在本申请中示出和/或讨论的任何特征可以单独地或以任何适当的组合来实现。因此,除了根据所附权利要求及其等同替换所做的限制以外,实施例不受其它限制。此外,可以在所附权利要求的保护范围内进行各种修改和改变。
此外,在描述具有代表性的实施例时,说明书可能已经将方法和/或过程呈现为特定的步骤序列。然而,在该方法或过程不依赖于本文所述步骤的特定顺序的程度上,该方法或过程不应限于所述的特定顺序的步骤。如本领域普通技术人员将理解的,其它的步骤顺序也是可能的。因此,说明书中阐述的步骤的特定顺序不应被解释为对权利要求的限制。此外,针对该方法和/或过程的权利要求不应限于按照所写顺序执行它们的步骤,本领域技术人员可以容易地理解,这些顺序可以变化,并且仍然保持在本申请实施例的精神和范围内。
图1为本公开实施例小重量码字的搜索方法的流程图,如图1所示,包括:
步骤101、将一组线性无关的二进制基向量通过高斯行变换获得线性空间的基矩阵,其中,线性无关的二进制基向量张成待搜索的线性空间;也即,待搜索的线性空间由线性无关的二进制基向量生成;
步骤102、根据预设方式确定的筛选器向量对获得的基矩阵进行筛选,从基矩阵的符合筛选位置的行向量中选出与二进制向量相等的行向量,并获得由选出的行向量组成的行向量集合,其中,筛选器向量中包括:随机生成的二进制向量和包含筛选位置的整数向量;
步骤103、遍历搜索获得的行向量集合中每两个或两个以上行向量的线性组合,根据遍历搜索的线性组合的和向量的汉明重量,得到一组小重量码字;
步骤104、每一次判断出搜索小重量码字的次数小于预先设定的迭代次数阈值时,对基矩阵进行一次线性变换,并重新通过筛选器向量对线性变换获得的基矩阵重新进行筛选,遍历搜索获得每一次线性变换获得的基矩阵对应的一组小重量码字;
步骤105、搜索小重量码字的次数大于或等于迭代次数阈值时,输出所有搜索到的小重量码字。
本公开实施例在遍历搜索行向量组合前,通过生成包含用于位置筛选的整数向量和二进制向量的筛选器向量,筛选出有更大概率能够组合出小重量码字的行向量,仅需对基矩阵中通过筛选的行向量进行小重量码字的遍历搜索,减少了参与遍历搜索行向量组合的数量,提高了能够组合出小重量码字的几率和搜索运行的整体效率;每一次判断出搜索小重量码字的次数小于预先设定的迭代次数阈值时,对基矩阵进行线性变换并执行下一次迭代,增加搜索新的行向量组合,提升了搜索到小重量码字的概率。
本公开实施例可以用于解决码长大于预设长度(预设长度可以是5000的)的大码长时计算复杂度较高的问题,能够支持常用标准编码的小重量码字的搜索,进而可以应用于包括但不限于稀疏编码盲识别、伴随式译码和加密编码破解等通信编码相关难题的解决方案中;需要说明的是,本公开实施例可以支持大于预设长度的大码长的计算,但同时可以支持短码,例如码长1000左右的计算,本公开实施例对此不作限制。
在一种示例性实例中,本公开实施例将一组线性无关的二进制基向量通过高斯行变换获得线性空间的基矩阵,可以包括:
以行向量的形式输入一组(共m个)长度为的线性无关的二进制基向量组/>,其中/>;则由这组基向量张成的线性空间维数为/>;
将基向量组按行排成一个/>行/>列的稠密矩阵/>:
需要说明的是,本公开实施例可以按照其他方式排成稠密矩阵,当排成稠密矩阵的方式发生变化时,后续处理可以按照数理运算的相关方法进行调整,本公开实施例对数理运算的调整不做限制。
将稠密矩阵通过高斯行变换(允许行交换、行相加操作)变换为基矩阵/>,基矩阵/>具有分块矩阵形式/>(/>为阶单位矩阵) 。
在一种示例性实例中,本公开实施例重新通过筛选器向量对线性变换获得的基矩阵重新进行筛选,遍历搜索获得每一次线性变换获得的基矩阵对应的一组小重量码字,包括:
对每一次线性变换获得的基矩阵:
通过筛选器向量进行筛选,从符合筛选位置的行向量中重新选出与二进制向量相等的行向量,并重新获得由重新选出的行向量组成的行向量集合;
遍历搜索重新获得的行向量集合中每两个或两个以上行向量的线性组合,根据遍历搜索的线性组合的和向量的汉明重量,重新获得一组小重量码字。
本公开实施例行向量的线性组合,由行向量集合中选出的两个或两个以上行向量组成,通过上述迭代处理,可以渐进地确定所有排列组合,即获得所有的线性组合。
本公开实施例对基矩阵进行了线性变换并执行下一次迭代遍历搜索,增加了可搜索线性空间中的行向量的线性组合,提升了搜索到小重量码字的概率。
在一种示例性实例中,搜索小重量码字的次数大于或等于迭代次数阈值之前,本公开实施例方法还包括:
对线性变换获得的所有基矩阵中的一个以上基矩阵,随机生成每一个基矩阵相应的筛选器向量;
其中,搜索小重量码字的次数大于或等于迭代次数阈值之前,每一次线性变换获得一个基矩阵。
在一种示例性实例中,本公开实施例每一次线性变换获得一个基矩阵,对于获得的基矩阵,可以随机生成每一个基矩阵相应的筛选器向量;也可以选择部分基矩阵,随机生成选择的基矩阵相应的筛选器向量,例如,按照预设间隔每间隔若干次,随机生成一个基矩阵的筛选器向量,对于间隔内获得的基矩阵,采用最新生成的筛选器向量,进行小重量码字的搜索处理。
在一种示例性实例中,本公开实施例如果每一次获得基矩阵后均随机生成相应的筛选器向量,则每一次线性变换获得基矩阵后,返回随机生成筛选器向量的步骤进行下一次迭代,以搜索更多的行向量组合,直到达到预先设定的迭代次数阈值时为止。
在一种示例性实例中,本公开实施例可以基于工程实例中的方法进行基矩阵的线性变换。
在一种示例性实例中,本公开实施例基矩阵为,形式为/>,对基矩阵进行线性变换,包括:
随机选取的单位阵部分(第/>列~第/>列)其中一列,再随机选取中非单位阵(第/>列~第/>列)的一列,将选取的单位阵部分的列与非单位阵中的列交换后,通过行变换消元到/>的形式的基矩阵。
在一种示例性实例中,将一组线性无关的二进制基向量通过高斯行变换获得线性空间的基矩阵之前,本公开实施例方法还包括:初始化以下参数:
筛选器向量长度、用于和向量的汉明重量比对的重量判定阈值/>和迭代次数阈值/>;
初始化第一次迭代的迭代次数为1;
输出的小重量码字的集合为,初始化/>,/>表示空。
在一种示例性实例中,本公开实施例二进制向量为d,用于位置筛选的整数向量为x,二进制向量d和整数向量x的长度均为;其中,
二进制向量;
整数向量x通过在范围内的正整数/>中随机选择/>个不同的数组成,整数向量/>。
在一种示例性实例中,本公开实施例通过筛选器向量对线性变换获得的基矩阵重新进行筛选,包括:
使用筛选器向量筛选基矩阵中的行向量,从符合整数向量x的筛选位置的行向量中选出长度为个比特的与二进制向量相等的行向量。
本公开实施例假设获得个通过筛选的行向量,将其集合记为/>,则筛选获得行向量的处理,可以包括:
记通过筛选的向量集合为,并初始化/>。
遍历基矩阵的每一行/>,对其进行以下筛选:
对每一个,按筛选器向量/>中的位置,顺序地取出/>中对应的/>个比特,组成行向量/>;其中,取出的第/>个比特为/>的第/>个比特,即;
如果行向量,即/>,则确定该行向量通过筛选,向集合中加入行向量/>;否则,行向量/>,行向量/>不通过筛选。
在一种示例性实例中,本公开实施例根据遍历搜索的线性组合的和向量的汉明重量,得到一组小重量码字,包括:
若和向量的汉明重量小于或等于重量判定阈值,则判定该和向量为小重量码字;
若和向量的汉明重量大于重量判定阈值,则判定该和向量不是小重量码字。
在一种示例性实例中,本公开实施例在通过筛选的向量集合中,遍历搜索每两个或两个以上行向量的线性组合,判断遍历的每两个行向量的和向量是否为小重量码字。本公开实施例假设得到共判断出/>个小重量码字,其集合可以记为,本公开实施例判断获得/>个小重量码字的处理可以包括:
遍历通过筛除的行向量中,计算每两个行向量的线性组合,可以包括:
计算这两个线性组合的和向量,符号/>表示按位进行二进制异或;
计算和向量的汉明重量(为1的比特个数)/>;
若和向量的汉明重量/>,小于或等于预先设定的重量判定阈值/>,则该和向量/>为小重量码字,向集合/>中加入向量/>;否则,若和向量/>的汉明重量/>大于重量判定阈值/>,判断该和向量/>不是小重量码字。
本公开实施例还提供一种计算机存储介质,计算机存储介质中存储有计算机程序,计算机程序被处理器执行时实现上述小重量码字的搜索方法。
本公开实施例还提供一种终端,包括:存储器和处理器,存储器中保存有计算机程序;其中,
处理器被配置为执行存储器中的计算机程序;
计算机程序被处理器执行时实现如上述小重量码字的搜索方法。
图2为本公开实施例小重量码字的搜索装置的结构框图,如图2所示,包括:高斯行变换单元、筛选单元、遍历搜索单元、判断处理单元和判断输出单元;其中,
高斯行变换单元设置为:将一组线性无关的二进制基向量通过高斯行变换获得线性空间的基矩阵,其中,线性无关的二进制基向量张成待搜索的线性空间;
筛选单元设置为:根据预设方式确定的筛选器向量对获得的基矩阵进行筛选,从基矩阵的符合筛选位置的行向量中选出与二进制向量相等的行向量,并获得由选出的行向量组成的行向量集合,其中,筛选器向量中包括:随机生成的二进制向量和包含筛选位置的整数向量;
遍历搜索单元设置为:遍历搜索获得的行向量集合中每两个或两个以上行向量的线性组合,根据遍历搜索的线性组合的和向量的汉明重量,获得一组小重量码字;
判断处理单元设置为:每一次判断出搜索小重量码字的次数小于预先设定的迭代次数阈值时,对基矩阵进行一次线性变换,并重新通过筛选器向量对线性变换获得的基矩阵重新进行筛选,遍历搜索获得每一次线性变换获得的基矩阵对应的一组小重量码字;
判断输出单元设置为:搜索小重量码字的次数大于或等于迭代次数阈值时,输出所有搜索到的小重量码字。
在一种示例性实例中,本公开实施例判断处理单元设置为重新通过筛选器向量对线性变换获得的基矩阵重新进行筛选,遍历搜索获得每一次线性变换获得的基矩阵对应的一组小重量码字,包括:
对每一次线性变换获得的基矩阵:
通过筛选器向量进行筛选,从符合筛选位置的行向量中重新选出与二进制向量相等的行向量,并重新获得由重新选出的行向量组成的行向量集合;
遍历搜索重新获得的行向量集合中每两个或两个以上行向量的线性组合,根据遍历搜索的线性组合的和向量的汉明重量,重新获得一组小重量码字。
在一种示例性实例中,本公开实施例装置还包括筛选器向量生成单元,设置为:
对线性变换获得的所有基矩阵中的一个以上基矩阵,随机生成每一个基矩阵相应的筛选器向量;
其中,搜索小重量码字的次数大于或等于迭代次数阈值之前,每一次线性变换获得一个基矩阵。
在一种示例性实例中,基矩阵为,形式为/>,本公开实施例判断处理单元设置为对基矩阵进行线性变换,包括:
随机选取的单位阵部分其中一列,再随机选取/>中非单位阵的一列,将选取的单位阵部分的列与非单位阵中的列交换后,通过行变换消元到/>的形式的基矩阵。
在一种示例性实例中,将一组线性无关的二进制基向量通过高斯行变换获得线性空间的基矩阵之前,本公开实施例方法还包括:初始化以下参数:
筛选器向量长度、用于和向量的汉明重量比对的重量判定阈值/>和迭代次数阈值/>;
初始化第一次迭代的迭代次数为1;
输出的小重量码字的集合为,初始化/>。
在一种示例性实例中,本公开实施例二进制向量为d,用于位置筛选的整数向量为x,二进制向量d和整数向量x的长度均为;其中,
二进制向量;
整数向量x通过在范围内的正整数/>中随机选择/>个不同的数组成,整数向量/>。
在一种示例性实例中,本公开实施例筛选单元是设置为:
使用筛选器向量筛选基矩阵中的行向量,从符合整数向量x的筛选位置的行向量中选出长度为个比特的与二进制向量相等的行向量。
在一种示例性实例中,本公开实施例遍历搜索单元设置为根据遍历搜索的线性组合的和向量的汉明重量,得到一组小重量码字,包括:
若和向量的汉明重量小于或等于重量判定阈值,则判定该和向量为小重量码字;
若和向量的汉明重量大于重量判定阈值,则判定该和向量不是小重量码字。
以下通过应用示例对本公开实施例进行简要说明,应用示例仅用于陈述本公开实施例,并不用于限定本公开实施例的保护范围。
应用示例
本公开实施例提供了一种低复杂度的小重量码字的搜索方法,从一组给定二进制基向量所张成的线性码空间中,寻找汉明重量(二进制向量中为1的比特数量)小于给定重量判定阈值的小重量码字(相关技术中也定义为稀疏向量);在一定的时间内(时间长度根据迭代次数阈值确定)输出在该线性空间内搜索到的全部汉明重量小于给定重量判定阈值的行向量。
本公开实施例小重量码字搜索方法可采用编写软件、编写FPGA或设计专用电路来实现。以下以编写软件形式解决LDPC码校验矩阵重建问题为例,对本公开实施例小重量码字搜索方法进行说明,包括:
对(/>为码长,/>为信息比特长度,/>为准循环因子,/>为校验矩阵的行重)的QC-LDPC码(一种准循环低密度奇偶校验码)的校验矩阵进行重建;
1)初始化搜索方法的算法参数,并对输入的基向量进行线性变换,得到基矩阵。本公开实施例可以参照相关技术,通过以下处理获得基矩阵/>:
1.1)输入算法参数并初始化输出集合,包括:设定筛选器长度、重量判定阈值/>、最大迭代次数/>,并设定当前迭代次数为1;记算法输出的小重量码字集合为/>,初始化/>。
1.2)以行向量的形式输入LDPC码校验空间的一组(共个)长度为的线性无关的二进制基向量/>,其中,本公开实施例由这组基向量张成的线性空间维数为/>;
1.3)将基向量组按行排成一个/>行/>列的稠密矩阵/>:
1.4)将稠密矩阵通过高斯行变换(允许行交换、行相加操作)变换为基矩阵/>,其具有分块矩阵形式/>(/>为阶单位矩阵)。
2)随机生成筛选器向量,包括随机生成一个长度为的二进制向量和一个长度为的整数向量/>,本公开实施例随机生成筛选器向量可以包括:
2.1)随机生成长度为的二进制向量;
2.2)在范围内的正整数/>中随机选择/>个不同的数组成向量/>;
3)使用筛选器向量筛选基矩阵中的行向量:通过筛选的行向量需满足在按向量/>中的位置取出的/>个比特与二进制向量/>相等;记得到/>个通过筛选的行向量集合为/>,筛选获得上述行向量的处理包括:
3.1)记通过筛选的行向量的集合为,并初始化/>;
3.2)遍历的每一行/>,对其进行筛选;行筛选的处理可以包括:
3.2.1)对每一个,按筛选器向量/>中的位置,顺序地取出/>中对应的/>个比特,组成行向量/>;其中,取出的第/>个比特为/>的第/>个比特,即/>;
3.2.2)如果行向量,即/>,则该行向量通过筛选,向集合中加入向量/>;否则,行向量/>,行向量/>不通过筛选。
4)在通过筛选的行向量的集合中,遍历搜索每两个行的线性组合,判断每个线性组合的和向量是否为小重量码字;本公开实施例假设得到共判断出/>个小重量码字,其集合可以记为/>,本公开实施例判断获得/>个小重量码字的处理可以包括:
4.1)遍历通过筛除的向量中,每两个行的线性组合;
4.1.1)计算这两个线性组合的和向量;
4.1.3)若,则该和向量/>为恢复出的小重量码字,向集合/>中加入向量/>;否则,若和向量/>的汉明重/>,则判断该和向量/>不是小重量码字。
5)对基矩阵进行线性变换以搜索更多的行组合,然后返回步骤2进行下一次搜索方法的迭代。迭代处理可以包括:
5.1)若当前迭代次数达到迭代次数阈值,输出搜索到的小重量码字的集合。
5.2)若当前迭代次数未达到迭代次数阈值,对线性空间的基矩阵/>进行以下线性变换:随机选取/>的单位阵部分(第/>列~第/>列)其中一列,再随机选取中非单位阵(第/>列~第/>列)的一列,将这两列交换,然后仍将其通过行变换消元到的形式。
5.3)迭代次数+1,返回步骤2开始下一次迭代。
本公开实施例在不同的码长或码率下,仿照上述实施例对算法参数进行适当调整,通过基于C++编写的软件仿真本算法的实施效果,并将其和现有Canteaut-Chabaud算法进行比较,如下所述:
在AMD EPYC [email protected]处理器及8通道DDR4-3200内存的计算平台下,使用单线程计算得出结果,测试结果如下:
在对CCSDS标准的码长、目标小重量向量的最大重量/>的QC-LDPC码进行重建时,使用本公开实施例算法完全重建出稀疏校验矩阵所需的平均时间为34.18s,而已有Canteaut-Chabaud算法则需要7175s;相比,本公开实施例搜索方法的计算性能约提高了209倍;
在对DVB-S2标准的码长、目标小重量向量的最大重量/>的QC-LDPC码进行重建时,使用本公开实施例搜索方法完全重建出稀疏矩阵所需的平均时间为70.83s,而已有Canteaut-Chabaud算法则需要12780s;相比,本公开实施例搜索方法的计算性能约提高了179倍;
本公开实施例在可接受的计算复杂度下,完成在大码长下小重量码字的搜索,且应用于稀疏编码盲识别等通信编码相关问题的解决方案中对计算复杂度的降低有显著效果。具体地,本公开实施例在遍历搜索行组合前筛选出有更大概率能够组合出小重量码字的向量,而后仅需对通过筛选的向量进行遍历搜索,减少了参与遍历搜索基向量组合的数量;通过生成一组给定长度的二进制向量及一个整数向量/>用于筛选;提高了通过筛选器向量能够组合出小重量码字的几率,有效提升了算法运行的整体效率。在完成一次筛选和遍历的迭代后,对线性空间的基矩阵进行了线性变换并执行下一次迭代,可搜索线性空间中更多的行组合,增加了搜索到小重量码字的概率。
相比相关技术中的Canteaut-Chabaud算法,本公开实施例在用于解决稀疏线性编码(码长在5000~20000左右)的盲识别问题中时,可以将计算复杂度降低大约2个数量级。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、***、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
Claims (11)
1.一种小重量码字的搜索方法,其特征在于,包括:
将一组线性无关的二进制基向量通过高斯行变换获得线性空间的基矩阵,其中,线性无关的二进制基向量张成待搜索的线性空间;
根据预设方式确定的筛选器向量对获得的基矩阵进行筛选,从基矩阵的符合筛选位置的行向量中选出与二进制向量相等的行向量,并获得由选出的行向量组成的行向量集合,其中,筛选器向量中包括:随机生成的二进制向量和包含筛选位置的整数向量;
遍历搜索获得的行向量集合中每两个或两个以上行向量的线性组合,根据遍历搜索的线性组合的和向量的汉明重量,获得一组小重量码字;
每一次判断出搜索小重量码字的次数小于预先设定的迭代次数阈值时,对基矩阵进行一次线性变换,并重新通过筛选器向量对线性变换获得的基矩阵重新进行筛选,遍历搜索获得每一次线性变换获得的基矩阵对应的一组小重量码字;
搜索小重量码字的次数大于或等于迭代次数阈值时,输出所有搜索到的小重量码字。
2.根据权利要求1所述的搜索方法,其特征在于,所述重新通过筛选器向量对线性变换获得的基矩阵重新进行筛选,遍历搜索获得每一次线性变换获得的基矩阵对应的一组小重量码字,包括:
对每一次线性变换获得的所述基矩阵:
通过所述筛选器向量进行筛选,从符合所述筛选位置的行向量中重新选出与所述二进制向量相等的行向量,并重新获得由重新选出的所述行向量组成的行向量集合;
遍历搜索重新获得的所述行向量集合中每两个或两个以上行向量的线性组合,根据遍历搜索的所述线性组合的和向量的汉明重量,重新获得一组所述小重量码字。
3.根据权利要求1所述的搜索方法,其特征在于,所述搜索小重量码字的次数大于或等于迭代次数阈值之前,所述方法还包括:
对线性变换获得的所有所述基矩阵中的一个以上基矩阵,生成每一个所述基矩阵相应的所述筛选器向量;
其中,所述搜索小重量码字的次数大于或等于迭代次数阈值之前,每一次线性变换获得一个所述基矩阵。
4.根据权利要求1所述的搜索方法,其特征在于,所述基矩阵为,形式为/>,所述对基矩阵进行一次线性变换,包括:
随机选取的单位阵部分其中一列,再随机选取/>中非单位阵的一列,将选取的单位阵部分的列与非单位阵中的列交换后,通过行变换消元到/>的形式的基矩阵。
5.根据权利要求1至4任一项所述的搜索方法,其特征在于,所述将一组线性无关的二进制基向量通过高斯行变换获得线性空间的基矩阵之前,所述方法还包括:初始化以下参数:
所述筛选器向量长度、用于所述和向量的汉明重量比对的重量判定阈值/>和所述迭代次数阈值/>;
初始化第一次迭代的迭代次数为1;
输出的一组所述小重量码字的集合为,初始化/>为空。
6.根据权利要求1所述的搜索方法,其特征在于,所述二进制向量为d,用于位置筛选的整数向量为x,二进制向量d和整数向量x的长度均为L;其中,
所述二进制向量;
所述整数向量x通过在范围内的正整数/>中选择/>个不同的数组成,所述整数向量/>。
7.根据权利要求6所述的搜索方法,其特征在于,所述通过筛选器向量对线性变换获得的基矩阵重新进行筛选,包括:
使用所述筛选器向量筛选所述基矩阵中的行向量,从符合所述整数向量x的筛选位置的行向量中选出长度为个比特的与所述二进制向量相等的行向量。
8.根据权利要求5所述的搜索方法,其特征在于,所述根据遍历搜索的线性组合的和向量的汉明重量,得到一组小重量码字,包括:
若所述和向量的汉明重量小于或等于所述重量判定阈值,则判定该和向量为小重量码字;
若所述和向量的汉明重量大于所述重量判定阈值,则判定该和向量不是小重量码字。
9.一种计算机存储介质,所述计算机存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8中任一项所述的小重量码字的搜索方法。
10.一种终端,包括:存储器和处理器,所述存储器中保存有计算机程序;其中,
处理器被配置为执行存储器中的计算机程序;
所述计算机程序被所述处理器执行时实现如权利要求1至5中任一项所述的小重量码字的搜索方法。
11.一种小重量码字的搜索装置,包括:高斯行变换单元、筛选单元、遍历搜索单元、判断处理单元和判断输出单元;其中,
高斯行变换单元设置为:将一组线性无关的二进制基向量通过高斯行变换获得线性空间的基矩阵,其中,线性无关的二进制基向量张成待搜索的线性空间;
筛选单元设置为:根据预设方式确定的筛选器向量对获得的基矩阵进行筛选,从基矩阵的符合筛选位置的行向量中选出与二进制向量相等的行向量,并获得由选出的行向量组成的行向量集合,其中,筛选器向量中包括:随机生成的二进制向量和包含筛选位置的整数向量;
遍历搜索单元设置为:遍历搜索获得的行向量集合中每两个或两个以上行向量的线性组合,根据遍历搜索的线性组合的和向量的汉明重量,获得一组小重量码字;
判断处理单元设置为:每一次判断出搜索小重量码字的次数小于预先设定的迭代次数阈值时,对基矩阵进行一次线性变换,并重新通过筛选器向量对线性变换获得的基矩阵重新进行筛选,遍历搜索获得每一次线性变换获得的基矩阵对应的一组小重量码字;
判断输出单元设置为:搜索小重量码字的次数大于或等于迭代次数阈值时,输出所有搜索到的小重量码字。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410089244.5A CN117609488B (zh) | 2024-01-22 | 2024-01-22 | 小重量码字的搜索方法、装置、计算机存储介质及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410089244.5A CN117609488B (zh) | 2024-01-22 | 2024-01-22 | 小重量码字的搜索方法、装置、计算机存储介质及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117609488A CN117609488A (zh) | 2024-02-27 |
CN117609488B true CN117609488B (zh) | 2024-03-26 |
Family
ID=89944640
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410089244.5A Active CN117609488B (zh) | 2024-01-22 | 2024-01-22 | 小重量码字的搜索方法、装置、计算机存储介质及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117609488B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104376051A (zh) * | 2014-10-30 | 2015-02-25 | 南京信息工程大学 | 随机结构保形哈希信息检索方法 |
CN112865811A (zh) * | 2021-01-11 | 2021-05-28 | 清华大学 | 基于渐进扩展和环分类排序评估准则的ldpc码构造方法 |
CN115309929A (zh) * | 2022-07-21 | 2022-11-08 | 三维通信股份有限公司 | 一种非线性语义保持跨模态哈希检索方法及*** |
CN115549694A (zh) * | 2022-10-18 | 2022-12-30 | 清华大学 | 一种ldpc码最小码重检测方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10719509B2 (en) * | 2016-10-11 | 2020-07-21 | Google Llc | Hierarchical quantization for fast inner product search |
-
2024
- 2024-01-22 CN CN202410089244.5A patent/CN117609488B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104376051A (zh) * | 2014-10-30 | 2015-02-25 | 南京信息工程大学 | 随机结构保形哈希信息检索方法 |
CN112865811A (zh) * | 2021-01-11 | 2021-05-28 | 清华大学 | 基于渐进扩展和环分类排序评估准则的ldpc码构造方法 |
CN115309929A (zh) * | 2022-07-21 | 2022-11-08 | 三维通信股份有限公司 | 一种非线性语义保持跨模态哈希检索方法及*** |
CN115549694A (zh) * | 2022-10-18 | 2022-12-30 | 清华大学 | 一种ldpc码最小码重检测方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN117609488A (zh) | 2024-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10547332B2 (en) | Device, system and method of implementing product error correction codes for fast encoding and decoding | |
JP5752317B2 (ja) | 準巡回低密度パリティ検査符号を求める方法、及び準巡回低密度パリティ検査符号に基づいてデータを符号化するシステム | |
US7730377B2 (en) | Layered decoding of low density parity check (LDPC) codes | |
US10411735B1 (en) | Systems and methods for an iterative decoding scheme | |
CN103888148B (zh) | 一种动态阈值比特翻转的ldpc码硬判决译码方法 | |
US8347170B2 (en) | Method and apparatus for performing decoding using LDPC code | |
EP3092717B1 (en) | Decoding of non-binary ldpc codes | |
US20170192848A1 (en) | Distributed data storage with reduced storage overhead using reduced-dependency erasure codes | |
US20150295593A1 (en) | Apparatus and method for encoding and decoding data in twisted polar code | |
CN103155421A (zh) | Ldpc多解码器架构 | |
CN107147400B (zh) | 一种ira码开集盲识别方法 | |
US10033407B2 (en) | Optimization of low density parity-check code encoder based on a search for an independent set of nodes | |
US9853661B2 (en) | On-the-fly evaluation of the number of errors corrected in iterative ECC decoding | |
Shahabinejad et al. | A class of binary locally repairable codes | |
US8438448B2 (en) | Decoding method and device for low density generator matrix codes | |
EP3648379A1 (en) | Design method and apparatus for quasi-cyclic low-density parity-check | |
CN106708654A (zh) | 一种用于NANDflash的BCH纠错码的电路结构 | |
CN113037299A (zh) | 基于迭代译码的ldpc码稀疏校验矩阵重建方法和装置 | |
CN111384972B (zh) | 多进制ldpc解码算法的优化方法、装置及解码器 | |
CN107947802B (zh) | 速率兼容低密度奇偶校验码编译码的方法及编译码器 | |
CN117609488B (zh) | 小重量码字的搜索方法、装置、计算机存储介质及终端 | |
CN210110352U (zh) | 纠正NAND Flash中多比特错误的ECC装置 | |
CN110113058B (zh) | 编译码方法、装置、设备及计算机可读存储介质 | |
CN106569906B (zh) | 基于稀疏矩阵的编码写入方法及装置 | |
CN112534724B (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 |