Parity check code construction method and device, equipment and storage medium
By fine-tuning the displacement matrix of the LDPC code and increasing the vector, a new LDPC code with code length and code rate is constructed, which solves the problem of low efficiency of the existing construction methods and achieves time saving and efficiency improvement.
Patent Information
- Application Number
- CN202411242435.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-05
- Publication Date
- 2025-03-11
AI Technical Summary
The existing LDPC code construction method is inefficient, time-consuming and needs to be constructed based on the matrix size and expected column weights.
By fine-tuning the displacement matrix of the parity code, the vector is added to meet the preset matrix characteristic conditions, thereby constructing a new LDPC code with code length and code rate.
It saves time to construct parity check codes, improves the construction efficiency of LDPC codes, and provides a variety of adjustable modes with adjustable code rates.
Smart Images

Figure CN119602809A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of system coding, and in particular to a parity check code construction method, device, equipment and storage medium. Background Art
[0002] As the memory capacity per unit area of storage devices increases, the data error rate becomes higher, which means that error handlers with higher error correction capabilities are more relied upon. Therefore, considering the data processing length and error correction capabilities, low density parity check codes (LDPC codes) are the first choice among error handlers.
[0003] LDPC codes are defined by low-density co-location matrices, and their error correction capabilities are closely related to the code rate, code length, column weights, and the distribution of the number of cycles. There are several ways to construct LDPC codes: random construction, geometric construction, and abstract algebraic construction. However, as the code length increases, the time required to construct the code increases. Among the three types of code construction methods, the random construction method is very time-consuming. Although the geometric and abstract algebraic construction methods have a mathematical theoretical basis as support, it is easy to construct a matrix that meets the RC constraint. However, in actual applications, a shielding matrix is required to reduce the number of non-zero elements in the matrix. This shielding also needs to be constructed based on the matrix size and the expected column weights, so the efficiency is relatively low. How to improve the construction efficiency of LDPC codes is a problem to be solved in this field. Summary of the invention
[0004] In view of this, the purpose of the present invention is to provide a method, device, equipment and storage medium for constructing a parity check code, by fine-tuning the shift matrix of the parity check code to construct a new LDPC code with a code length and code rate, and by increasing vectors in the parity matrix information part and the parity matrix to improve the performance of the check code, which helps to save the time of constructing the parity check code. The specific scheme is as follows:
[0005] In a first aspect, the present application provides a method for constructing a quasi-cyclic parity check code, comprising:
[0006] Determine a shift matrix corresponding to an initial quasi-cyclic parity-check code matrix;
[0007] Adding a vector to the displacement matrix so that the matrix characteristic of the displacement matrix after adding the vector meets the preset matrix characteristic condition;
[0008] The corresponding target standard cyclic parity check code is determined based on the displacement matrix after adding the vector.
[0009] Optionally, adding a vector to the displacement matrix includes:
[0010] adding the first vector to any column of the information portion in the displacement matrix;
[0011] and / or, adding the second vector to any column of the co-located part in the displacement matrix and / or any row in the displacement matrix;
[0012] If the second vector has been added to any row in the displacement matrix, the value of the position corresponding to the vector added to any column of the co-located part in the second vector is set to 1.
[0013] Optionally, adding any vector to any column of the information part or the co-location part in the displacement matrix comprises:
[0014] Initializing any one of the vectors and a first displacement value set;
[0015] generating a first preset number of positions;
[0016] Determine a first target value from the row of the displacement matrix corresponding to the first position;
[0017] The any one vector is updated based on the first displacement value set and the first target value, and the updated any one vector is added to any one column of the information part or the co-location part.
[0018] Optionally, adding the updated any vector to after any column of the information part or the co-location part further includes:
[0019] determining a first characteristic of the displacement matrix;
[0020] updating the first displacement value set;
[0021] If the first characteristic meets the preset matrix characteristic condition, updating the any one vector based on the updated first displacement value set and the second target value;
[0022] The second target value is a value determined from a row of the displacement matrix corresponding to a position next to the first position.
[0023] Optionally, if the first characteristic does not meet the preset matrix characteristic condition, the method further includes:
[0024] Checking whether the updated first displacement value set is an empty set;
[0025] If yes, then initialize the any vector and the first displacement value set;
[0026] If not, continue to update the first displacement value set, and update the any one vector based on the updated first displacement value set and the second target value.
[0027] Optionally, adding the second vector to any row in the displacement matrix comprises:
[0028] Initializing the second vector and the second displacement value set;
[0029] generating a second preset number of positions;
[0030] Determining a third target value from the column of the displacement matrix corresponding to the first position;
[0031] The second vector is updated based on the second displacement value set and the third target value, and the updated second vector is added to any row in the displacement matrix.
[0032] Optionally, adding the second vector to any row in the displacement matrix further includes:
[0033] determining a second characteristic of the displacement matrix;
[0034] updating the second displacement value set;
[0035] If the second characteristic meets the preset matrix characteristic condition, updating the second vector based on the updated second displacement value set and a fourth target value;
[0036] The fourth target value is a value determined from a column of the displacement matrix corresponding to a position next to the first position.
[0037] Optionally, if the second characteristic does not meet the preset matrix characteristic condition, the method further includes:
[0038] Checking whether the updated second displacement value set is an empty set;
[0039] If yes, initializing the second vector and the second displacement value set;
[0040] If not, continue to update the second displacement value set, and update the second vector based on the updated second displacement value set and the fourth target value.
[0041] In a second aspect, the present application provides a quasi-cyclic parity check code construction device, comprising:
[0042] A matrix determination module, used to determine a displacement matrix corresponding to an initial quasi-cyclic parity check code matrix;
[0043] A vector adding module, used for adding vectors to the displacement matrix, so that the matrix characteristics of the displacement matrix after adding the vectors meet the preset matrix characteristic conditions;
[0044] The check code determination module is used to determine the corresponding target standard cyclic parity check code based on the displacement matrix after adding the vector.
[0045] In a third aspect, the present application provides an electronic device, comprising a processor and a memory; wherein the memory is used to store a computer program, and the computer program is loaded and executed by the processor to implement the aforementioned quasi-cyclic parity check code construction method.
[0046] In a fourth aspect, the present application provides a computer-readable storage medium for storing a computer program, wherein the computer program implements the aforementioned quasi-cyclic parity-check code construction method when executed by a processor.
[0047] In the present application, the displacement matrix corresponding to the initial quasi-cyclic parity check code matrix is first determined, and then vectors are added to the displacement matrix so that the matrix characteristics of the displacement matrix after the vectors are added meet the preset matrix characteristics conditions, so as to determine the corresponding target standard cyclic parity check code based on the displacement matrix after the vectors are added. In this way, under the condition of a known co-location matrix, the present application can fine-tune the matrix to construct a new LDPC code with a code length and code rate, and increase the K dimension of the code by adding vectors to the information part to achieve the purpose of protecting more information bits, and increase the co-location part of the code to improve the error correction capability, and by checking the characteristics of the co-location matrix while adding vectors, such as cycle distribution, RC restrictions, etc., it can ensure that excellent decoding performance is maintained. In addition to saving time in constructing the code, it also provides a code adjustable mode with multiple code rates. BRIEF DESCRIPTION OF THE DRAWINGS
[0048] In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on the provided drawings without paying creative work.
[0049] Figure 1 A flow chart of a parity check code construction method provided in this application;
[0050] Figure 2 A schematic diagram of a quasi-cyclic parity check code encoding provided by this application;
[0051] Figure 3A schematic diagram of an equivalent parity check matrix in a lower triangular form provided in this application;
[0052] Figure 4 A schematic diagram of an equivalent parity check matrix in an approximate lower triangular form provided by the present application;
[0053] Figure 5 A column of schematic diagrams is added to the parity check code information part provided by this application;
[0054] Figure 6 A schematic diagram of adding a row and a column to the parity part of a parity check code provided by the present application;
[0055] Figure 7 A flowchart of a specific parity check code construction method provided in this application;
[0056] Figure 8 A flow chart of adding information to a parity check code provided by this application;
[0057] Fig. 9 A flow chart for adding a parity part to a parity check code provided in this application;
[0058] Fig.10 A schematic diagram of the structure of a parity check code encoding device provided in this application;
[0059] Fig.11 A structural diagram of an electronic device provided for this application. DETAILED DESCRIPTION
[0060] The following will be combined with the drawings in the embodiments of the present invention to clearly and completely describe the technical solutions in the embodiments of the present invention. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.
[0061] When constructing an LDPC code, the longer the code length is, the longer the time required to construct the code is. In the current code construction method, the random construction method is very time-consuming and needs to be constructed based on the matrix size and the expected column weights, which is relatively inefficient. In the present application, under the condition of a known co-location matrix, the matrix can be fine-tuned to construct an LDPC code with a new code length and code rate. Vectors are added to the information part of the co-location matrix to protect more information bits, and vectors are added to the co-location matrix to improve the error correction capability, which can effectively save the time of constructing the code.
[0062] See also Figure 1 As shown, an embodiment of the present invention discloses a method for constructing a parity check code, comprising:
[0063] Step S11, determining a shift matrix corresponding to an initial quasi-cyclic parity-check code matrix.
[0064] It should be noted that this embodiment adopts a systematic coding architecture and considers the hardware implementation efficiency. It adopts a QC-LDPC code composed of multiple circulant matrices of size p. In the design of the encoder and decoder, by recording the displacement value s of each circulant matrix, continuous p bits of information can be obtained. Figure 2 As shown in FIG. 1 , the parity check matrix H of the QC-LDPC code is composed of an information part and a parity part. indivual The circulant matrix consists of indivual Circular matrix composition.
[0065] For example: Assume p=3 and s=1, then the circulant matrix .
[0066] Another example: the parity check matrix H of the QC-LDPC code is represented by a shift matrix ,as follows:
[0067] , where the size of the circulant matrix can be p=5, so M=3, N=6, K=NM=3. Circular shift matrix , where -1 represents a zero matrix.
[0068] It is also understandable that for different encoders, the form of the above parity matrix will have different specifications. Any form of parity check matrix of LDPC code can be obtained by Gaussian elimination method as follows: Figure 3 The equivalent matrix shown in Figure 4 The equivalent parity check matrix in the form of a parity check matrix close to the lower triangle is shown. Then the above matrix In columns it can be expressed as: ; It can be expressed in terms of behavior as: .
[0069] Step S12: adding a vector to the displacement matrix so that the matrix characteristic of the displacement matrix after adding the vector meets the preset matrix characteristic condition.
[0070] In this embodiment, the first vector may be added to any column of the information part in the displacement matrix, and / or the second vector may be added to any column of the co-location part in the displacement matrix and / or any row in the displacement matrix, so that the matrix characteristics of the displacement matrix after adding the vectors meet the preset matrix characteristic conditions. When adding vectors, the first vector can be added to any column of the information part in the displacement matrix, and / or the second vector can be added to any row and / or any column of the co-location part in the displacement matrix. This embodiment focuses on the case where the first vector is added to a column of the information part in the displacement matrix, and then the second vector is added to any row and any column of the co-location part in the displacement matrix. At this time, by increasing the number of columns in the information part of the co-location matrix, the K dimension of the code is increased to protect more information bits, and by adding a row to the co-location matrix and a column to the co-location part, the co-location part of the code is increased to improve the error correction capability, and when adding rows or columns, it is necessary to check the characteristics of the co-location matrix, such as cycle distribution, RC limit, etc., to ensure that excellent decoding energy efficiency is maintained. For example, based on Figure 3 In matrix form, if you want to increase the length of the information part, then Figure 5 As shown, add any column to the first K columns So that the matrix K'=K+1. The weights can be adjusted according to the matrix requirements, and the matrix characteristics can be checked after addition. In a specific embodiment, if the second vector has been added to any row in the displacement matrix, the value of the position corresponding to the vector added to any column of the co-location part in the second vector is set to 1. It can be understood that at this time, since the information part has been added by one column, there is a redundant position when a row is added to the co-location part. Therefore, after the first vector is added to any column of the information part in the displacement matrix, if the second vector is added to any row of the co-location part in the displacement matrix, the value of the position corresponding to the first vector in the second vector is set to 1. That is, if the co-location part is to be added, then as Figure 6 As shown, first insert a column at the front of the co-location part of the co-location matrix , check the matrix characteristics and add another row and The K+1th bit of is 1, and then the matrix characteristics are calculated to repeatedly replace and add rows or columns until a matrix that meets the matrix characteristics is found.
[0071] Step S13: Determine the corresponding target standard cyclic parity check code based on the displacement matrix after adding the vector.
[0072] After obtaining a matrix that satisfies the matrix characteristics in this embodiment, the corresponding target standard cyclic parity check code can be determined based on the displacement matrix after adding the vector, so as to increase the length of the protected information and the code rate by adding a column to the information part of the co-location matrix, and increase the length of the co-location part and reduce the code rate by adding a row to the co-location matrix and a column to the co-location part. At the same time, the information part and the co-location part can also be added several times to achieve various code rates. In this way, under the condition of constructing a known co-location matrix, the matrix can be fine-tuned to construct a new LDPC code with a code length and code rate, so as to meet the requirement that the size of the matrix needs to be fine-tuned according to the specifications given by the flash memory manufacturer in the actual application process.
[0073] In this embodiment, a displacement matrix corresponding to an initial quasi-cyclic parity-check code including an information part and a co-location part is first determined, and a first vector is added to any column of the information part in the displacement matrix, and / or a second vector is added to any row and / or any column of the co-location part in the displacement matrix, so that the matrix characteristics of the displacement matrix after adding the vector meet the preset matrix characteristic conditions, and then the corresponding target standard cyclic parity-check code is determined based on the displacement matrix after adding the vector. Thus, the present embodiment proposes a method for constructing a low-density parity-check code based on an existing matrix for a storage device. The code construction using a low-density parity-check code can be based on the error correction system of the storage device. Under the condition of a known parity matrix, the matrix is fine-tuned to construct an LDPC code with a new code length and code rate. The K dimension of the code is increased by adding vectors to the information part to protect more information bits, and the error correction capability is improved by adding the parity part of the code. Moreover, by checking the characteristics of the parity matrix while adding vectors, such as the cycle distribution status, RC restriction, etc., it is possible to ensure that excellent decoding performance is maintained. In addition to saving the time for constructing the code, a code adjustable mode with multiple code rates is also provided.
[0074] Based on the previous embodiment, it can be seen that the present application adds vectors to the information part and the co-location part of the shift matrix to improve the error correction capability and can fine-tune the matrix to construct a new LDPC code with a code length and code rate. Next, the process of adding vectors will be described in detail in this embodiment. Figure 7 As shown, the embodiment of the present application discloses a specific method for constructing a parity check code, including:
[0075] Step S21: Add the first vector to any column of the information part in the displacement matrix.
[0076] In this embodiment, when adding the first vector to the information part of the displacement matrix, firstly, any vector and the first displacement value set are initialized, and a first preset number of positions are generated, then the first target value is determined from the row of the displacement matrix corresponding to the first position, and any vector is updated based on the first displacement value set and the first target value, and the updated vector is added to any column of the information part or the co-location part. Figure 8 As shown, first, the first initial vector with a length of M is initialized according to the number of matrix rows in the information part. , and construct the first displacement value set according to the matrix form of the circulant matrix in the information part , and then randomly generate non-repeating first preset number d positions ranging from 0 to M-1 according to the number of matrix rows and the preset matrix column weights And let i = 0. is the matrix column weight, d c is a preset column weight value (and in this embodiment, the maximum value of the column weight value is preferred). It can be understood that, considering that the random generation may have multiple identical positions, the numbering starts from zero to ensure that non-repeated d positions are generated.
[0077] Then, the first position of the first preset number of positions is taken as the current position, that is, i=0, to determine the first target value whose displacement value is greater than -1 in a row of the information part corresponding to the current position. Specifically, Non-zero circulant matrix shift values , that is, the value of displacement value>-1, where for The row weight of the row (rowweight), represents the position of the row. And let , then from Selected No. Displacement value of position and update , based on the first displacement value set divided by the first target value The first displacement value to be updated Update the first initial vector , and add the updated first initial vector to the information part of the displacement matrix. And in this process, it is necessary to remove from the set S={0, 1, ..., p-1} The displacement value of this position is selected under the condition that the displacement values on the rows and columns intersecting this position are the same, which can avoid duplication of displacement values of the circulant matrix in the same row and the same column. It can be understood that the above process of selecting the displacement value can also be omitted without affecting the actual operation of this embodiment.
[0078] After adding any updated vector to any column of the information part or the co-location part, the first characteristic of the displacement matrix can be determined and the first displacement value set can be updated; if the first characteristic meets the preset matrix characteristic condition, any vector is updated based on the updated first displacement value set and the second target value; wherein the second target value is a value determined from the row of the displacement matrix corresponding to the next position of the first position. That is to say, after adding the updated first initial vector to the information part of the displacement matrix, the first characteristic of the current displacement matrix is determined first, that is, after adding join in get , and calculate The characteristics of , remove the first displacement value to be updated from the first displacement value set S , to avoid duplication of displacement values of the circulant matrices in the same row and the same column, and check whether the first characteristic meets the preset matrix characteristic condition. It is understandable that the above characteristic checking process can be whether the number of four cycles is zero, or the number of four cycles is less than a certain value or other characteristics, which are not specifically limited here. And the above process is not limited to adding a column at the end of the information part, and it can be added to any column of the information part. It is understandable that the above process of checking characteristics can also choose to perform characteristic checking after the end of the entire subsequent process.
[0079] If the preset characteristic conditions are met, the next position of the current position is taken as the current position, that is, i=i+1, and it is determined whether , with the value corresponding to the current position Not less than the preset matrix column weight Output the current displacement matrix and the corresponding value at the current position Less than the preset matrix column weight Jump to the above collection Non-zero circulant matrix shift values , that is, the step of determining the first target value whose displacement value in a row of the information part corresponding to the current position is greater than -1; if it does not meet the preset characteristic condition, then checking whether the updated first displacement value set is an empty set; if so, then initializing any vector and the first displacement value set; if not, then continuing to update the first displacement value set, and updating any vector based on the updated first displacement value set and the second target value. Specifically, you can check , that is, determine whether the first displacement value set after removing the first displacement value to be updated is an empty set, if not, jump to Selected No. Displacement value of position and update The step of re-updating the first initial vector based on the first displacement value to be updated except the first target value in the first displacement value set is performed. If yes, jump to the step of initializing the first initial vector according to the number of matrix rows of the information part to re-initialize the first initial vector.
[0080] Step S22: Add the second vector to any column of the co-located part in the displacement matrix and / or any row in the displacement matrix.
[0081] In this embodiment, when adding the second vector to the co-located part in the displacement matrix, the second vector and the second displacement value set are first initialized, and a second preset number of positions are generated. Then, the third target value is determined from the column of the displacement matrix corresponding to the first position, so as to update the second vector based on the second displacement value set and the third target value, and the updated second vector is added to any row in the displacement matrix. Fig. 9 As shown, after each updated first initial vector is added to the information part, firstly ,get , and then initialize all components of length N+1 according to the number of matrix columns of the displacement matrix except The second initial vector is -1. , and construct the second displacement value set according to the matrix form of the circulant matrix in the same part , and then randomly generate a non-repeating second preset number ranging from 0 to NM-1 according to the number of matrix columns and the preset matrix row weights Locations And let i = 0. The matrix row weights are averaged and rounded down to integers. It is understandable that considering that the same position may appear multiple times in random generation, the numbering starts from zero to ensure that d non-repeated positions are generated.
[0082] Then, the first position of the second preset number of positions is taken as the current position, that is, i=0, to determine the second target value whose displacement value is greater than -1 in a column of the same position part corresponding to the current position. Specifically, Non-zero circulant matrix shift values , that is, the value of displacement value>-1, where for The column weight of the row (columnweight), represents the column position. And let , then from Selected No. Displacement value of position and update , based on the second displacement value set divided by the second target value The second displacement value to be updated Update the second initial vector , and add the updated second initial vector to the same position part in the displacement matrix. And in this process, it is necessary to remove from the set S={0, 1, ..., p-1} The displacement value of this position is selected under the condition that the displacement values on the rows and columns intersecting this position are the same, which can avoid duplication of displacement values of the circulant matrix in the same row and the same column. It can be understood that the above process of selecting the displacement value can also be omitted without affecting the actual operation of this embodiment.
[0083] Next, after adding the second vector to any row in the displacement matrix, the second characteristic of the displacement matrix can be determined, and the second displacement value set can be updated; if the second characteristic meets the preset matrix characteristic condition, the second vector is updated based on the updated second displacement value set and the fourth target value; wherein the fourth target value is a value determined from the column of the displacement matrix corresponding to the next position of the first position. That is, first determine the second characteristic of the current displacement matrix, that is, after adding join in get , and calculate The characteristics of , remove the second displacement value to be updated from the second displacement value set S , to avoid duplication of displacement values of the circulant matrices in the same row and the same column, and check whether the second characteristic meets the preset matrix characteristic conditions. It is understandable that the above characteristic checking process is consistent with the above steps, and it can be whether the number of four cycles is zero, or the number of four cycles is less than a certain value or other characteristics, which are not specifically limited here. And the above process does not limit adding a row to the first row and adding a column to the first column of the same position part. The added column only needs to be in the same position part, and the corresponding added column must meet the type of the same position matrix. It is understandable that the above process of checking characteristics can also choose to perform characteristic inspection after the end of the entire subsequent process.
[0084] If the preset characteristic conditions are met, the next position of the current position is taken as the current position, that is, i=i+1, and it is determined whether , with the value corresponding to the current position Not less than the preset matrix row weight Output the current displacement matrix and the corresponding value at the current position Less than the preset matrix row weight Jump to the above collection Non-zero circulant matrix shift values , i.e., the step of determining the second target value whose displacement value in a column of the same position corresponding to the current position is greater than -1; if it does not meet the preset characteristic condition, it can be checked whether the updated second displacement value set is an empty set; if so, the second vector and the second displacement value set are initialized; if not, the second displacement value set is continued to be updated, and the second vector is updated based on the updated second displacement value set and the fourth target value. That is, by checking , determine whether the first displacement value set after removing the first displacement value to be updated is an empty set, if not, jump to Selected No. Displacement value of position and update The step of re-updating the second initial vector based on the second displacement value to be updated excluding the second target value in the second displacement value set is performed. If yes, the step of jumping to the step of initializing the second initial vector according to the number of matrix columns of the displacement matrix is performed to re-initialize the second initial vector.
[0085] In this way, the construction is in a dimension of The parity check matrix H can greatly reduce the time of matrix construction, and the method of selecting the displacement value can also effectively avoid the generation of cyclic four and meet the RC restriction, and also improve the speed of code construction.
[0086] See also Fig.10 As shown, the embodiment of the present application also discloses a parity check code construction device, including:
[0087] A matrix determination module 11, used to determine a displacement matrix corresponding to an initial quasi-cyclic parity check code matrix;
[0088] A vector adding module 12, used for adding vectors to the displacement matrix, so that the matrix characteristics of the displacement matrix after adding the vectors meet the preset matrix characteristic conditions;
[0089] The check code determination module 13 is used to determine the corresponding target standard cyclic parity check code based on the displacement matrix after adding the vector.
[0090] Through the above technical solution, this embodiment can fine-tune the matrix under the condition of a known co-location matrix to construct an LDPC code with a new code length and code rate, and use the addition of vectors to the information part of the co-location matrix to increase the K dimension of the code to protect more information bits, and use the addition of the co-location part of the code to improve the error correction capability. In addition, by checking the characteristics of the co-location matrix while adding vectors, such as cycle distribution, RC restrictions, etc., it can ensure that excellent decoding performance is maintained. In addition to saving time in constructing the code, it also provides a code adjustable mode with multiple code rates.
[0091] In some specific embodiments, the vector adding module 12 specifically includes:
[0092] A vector adding submodule, used for adding a first vector to any column of the information part in the displacement matrix; and / or, adding a second vector to any column of the co-location part in the displacement matrix and / or any row in the displacement matrix; wherein, if the second vector has been added to any row in the displacement matrix, the value of the position corresponding to the vector added to any column of the co-location part in the second vector is set to 1.
[0093] In some specific embodiments, the vector adding submodule specifically includes:
[0094] A first set initialization unit, used for initializing any one of the vectors and a first displacement value set;
[0095] A first position generating unit, used to generate a first preset number of positions;
[0096] A first target value determination unit, configured to determine a first target value from a row of the displacement matrix corresponding to the first position;
[0097] The first vector adding unit is used to update the any vector based on the first displacement value set and the first target value, and add the updated any vector to any column of the information part or the co-location part.
[0098] In some specific embodiments, the vector adding submodule further includes:
[0099] A first characteristic determining unit, configured to determine a first characteristic of the displacement matrix;
[0100] A first set updating unit, configured to update the first displacement value set;
[0101] A first vector updating unit is used to update any one of the vectors based on the updated first displacement value set and a second target value if the first characteristic meets the preset matrix characteristic condition; wherein the second target value is a value determined from a row of the displacement matrix corresponding to the next position of the first position.
[0102] In some specific embodiments, the vector adding submodule further includes:
[0103] A first set checking unit, used for checking whether the updated first displacement value set is an empty set;
[0104] A second set initialization unit, configured to initialize the any vector and the first displacement value set if yes;
[0105] The second vector updating unit is configured to, if not, continue to update the first displacement value set, and update the any one vector based on the updated first displacement value set and the second target value.
[0106] In some specific embodiments, the vector adding submodule specifically includes:
[0107] A third set initialization unit, used for initializing the second vector and the second displacement value set;
[0108] A second position generating unit, used to generate a second preset number of positions;
[0109] A second target value determination unit, configured to determine a third target value from the column of the displacement matrix corresponding to the first position;
[0110] The second vector adding unit is used to update the second vector based on the second displacement value set and the third target value, and add the updated second vector to any row in the displacement matrix.
[0111] In some specific embodiments, the vector adding submodule further includes:
[0112] A second characteristic determining unit, used to determine a second characteristic of the displacement matrix;
[0113] A second set updating unit, configured to update the second displacement value set;
[0114] A third vector updating unit is used to update the second vector based on the updated second displacement value set and a fourth target value if the second characteristic meets the preset matrix characteristic condition; wherein the fourth target value is a value determined from a column of the displacement matrix corresponding to the next position of the first position.
[0115] In some specific embodiments, the vector adding submodule further includes:
[0116] A second set checking unit, used for checking whether the updated second displacement value set is an empty set;
[0117] a fourth set initialization unit, configured to initialize the second vector and a second displacement value set if yes;
[0118] The fourth vector updating unit is configured to, if not, continue to update the second displacement value set, and update the second vector based on the updated second displacement value set and the fourth target value.
[0119] Furthermore, the present application also discloses an electronic device. Fig.11This is a structural diagram of an electronic device 20 according to an exemplary embodiment. The content in the diagram cannot be regarded as any limitation on the scope of use of the present application.
[0120] Fig.11 A schematic diagram of the structure of an electronic device 20 provided in an embodiment of the present application. The electronic device 20 may specifically include: at least one processor 21, at least one memory 22, a power supply 23, a communication interface 24, an input / output interface 25, and a communication bus 26. The memory 22 is used to store a computer program, which is loaded and executed by the processor 21 to implement the relevant steps in the parity check code construction method disclosed in any of the aforementioned embodiments. In addition, the electronic device 20 in this embodiment may specifically be an electronic computer.
[0121] In this embodiment, the power supply 23 is used to provide working voltage for each hardware device on the electronic device 20; the communication interface 24 can create a data transmission channel between the electronic device 20 and the external device, and the communication protocol it follows is any communication protocol that can be applied to the technical solution of the present application, and is not specifically limited here; the input and output interface 25 is used to obtain external input data or output data to the outside world, and its specific interface type can be selected according to specific application needs and is not specifically limited here.
[0122] In addition, the memory 22, as a carrier for storing resources, can be a read-only memory, a random access memory, a disk or an optical disk, etc. The resources stored thereon can include an operating system 221, a computer program 222, etc., and the storage method can be temporary storage or permanent storage.
[0123] The operating system 221 is used to manage and control the hardware devices and computer program 222 on the electronic device 20, and can be Windows Server, Netware, Unix, Linux, etc. In addition to including a computer program that can be used to complete the parity check code construction method performed by the electronic device 20 disclosed in any of the aforementioned embodiments, the computer program 222 can further include a computer program that can be used to complete other specific tasks.
[0124] Furthermore, the present application also discloses a computer-readable storage medium for storing a computer program; wherein the computer program, when executed by a processor, implements the parity check code construction method disclosed above. For the specific steps of the method, reference may be made to the corresponding contents disclosed in the above embodiments, and no further description will be given here.
[0125] In this specification, each embodiment is described in a progressive manner, and each embodiment focuses on the differences from other embodiments. The same or similar parts between the embodiments can be referred to each other. For the device disclosed in the embodiment, since it corresponds to the method disclosed in the embodiment, the description is relatively simple, and the relevant parts can be referred to the method part.
[0126] Professionals may further appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of the two. In order to clearly illustrate the interchangeability of hardware and software, the composition and steps of each example have been generally described in the above description according to function. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professionals and technicians may use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.
[0127] The steps of the method or algorithm described in conjunction with the embodiments disclosed herein may be implemented directly using hardware, a software module executed by a processor, or a combination of the two. The software module may be placed in a random access memory (RAM), a memory, a read-only memory (ROM), an electrically programmable ROM, an electrically erasable programmable ROM, a register, a hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art.
[0128] Finally, it should be noted that, in this article, relational terms such as first and second, etc. are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Moreover, the terms "include", "comprise" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, the elements defined by the sentence "comprise a ..." do not exclude the presence of other identical elements in the process, method, article or device including the elements.
[0129] The technical solution provided by the present application is introduced in detail above. Specific examples are used in this article to illustrate the principles and implementation methods of the present application. The description of the above embodiments is only used to help understand the method of the present application and its core idea. At the same time, for general technicians in this field, according to the idea of the present application, there will be changes in the specific implementation methods and application scope. In summary, the content of this specification should not be understood as a limitation on the present application.
Claims
1. A method for constructing a quasi-cyclic parity check code, characterized in that: include: Determine a shift matrix corresponding to an initial quasi-cyclic parity-check code matrix; Adding a vector to the displacement matrix so that the matrix characteristic of the displacement matrix after adding the vector meets the preset matrix characteristic condition; The corresponding target standard cyclic parity check code is determined based on the displacement matrix after adding the vector.
2. The method for constructing a quasi-cyclic parity-check code according to claim 1, characterized in that: The adding a vector to the displacement matrix comprises: adding the first vector to any column of the information portion in the displacement matrix; and / or, adding the second vector to any column of the co-located part in the displacement matrix and / or any row in the displacement matrix; If the second vector has been added to any row in the displacement matrix, the value of the position corresponding to the vector added to any column of the co-located part in the second vector is set to 1.
3. The method for constructing a quasi-cyclic parity-check code according to claim 2, characterized in that: Adding any vector to any column of the information part or the parity part in the displacement matrix comprises: Initializing any one of the vectors and a first displacement value set; generating a first preset number of positions; Determine a first target value from the row of the displacement matrix corresponding to the first position; The any one vector is updated based on the first displacement value set and the first target value, and the updated any one vector is added to any one column of the information part or the co-location part.
4. The method for constructing a quasi-cyclic parity-check code according to claim 3, characterized in that: Adding the updated any vector to any column of the information part or the co-location part further comprises: determining a first characteristic of the displacement matrix; updating the first displacement value set; If the first characteristic meets the preset matrix characteristic condition, updating the any one vector based on the updated first displacement value set and the second target value; The second target value is a value determined from a row of the displacement matrix corresponding to a position next to the first position.
5. The method for constructing a quasi-cyclic parity-check code according to claim 4, characterized in that: If the first characteristic does not meet the preset matrix characteristic condition, the method further includes: Checking whether the updated first displacement value set is an empty set; If yes, then initialize the any vector and the first displacement value set; If not, continue to update the first displacement value set, and update the any one vector based on the updated first displacement value set and the second target value.
6. The method for constructing a quasi-cyclic parity-check code according to claim 2, characterized in that: Adding a second vector to any row in the displacement matrix comprises: Initializing the second vector and the second displacement value set; generating a second preset number of positions; Determining a third target value from the column of the displacement matrix corresponding to the first position; The second vector is updated based on the second displacement value set and the third target value, and the updated second vector is added to any row in the displacement matrix.
7. The method for constructing a quasi-cyclic parity-check code according to claim 6, characterized in that: After adding the second vector to any row in the displacement matrix, the method further comprises: determining a second characteristic of the displacement matrix; updating the second displacement value set; If the second characteristic meets the preset matrix characteristic condition, updating the second vector based on the updated second displacement value set and a fourth target value; The fourth target value is a value determined from a column of the displacement matrix corresponding to a position next to the first position.
8. The method for constructing a quasi-cyclic parity-check code according to claim 7, characterized in that: If the second characteristic does not meet the preset matrix characteristic condition, the method further includes: Checking whether the updated second displacement value set is an empty set; If yes, initializing the second vector and the second displacement value set; If not, continue to update the second displacement value set, and update the second vector based on the updated second displacement value set and the fourth target value.
9. A quasi-cyclic parity check code construction device, characterized in that: include: A matrix determination module, used to determine a displacement matrix corresponding to an initial quasi-cyclic parity check code matrix; A vector adding module, used for adding vectors to the displacement matrix, so that the matrix characteristics of the displacement matrix after adding the vectors meet the preset matrix characteristic conditions; The check code determination module is used to determine the corresponding target standard cyclic parity check code based on the displacement matrix after adding the vector.
10. An electronic device, characterized in that: The electronic device comprises a processor and a memory; wherein the memory is used to store a computer program, and the computer program is loaded and executed by the processor to implement the quasi-cyclic parity-check code construction method according to any one of claims 1 to 8.
11. A computer-readable storage medium, characterized in that: Used to store a computer program, which, when executed by a processor, implements the quasi-cyclic parity-check code construction method according to any one of claims 1 to 8.