Data transmission method and device, computer equipment 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 in the hardware implementation of QC-LDPC code is solved, and efficient data transmission and fast decoding are achieved.

CN119788096AActive Publication Date: 2025-04-08SHANDONG YUNHAI GUOCHUANG CLOUD COMPUTING EQUIP IND INNOVATION CENT CO LTD

Patent Information

Application Number
CN202510252268.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-03-05
Publication Date
2025-04-08
Estimated Expiration
2045-03-05

AI Technical Summary

Technical Problem

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.

Method used

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 item 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 target data information.

Benefits of technology

This method can save storage resources, improve data transmission efficiency, and reduce decoding delay. It is suitable for long codewords and high code rates QC-LDPC code hardware implementation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119788096A_ABST
    Figure CN119788096A_ABST
Patent Text Reader

Abstract

The invention relates to a data transmission method and device, computer equipment and a storage medium. The method comprises the following steps: a signal sending end obtains target data information, converts the target data information into a to-be-transmitted signal, and performs shaping and encoding processing on the to-be-transmitted signal to generate a check matrix; dividing the check matrix to obtain a plurality of sub-matrixes, and assigning values to the sub-matrixes of each matrix type; constructing a basis matrix based on the matrix assignment corresponding to the sub-matrix of each matrix type; storing non-zero item element information of the basis matrix based on a column structure of the basis matrix to form a first matrix; storing non-zero item element information of the basis matrix based on a row structure of the basis matrix to form a second matrix; generating a target transmission signal based on the first matrix and the second matrix; and 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, and by adopting the method, the data transmission efficiency can be improved, and storage resources can be saved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the technical field of data transmission, and in particular to a data transmission method, apparatus, computer equipment and storage medium. Background Art

[0002] QC-LDPC code is a special type of LDPC code, which usually has a structured check matrix. QC-LDPC code is composed of several square matrices of the same dimension, which are called submatrices of QC-LDPC code. QC-LDPC code simplifies the compilation process while ensuring the matrix performance, reduces the complexity of encoding and decoding, and is easier to implement in hardware. It plays an important role in modern communications, storage and other fields.

[0003] Although the unique structure of QC-LDPC code facilitates the storage and addressing of the matrix and optimizes the encoding and decoding process, there are still some difficulties in the hardware implementation of QC-LDPC code, especially for QC-LDPC codes with long code words and high code rates. Directly storing the entire check matrix will consume huge storage resources. The large number of storage units required further leads to greater resource consumption during hardware implementation. In addition, it also brings problems such as slow data transmission speed, which increases the delay in 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 in order to address the above technical problems.

[0005] In order to solve the above technical problems, in a first aspect, a data transmission method is provided, the method comprising: The signal transmitting 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, encodes the shaped signal to be transmitted, and generates a check matrix; Divide the check matrix to obtain a plurality of 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; Based on the column structure of the base matrix, the non-zero element information of the base matrix is ​​stored to form a first matrix, and based on the row structure of the base matrix, the non-zero element information of the base matrix is ​​stored to form a second 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 to acquire the first matrix and the second matrix, decodes the first matrix based on the second matrix, and acquires the target data information.

[0006] 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: Obtaining a matrix type, dividing the check matrix according to the matrix type, and obtaining 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 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.

[0007] In one embodiment, storing non-zero element information of a base matrix based on a column structure of the base matrix to form a first matrix, and storing non-zero element information of the base matrix based on a row structure of the base matrix to form a second matrix comprises: The row position, row identifier and shift value information of the non-zero element of each column of the base matrix are stored according to the column structure of the base matrix to form a first matrix; The column positions of the non-zero elements of each row of the base matrix and the column identifiers are stored according to the row structure of the base matrix to form a second matrix.

[0008] In one embodiment, storing the row position, row identifier, and shift value information of the non-zero elements of each column of the base matrix according to the column structure of the base matrix to form the first matrix includes: Get the row position of each non-zero element in each column of the basis matrix; 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; 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.

[0009] In one embodiment, storing the column positions and column identifiers of the non-zero elements of each row of the base matrix according to the row structure of the base matrix to form the second matrix includes: 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.

[0010] In one embodiment, decoding the first matrix based on the second matrix to obtain 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; Decode the target check matrix data to obtain the target data information.

[0011] In one embodiment, the method further comprises: 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; Based on the target structure position, determine 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, thereby completing the updating of the check matrix.

[0012] In order to solve the above technical problem, in a second aspect, a data transmission device is provided, the device comprising: A generation module is 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, 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; A forming module stores non-zero element information of a base matrix based on a column structure of the base matrix to form a first matrix, and stores non-zero element information of the base matrix based on a row structure of the base matrix to form a second 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 to obtain the target transmission signal in response to the signal receiving end. 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.

[0013] In order to solve the above technical problem, in the third aspect, a computer device is provided, including a memory, a processor, and a computer program stored in the memory and executable on the processor, and 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 are implemented.

[0014] In order to solve the above technical problems, in a fourth aspect, the present application provides a computer-readable storage medium on which a computer program is stored, and when the computer program is executed by a processor, the steps of the method of the above first aspect are implemented.

[0015] Different from the prior art, the present application obtains target data information through a signal sending end, 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; divides the check matrix to obtain multiple sub-matrices, assigns values ​​to the sub-matrices of each matrix type, and constructs a base matrix based on the matrix assignments corresponding to the sub-matrix of each matrix type; stores non-zero element information of the base matrix based on the column structure of the base matrix to form a first matrix, and stores non-zero element information of the base matrix based on the row structure of the base matrix to form a second matrix; 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; 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, decodes the first matrix based on the second matrix, and obtains the target data information. In this way, by assigning values ​​to multiple sub-matrices of the check matrix to form a base 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 check matrix according to the row position, row identifier and shift value information corresponding to the non-zero elements, and can improve data transmission efficiency. BRIEF DESCRIPTION OF THE DRAWINGS

[0016] Figure 1 A schematic diagram of a flow chart of a data transmission method in an embodiment; Figure 2 A schematic diagram of a flow chart of a data transmission method in another embodiment; Figure 3 is a schematic diagram of a first matrix in one embodiment; Figure 4 A schematic diagram of a flow chart of a data transmission method in another embodiment; Figure 5 is a schematic diagram of a second matrix in one embodiment; Figure 6 A schematic diagram of a flow chart of a data transmission method in yet another embodiment; Figure 7 is a structural block diagram of a data transmission device in one embodiment; Figure 8 FIG. 4 is a diagram showing the internal structure of a computer device in one embodiment. DETAILED DESCRIPTION

[0017] In order to make the purpose, technical solution and advantages of the present application more clearly understood, the present application is further described in detail below in conjunction with 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.

[0018] In one embodiment, Figure 1 As shown, the present application provides a data transmission method, which specifically includes the following steps: Step S10, 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.

[0019] Specifically, the target data information is the data information to be transmitted. The target data information can be converted into a signal form through a signal conversion tool to obtain a signal to be transmitted, and a signal shaping tool can be used to filter, enhance, process and adjust the signal to be transmitted. The shaped signal to be transmitted will better meet specific requirements. The shaped signal to be transmitted is encoded to obtain a check matrix.

[0020] Step S11, divide the 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.

[0021] A matrix type may be obtained, and the check matrix may be divided according to the matrix type to obtain a plurality of sub-matrices; and a value may be assigned to each sub-matrix based on the matrix type of each sub-matrix.

[0022] The check matrix can be a QC-LDPC check matrix, QC-LDPC (Quasi-Cyslic Low-Density Parity-Check Codes) is a quasi-cyclic LDPC code. Quasi-cyclic LDPC code is an important subset of structured LDPC code, and its parity check matrix can be divided into multiple square matrices of equal size, each of which is a cyclic shift matrix of the unit matrix or an all-0 matrix, which is very convenient for memory storage and addressing, thereby greatly reducing the encoding and decoding complexity of LDPC code, and quasi-cyclic LDPC code with repeated accumulation structure can achieve fast encoding of linear complexity.

[0023] The QC-LDPC check matrix is ​​usually composed of a unit matrix, or a cyclic shift matrix of the unit matrix and an all-zero matrix, wherein any row (column) in the cyclic shift matrix is ​​obtained by shifting the previous row (column) right (down) by one position, and the first row (column) of the matrix is ​​obtained by cyclically shifting the last row (column) right (down) by one position, and the cyclic matrix can be determined by its first row or first column. Therefore, for a specific submatrix of the QC-LDPC code, as long as the dimension and shift value of the submatrix are determined, all the information of the submatrix can be obtained.

[0024] The matrix types in this application include unit matrix, cyclic shift matrix of unit matrix, and all-zero matrix. The check matrix is ​​divided according to the matrix type, and the sub-matrix of each matrix type is assigned a value. For example, the sub-matrix of the unit matrix can be assigned a first value, the sub-matrix of the cyclic shift matrix of the unit 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.

[0025] Among them, the submatrix assignment of the circulant shift matrix can be set according to the shift value and shift direction of the circulant shift matrix. For example, a submatrix with a shift value of 2 can indicate that any row in the submatrix is ​​obtained by circulantly shifting 2 positions to the right from the previous row of the matrix, and a submatrix with a shift value of -2 can indicate that any column in the submatrix is ​​obtained by circulantly shifting 2 positions downward from the column. Here, 2 indicates the shift value. A negative sign in front of the shift value indicates a shift in the column direction, and no negative sign in front of the shift value indicates a shift in the row direction. The specific value of the shift value can be set according to actual needs.

[0026] Each submatrix in the check matrix can be traversed to obtain the position relationship between each submatrix and other submatrices in the check 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.

[0027] Each submatrix in the check matrix can be abstracted as a coordinate point. According to the row position and column position of each submatrix in the check matrix, the coordinate point value of each submatrix in the check matrix is ​​obtained. The coordinate point value of each submatrix in the check matrix includes the position relationship between each submatrix and other submatrices in the check matrix. According to the coordinate point value of each submatrix in the check matrix, each submatrix is ​​replaced by the matrix assignment of each submatrix until each submatrix in the check matrix is ​​replaced with its corresponding matrix assignment. In this way, the check matrix is ​​converted into a base matrix. In this way, the storage space of the check matrix can be greatly saved.

[0028] It is understandable that the base matrix can be subsequently converted into a check matrix according to the relationship between the matrix assignment and the matrix type of the submatrix.

[0029] Step S12, storing non-zero element information of the base matrix based on the column structure of the base matrix to form a first matrix, and storing non-zero element information of the base matrix based on the row structure of the base matrix to form a second matrix.

[0030] After obtaining the base matrix, the base matrix column structure can be obtained. The base matrix column structure 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 the column number of the column in the base matrix.

[0031] All columns of the basis matrix can be traversed in order of each column, and the row position of the non-zero element of each column (the row in which the non-zero element is located), the row identifier (including the row end identifier and the row non-end identifier) ​​and the shift value information (the shift amount of the submatrix in the check matrix corresponding to the non-zero element) can be stored. The circulant shift matrix of the known unit matrix is ​​formed by shifting the unit matrix according to the shift amount. After the shift amount is known, the corresponding circulant shift matrix can be obtained according to the shift amount and the unit matrix.

[0032] For the submatrix corresponding to the non-zero elements of each column in the base matrix, when the row position of the submatrix corresponding to the non-zero elements in the base matrix is ​​determined and the dimension of the submatrix corresponding to the non-zero elements is determined, the row position of the non-zero elements in the check matrix can also be determined accordingly. When the column position of the submatrix corresponding to the non-zero elements in the base matrix is ​​determined and the dimension of the submatrix corresponding to the non-zero elements is determined, the column position of the non-zero elements in the check matrix can be determined accordingly.

[0033] From the above description, it can be known that when the entire check matrix is ​​stored, the check matrix can be first converted into a base matrix for storage, and then the position of the row of the submatrix corresponding to the non-zero elements of each column stored in the base matrix and the shift value can be used to realize the storage of all the information of the check matrix H. This storage method records all the information of the check matrix by recording the row position corresponding to the submatrix where the non-zero elements in each column are located and the shift value corresponding to the submatrix, which not only retains all the information of the check matrix, but also optimizes the storage space of the check matrix. Especially for the check matrix with long code words and high code rates, the difference in column weight is smaller than the difference in row, so it is easier to achieve data alignment, which is conducive to hardware implementation.

[0034] In a specific implementation, the row position, row identifier, and shift value information of the non-zero elements of each column of the base matrix are stored according to the column structure of the base matrix to form the specific process of the first matrix as follows: Figure 2 As shown: First, input the basis matrix, obtain the row position of each non-zero element in each column of the basis matrix, 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; if so, store the row identifier of the non-zero element as a 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 a row non-end identifier, and store the shift value of the non-zero element; 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.

[0035] Here, the row position 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. Each column of the base matrix can be numbered from left to right or from right to left to obtain the column order of each column.

[0036] The row position of the first non-zero element in the first column can be obtained, and it can be 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, the row end identifier is first stored, where the row end identifier can be "-1", and then the shift value of the non-zero element is stored; 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, the row end identifier "1" is first stored, and then the shift value of the non-zero element is continued to be stored. Similarly, the row position of each non-zero element in the first column is first traversed to determine whether the position is the last non-zero element in the row where the non-zero element is located, and the judgment result is recorded according to yes or no.

[0037] After traversing the row position of each non-zero element in the first column of the basis matrix and obtaining the corresponding row identifier and shift value, the identifier of the end of the column is added, where the identifier of the end of the column can be "0".

[0038] The above steps can be repeated to sequentially obtain the second column, the third column, and so on of the basis matrix, the row position, the row identifier, and the shift value of each non-zero element of each column, until the column end identifier of the last column is stored to form a first matrix.

[0039] In one embodiment, the first matrix may be stored in the form of a table, specifically as follows: Figure 3 As shown, the first matrix includes multiple groups formed by row position columns, row state columns and shift value columns, and any group can correspond to the row position, row state (row identifier) ​​and shift value of the non-zero elements of any column of the storage base matrix.

[0040] In practical applications, since the base matrix has no clear requirements on the column weight of each column (the number of non-zero elements in each column), the column weight of the check matrix will be uneven. In order to align the data format, the present application can be set to expand the first matrix according to the maximum column weight of the check matrix to align the data of the first matrix.

[0041] Exemplarily, assuming that the total data bit width in the first matrix corresponding to the column with the largest column weight in the check matrix is ​​Y bits, 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 of the first non-zero element of the column; [K-1:K-3] The row status, that is, whether the non-zero element is the last non-zero element in the row; [K-4:P] The shift value corresponding to the first non-zero element of the column; The bit width of a group of data is [Y-1:P].

[0042] In order to better illustrate the data transmission method in this application, the data transmission method is described with a specific example: The QC-LDPC check matrix usually consists of multiple sub-matrices, which are respectively composed of a unit matrix, a cyclic shift matrix of the unit matrix, and an all-zero matrix. In this application, the check matrix is ​​first converted into a QC-LDPC base matrix. For example, the value 0 can represent a unit matrix in the QC-LDPC check matrix, the value -1 represents an all-zero matrix in the QC-LDPC check matrix, and the value 1 represents a cyclic shift matrix of a unit matrix in the QC-LDPC check matrix. Convert the QC-LDPC check matrix into a QC-LDPC base matrix.

[0043] For example, assume that the transformed basis matrix is: ; The first column of the check matrix before conversion into the base matrix can be expressed as the following submatrix, taking the matrix of each submatrix as a 4×4 matrix as an example: ; The first column of the transformed QC-LDPC basis matrix is ​​as follows: ; The base matrix is ​​then processed to obtain a first matrix and a second matrix. The first matrix is ​​formed by storing the position of the row where the non-zero elements of the base matrix are located, the row identifier, and the shift value size by column. The column position of the non-zero elements of the base matrix and the serial number of the column position where the non-zero elements are located are stored by row to form the second matrix.

[0044] The basis matrix can be shown in Table 1:

[0045] Table 1 Table 1 shows the assignment of each submatrix in the check matrix included in the base matrix, where the value 0 represents a unit matrix in the check matrix, the value -1 represents an all-zero matrix in the check matrix, the value 1 or 2 or 3 represents a cyclic shift matrix of a unit matrix in the check matrix, and the value 1 or 2 or 3 also represents the shift value corresponding to the cyclic shift matrix of a unit matrix.

[0046] Taking the basis matrix in Table 1 as an example, if the first matrix is ​​formed according to the basis matrix in column 0, it includes:

[0047] Table 2 The shift value here represents the shift amount of the unit circulant matrix. When the shift value is 0, the unit circulant matrix is ​​the unit matrix.

[0048] When data is stored, it is usually stored in binary form. In the present application, the first matrix is ​​converted into binary data. In order to make the bit width of the data consistent, the data bit width corresponding to the first matrix can be adjusted.

[0049] For example, assuming that the data bit width corresponding to the first matrix in the example in Table 2 is adjusted, the data in the first matrix in the example in Table 2 is first converted into binary data for storage, as follows: ;

[0050] At this point, it can be seen that the data widths of different row positions and different shift values ​​in the above table are different. It is necessary to align the data widths of different row positions and different shift values. Invalid data can be added to the row position of the first row. The invalid data here is a character that has no effect 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) to align the data width of the first row with the data width of the second row. The shift value 0 of the first row is supplemented with invalid data to become 0,0. In this way, data expansion can be performed using invalid data to achieve data alignment without affecting the actual data.

[0051] Specifically, the column positions of the non-zero elements of each row of the base matrix and the column identifiers are stored according to the row structure of the base matrix to form a second matrix.

[0052] After obtaining the base matrix, obtain the base matrix row structure, which 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 elements and non-zero elements) included in each row of the base matrix, and the row order of each row is the row number of the row in the base matrix.

[0053] All rows of the basis matrix can be traversed according to the row order of each row, and the column position of the non-zero element of each row (the column in which the non-zero element is located) and the column identifier (the column identifier here is the serial number of the column in which the non-zero element is located, that is, the nth non-zero element of the column) are stored.

[0054] In a specific implementation, the column position and column identifier of each row of the base matrix are stored according to the row structure of the base matrix to form the second matrix. Figure 4 As shown: First, a base matrix is ​​input, and the column positions and column identifiers of the non-zero elements of each row of the base matrix are stored according to the row structure of the base matrix to form a second matrix, including: obtaining the column position of each non-zero element of each row of the base matrix; storing the column number of the column position of each non-zero element of each row of the base matrix; traversing the base matrix to determine whether each non-zero element of each row is the last non-zero element of the last row of the base matrix; if so, terminating the process, and forming the 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.

[0055] The column position of each non-zero element in the corresponding row can be recorded once according to the row order of each row in the basis matrix, and each row of the basis matrix can be numbered from top to bottom or from bottom to top to obtain the row order of each row.

[0056] 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 can be stored, and it can be 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 indicates that the non-zero element is not the last non-zero element in the last row of the base matrix, and the column position of each non-zero element in each row is traversed, and the column position 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 a non-zero element is determined to be the last non-zero element in the last row of the base matrix, and the generation of the second matrix is ​​completed.

[0057] In one embodiment, the second matrix may be stored in the form of a table, specifically as follows: Figure 5 As shown, the second matrix includes a column position column and a sequence number column (column sequence number).

[0058] 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.

[0059] Step S14: in response to the signal receiving end acquiring the target transmission signal, the signal receiving end analyzes the target transmission signal to acquire the first matrix and the second matrix, decodes the first matrix based on the second matrix, and acquires the target data information.

[0060] 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, and the target transmission signal is sent to a signal receiving end. The signal receiving end obtains the target transmission signal, and the signal receiving end parses the first matrix and the second matrix based on the target transmission signal.

[0061] In the present application, a call to the first matrix based on the second matrix is ​​set to realize the use of the check matrix. Specifically, the data in the second matrix can be read in sequence according to the order of each row of the second matrix. Each row of data in the second matrix represents the position of the column in the base matrix where the non-zero element is located and the number of non-zero items in the column where the non-zero element is located. Then the first matrix is ​​called according to the information.

[0062] Exemplarily, assuming that the first row of data in the second matrix needs to be found, and the first row of data is (column position: 1; serial number 2), then the group corresponding to the first column of data in the first matrix is ​​found, and the second non-zero element of the column is found from the group (directly search from the row position column downward for the row position of the first matrix corresponding to the serial number, for example, if the serial number is 2, search two rows starting from the next row of the row position). In this way, the row position, row state and shift value of the non-zero element stored in the first matrix in the base matrix can be obtained, and the position of the non-zero element in the base matrix can be obtained based on the row position, column position, row state and other information, and then based on the position of the non-zero element in the base matrix, the dimension of the non-zero element and the shift value corresponding to the non-zero element, the specific form of the submatrix (circular shift matrix) corresponding to the non-zero element and the position of the submatrix corresponding to the non-zero element in the check matrix can be obtained.

[0063] In order to perform data alignment, in the present application, after the second matrix is ​​converted into binary data, the data bits in different column positions and different serial numbers may be different. Assuming that the data bit width corresponding to the column position of the first row in the second matrix is ​​2 bits, and the data bit width corresponding to the column position of the second row of the second matrix is ​​3 bits, then invalid data of 1 bit position can be supplemented at the column position of the first row in the second matrix. The invalid data here can be characters that have no effect on the actual data. In this way, data alignment of the second matrix is ​​achieved.

[0064] Exemplarily, assuming that the data bit width of the second matrix is ​​M bits, the data structure of each row thereof, N represents the row position: [M-1:N] the column index position where the non-zero item is located; [N:0] the sequence number of the column where the non-zero item is located; wherein the row order of the second matrix is ​​determined according to the order of the non-zero items of the base matrix of each row.

[0065] For example, first read the first row of data in the second matrix, which represents the column position of the first non-zero item in the first row of the base matrix, and the serial number of the non-zero item in the entire column. The value of [M:N] is the column index position of the non-zero item. The value is used to determine which row of data in the first matrix to be stored, and then the value of [N:0] in the second matrix is ​​used to determine which group of data is selected. Then, the value represented by the first (XK) bits of the group of data is determined as the row index of the non-zero item in the H matrix, the (KP-1) to (KP-3) bits are determined as the row state of the non-zero item in the base matrix, and the (KP-4) to 0 bits are determined as the shift value of the non-zero item.

[0066] By analogy, 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 check matrix data corresponding to the target non-zero elements can be parsed out, the target check matrix data can be decoded, and the target data information can be obtained.

[0067] In one embodiment, the data transmission method provided by the present application also includes: obtaining target second matrix information for each row of the second matrix, and searching the target structural position of the target first matrix information corresponding to the target second matrix information from the first matrix based on the target second matrix information; judging 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 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, updating the data in the first matrix in the vertical direction by row until the column end mark of the last row in the first matrix is ​​encountered, thereby completing the update of the check matrix.

[0068] Specifically, Figure 6As shown, in the decoding process of LDPC, the base matrix will go through horizontal iteration and vertical iteration. Since the second matrix is ​​arranged by row, when the row state in the first matrix indicates that the corresponding non-zero item is the last non-zero item in the row, the second matrix is ​​fed back, and the information corresponding to the data between the non-zero item in the second matrix and the non-zero item in the previous row end state (i.e., a row of the corresponding base matrix) is updated horizontally. When the row state in the first matrix indicates that the corresponding non-zero item is not the last non-zero item in the row, the second matrix is ​​fed back, and the reading of the second matrix and the calling of the first matrix are continued. When the second matrix completes a complete 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 again until the column end mark of each row in the first matrix is ​​encountered. At this time, a complete iteration process is completed, and a judgment is made whether cHT (iteration end condition) is 0. If the result is 0, the check is passed. Otherwise, the first row of the second matrix is ​​read continuously, and a new round of iteration is performed until the check is passed or the maximum number of iterations is reached.

[0069] In this way, the performance of the QC-LDPC check matrix, which is close to the Shannon limit, can be used to achieve efficient error correction, gradually correct the noisy signal through iterative operations, and finally obtain the original information bits.

[0070] In a feasible implementation, the base matrix can be divided into multiple sub-blocks based on the number of variable nodes contained in the base matrix. Each sub-block is used to store variable node information corresponding to the variable node. Multiple sub-blocks are combined to form parallel processing branches to facilitate decoding of the base matrix.

[0071] According to the BP algorithm, for a check node c connected to dc variable nodes, its message update needs to obtain the dc variable node information related to it. In order to achieve high-speed decoding, it is necessary to ensure that a computing unit can obtain dc variable node information at the same time. Here, the base matrix can be divided into multiple sub-blocks according to the rows or columns in the base matrix as variable nodes. Taking the sub-block as the unit, 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) of the variable node serial numbers at the corresponding positions of two adjacent parallel branches is the same. When the decoder calculates at the node, the computing node simultaneously accesses the dc independent storage unit blocks of each branch to obtain the required variable node information, thereby improving the decoding speed.

[0072] It should be understood that although Figure 1 , Figure 2 , Figure 4 as well as Figure 6The steps in the flowchart are shown in sequence as indicated by the arrows, but these steps are not necessarily executed in the order indicated by the arrows. Unless otherwise specified in this document, there is no strict order restriction for the execution of these steps, and these steps can be executed in other orders. Moreover, Figure 1 , Figure 2 , Figure 4 as well as Figure 6 At least part of the steps may include multiple sub-steps or multiple stages. These sub-steps or stages are not necessarily executed at the same time, but can be executed at different times. The execution order of these sub-steps or stages is not necessarily sequential, but can be executed in turn or alternately with other steps or at least part of the sub-steps or stages of other steps.

[0073] In one embodiment, Figure 7 As 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 a parsing module 24, wherein: A generating module 20 is 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 21 is used to divide the 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; A forming module 22 stores non-zero element information of a base matrix based on a column structure of the base matrix to form a first matrix, and stores non-zero element information of the base matrix based on a row structure of the base matrix to form a second matrix; A sending 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; The parsing module 24 is used for obtaining the target transmission signal in response to the signal receiving end. 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.

[0074] In one embodiment, the above device can implement another implementation of the data transmission method, and the specific steps are as follows: The check matrix is ​​divided to obtain multiple sub-matrices, and values ​​are assigned to the sub-matrices of each matrix type. The base matrix is ​​constructed based on the matrix values ​​corresponding to the sub-matrices of each matrix type, including: Obtaining a matrix type, dividing the check matrix according to the matrix type, and obtaining 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 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.

[0075] In one embodiment, the above device can implement another implementation of the data transmission method, and the specific steps are as follows: Storing non-zero element information of the base matrix based on the column structure of the base matrix to form a first matrix, and storing non-zero element information of the base matrix based on the row structure of the base matrix to form a second matrix includes: The row position, row identifier and shift value information of the non-zero element of each column of the base matrix are stored according to the column structure of the base matrix to form a first matrix; The column positions of the non-zero elements of each row of the base matrix and the column identifiers are stored according to the row structure of the base matrix to form a second matrix.

[0076] In one embodiment, the above device can implement another implementation of the data transmission method, and the specific steps are as follows: 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 includes: Get the row position of each non-zero element in each column of the basis matrix; 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; 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.

[0077] In one embodiment, the above device can implement another implementation of the data transmission method, and the specific steps are as follows: Storing the column positions and column identifiers of the non-zero elements of each row of the base matrix according to the row structure of the base matrix to form a second matrix includes: 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.

[0078] In one embodiment, the above device can implement another implementation of the data transmission method, and the specific steps are as follows: Decoding the first matrix based on the second matrix to obtain 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; Decode the target check matrix data to obtain the target data information.

[0079] In one embodiment, the above device can implement another implementation of the data transmission method, and the specific steps are as follows: The method also 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; Based on the target structure position, determine 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, thereby completing the updating of the check matrix.

[0080] For the specific definition of the data transmission device, please refer to the definition of the data transmission method above, which will not be repeated here. Each module in the above-mentioned data transmission device can be implemented in whole or in part by software, hardware and a combination thereof. The above-mentioned modules can be embedded in or independent of the processor in the computer device in the form of hardware, or can be stored in the memory of the computer device in the form of software, so that the processor can call and execute the operations corresponding to the above modules.

[0081] In one embodiment, the present application also provides a computer program product, which includes a computer program stored on a non-transitory computer-readable storage medium, and the computer program includes program instructions. When the program instructions are executed by a computer, the computer can execute the data transmission methods provided by the above methods.

[0082] In one embodiment, a computer device is provided. The computer device may be a server, and its internal structure diagram may be as follows: Figure 8 As 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 data used 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, a data transmission method is implemented.

[0083] Those skilled in the art will understand that Figure 8 The structure shown in the figure 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 certain components, or have a different arrangement of components.

[0084] In one embodiment, a computer device is provided, including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements the following steps when executing the computer program: Step S10, 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.

[0085] Step S11, divide the 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.

[0086] Step S12, storing non-zero element information of the base matrix based on the column structure of the base matrix to form a first matrix, and storing non-zero element information of the base matrix based on the row structure of the base matrix to form a second matrix.

[0087] 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.

[0088] Step S14: in response to the signal receiving end acquiring the target transmission signal, the signal receiving end analyzes the target transmission signal to acquire the first matrix and the second matrix, decodes the first matrix based on the second matrix, and acquires the target data information.

[0089] In one embodiment, when the processor executes the computer program, the processor further implements the following steps: The check matrix is ​​divided to obtain multiple sub-matrices, and values ​​are assigned to the sub-matrices of each matrix type. The base matrix is ​​constructed based on the matrix values ​​corresponding to the sub-matrices of each matrix type, including: Obtaining a matrix type, dividing the check matrix according to the matrix type, and obtaining 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 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.

[0090] In one embodiment, when the processor executes the computer program, the processor further implements the following steps: Storing non-zero element information of the base matrix based on the column structure of the base matrix to form a first matrix, and storing non-zero element information of the base matrix based on the row structure of the base matrix to form a second matrix includes: The row position, row identifier and shift value information of the non-zero element of each column of the base matrix are stored according to the column structure of the base matrix to form a first matrix; The column positions of the non-zero elements of each row of the base matrix and the column identifiers are stored according to the row structure of the base matrix to form a second matrix.

[0091] In one embodiment, when the processor executes the computer program, the processor further implements the following steps: 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 includes: Get the row position of each non-zero element in each column of the basis matrix; 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; 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.

[0092] In one embodiment, when the processor executes the computer program, the processor further implements the following steps: Storing the column positions and column identifiers of the non-zero elements of each row of the base matrix according to the row structure of the base matrix to form a second matrix includes: 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.

[0093] In one embodiment, when the processor executes the computer program, the processor further implements the following steps: Decoding the first matrix based on the second matrix to obtain 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; Decode the target check matrix data to obtain the target data information.

[0094] In one embodiment, when the processor executes the computer program, the processor further implements the following steps: The method also 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; Based on the target structure position, determine 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, thereby completing the updating of the check matrix.

[0095] In one embodiment, a computer-readable storage medium is provided, on which a computer program is stored, and when the computer program is executed by a processor, the following steps are implemented: Step S10, 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.

[0096] Step S11, divide the 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.

[0097] Step S12, storing non-zero element information of the base matrix based on the column structure of the base matrix to form a first matrix, and storing non-zero element information of the base matrix based on the row structure of the base matrix to form a second matrix.

[0098] 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.

[0099] Step S14: in response to the signal receiving end acquiring the target transmission signal, the signal receiving end analyzes the target transmission signal to acquire the first matrix and the second matrix, decodes the first matrix based on the second matrix, and acquires the target data information.

[0100] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented: The check matrix is ​​divided to obtain multiple sub-matrices, and values ​​are assigned to the sub-matrices of each matrix type. The base matrix is ​​constructed based on the matrix values ​​corresponding to the sub-matrices of each matrix type, including: Obtaining a matrix type, dividing the check matrix according to the matrix type, and obtaining 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 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.

[0101] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented: Storing non-zero element information of the base matrix based on the column structure of the base matrix to form a first matrix, and storing non-zero element information of the base matrix based on the row structure of the base matrix to form a second matrix includes: The row position, row identifier and shift value information of the non-zero element of each column of the base matrix are stored according to the column structure of the base matrix to form a first matrix; The column positions of the non-zero elements of each row of the base matrix and the column identifiers are stored according to the row structure of the base matrix to form a second matrix.

[0102] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented: 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 includes: Get the row position of each non-zero element in each column of the basis matrix; 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; 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.

[0103] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented: Storing the column positions and column identifiers of the non-zero elements of each row of the base matrix according to the row structure of the base matrix to form a second matrix includes: 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.

[0104] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented: Decoding the first matrix based on the second matrix to obtain 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; Decode the target check matrix data to obtain the target data information.

[0105] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented: The method also 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; Based on the target structure position, determine 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, thereby completing the updating of the check matrix.

[0106] Those of ordinary skill in the art can understand that all or part of the processes in the above-mentioned embodiment methods can be implemented by instructing the relevant hardware through a computer program, and 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-mentioned methods. Among them, any reference to memory, storage, database or other media used in the embodiments provided in this application may include non-volatile and / or volatile memory. Non-volatile memory may include read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM) or flash memory. Volatile memory may 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 (DDRSDRAM), enhanced SDRAM (ESDRAM), synchronous forwarding path (Synchlink) DRAM (SLDRAM), memory bus (Rambus) direct RAM (RDRAM), direct memory bus dynamic RAM (DRDRAM), and memory bus dynamic RAM (RDRAM), etc.

[0107] The technical features of the above embodiments may be combined arbitrarily. To make the description concise, 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, they should be considered to be within the scope of this specification.

[0108] The above-mentioned embodiments only express several implementation methods of the present application, and the descriptions thereof are relatively specific and detailed, but they cannot be understood as limiting the scope of the invention patent. It should be pointed out that, for ordinary technicians in this field, several variations and improvements can be made without departing from the concept of the present application, 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 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; Based on the column structure of the base matrix, the non-zero element information of the base matrix is ​​stored to form a first matrix, and based on the row structure of the base matrix, the non-zero element information of the base matrix is ​​stored to form a second 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 to acquire a first matrix and a second matrix, decodes the first matrix based on the second matrix, and acquires target data information.

2. The method according to claim 1, characterized in that The step of 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 comprises: 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 The storing of non-zero element information of the base matrix based on the column structure of the base matrix to form a first matrix, and the storing of non-zero element information of the base matrix based on the row structure of the base matrix to form a second matrix comprises: The row position, row identifier and shift value information of the non-zero element of each column of the base matrix are stored according to the column structure of the base matrix to form a first matrix; The column positions of the non-zero elements of each row of the base matrix and the column identifiers are stored according to the row structure of the base matrix to form a second matrix.

4. The method according to claim 3, characterized in that The step of storing the row position, row identifier, and shift value information of the non-zero elements of each column of the base matrix according to the column structure of the base matrix to form a first matrix 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; 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.

5. The method according to claim 3, characterized in that: The step of storing the column positions and column identifiers of the non-zero elements of each row of the base matrix according to the row structure of the base matrix to form a second 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.

6. The method according to claim 1, characterized in that The decoding the first matrix based on the second matrix to obtain 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; The target check matrix data is decoded to obtain target data information.

7. The method according to claim 1, characterized in that The method further comprises: 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, thereby completing the updating of the check matrix.

8. 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, used to divide the 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; A forming module stores non-zero element information of a base matrix based on a column structure of the base matrix to form a first matrix, and stores non-zero element information of the base matrix based on a row structure of the base matrix to form a second 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 to obtain a target transmission signal in response to a signal receiving end, the signal receiving end parses the target transmission signal to obtain a first matrix and a second matrix, decodes the first matrix based on the second matrix, and obtains target data information.

9. 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 7 are implemented.

10. 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 7 are implemented.

Citation Information

Patent Citations

  • Information processing method, device and communication device

    CN111066253A

  • Check matrix construction method and system, electronic equipment and computer storage medium

    CN116054844A

  • Data transmission method, device and equipment and computer readable storage medium

    CN116112125A

  • Error correction coding check matrix generation method and device and storage medium

    CN117040543A

  • Method, device and equipment for improving throughput rate of QC-LDPC decoder

    CN117375636A

Cited By

  • Data processing method and device, electronic equipment, storage medium and program product

    CN120934542A