Data Transmission Method, Apparatus, Computer Device, and Storage Medium
By dividing and assigning the check matrix of the QC-LDPC code, building the base matrix and storing its non-zero item element information, the problem of large storage resource occupancy and slow data transmission speed in the QC-LDPC code hardware implementation is solved, and efficient data transmission and decoding is achieved.
Patent Information
- Application Number
- CN202510252268.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-03-05
- Publication Date
- 2025-06-24
- Estimated Expiration
- 2045-03-05
AI Technical Summary
In the hardware implementation of QC-LDPC code, long codewords and high code rate check matrix occupy huge storage resources, resulting in slow data transmission speed and large decoding delay.
By dividing the check matrix of the QC-LDPC code, multiple submatrices are obtained, and the submatrix of each matrix type is assigned to construct the base matrix. The column and row structure of the base matrix store non-zero term element information, form a first matrix and a second matrix, generate a target transmission signal, and decode it at the receiving end to obtain the original data.
This method effectively saves storage resources, improves data transmission efficiency, and reduces decoding delay. It is suitable for long codewords and high code rates QC-LDPC code hardware implementation.
Smart Images

Figure CN119788096B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the technical field of data transmission, and particularly to a data transmission method, apparatus, computer device, and storage medium. Background Art
[0002] QC-LDPC codes are a special type of LDPC codes, which usually have a structured parity-check matrix. QC-LDPC codes are composed of several square matrices with the same dimension. These square matrices are called sub-matrices of QC-LDPC codes. While ensuring the matrix performance, QC-LDPC codes simplify the encoding and decoding process, reduce the complexity of encoding and decoding, are more easily implemented in hardware, and play an important role in modern communication, storage, and other fields.
[0003] Although the unique structure of QC-LDPC codes provides convenience for the storage and addressing of matrices and optimizes the encoding and decoding process, for the hardware implementation of QC-LDPC codes, there are still some difficulties. Especially for long codewords and high code rate QC-LDPC codes, directly storing all parity-check matrices will consume huge storage resources. The large number of storage unit requirements further leads to a large resource consumption during hardware implementation. In addition, it also brings problems such as slow data transmission speed, increasing the delay during the decoding process. Summary of the Invention
[0004] Based on this, it is necessary to provide a data transmission method, apparatus, computer device, and storage medium that can improve data transmission efficiency and save storage resources for the above technical problems.
[0005] To solve the above technical problems, in the first aspect, a data transmission method is provided. The method includes:
[0006] The signal sending end obtains target data information, converts the target data information into a signal to be transmitted, performs shaping processing on the signal to be transmitted, and encodes the shaped signal to be transmitted to generate a parity-check matrix;
[0007] Divide the parity-check matrix to obtain multiple sub-matrices, assign values to the sub-matrices of each matrix type, and construct a base matrix based on the matrix assignments corresponding to the sub-matrices of each matrix type;
[0008] Store the non-zero element information of the base matrix based on the column structure of the base matrix to form a first matrix, and store the non-zero element information of the base matrix based on the row structure of the base matrix to form a second matrix;
[0009] Generate a target transmission signal based on the first matrix and the second matrix, and send the target transmission signal to the signal receiving end;
[0010] In response to the signal receiving end acquiring the target transmission signal, the signal receiving end parses the target transmission signal to obtain a first matrix and a second matrix, and decodes the first matrix based on the second matrix to obtain the target data information.
[0011] In one embodiment, dividing the check matrix to obtain a plurality of sub-matrices, assigning values to the sub-matrices of each matrix type, and constructing a base matrix based on the matrix assignments corresponding to the sub-matrices of each matrix type includes:
[0012] Obtain the matrix type, divide the check matrix according to the matrix type to obtain a plurality of sub-matrices;
[0013] Assign values to each sub-matrix based on the matrix type of each sub-matrix;
[0014] Traverse each sub-matrix in the check matrix to obtain the positional relationship between each sub-matrix and other sub-matrices in the check matrix;
[0015] According to the positional relationship between each sub-matrix and other sub-matrices in the check matrix, replace each sub-matrix with the matrix assignment corresponding to each sub-matrix to construct a base matrix.
[0016] In one embodiment, storing the non-zero term element information of the base matrix based on the column structure of the base matrix to form a first matrix, and storing the non-zero term element information of the base matrix based on the row structure of the base matrix to form a second matrix includes:
[0017] Store the row position, row identifier, and shift value information of the non-zero term elements in each column of the base matrix according to the column structure of the base matrix to form a first matrix;
[0018] Store the column position and column identifier of the non-zero term elements in each row of the base matrix according to the row structure of the base matrix to form a second matrix.
[0019] In one embodiment, storing the row position, row identifier, and shift value information of the non-zero term elements in each column of the base matrix according to the column structure of the base matrix to form a first matrix includes:
[0020] Obtain the row position of each non-zero term element in each column of the base matrix;
[0021] Traverse the base matrix to determine whether the row position of each non-zero term element in each column of the base matrix is the last non-zero term element in the row where the row position is located;
[0022] If so, store the row identifier of the non-zero term element as the row end identifier and store the shift value of the non-zero term element;
[0023] If not, store the row identifier of the non-zero term element as the row not ended identifier and store the shift value of the non-zero term element;
[0024] Form a first matrix based on the row positions of each non - zero term element in each column of the basis matrix, the row identifiers corresponding to each non - zero term element, and the shift values corresponding to each non - zero term element.
[0025] In one embodiment, store the column positions and column identifiers of the non - zero term elements in each row of the basis matrix according to the row structure of the basis matrix to form a second matrix, including:
[0026] Obtain the column positions of each non - zero term element in each row of the basis matrix;
[0027] Store the column numbers of the column positions of each non - zero term element in each row of the basis matrix;
[0028] Traverse the basis matrix to determine whether each non - zero term element in each row is the last non - zero term of the last row of the basis matrix;
[0029] If so, end the process and form a second matrix based on the column positions of each non - zero term element in each row of the basis matrix and the column numbers of the column positions of each non - zero term element in each row of the basis matrix.
[0030] In one embodiment, decode the first matrix based on the second matrix to obtain target data information, including:
[0031] Obtain the target column position and target column number of the target non - zero term element from the second matrix in sequence;
[0032] Find the target row position, target row identifier, and target shift value of the target non - zero term element from the first matrix based on the target column position and target column number;
[0033] Determine the sub - matrix corresponding to the target non - zero term element and the position of the target non - zero term element in the parity - check matrix based on the target row position, target row identifier, and target shift value;
[0034] Parse the target parity - check matrix data corresponding to the target non - zero term element in sequence based on the sub - matrix corresponding to the target non - zero term element and the position of the target non - zero term element in the parity - check matrix;
[0035] Decode the target parity - check matrix data to obtain target data information.
[0036] In one embodiment, the method further includes:
[0037] Obtain the target second - matrix information of each row of the second matrix;
[0038] Find the target structural position of the target first - matrix information corresponding to the target second - matrix information in the first matrix based on the target second - matrix information;
[0039] Determine whether the target non-zero element corresponding to the target first matrix information is the last non-zero element in the row of the base matrix based on the target structure position;
[0040] If so, horizontally update the data between the target non-zero element and the non-zero element in the second matrix corresponding to the row end state in the first matrix in the second matrix;
[0041] In response to the completion of the horizontal update of all rows of the second matrix, vertically update the data in the first matrix row by row until the column end flag of the last row in the first matrix is encountered, and complete the update of the parity check matrix.
[0042] To solve the above technical problems, on the second aspect, a data transmission device is provided, and the device includes:
[0043] A generation module, configured to obtain target data information at a signal sending end, convert the target data information into a signal to be transmitted, perform shaping processing on the signal to be transmitted, encode the shaped signal to be transmitted, and generate a parity check matrix;
[0044] A construction module, configured to divide the parity check matrix to obtain multiple sub-matrices, assign values to the sub-matrices of each matrix type, and construct a base matrix based on the matrix assignments corresponding to the sub-matrices of each matrix type;
[0045] A formation module, based on the column structure of the base matrix, stores the non-zero element information of the base matrix to form a first matrix, and based on the row structure of the base matrix, stores the non-zero element information of the base matrix to form a second matrix;
[0046] A sending module, generates a target transmission signal based on the first matrix and the second matrix, and sends the target transmission signal to a signal receiving end;
[0047] An analysis module, configured to, in response to the signal receiving end obtaining the target transmission signal, the signal receiving end analyzes the target transmission signal, obtains the first matrix and the second matrix, and decodes the first matrix based on the second matrix to obtain the target data information.
[0048] To solve the above technical problems, on the third aspect, a computer device is provided, including a memory, a processor, and a computer program stored on the memory and executable on the processor. When the processor executes the computer program, the following steps are implemented: When the processor executes the computer program, the steps of the method in the first aspect above are implemented.
[0049] To solve the above technical problems, on the fourth aspect, the present application provides a computer-readable storage medium, on which a computer program is stored. When the computer program is executed by a processor, the steps of the method in the first aspect above are implemented.
[0050] Different from the prior art, in this application, the target data information is obtained through the signal sending end, the target data information is converted into a signal to be transmitted, the signal to be transmitted is shaped, the shaped signal to be transmitted is encoded to generate a parity-check matrix; the parity-check matrix is divided to obtain multiple sub-matrices, each sub-matrix of each matrix type is assigned a value, and a basis matrix is constructed based on the matrix assignment corresponding to each sub-matrix of each matrix type; based on the column structure of the basis matrix, the non-zero element information of the basis matrix is stored to form a first matrix, and based on the row structure of the basis matrix, the non-zero element information of the basis matrix is stored to form a second matrix; a target transmission signal is generated based on the first matrix and the second matrix, and the target transmission signal is sent to the signal receiving end; in response to the signal receiving end obtaining the target transmission signal, the signal receiving end analyzes the target transmission signal to obtain the first matrix and the second matrix, and decodes the first matrix based on the second matrix to obtain the target data information. In this way, by assigning values to multiple sub-matrices of the parity-check matrix to form a basis matrix, storage resources can be saved, and by calling the first matrix based on the second matrix, the row position, row identifier, and shift value information corresponding to the non-zero elements can be quickly found, which is conducive to calling the parity-check matrix according to the row position, row identifier, and shift value information corresponding to the non-zero elements, and can improve the data transmission efficiency. BRIEF DESCRIPTION OF THE DRAWINGS
[0051] Figure 1 It is a schematic flowchart of a data transmission method in an embodiment;
[0052] Figure 2 It is a schematic flowchart of a data transmission method in another embodiment;
[0053] Figure 3 It is a schematic diagram of a first matrix in an embodiment;
[0054] Figure 4 It is a schematic flowchart of a data transmission method in another embodiment;
[0055] Figure 5 It is a schematic diagram of a second matrix in an embodiment;
[0056] Figure 6 It is a schematic flowchart of a data transmission method in yet another embodiment;
[0057] Figure 7 It is a structural block diagram of a data transmission device in an embodiment;
[0058] Figure 8 It is an internal structure diagram of a computer device in an embodiment. DETAILED DESCRIPTION OF THE EMBODIMENTS
[0059] In order to make the objectives, technical solutions and advantages of the present application more clear and understandable, the present application will be further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and are not used to limit the present application.
[0060] In one embodiment, as Figure 1 shown, the present application provides a data transmission method, which specifically includes the following steps:
[0061] Step S10, the signal sending end obtains target data information, converts the target data information into a signal to be transmitted, performs shaping processing on the signal to be transmitted, encodes the shaped signal to be transmitted, and generates a parity-check matrix.
[0062] Specifically, the target data information is the data information that needs to be transmitted. The target data information can be converted into a signal form through a signal conversion tool to obtain the signal to be transmitted. After obtaining the signal to be transmitted, the signal to be transmitted is filtered, enhanced, processed and adjusted through a signal shaping tool. The shaped signal to be transmitted obtained will be more in line with specific requirements. The shaped signal to be transmitted is encoded to obtain a parity-check matrix.
[0063] Step S11, divide the parity-check matrix to obtain multiple sub-matrices, assign values to the sub-matrices of each matrix type, construct a base matrix based on the matrix assignments corresponding to the sub-matrices of each matrix type, and construct a base matrix based on the matrix assignments corresponding to the sub-matrices of each matrix type.
[0064] The matrix type can be obtained, and the parity-check matrix is divided according to the matrix type to obtain multiple sub-matrices; values are assigned to each sub-matrix based on the matrix type of each sub-matrix.
[0065] The parity-check matrix can be a QC-LDPC parity-check matrix. QC-LDPC (Quasi-Cyslic Low-Density Parity-Check Codes) is an important subset of structured LDPC codes. Its parity-check matrix can be divided into multiple square matrices of equal size. Each square matrix is a cyclic shift matrix of the identity matrix or a all-zero matrix, which is very convenient for memory storage and addressing, thus greatly reducing the encoding and decoding complexity of LDPC codes. And the quasi-cyclic LDPC code with a repetitive accumulation structure can achieve fast encoding with linear complexity.
[0066] The QC-LDPC check matrix is usually composed of an identity matrix, or a cyclic shift matrix of the identity matrix and an all-zero matrix. Among them, any row (column) in the cyclic shift matrix is obtained by shifting the previous row (column) one bit to the right (down), and the first row (column) of the matrix is obtained by cyclically shifting the last row (column) one bit to the right (down). The cyclic matrix can be determined by its first row or first column. Therefore, for a specific sub-matrix of the QC-LDPC code, as long as the dimension and shift value of the sub-matrix are determined, all the information of the sub-matrix can be obtained.
[0067] The matrix types in this application include an identity matrix, a cyclic shift matrix of the identity matrix, and an all-zero matrix. The check matrix is divided according to the matrix types, and each sub-matrix of each matrix type is assigned a value. Exemplarily, the sub-matrix of the identity matrix can be assigned a first value, the sub-matrix of the cyclic shift matrix of the identity matrix can be assigned a second value, and the sub-matrix of the all-zero matrix can be assigned a third value. The first value, the second value, and the third value are any different values.
[0068] Among them, the value assignment of the sub-matrix of the cyclic shift matrix can be set according to the shift value and shift direction of the cyclic shift matrix. For example, a sub-matrix with a shift value of 2 can mean that any row in the sub-matrix is obtained by cyclically shifting the previous row of the matrix 2 bits to the right, and a sub-matrix with a shift value of -2 can mean that any column in the sub-matrix is obtained by cyclically shifting the column 2 bits down. Here, 2 represents the shift value. A negative sign in front of the shift value represents a column-direction shift, and no negative sign in front of the shift value represents a row-direction shift. The specific value of the shift value can be set according to actual needs.
[0069] Each sub-matrix in the check matrix can be traversed to obtain the position relationship between each sub-matrix and other sub-matrices in the check matrix; according to the position relationship between each sub-matrix and other sub-matrices in the check matrix, each sub-matrix is replaced with the matrix assignment corresponding to each sub-matrix to construct a base matrix.
[0070] Each sub-matrix in the check matrix can be abstracted as a coordinate point. According to the row position and column position of each sub-matrix in the check matrix, the coordinate point value of each sub-matrix in the check matrix is obtained. The coordinate point value of each sub-matrix in the check matrix includes the position relationship between each sub-matrix and other sub-matrices in the check matrix. According to the coordinate point value of each sub-matrix in the check matrix, each sub-matrix is replaced with the matrix assignment of each sub-matrix until each sub-matrix in the check matrix is replaced with its corresponding matrix assignment. In this way, the check matrix is transformed into a base matrix, and in this way, the storage space of the check matrix can be greatly saved.
[0071] It can be understood that subsequently, according to the relationship between matrix assignment and the matrix type of the sub-matrix, the base matrix can be transformed into a parity-check matrix.
[0072] Step S12: Store the information of the non-zero elements of the base matrix based on the column structure of the base matrix to form a first matrix, and store the information of the non-zero elements of the base matrix based on the row structure of the base matrix to form a second matrix.
[0073] After obtaining the base matrix, according to the obtained column structure of the base matrix, the column structure of the base matrix includes the dimension of each column of the base matrix and the column order of each column. Here, the dimension of each column is the number of elements (including zero elements and non-zero elements) included in each column of the base matrix, and the column order of each column is which column this column is in the base matrix.
[0074] All columns in the base matrix can be traversed according to the column order of each column, and store the row position (which row the non-zero element is in), row identifier (including row end identifier and row not ended identifier) and shift value information (the shift amount of the sub-matrix in the parity-check matrix corresponding to the non-zero element). It is known that the cyclic shift matrix of the identity matrix is formed by shifting the identity matrix according to the shift amount. After knowing the shift amount, the corresponding cyclic shift matrix can be obtained according to the shift amount and the identity matrix.
[0075] For the sub-matrix corresponding to the non-zero element of each column in the base matrix, when the row position of the sub-matrix corresponding to the non-zero element in the base matrix is determined and the dimension of the sub-matrix corresponding to the non-zero element is determined, the row position of the non-zero element in the parity-check matrix can also be determined accordingly. When the column position of the sub-matrix corresponding to the non-zero element in the base matrix is determined and the dimension of the sub-matrix corresponding to the non-zero element can be determined, the column position of the non-zero element in the parity-check matrix can be determined accordingly.
[0076] From the above description, it can be seen that when storing the entire parity-check matrix, the parity-check matrix can be first transformed into a base matrix for storage, and then according to the position of the row where the sub-matrix corresponding to the non-zero element of each column stored in the base matrix and the shift value, all the information of the parity-check matrix H can be stored. This storage method records all the information of the parity-check matrix by recording the row position corresponding to the sub-matrix where the non-zero element in each column is located and the shift value corresponding to the sub-matrix, which not only retains all the information of the parity-check matrix but also optimizes the storage space of the parity-check matrix. Especially for the parity-check matrix of long codewords and high code rates, the difference in column weight is smaller than the difference in rows, so it is easier to achieve data alignment, which is beneficial to hardware implementation.
[0077] In a specific implementation manner, the specific process of storing the row position, row identifier, and shift value information of the non-zero element of each column of the base matrix according to the column structure of the base matrix to form a first matrix is as followsFigure 2 As shown below:
[0078] First, input the base matrix, obtain the row positions of each non-zero element in each column of the base matrix, traverse the base matrix, and determine whether the row position of each non-zero element in each column of the base matrix is the last non-zero element in the row where the row position is located; if so, store the row identifier of the non-zero element as the row end identifier, and store the shift value of the non-zero element; if not, store the row identifier of the non-zero element as the row not ended identifier, and store the shift value of the non-zero element; form the first matrix according to the row positions of each non-zero element in each column of the base matrix, the row identifier corresponding to each non-zero element, and the shift value corresponding to each non-zero element.
[0079] Here, the row positions of each non-zero element in the corresponding column can be recorded in sequence according to the column order of each column in the base matrix. The columns of the base matrix can be numbered in sequence from left to right or from right to left to obtain the column order of each column.
[0080] The row position of the first non-zero element in the first column can be obtained, and it is determined whether the non-zero element at this position is the last non-zero element in the row where the non-zero element is located. If the first non-zero element in the first column is the position where the last non-zero element in the row is located, first store the row end identifier, where the row end identifier can be "-1", and then store the shift value of the non-zero element; if the first non-zero element in the first column is not the position where the last non-zero element in the row is located, first store the row not ended identifier "1", and then continue to store the shift value of the non-zero element. And so on, first traverse the row positions of each non-zero element in the first column, determine whether this position is the last non-zero element in the row where the non-zero element is located, and record according to the judgment result of yes or no.
[0081] After traversing the row positions of each non-zero element in the first column of the base matrix and obtaining the corresponding row identifier and shift value, add the column end identifier, where the column end identifier can be "0".
[0082] The above steps can be repeated to sequentially obtain the row positions, row identifiers, and shift values of each non-zero element in the second column, third column,... etc. of the base matrix until the column end identifier of the last column is stored, forming the first matrix.
[0083] In one embodiment, the first matrix can be stored in the form of a table, specifically as Figure 3As shown, the first matrix includes multiple groups formed by a row position column, a row status column, and a shift value column. Any group can correspondingly store the row position, row status (row identifier), and shift value of the non-zero term elements in any column of the base matrix.
[0084] In practical applications, since there is no clear requirement for the column weight (the number of non-zero term elements in each column) of the base matrix, the column weights of the parity-check matrix will be uneven. To align the data formats, in this application, the first matrix can be expanded according to the maximum column weight of the parity-check matrix to align the data of the first matrix.
[0085] Exemplarily, assume that the column with the largest column weight in the parity-check matrix corresponds to a total data bit width of Y bits in the first matrix. K represents the column position, and P is the data bit width of a group of data. Then the data structure of each row is: [Y-1:K] the row index position where the first non-zero term element of this column is located; [K-1:K-3] the row status, that is, whether this non-zero term element is the last non-zero term in the row; [K-4:P] the size of the shift value corresponding to the first non-zero term element of this column; the bit width of a group of data is [Y-1:P].
[0086] To better illustrate the data transmission method in this application, a specific example is used to describe the data transmission method:
[0087] The QC-LDPC parity-check matrix usually consists of multiple sub-matrices, which are respectively an identity matrix, a cyclic shift matrix of the identity matrix, and a all-zero matrix. In this application, the parity-check matrix is first converted into a QC-LDPC base matrix. Exemplarily, the value 0 can represent an identity matrix in the QC-LDPC parity-check matrix, the value -1 can represent a all-zero matrix in the QC-LDPC parity-check matrix, and the value 1 can represent a cyclic shift matrix of an identity matrix in the QC-LDPC parity-check matrix. The QC-LDPC parity-check matrix is converted into a QC-LDPC base matrix.
[0088] Exemplarily, assume that the converted base matrix is:
[0089] ;
[0090] Then the first column data of the parity-check matrix before conversion into the base matrix can be represented as the following sub-matrices. Taking the matrix of each sub-matrix as a 4×4 matrix as an example:
[0091] ;
[0092] The first column of the converted QC-LDPC base matrix is as follows:
[0093] ;
[0094] Then process the base matrix to obtain a first matrix and a second matrix. Among them, store the row positions, row identifiers, and shift value sizes of the non-zero elements of the base matrix by column to form the first matrix. Store the column positions of the non-zero elements of the base matrix and the sequence numbers of the column positions where the non-zero elements are located by row to form the second matrix.
[0095] The base matrix can be as shown in Table 1:
[0096]
[0097] Table 1
[0098] Table 1 shows the assignments of each sub-matrix in the parity-check matrix included in the base matrix. Here, the value 0 represents an identity matrix in the parity-check matrix, the value -1 represents a matrix of all zeros in the parity-check matrix, the value 1 or 2 or 3 represents a cyclic shift matrix of an identity matrix in the parity-check matrix, and the value 1 or 2 or 3 also represents the shift value corresponding to a cyclic shift matrix of an identity matrix.
[0099] Taking the base matrix in Table 1 as an example, if the first matrix is formed according to the base matrix in the 0th column, it includes:
[0100]
[0101] Table 2
[0102] The shift value here represents the shift amount of the unit cyclic sub-matrix. When the shift value is 0, the unit cyclic sub-matrix is the identity matrix.
[0103] When data is stored, it is usually stored in binary form. In this application, the first matrix is converted into binary-form data. To make the bit widths of the data consistent, the bit widths of the data corresponding to the first matrix can be adjusted.
[0104] For example, assume that the bit widths of the data corresponding to the first matrix in the example in Table 2 are adjusted. First, convert the data in the first matrix in the example in Table 2 into binary data for storage, as follows:
[0105] ;
[0106] At this time, it can be seen that the data bit widths of different row positions and different shift values in the above table are different. To align the data bit widths of different row positions and different shift values, invalid data can be supplemented at the row position of the first row. The invalid data here are characters that have no impact on the actual data. For example, the row position (0, 0) of the first row can be supplemented with invalid data to become (0, 0, 0) so that the data bit width of the first row is aligned with that of the second row. The shift value 0 of the first row is supplemented with invalid data to become 0, 0. In this way, by using invalid data for data expansion, data alignment can be achieved without affecting the actual data.
[0107] Specifically, store the column positions and column identifiers of the non-zero term elements in each row of the base matrix according to the row structure of the base matrix to form a second matrix.
[0108] After obtaining the base matrix, obtain the row structure of the base matrix. The row structure of the base matrix includes the dimension of each row of the base matrix and the row order of each row. Here, the dimension of each row is the number of elements (including zero-term elements and non-zero-term elements) in each row of the base matrix, and the row order of each row is the row number of that row in the base matrix.
[0109] All rows in the base matrix can be traversed according to the row order of each row, and store the column positions (which column the non-zero term element is in) and column identifiers (the column identifier here is the serial number of the column where the non-zero term element is located, that is, the number of the non-zero term element in that column) of the non-zero term elements in each row.
[0110] In a specific implementation manner, the specific process of storing the column positions and column identifiers of the non-zero term elements in each row of the base matrix according to the row structure of the base matrix to form a second matrix is as Figure 4 shown:
[0111] First, input the base matrix. Storing the column positions and column identifiers of the non-zero term elements in each row of the base matrix according to the row structure of the base matrix to form a second matrix includes: obtaining the column position of each non-zero term element in each row of the base matrix; storing the column number of the column position of each non-zero term element in each row of the base matrix; traversing the base matrix to determine whether each non-zero term element in each row is the last non-zero term element in the last row of the base matrix; if so, end the process, and form a second matrix based on the column positions of each non-zero term element in each row of the base matrix and the column numbers of the column positions of each non-zero term element in each row of the base matrix.
[0112] The column positions of each non-zero term element in the corresponding row can be recorded in sequence according to the row order of each row in the base matrix. The rows of the base matrix can be numbered in sequence from top to bottom or from bottom to top to obtain the row order of each row.
[0113] The column position of the first non-zero element in the first row can be obtained, the serial number of the column where the non-zero element is located is stored, and it is determined whether the non-zero element at this position is the last non-zero element in the last row. If so, it indicates that the second matrix has been generated and the process ends. If not, it means that the non-zero element is not the last non-zero element in the last row of the base matrix. Then, the column positions of each non-zero element in each row are traversed, and the column positions of each non-zero element in each row and the serial number of the column where the non-zero element is located are recorded until it is determined that a non-zero element is the last non-zero element in the last row of the base matrix, and the generation of the second matrix is completed.
[0114] In one embodiment, the second matrix can be stored in the form of a table, specifically as Figure 5 shown. The second matrix includes a column position column and a serial number column (the serial number of the column).
[0115] Step S13: Generate a target transmission signal based on the first matrix and the second matrix, and send the target transmission signal to the signal receiving end.
[0116] Step S14: In response to the signal receiving end obtaining the target transmission signal, the signal receiving end analyzes the target transmission signal, obtains the first matrix and the second matrix, and decodes the first matrix based on the second matrix to obtain the target data information.
[0117] After obtaining the first matrix and the second matrix, a target transmission signal can be generated according to the first matrix and the second matrix, the target transmission signal is sent to the signal receiving end, the signal receiving end obtains the target transmission signal, and the signal receiving end analyzes the first matrix and the second matrix based on the target transmission signal.
[0118] In this application, it is set to call the first matrix based on the second matrix to implement the use of the parity-check matrix. Specifically, the data in the second matrix can be read sequentially according to the order of each row of the second matrix. Each row of data in the second matrix represents the column position of the non-zero element in the base matrix and which non-zero element in the column it is, and then the first matrix is called according to this information.
[0119] Exemplarily, assume that it is necessary to find the data in the first row of the second matrix, and the data in the first row is (column position: 1; serial number 2). Then, find the group corresponding to the data in the first column of the first matrix, and find the second non-zero element in this column from this group (directly search downward from the column of the row position for the row position of the first matrix corresponding to the serial number. For example, if the serial number is 2, start searching from the next row of the row position for two rows). In this way, the row position, row status, and shift value of this non-zero element stored in the first matrix in the base matrix can be obtained. Based on information such as the row position, column position, and row status, the position of this non-zero element in the base matrix can be obtained. Then, based on the position of this non-zero element in the base matrix, the dimension of this non-zero element, and the shift value corresponding to this non-zero element, the specific form of the sub-matrix (circular shift matrix) corresponding to this non-zero element, and the position of the sub-matrix corresponding to this non-zero element in the parity-check matrix can be obtained.
[0120] For data alignment, in this application, after converting the second matrix into binary-form data, the data bits at different column positions and different serial numbers may be different. Assume that the data bit width corresponding to the column position in the first row of the second matrix is 2 bits, and the data bit width corresponding to the column position in the second row of the second matrix is 3 bits. Then, invalid data with a bit position of 1 bit can be supplemented at the column position in the first row of the second matrix. The invalid data here can be characters that have no impact on the actual data. In this way, the data alignment of the second matrix is achieved.
[0121] Exemplarily, assume that the data bit width of the second matrix is M bits. Then, the data structure of each row of it, where N represents the row position: the column index position where the non-zero item is located in [M - 1:N]; the serial number of the non-zero item in this column in [N:0]; and the row order of the second matrix is determined according to the order of the non-zero items of the base matrix in each row.
[0122] For example, first read the data in the first row of the second matrix. This data represents the column position where the first non-zero item in the first row of the base matrix is located, and the serial number of this non-zero item in the entire column. The value of [M:N] is the column index position where the non-zero item is located. According to the size of this value, determine which row of data in the stored first matrix to select. Subsequently, according to the value of [N:0] in the second matrix, determine which group of data in the first matrix is selected. Then, determine the value represented by the first (X - K) bits of this group of data as the row index of this non-zero item in the H matrix, the (K - P - 1) to (K - P - 3) bits as the row status of this non-zero item in the base matrix, and the (K - P - 4) to the 0th bit as the size of the shift value of this non-zero item.
[0123] And so on. When the data in the second matrix is read to the next row, a complete call of the base matrix can be completed, the target parity-check matrix data corresponding to the target non-zero element can be parsed, and the target parity-check matrix data can be decoded to obtain the target data information.
[0124] In one embodiment, the data transmission method provided by the present application further includes: obtaining target second matrix information of each row of the second matrix, and based on the target second matrix information, finding the target structural position where the target first matrix information corresponding to the target second matrix information is located in the first matrix; judging whether the target non-zero element corresponding to the target first matrix information is the last non-zero element in the row of the base matrix based on the target structural position; if so, horizontally updating the data between the target non-zero element and the non-zero element in the second matrix corresponding to the row end state in the first matrix in the second matrix; in response to the completion of the horizontal update of all rows of the second matrix, vertically updating the data in the first matrix row by row until the column end flag of the last row in the first matrix is encountered, and completing the update of the parity check matrix.
[0125] Specifically, as Figure 6 shown, in the decoding process of LDPC, the base matrix will go through a horizontal iteration and a vertical iteration process. Since the second matrix is arranged in non-zero terms row by row, when the row state in the first matrix indicates that the corresponding non-zero term is the last non-zero term in that row, the second matrix is fed back, and the information corresponding to the data between the non-zero term and the non-zero term of the previous row end state in the second matrix (i.e., a row of the corresponding base matrix) is horizontally updated. When the row state in the first matrix indicates that the corresponding non-zero term is not the last non-zero term in that row, the second matrix is fed back, and the reading of the second matrix and the calling of the first matrix continue. When the second matrix completes a full reading, all the information corresponding to the data of each row in the first matrix (i.e., a column of the corresponding base matrix) is updated once, until the column end flag of each row in the first matrix is encountered. At this time, a complete iteration process is completed, and a judgment is made on whether cHT (iteration end condition) is 0. If the result is 0, the check passes; otherwise, the first row of the second matrix is read again for a new round of iteration until the check passes or the maximum number of iterations is reached.
[0126] In this way, the performance of the QC-LDPC parity check matrix close to the Shannon limit can be achieved, efficient error correction can be realized, the signal containing noise can be gradually corrected through iterative operations, and finally the original information bits can be obtained.
[0127] In a feasible embodiment, the base matrix can be divided into multiple sub-blocks in units of the number of variable nodes included in the base matrix. Each sub-block is used to store the variable node information corresponding to the variable nodes, and the multiple sub-blocks are combined to form parallel processing branches to facilitate the decoding of the base matrix.
[0128] According to the BP algorithm, for a check node c connected to dc variable nodes, the update of its message requires obtaining the information of the dc variable nodes related to it. To achieve high-speed decoding, it is necessary to ensure that a computing unit can obtain the information of dc variable nodes simultaneously. Here, the base matrix can be divided into multiple sub-blocks with the rows or columns in the base matrix being variable nodes. Taking the sub-blocks as units, different sub-blocks are recombined according to the number of parallel processing units to form parallel processing branches. Each branch contains dc independent storage unit blocks, and each block contains several small blocks. The difference (gap) in the variable node numbers at the corresponding positions of two adjacent parallel branches is the same. When the decoder calculates at a node, it accesses the dc independent storage unit blocks of each branch simultaneously to obtain the required variable node information, thereby improving the decoding speed.
[0129] It should be understood that although Figure 1 , Figure 2 , Figure 4 and Figure 6 in the flowchart of Figure 1 , Figure 2 , Figure 4 and Figure 6 are shown in sequence according to the indication of the arrows, these steps are not necessarily executed in the order indicated by the arrows. Unless otherwise clearly stated in this article, the execution of these steps has no strict order restriction, and these steps can be executed in other orders. Moreover,
[0130] In one embodiment, as Figure 7 shown, a data transmission device is provided, including: a generation module 20, a construction module 21, a formation module 22, a sending module 23, and an analysis module 24, where:
[0131] The generation module 20 is used to obtain target data information at the signal sending end, convert the target data information into a signal to be transmitted, perform shaping processing on the signal to be transmitted, and encode the shaped signal to be transmitted to generate a parity-check matrix;
[0132] The construction module 21 is used to divide the parity-check matrix to obtain multiple sub-matrices, assign values to the sub-matrices of each matrix type, and construct a base matrix based on the matrix assignments corresponding to the sub-matrices of each matrix type;
[0133] A forming module 22 stores information on non-zero elements of a basis matrix based on the column structure of the basis matrix to form a first matrix, and stores information on non-zero elements of the basis matrix based on the row structure of the basis matrix to form a second matrix;
[0134] A transmitting module 23 generates a target transmission signal based on the first matrix and the second matrix, and sends the target transmission signal to a signal receiving end;
[0135] An analyzing module 24 is configured to, in response to the signal receiving end obtaining the target transmission signal, the signal receiving end analyzes the target transmission signal to obtain the first matrix and the second matrix, and decodes the first matrix based on the second matrix to obtain target data information.
[0136] In one embodiment, the above device can implement another implementation manner of the data transmission method, and the specific steps are as follows:
[0137] Dividing a parity-check matrix to obtain a plurality of sub-matrices, assigning values to the sub-matrices of each matrix type, and constructing a basis matrix based on the matrix assignments corresponding to the sub-matrices of each matrix type includes:
[0138] Obtaining the matrix type, dividing the parity-check matrix according to the matrix type to obtain a plurality of sub-matrices;
[0139] Assigning values to each sub-matrix based on the matrix type of each sub-matrix;
[0140] Traversing each sub-matrix in the parity-check matrix to obtain the positional relationship between each sub-matrix and other sub-matrices in the parity-check matrix;
[0141] According to the positional relationship between each sub-matrix and other sub-matrices in the parity-check matrix, replacing each sub-matrix with the matrix assignment corresponding to each sub-matrix to construct a basis matrix.
[0142] In one embodiment, the above device can implement another implementation manner of the data transmission method, and the specific steps are as follows:
[0143] Storing information on non-zero elements of a basis matrix based on the column structure of the basis matrix to form a first matrix, and storing information on non-zero elements of the basis matrix based on the row structure of the basis matrix to form a second matrix includes:
[0144] Storing the row position, row identifier, and shift value information of non-zero elements in each column of the basis matrix according to the column structure of the basis matrix to form a first matrix;
[0145] Storing the column position and column identifier of non-zero elements in each row of the basis matrix according to the row structure of the basis matrix to form a second matrix.
[0146] In one embodiment, the above device can implement another implementation manner of the data transmission method, and the specific steps are as follows:
[0147] Store the row positions, row identifiers, and shift value information of the non-zero elements in each column of the basis matrix according to the column structure of the basis matrix to form a first matrix, including:
[0148] Obtain the row position of each non-zero element in each column of the basis matrix;
[0149] Traverse the basis matrix to determine whether the row position of each non-zero element in each column of the basis matrix is the last non-zero element in the row where the row position is located;
[0150] If so, store the row identifier of the non-zero element as the row end identifier and store the shift value of the non-zero element;
[0151] If not, store the row identifier of the non-zero element as the row not ended identifier and store the shift value of the non-zero element;
[0152] Form a first matrix according to the row position of each non-zero element in each column of the basis matrix, the row identifier corresponding to each non-zero element, and the shift value corresponding to each non-zero element.
[0153] In one embodiment, the above device can implement another implementation manner of the data transmission method, and the specific steps are as follows:
[0154] Store the column position and column identifier of the non-zero element in each row of the basis matrix according to the row structure of the basis matrix to form a second matrix, including:
[0155] Obtain the column position of each non-zero element in each row of the basis matrix;
[0156] Store the column number of the column position where each non-zero element in each row of the basis matrix is located;
[0157] Traverse the basis matrix to determine whether each non-zero element in each row is the last non-zero element in the last row of the basis matrix;
[0158] If so, end the process and form a second matrix based on the column position of each non-zero element in each row of the basis matrix and the column number of the column position where each non-zero element in each row of the basis matrix is located.
[0159] In one embodiment, the above device can implement another implementation manner of the data transmission method, and the specific steps are as follows:
[0160] Decode the first matrix based on the second matrix to obtain target data information, including:
[0161] Obtain the target column position and target column number of the target non-zero element from the second matrix in sequence;
[0162] Find the target row position, target row identifier, and target shift value of the target non-zero element from the first matrix based on the target column position and target column serial number;
[0163] Determine the sub-matrix corresponding to the target non-zero element and the position of the target non-zero element in the parity check matrix based on the target row position, target row identifier, and target shift value;
[0164] Parse the target parity check matrix data corresponding to the target non-zero element in sequence based on the sub-matrix corresponding to the target non-zero element and the position of the target non-zero element in the parity check matrix;
[0165] Decode the target parity check matrix data to obtain the target data information.
[0166] In one embodiment, the above device can implement another implementation manner of the data transmission method, and the specific steps are as follows:
[0167] The method further includes:
[0168] Obtain the target second matrix information of each row of the second matrix;
[0169] Find the target structural position where the target first matrix information corresponding to the target second matrix information is located in the first matrix based on the target second matrix information;
[0170] Judge whether the target non-zero element corresponding to the target first matrix information is the last non-zero element in the row of the base matrix based on the target structural position;
[0171] If so, horizontally update the data between the target non-zero element and the non-zero element in the second matrix corresponding to the row end state in the first matrix in the second matrix;
[0172] In response to the completion of the horizontal update of all rows of the second matrix, vertically update the data in the first matrix row by row until the column end flag of the last row in the first matrix is encountered, and complete the update of the parity check matrix.
[0173] For the specific limitations of the data transmission device, reference can be made to the limitations on the data transmission method in the above text, which will not be elaborated here. Each module in the above data transmission device can be implemented in whole or in part by software, hardware, and their combination. The above modules can be embedded in the processor in the computer device in hardware form or independent of it, or stored in the memory in the computer device in software form, so that the processor can call and execute the operations corresponding to the above modules.
[0174] In one embodiment, the present application further provides a computer program product. The computer program product includes a computer program stored on a non-transitory computer-readable storage medium. The computer program includes program instructions. When the program instructions are executed by a computer, the computer is capable of executing the data transmission method provided by each of the above methods.
[0175] In one embodiment, a computer device is provided. The computer device may be a server, and its internal structural diagram may be as Figure 8 shown. The computer device includes a processor, a memory, a network interface, and a database connected through a system bus. Among them, the processor of the computer device is used to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system, a computer program, and a database. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The database of the computer device is used to store the data applied in the data transmission method. The network interface of the computer device is used to communicate with an external terminal through a network connection. When the computer program is executed by the processor, it implements a data transmission method.
[0176] Those skilled in the art can understand that Figure 8 the structure shown in
[0177] is only a block diagram of a part of the structure related to the solution of the present application, and does not constitute a limitation on the computer device to which the solution of the present application is applied. The specific computer device may include more or fewer components than those shown in the figure, or combine some components, or have a different component layout.
[0177] In one embodiment, a computer device is provided, including a memory, a processor, and a computer program stored on the memory and executable on the processor. When the processor executes the computer program, the following steps are implemented:
[0178] Step S10, the signal sending end obtains target data information, converts the target data information into a signal to be transmitted, performs shaping processing on the signal to be transmitted, and encodes the shaped signal to be transmitted to generate a parity-check matrix.
[0179] Step S11, divide the parity-check matrix to obtain a plurality of sub-matrices, assign values to the sub-matrices of each matrix type, and construct a basis matrix based on the matrix assignments corresponding to the sub-matrices of each matrix type, and construct a basis matrix based on the matrix assignments corresponding to the sub-matrices of each matrix type.
[0180] Step S12, store the non-zero element information of the basis matrix based on the column structure of the basis matrix to form a first matrix, and store the non-zero element information of the basis matrix based on the row structure of the basis matrix to form a second matrix.
[0181] Step S13: Generate a target transmission signal based on the first matrix and the second matrix, and send the target transmission signal to a signal receiving end.
[0182] Step S14: In response to the signal receiving end obtaining the target transmission signal, the signal receiving end parses the target transmission signal to obtain the first matrix and the second matrix, and decodes the first matrix based on the second matrix to obtain target data information.
[0183] In one embodiment, when the processor executes the computer program, the following steps are further implemented:
[0184] Partition the parity-check matrix to obtain a plurality of sub-matrices, assign values to the sub-matrices of each matrix type, and construct a basis matrix based on the matrix assignments corresponding to the sub-matrices of each matrix type, including:
[0185] Obtain the matrix type, partition the parity-check matrix according to the matrix type to obtain a plurality of sub-matrices;
[0186] Assign values to each sub-matrix based on the matrix type of each sub-matrix;
[0187] Traverse each sub-matrix in the parity-check matrix to obtain the positional relationship between each sub-matrix and other sub-matrices in the parity-check matrix;
[0188] According to the positional relationship between each sub-matrix and other sub-matrices in the parity-check matrix, use the matrix assignment corresponding to each sub-matrix to replace each sub-matrix to construct a basis matrix.
[0189] In one embodiment, when the processor executes the computer program, the following steps are further implemented:
[0190] Store the non-zero term element information of the basis matrix based on the column structure of the basis matrix to form a first matrix, and store the non-zero term element information of the basis matrix based on the row structure of the basis matrix to form a second matrix, including:
[0191] Store the row position, row identifier, and shift value information of the non-zero term elements in each column of the basis matrix according to the column structure of the basis matrix to form a first matrix;
[0192] Store the column position and column identifier of the non-zero term elements in each row of the basis matrix according to the row structure of the basis matrix to form a second matrix.
[0193] In one embodiment, when the processor executes the computer program, the following steps are further implemented:
[0194] Store the row position, row identifier, and shift value information of the non-zero term elements in each column of the basis matrix according to the column structure of the basis matrix to form a first matrix, including:
[0195] Obtain the row position where each non-zero term element in each column of the basis matrix is located;
[0196] Traverse the base matrix, and determine whether the row position of each non-zero element in each column of the base matrix is the last non-zero element in the row where the row position is located;
[0197] If so, store that the row identifier of the non-zero element is the row end identifier, and store the shift value of the non-zero element;
[0198] If not, store that the row identifier of the non-zero element is the row not ended identifier, and store the shift value of the non-zero element;
[0199] Form a first matrix according to the row position of each non-zero element in each column of the base matrix, the row identifier corresponding to each non-zero element, and the shift value corresponding to each non-zero element.
[0200] In one embodiment, when the processor executes the computer program, the following steps are further implemented:
[0201] Store the column position and column identifier of the non-zero element in each row of the base matrix according to the row structure of the base matrix, so as to form a second matrix including:
[0202] Obtain the column position of each non-zero element in each row of the base matrix;
[0203] Store the column number of the column position of each non-zero element in each row of the base matrix;
[0204] Traverse the base matrix, and determine whether each non-zero element in each row is the last non-zero element in the last row of the base matrix;
[0205] If so, end the process, and form a second matrix based on the column position of each non-zero element in each row of the base matrix and the column number of the column position of each non-zero element in each row of the base matrix.
[0206] In one embodiment, when the processor executes the computer program, the following steps are further implemented:
[0207] Decode the first matrix based on the second matrix, and obtain the target data information including:
[0208] Obtain the target column position and target column number of the target non-zero element from the second matrix in sequence;
[0209] Search for the target row position, target row identifier, and target shift value of the target non-zero element from the first matrix based on the target column position and target column number;
[0210] Determine the sub-matrix corresponding to the target non-zero element and the position of the target non-zero element in the parity-check matrix based on the target row position, target row identifier, and target shift value;
[0211] Parse the target check matrix data corresponding to the target non-zero element based on the sub-matrix corresponding to the target non-zero element and the position of the target non-zero element in the check matrix in sequence;
[0212] Decode the target check matrix data to obtain the target data information.
[0213] In one embodiment, when the processor executes the computer program, the following steps are further implemented:
[0214] The method further includes:
[0215] Obtain the target second matrix information of each row of the second matrix;
[0216] Based on the target second matrix information, find the target structural position where the target first matrix information corresponding to the target second matrix information is located in the first matrix;
[0217] Based on the target structural position, determine whether the target non-zero element corresponding to the target first matrix information is the last non-zero element in the row of the base matrix;
[0218] If so, horizontally update the data between the target non-zero element and the non-zero element in the second matrix corresponding to the row end state in the first matrix in the second matrix;
[0219] In response to the completion of the horizontal update of all rows of the second matrix, vertically update the data in the first matrix row by row until the column end flag of the last row in the first matrix is encountered, and complete the update of the check matrix.
[0220] In one embodiment, a computer-readable storage medium is provided, on which a computer program is stored. When the computer program is executed by a processor, the following steps are implemented:
[0221] Step S10, the signal sending end obtains the target data information, converts the target data information into a signal to be transmitted, performs shaping processing on the signal to be transmitted, and encodes the shaped signal to be transmitted to generate a check matrix.
[0222] Step S11, divide the check matrix to obtain a plurality of sub-matrices, assign values to the sub-matrices of each matrix type, construct a base matrix based on the matrix assignment corresponding to the sub-matrices of each matrix type, and construct a base matrix based on the matrix assignment corresponding to the sub-matrices of each matrix type.
[0223] Step S12, store the non-zero element information of the base matrix based on the column structure of the base matrix to form a first matrix, and store the non-zero element information of the base matrix based on the row structure of the base matrix to form a second matrix.
[0224] Step S13: Generate a target transmission signal based on the first matrix and the second matrix, and send the target transmission signal to the signal receiving end.
[0225] Step S14: In response to the signal receiving end obtaining the target transmission signal, the signal receiving end parses the target transmission signal to obtain the first matrix and the second matrix, and decodes the first matrix based on the second matrix to obtain the target data information.
[0226] In one embodiment, when the computer program is executed by the processor, the following steps are further implemented:
[0227] Partition the parity-check matrix to obtain a plurality of sub-matrices, assign values to the sub-matrices of each matrix type, and construct a basis matrix based on the matrix assignments corresponding to the sub-matrices of each matrix type, including:
[0228] Obtain the matrix type, partition the parity-check matrix according to the matrix type to obtain a plurality of sub-matrices;
[0229] Assign values to each sub-matrix based on the matrix type of each sub-matrix;
[0230] Traverse each sub-matrix in the parity-check matrix to obtain the positional relationship between each sub-matrix and other sub-matrices in the parity-check matrix;
[0231] According to the positional relationship between each sub-matrix and other sub-matrices in the parity-check matrix, use the matrix assignment corresponding to each sub-matrix to replace each sub-matrix to construct a basis matrix.
[0232] In one embodiment, when the computer program is executed by the processor, the following steps are further implemented:
[0233] Store the non-zero term element information of the basis matrix based on the column structure of the basis matrix to form a first matrix, and store the non-zero term element information of the basis matrix based on the row structure of the basis matrix to form a second matrix, including:
[0234] Store the row position, row identifier, and shift value information of the non-zero term elements in each column of the basis matrix according to the column structure of the basis matrix to form a first matrix;
[0235] Store the column position and column identifier of the non-zero term elements in each row of the basis matrix according to the row structure of the basis matrix to form a second matrix.
[0236] In one embodiment, when the computer program is executed by the processor, the following steps are further implemented:
[0237] Store the row position, row identifier, and shift value information of the non-zero term elements in each column of the basis matrix according to the column structure of the basis matrix to form a first matrix, including:
[0238] Obtain the row position of each non-zero term element in each column of the basis matrix;
[0239] Traverse the basis matrix, and determine whether the row position of each non-zero element in each column of the basis matrix is the last non-zero element in the row where the row position is located;
[0240] If so, store that the row identifier of the non-zero element is the row end identifier, and store the shift value of the non-zero element;
[0241] If not, store that the row identifier of the non-zero element is the row not ended identifier, and store the shift value of the non-zero element;
[0242] Form a first matrix according to the row position of each non-zero element in each column of the basis matrix, the row identifier corresponding to each non-zero element, and the shift value corresponding to each non-zero element.
[0243] In one embodiment, when the computer program is executed by a processor, the following steps are further implemented:
[0244] Store the column position and column identifier of the non-zero element in each row of the basis matrix according to the row structure of the basis matrix, so as to form a second matrix including:
[0245] Obtain the column position of each non-zero element in each row of the basis matrix;
[0246] Store the column number of the column position of each non-zero element in each row of the basis matrix;
[0247] Traverse the basis matrix, and determine whether each non-zero element in each row is the last non-zero element in the last row of the basis matrix;
[0248] If so, end the process, and form a second matrix based on the column position of each non-zero element in each row of the basis matrix and the column number of the column position of each non-zero element in each row of the basis matrix.
[0249] In one embodiment, when the computer program is executed by a processor, the following steps are further implemented:
[0250] Decode the first matrix based on the second matrix, and obtain the target data information including:
[0251] Obtain the target column position and target column number of the target non-zero element from the second matrix in sequence;
[0252] Find the target row position, target row identifier, and target shift value of the target non-zero element from the first matrix based on the target column position and target column number;
[0253] Determine the sub-matrix corresponding to the target non-zero element and the position of the target non-zero element in the parity-check matrix based on the target row position, target row identifier, and target shift value;
[0254] Parse the target parity-check matrix data corresponding to the target non-zero element based on the sub-matrix corresponding to the target non-zero element and the position of the target non-zero element in the parity-check matrix in sequence;
[0255] Decode the target parity-check matrix data to obtain the target data information.
[0256] In one embodiment, when the computer program is executed by the processor, the following steps are further implemented:
[0257] The method further includes:
[0258] Obtain the target second matrix information of each row of the second matrix;
[0259] Based on the target second matrix information, find the target structural position where the target first matrix information corresponding to the target second matrix information is located in the first matrix;
[0260] Based on the target structural position, determine whether the target non-zero element corresponding to the target first matrix information is the last non-zero element in the row of the base matrix;
[0261] If so, horizontally update the data between the target non-zero element and the non-zero element in the second matrix corresponding to the row end state in the first matrix in the second matrix;
[0262] In response to the completion of the horizontal update of all rows of the second matrix, vertically update the data in the first matrix row by row until the column end flag of the last row in the first matrix is encountered, and complete the update of the parity-check matrix.
[0263] Those of ordinary skill in the art can understand that all or part of the processes in the methods of the above embodiments can be completed by instructing relevant hardware through a computer program. The computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above methods. Among them, any reference to a memory, storage, database, or other medium used in the embodiments provided in the present application can include non-volatile and / or volatile memories. Non-volatile memories can include read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), or flash memory. Volatile memories can include random access memory (RAM) or external cache memory. By way of illustration and not limitation, RAM is available in many forms, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), synchronous forward path (Synchlink) DRAM (SLDRAM), Rambus direct RAM (RDRAM), direct memory bus dynamic RAM (DRDRAM), and Rambus dynamic RAM (RDRAM), etc.
[0264] The technical features of the above embodiments can be combined arbitrarily. For the sake of brevity of description, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, it should be considered as the scope recorded in this specification.
[0265] The above-described embodiments merely represent several implementation manners of the present application. The description thereof is relatively specific and detailed, but it should not be construed as a limitation on the scope of the invention patent. It should be noted that for those of ordinary skill in the art, without departing from the concept of the present application, several modifications and improvements can still be made, and these all belong to the protection scope of the present application.
Claims
1. A data transmission method, characterized in that: include: The signal transmitting end obtains target data information, converts the target data information into a signal to be transmitted, performs shaping processing on the signal to be transmitted, encodes the shaped signal to be transmitted, and generates a check matrix; Dividing the check matrix into multiple sub-matrices, and assigning a value to each sub-matrix based on the matrix type of each sub-matrix; According to the position relationship between each submatrix and other submatrices in the check matrix, each submatrix is replaced with the matrix value corresponding to each submatrix to construct a base matrix. The matrix types include: unit matrix, circulant shift matrix of unit matrix and all-zero matrix; Determine the row identifier of the non-zero element according to whether the row position of each non-zero element in each column of the base matrix is the last non-zero element in the row where the row position is located; form a first matrix according to the row position of each non-zero element in each column of the base matrix, the row identifier corresponding to each non-zero element, and the shift value corresponding to each non-zero element; Determine whether each non-zero element in each row is the last non-zero element in the last row of the basis matrix; If yes, forming a second matrix based on the column position of each non-zero element of each row of the base matrix and the column number of the column position of each non-zero element of each row of the base matrix; Generate a target transmission signal based on the first matrix and the second matrix, and send the target transmission signal to a signal receiving end; In response to the signal receiving end acquiring the target transmission signal, the signal receiving end parses the target transmission signal, acquires the first matrix and the second matrix, calls the first matrix based on the second matrix, updates the data of each row in the first matrix, until the column end mark of each row in the first matrix is acquired, so as to correct the target transmission signal through iterative operation, and then acquire the target data information.
2. The method according to claim 1, characterized in that The step of assigning a value to each submatrix based on the matrix type of each submatrix; and replacing each submatrix with the matrix value corresponding to each submatrix according to the position relationship between each submatrix and other submatrices in the check matrix to construct a base matrix includes: Obtaining a matrix type, and dividing the check matrix according to the matrix type to obtain a plurality of sub-matrices; Assigning values to each submatrix based on the matrix type of each submatrix; Traversing each submatrix in the check matrix, obtaining the position relationship between each submatrix and other submatrices in the check matrix; According to the positional relationship between each submatrix and other submatrices in the check matrix, each submatrix is replaced with a matrix value corresponding to each submatrix to construct a base matrix.
3. The method according to claim 1, characterized in that Determining the row identifier of the non-zero element according to whether the row position where each non-zero element of each column of the base matrix is located is the last non-zero element of the row where the row position is located; Forming a first matrix according to the row position of each non-zero element of each column of the base matrix, the row identifier corresponding to each non-zero element, and the shift value corresponding to each non-zero element includes: Get the row position of each non-zero element in each column of the basis matrix; Traversing the basis matrix, determining whether the row position where each non-zero element of each column of the basis matrix is located is the last non-zero element of the row where the row position is located; If yes, the row identifier storing the non-zero element is the row end identifier, and the shift value of the non-zero element is stored; If not, the row identifier storing the non-zero element is an unterminated row identifier, and the shift value of the non-zero element is stored; The first matrix is formed according to the row position of each non-zero element in each column of the base matrix, the row identifier corresponding to each non-zero element, and the shift value corresponding to each non-zero element.
4. The method according to claim 1, characterized in that The determining whether each non-zero element of each row is the last non-zero element of the last row of the base matrix; if so, forming a second matrix based on the column position of each non-zero element of each row of the base matrix and the column number of the column position of each non-zero element of each row of the base matrix comprises: Get the column position of each non-zero element in each row of the basis matrix; The column number of the column position where each non-zero element of each row of the base matrix is stored; Traverse the basis matrix and determine whether each non-zero element in each row is the last non-zero element in the last row of the basis matrix; If yes, the process ends, and a second matrix is formed based on the column position of each non-zero element of each row of the base matrix and the column number of the column position of each non-zero element of each row of the base matrix.
5. The method according to claim 1, characterized in that The step of correcting the target transmission signal through iterative calculation and then acquiring target data information includes: Obtain the target column position and target column number of the target non-zero element from the second matrix in order; Find the target row position, target row identifier and target shift value of the target non-zero element from the first matrix based on the target column position and the target column sequence number; Determine the submatrix corresponding to the target non-zero element and the position of the target non-zero element in the check matrix based on the target row position, the target row identifier and the target shift value; Sequentially analyzing the target check matrix data corresponding to the target non-zero element based on the submatrix corresponding to the target non-zero element and the position of the target non-zero element in the check matrix; Target data information is acquired based on the target check matrix data.
6. The method according to claim 1, characterized in that The calling the first matrix based on the second matrix and updating the information corresponding to the data of each row in the first matrix until the column end mark of each row in the first matrix is obtained includes: Obtain target second matrix information of each row of the second matrix; Based on the target second matrix information, searching from the first matrix for a target structure position where the target first matrix information corresponding to the target second matrix information is located; Determine, based on the target structure position, whether the target non-zero element corresponding to the target first matrix information is the last non-zero element of the row in the base matrix; If yes, then horizontally updating the data between the target non-zero element and the non-zero element in the second matrix corresponding to the row end state in the first matrix in the second matrix; In response to the completion of horizontal updating of all rows of the second matrix, the data in the first matrix are updated vertically row by row until a column end mark of the last row in the first matrix is encountered.
7. A data transmission device, characterized in that: The device comprises: A generation module, used for the signal transmitting end to obtain target data information, convert the target data information into a signal to be transmitted, perform shaping processing on the signal to be transmitted, encode the shaped signal to be transmitted, and generate a check matrix; A construction module is used to divide the check matrix to obtain multiple sub-matrices, and assign values to each sub-matrix based on the matrix type of each sub-matrix; according to the position relationship between each sub-matrix and other sub-matrices in the check matrix, each sub-matrix is replaced with the matrix value corresponding to each sub-matrix to construct a base matrix, and the matrix types include: unit matrix, circulant shift matrix of unit matrix and all-zero matrix; A forming module is provided, wherein the row identifier of the non-zero element is determined according to whether the row position of each non-zero element in each column of the base matrix is the last non-zero element in the row where the row position is located; a first matrix is formed according to the row position of each non-zero element in each column of the base matrix, the row identifier corresponding to each non-zero element, and the shift value corresponding to each non-zero element; it is determined whether each non-zero element in each row is the last non-zero element in the last row of the base matrix; if so, a second matrix is formed based on the column position of each non-zero element in each row of the base matrix and the column number of the column position of each non-zero element in each row of the base matrix; A sending module, which generates a target transmission signal based on the first matrix and the second matrix, and sends the target transmission signal to a signal receiving end; The parsing module is used for obtaining a target transmission signal in response to a signal receiving end. The signal receiving end parses the target transmission signal, obtains a first matrix and a second matrix, calls the first matrix based on the second matrix, updates the data of each row in the first matrix, until a column end mark of each row in the first matrix is obtained, so as to correct the target transmission signal through iterative operation, and then obtain target data information.
8. A computer device comprising a memory, a processor and a computer program stored in the memory and executable on the processor, characterized in that: When the processor executes the computer program, the steps of the method according to any one of claims 1 to 6 are implemented.
9. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 6 are implemented.
Citation Information
Patent Citations
Data verification method and device, equipment and medium
CN119561655A
LDPC code-based communication method and communication apparatus
WO2024152363A1