Coding and decoding method for low-density parity check codes on 2m-element integer ring

By designing low-density parity codes on a 2m-element integer ring and optimizing the FFT-BP decoding algorithm, the problem of low channel coding efficiency in high-order modulation systems is solved, and efficient coding and decoding performance is achieved, which is suitable for multi-user systems and grid code detection.

CN119543962APending Publication Date: 2025-02-28BEIHANG UNIV
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411342397.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-09-25
Publication Date
2025-02-28

AI Technical Summary

Technical Problem

The prior art is difficult to realize efficient channel coding in higher-order modulation systems, especially in multi-user systems, where linear detection methods have performance losses, and grid code detection requires a special encoding structure.

Method used

A low-density parity code encoding and decoding method based on 2m-element integer ring is proposed. By optimizing the design of the check matrix H and the FFT-BP decoding algorithm, the encoding of medium and short code length and arbitrary code rate is realized. It is suitable for 2m-PAM and 22m-QAM modulation, and it is related to grid code theory, and is suitable for LR and IF detection.

Benefits of technology

It realizes efficient channel coding in high-order modulation systems, improves the BLER performance of uplink MIMO systems, supports overload transmission, and reduces the decoding complexity.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119543962A_ABST
    Figure CN119543962A_ABST
Patent Text Reader

Abstract

The invention provides a coding and decoding method for a low-density parity check code on a 2m-element integer ring. The coding and decoding method comprises the following steps of: 1, carrying out digital coding; step 2, optimization design of low-density parity check code word construction on a 2m-element integer ring; step 3, an efficient decoding algorithm of the integer ring low-density parity check code; 4, digital modulation; 5, using the LDPC code on the 2m-element integer ring in a single-input single-output system; and step 6, using the LDPC code on the 2m-element integer ring in a lattice code multiple access system. The LDPC code on the 2m-element integer ring designed by the invention is simple in design process and stable in performance under the medium and short code length. According to the method, the FFT algorithm is applied to the BP decoding process of the LDPC code on the 2m-element integer ring, the decoding complexity is reduced, and the realizability of the method on a hardware system is improved.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention provides a 2 m The codeword construction and decoding method of the 1-element integer ring LDPC code can obtain excellent performance close to the Shannon limit for point-to-point communication systems. For multi-user systems, this coding method has the algebraic structure characteristics of lattice codes and can be directly applied to physical layer network coding, dirty paper coding, etc. The present invention belongs to the fields of communication and information systems, information theory and coding, and signal and information processing. [Background technology]

[0002] Channel coding is of great significance in the field of communications. It plays a key role in improving the channel capacity of communication systems and reducing error rates. Low-density parity-check (LDPC) code is a classic channel coding method with excellent performance close to the Shannon limit and low decoding complexity, so it is widely used.

[0003] 5G / 6G communication systems require high spectrum efficiency, which is proportional to the number of bits transmitted per symbol. This requires the system to adopt high-order modulation methods, such as the mainstream 2 m -PAM modulation and 2 2m -QAM modulation, etc. For high-order modulation systems, there are currently two mainstream coding modes: "binary code-oriented" methods and "modulation-oriented" methods.

[0004] The coding methods for "binary codes" include bit-interleaved coded modulation with iterative decoding (BICM-ID) [G. Caire, G. Taricco, and E. Biglieri, "Bit-interleaved coded modulation," IEEE Transactions on Information Theory, vol. 44, no. 3, pp. 927-946, 1998.], trellis-coded modulation (TCM) [X. Li and J. A. Ritcey, "Trellis-coded modulation with bit interleaving and iterative decoding," IEEE Journal on Selected Areas in Communications, vol. 17, no. 4, pp. 715-724, 1999.], and superposition-coded modulation (SCM) [S. Gadkari and K. Rose, "Time-division versus superposition coded modulation schemes for unequal error protection," IEEE Transactions on Information Theory, vol. 44, no. 3, pp. 927-946, 1998.] on Communications, vol. 47, no. 3, pp. 370-379, 1999.], etc. They first encode on the 2-tuple domain, and then map each m 2-tuple metadata "many-to-one" to 2 m Such methods require an outer loop iterative decoding to achieve performance close to the Shannon limit, which means that soft information needs to be exchanged multiple times between the high-order demodulator and the binary decoder.

[0005] The modulation-oriented q-ary LDPC code on Galois Fields (GF) is directly encoded and decoded on GF(q), and then the codewords are mapped "one-to-one" to q constellation points [M.-C.Chiu, "Bandwidth-efficient modulation codes based on nonbinary irregular repeat-accumulate codes," IEEE Transactions on Information Theory, vol.56, no.1, pp.152-167, 2009.], and no outer loop iteration is required for demodulation and decoding.

[0006] Channel coding needs to match the multi-user detection or precoding of the actual communication system. For multi-user uplink, the optimal detection method is maximum likelihood (ML) detection, but its complexity increases exponentially with the number of users, that is, the number of data streams, and is not feasible when the number of streams is large. Linear detection methods, such as zero-forcing (ZF) and minimum mean square error (MMSE), have significant performance losses [D. Tse and P. Viswanath, Fundamentals of Wireless Communication, Cambridge University Press, 2005.]. The successive interference cancellation (SIC) method has a significant performance improvement over the linear detection method, but it still cannot be applied to systems with high-order modulation "overload transmission" (the number of users K is greater than the number of receiving antennas N), and there is a problem of high delay.

[0007] Existing results show that lattice reduction (LR) detection and integer-forcing (IF) linear receivers can achieve efficient interference processing [B.Nazer and M.Gastpar, "Compute-and-forward: Harnessing interference through structured codes," IEEE Transactions on Information Theory, vol.57, no.10, pp.6463-6486, Oct.2011.] and [J.Zhan, B.Nazer, U.Erez, and M.Gastpar, "Integer-forcing linear receivers," IEEE Transactions on Information Theory, vol.60, no.12, pp.7661-7685, Dec.2014.]. The core idea is to change the detection target and relax the detection and decoding of each stream data to the detection and decoding of "integer combinations of multi-stream data". Compared with linear detection, LR and IF can achieve "full diversity gain" and support overload transmission. Essentially, LR and IF detection is based on the concept of solving integer combinations of multi-stream data in lattice codes in network information theory, Compute-Forward (CF), and Physical-Layer Network Coding (PNC).

[0008] LR and IF detection require that the channel coding is trellis coding. The BICM-ID, TCM and SCM mentioned above are not trellis coding. The coding on GF(q) is trellis coding only when q is a prime number. Otherwise, for q=2 m (m>1, m is an integer) for non-prime numbers, GF(2 m ) does not conform to 2 m The integer operation rules on the integer ring of q=2 are not lattice codes and cannot be used for LR and IF detection. m LDPC code of binary integer ring, 2 m The sequence of metasymbols is mapped one-to-one to 2 m -PAM constellation point. Such a coding method can be linked with the trellis code theory and thus applied to LR and IF detection.

[0009] The present invention proposes a method based on 2 mThe present invention provides a channel coding method for LDPC codes with medium and short code lengths in a tuple integer ring and an optimization algorithm for codeword construction. In particular, considering that soft decision decoding based on posterior probability is necessary for decoding performance to approach the limit, and improves the performance of hard decision decoding by several decibels (dB) [S.Lin and DJCostello, Error Control Coding, 2nded., Pearson, 2004.], the present invention proposes a corresponding FFT-BP decoding algorithm. As a typical use case, the encoding and decoding method of the present invention shows excellent bit error rate performance in an uplink multiple input multiple output (MIMO) system based on IF detection. [Summary of the invention]

[0010] (I) Purpose of the invention:

[0011] The object of the present invention is to provide a 2-bit m The encoding and decoding method of LDPC codes based on integer rings of 1, 2, and 4 elements allows the encoding to adopt medium and short code lengths and arbitrary code rates, and is suitable for mainstream 2 m -PAM modulation and 2 2m -QAM modulation.

[0012] Furthermore, the present invention aims to design a high-order modulation coding method suitable for LR and IF detection to improve the BLER (Block Error Rate) performance of the uplink MIMO system.

[0013] (II) Technical solution:

[0014] The present invention is a kind of m LDPC code encoding and decoding method over the ring of integers, see Figure 7 As shown, the specific implementation steps are as follows:

[0015] Step 1: Digital coding:

[0016] Known in 2 m On the integer ring, addition and multiplication operations satisfy modulo 2 m The law:

[0017]

[0018] In the formula, a and b are both 2 m The elements in the ring of integers, a,b∈{0,1,…,2 m -1}. mod 2 m Indicates 2 m Modulo. Matrix operations also follow the same rules.

[0019] Use row vector b T∈{0,1,…,2 m -1} k Represents a message sequence, then the encoding process can be expressed as:

[0020]

[0021] There is c T ∈{0,1,…,2 m -1} n , c is the codeword formed by encoding. In the formula, S is an n×k matrix, and the value range of its elements is {0,1,…2 m -1}, is called the generator matrix. n is called the codeword length (code length), and k is called the message sequence length.

[0022] The receiver needs to verify the judged codeword Whether the verification equation is satisfied, that is, whether:

[0023]

[0024] Where H is a 2 m A matrix over the ring of n-element integers is called a check matrix.

[0025] Step 2: 2 m Optimization design of codeword construction of low-density parity-check codes over a ring of integers (the first core algorithm of the present invention):

[0026] In 2 m In the integer ring of , consider a single stream message data, each frame message length is k, codeword length is n. The message codeword in each frame data is represented by row vector b T Represents that its length is k. After channel coding, the codeword is row vector c T , with a length of n.

[0027] a) determining the positions of non-zero elements in the check matrix H;

[0028] Each LDPC-coded check matrix H corresponds to a Tanner graph with check nodes, variable nodes, and edges. Each check node in the Tanner graph represents a check equation in the linear code, that is, it corresponds to a row in H; each variable node represents a symbol in the codeword, that is, it corresponds to a column in H; each edge corresponds to a non-zero element in H, and the edge connects the check node corresponding to the row where the non-zero element is located and the variable node corresponding to the column where the non-zero element is located. The weight of the edge is the value of the non-zero element, and the value range is {0,…,2 m-1}. The number of edges connected to each node, that is, the number of non-zero elements in each row or column of H, is called the degree of the node. Starting from a variable node, traveling along non-repeating edges and nodes for a circle and returning to the variable node again, this route is called a ring, and the number of edges on the ring is called the ring length. The ring lengths in the Tanner graph are all even numbers not less than 4.

[0029] The shortest cycle length in the Tanner graph affects the performance of the BP decoding algorithm. When the shortest cycle length is small, such as 4, the errors of soft information in the decoding process are easily superimposed with iterations, destroying the independence of soft information, thereby significantly reducing the efficiency of LDPC decoding. Therefore, the progressive edge-growth (PEG) algorithm is used to construct the check matrix H with a larger shortest cycle length. [XYHu, E.Eleftheriou, and DMArnold, "Progressive edge-growth Tanner graphs," IEEE Global Telecommunications Conference, vol. 2, pp. 995-1001, 2001.]

[0030] Consider a full-rank check matrix H, with nk rows and n columns. As mentioned above, n is the code length and k is the message sequence length. n represents a variable node, and its degree sequence is The degree of the jth variable node is D v [j]; use represents a check node, and its degree sequence is The degree of the i-th check node is The entire set of check nodes is denoted as V ζ , with the variable node v j The connected edges are represented as Where v j The αth edge connected is denoted by If the edge is simultaneously i Connected, remember If the edge is not connected to any check node, Is empty.

[0031] If the variable node v j As the root node, the Tanner graph is expanded layer by layer into a tree. In the tree, all variable nodes and their child check nodes at the same depth are called a layer. From top to bottom, the number of layers is 0, 1, .... Definition are all the check nodes contained in the 0th to the vth layer of the tree, and the set of the remaining check nodes is The entire set of nodes that are checkpoints for each other The complement of

[0032] The PEG algorithm constructs H by gradually adding edges to the Tanner graph. It is necessary to first determine the degree of each variable node, that is, given D v For example, for a (3,6)-regular LDPC code with 3 edges connecting each variable node and 6 edges connecting each check node, D v ={3,3,…,3}. The PEG algorithm is simple to implement and can obtain the position of each edge in the Tanner graph. The basic process is shown in step 2 of the specific implementation method.

[0033] b) determining the values ​​of non-zero elements in the check matrix H;

[0034] After determining the position of the edge through the PEG algorithm, we determine the weight of each edge, that is, the specific value of the non-zero elements in the check matrix H, by randomly assigning values ​​and verifying the full rank.

[0035] The value range of non-zero elements is {0,1,…,2 m -1}, the total number of non-zero elements in H is ω θ (θ=1,…,2 m -1) represents the number of θ in H, but is the frequency of non-zero elements taking the value of θ. The method of taking the value of non-zero elements in H is divided into two steps: "random assignment" and "verification of row full rank".

[0036] Random assignment: First, we need to determine For the LDPC codes with medium and short code lengths involved in the present invention, an experimental method can be used. Then, according to the determined frequencies of each non-zero element, a weight is randomly assigned to each edge to form a check matrix H that satisfies a large minimum loop length and a reasonable frequency of each non-zero element.

[0037] Verify that the row is full rank: calculate whether H is in 2 m The row rank of the ring of integers is full. First, we give the definition of zero factor and its order.

[0038] If there are non-zero elements a and b, Then a and b are called zero factors; if for a non-zero element a, only when b = 0, Then a is called a non-zero factor. m In the ring of integers, a is a zero factor if and only if a is nonzero even.

[0039] In 2 m The Hermitian standard form B is obtained by reversible transformation of H on the integer ring. Q is 2m Invertible matrices over the ring of integers modulo 2. The Hermite normal form B satisfies the following properties:

[0040] (1) Each row of the first r rows of B contains at least one non-zero divisor which is 1. If the first non-zero divisor 1 in the i-th row of B is in the k-th i (i = 1, 2, …, r) column, then in the last n - k - r rows, the elements in the k1, k2, …, k r -th columns are all 0, and the elements in the remaining columns are all zero divisors.

[0041] (2) k1 < k2 < … < k r ;

[0042] (3) The k1, k2, …, k r -th columns in B are all the first r columns of the identity matrix I m .

[0043] Then the rank of H is r.

[0044] If H is not row full rank over the ring of integers modulo 2, that is, r < n - k, then it is necessary to reassign the non-zero elements in H until H is row full rank over the ring of integers modulo 2 m . m

[0045] c) The nearest nonzero codeword search (NNCS) algorithm evaluates the performance of the parity-check matrix H;

[0046] The error-correcting ability is an important indicator for evaluating and comparing channel coding methods. In channel coding, the error-correcting ability is usually measured by the minimum code distance. The minimum code distance d min (H) refers to the minimum Hamming distance between any two codewords in the codebook C determined by the parity-check matrix H. The Hamming distance D(c i , c j ) is the number of different code element symbols in the same positions of two codewords c i and c j . The minimum code distance can be expressed as:

[0047]

[0048] The larger the minimum code distance, the greater the difference between different codewords, which allows more errors to be corrected and stronger noise to be resisted. We hope to find such a parity-check matrix H whose minimum code distance of the allowable codewords is as large as possible, so as to have a higher error-correcting ability.

[0049] The method of the present invention is to first estimate the minimum code distance of the parity-check matrix H, and then adjust H according to the relevant information generated in the estimation. ​

[0050] Since LDPC code is a linear block code, its allowed codewords are linear combinations of the columns of the generator matrix S. For linear block codes, its minimum code distance is equal to the minimum code weight of non-zero codewords, that is, the minimum number of non-zero code elements in a non-zero codeword. Therefore, we transform the problem into finding the minimum code weight of the codeword corresponding to the check matrix H, and use this to evaluate the performance of the check matrix H.

[0051] The present invention adopts the improved NNCS algorithm to calculate 2 m The minimum code distance of the LDPC code [X.Y.Hu, M.P.Fossorier, and E.Eleftheriou, "On the computation of the minimum distance of low-density parity-check codes," IEEE International Conference on Communications, vol.2, pp.767-771, 2004.] has low computational complexity and more accurate results. It is a very practical minimum code distance estimation algorithm. The steps are shown in step 2 of the specific implementation method.

[0052] d) 2-opt local search optimization;

[0053] 2-opt local search is a simple and effective local search algorithm for solving optimization problems. The essence is to continuously improve the current solution until a local optimal solution is found. It may not guarantee to find the global optimal solution, but in many practical problems, 2-opt local search can often get a good approximate solution.

[0054] The present invention adopts 2-opt local search algorithm to find the check matrix H that meets the requirements, and the steps are as follows:

[0055] 1. Use the NNCS algorithm to obtain the codeword c with the minimum code weight min After finding the set of non-zero element positions Q, find the set of non-zero element positions in the column corresponding to Q in H = {(i, j)|H i,j ≠0,j∈Q}.

[0056] 2. Choose to perform one of the following two operations with equal probability:

[0057] Re-randomize the elements of H that belong to the positions in P;

[0058] Re-randomly assign values ​​to the elements of H that belong to the positions in P, and the range of assignment is {1,…,2 m -1}, the probability of assigning a value to a certain element is consistent with the random probability, that is

[0059] The check matrix after the operation is recorded as H′, and the check matrix before the operation is still recorded as H. Similarly, after each operation, it is necessary to confirm that H′ is a full row rank matrix; if H′ is not a full row rank matrix, it is necessary to re-execute the operation in step i or ii until H′ is a full row rank matrix.

[0060] 3. Use the NNCS algorithm to solve the minimum code distance Md′ corresponding to the code word H′ and the code word c′ with the minimum code weight min and the non-zero element position set Q′. If Md′ is greater than Md, it means that the error correction capability of the check matrix H′ corresponding to the codeword set is improved compared with H. We retain the new result and assign H to H′, Md to Md′, and c min Assign it to c′ min , the set Q is assigned to Q′; if Md′ is not greater than Md, the results remain unchanged.

[0061] Perform the next round of 2-opt optimization and repeat steps 1-3 for several times until the minimum code distance is not less than the set value or the preset maximum number of iterations is reached.

[0062] e) Calculate the generator matrix S;

[0063] The calculation steps to generate the matrix S are:

[0064] 1. Perform a reversible row transformation on the full-rank check matrix H to obtain its m The Hermitian canonical form B over the ring of integers, Q represents the process of reversible row transformation. Then, we transform B into a column-wise form [I n-1 K], where I n-k is the nk-dimensional identity matrix, K is 2 m Any matrix of (nk)×k dimensions over the ring of n-ary integers.

[0065] 2. Calculation H (1) It is H in 2 m Generalized {1}-inverse over the ring of numpy integers.

[0066] 3. Take The non-zero columns of , that is, the generator matrix S is obtained. n is the nk-dimensional identity matrix.

[0067] Step 3: Efficient decoding algorithm for integer ring low-density parity-check codes (the second core algorithm of the present invention):

[0068] The present invention adopts the fast Fourier transform-belief propagation (FFT-BP) algorithm as 2 m The decoding algorithm of LDPC code on the integer ring of n. T Sent to the receiving end through the channel, the receiving end receives the first-class signal y T Let c j Indicates c T The receiving end can calculate the jth sign bit of y based on T Calculate c j The posterior probability p(c j =θ|h T )θ∈{0,…,2 m -1}.

[0069] FFT-BP algorithm according to p(c j =θ|h T ) to get the decoding result Decoding is performed by passing the probability information of each node along each edge in the Tanner graph. The FFT-BP algorithm is an iterative algorithm. During each iteration, the probability information of each node will change. The probability information here refers to a length of 2 m The vector of θ, where the θth element represents a probability of taking the value θ-1 (θ=1,…,2 m ). After the κth iteration, the probability information of the jth variable node is In the lth iteration, the probability information transmitted from the jth variable node to the ith check node is The probability information transmitted from the i-th check node to the j-th variable node is use express The representation of the single element in the other two probability information is similar. The ordinal set of the check nodes connected to the jth variable node is recorded as The ordinal set of variable nodes connected to the i-th check node is recorded as

[0070] The steps of the FFT-BP algorithm are as follows:

[0071] 1. Initialize the probability information of all variable nodes to the posterior probability calculated outside the decoder:

[0072]

[0073] It is irrelevant to the decoding algorithm and is called "external information".

[0074] The information transmitted from the initialization check node to the variable node is equally distributed:

[0075]

[0076] Let the number of iterations κ=1.

[0077] 2. Start the κth iteration. Update the probability information transmitted by the variable node to the check node as external information The probability information transmitted by all check nodes connected to the variable node in the κ-1th iteration When the j-th variable node transmits information to the i-th check node connected to it, the information transmitted by the i-th check node itself needs to be excluded to avoid forming a small loop. Therefore, first Assign all elements of 0 to 0, and then do the following calculation:

[0078]

[0079] In the formula, γ1 is to ensure The variables set by represents the ordinal numbers of the check nodes other than i connected to the j-th variable node, and these ordinal numbers are recorded as i′ in the formula.

[0080] It is known that the i-th check node corresponds to the i-th check equation:

[0081]

[0082] when When the sequence number is known to be The probability distribution of all symbols of j′ =θ)θ∈{0,…,2 m -1}, and assuming that the values ​​of each symbol are independent of each other, the probability distribution p(c j =θ):

[0083]

[0084] In the above formula, γ2 is considered when the zero factor is taken into account. Therefore, the probability information of each edge passing to the i-th check node can be calculated to obtain the probability information of each edge passing to the i-th check node. The probability information of the variable nodes. The calculation formula is as follows:

[0085]

[0086] γ3 is to ensure The above formula can be reduced in complexity by using Fast Fourier Transform (FFT). If we do L-point FFT on a vector x of length L to get vector X, then x and X are a Fourier transform pair, denoted as X = FFT{x}, x = IFFT{X}. For a set of vectors of length L, we can use Represents the vector obtained by multiplying the elements of corresponding positions of all vectors in Γ, that is:

[0087]

[0088] In the formula, x′ is a vector; x′[θ] represents its θth element and is a scalar.

[0089] Formula (10) can be simplified as:

[0090]

[0091] Where ψ′ represents the Fourier transform of the probability information transmitted from the check node to the variable node; It represents the probability information transmitted from the j′th variable node to the i-th check node during the κ-th iteration; Indicates the probability information transmitted from the i-th check node to the j-th variable node during the κ-th iteration. is its θth element; θ′ satisfies the verification equation After the κth iteration, the probability information of all variable nodes It is external information The probability information transmitted by all check nodes connected to the variable node in the κth iteration Element-wise multiplication of .

[0092]

[0093] The γ4 in the above formula is to ensure And set the variables.

[0094] Equations (7), (12) and (13) are the main calculation contents of each iteration.

[0095] 3. Make hard decisions on each symbol in the codeword:

[0096]

[0097] If the judgment If all nk verification equations are satisfied or the number of iterations κ has reached the set maximum value, the iteration is stopped and the judgment result is output. and the posterior probability Otherwise, let κ=κ+1 and repeat steps 2 and 3.

[0098] When the verdict When all the check equations are satisfied, there exists a unique 2 m Vectors over the Ring of Integers satisfy Such As the decision result of the message sequence. The calculation method is Where S (1) It is S in 2 m Generalized {1}-inverse over the ring of integers, S (1) The calculation method of H (1) same.

[0099] During each iteration, the number of floating point multiplications is 2. m ×[(10+m)E total -5n+2k], where E total is the total number of edges in the Tanner graph, that is, the number of non-zero elements in H. This shows that the decoding complexity of the present invention is basically proportional to the code length n, which meets the demand for fast decoding in the communication system.

[0100] Step 4: Digital Modulation:

[0101] The data stream sequence after channel coding is mapped symbol by symbol into 2 m -The symbol sequence of PAM modulation is as follows:

[0102]

[0103] Among them, γ5 is the energy normalization factor, ensuring that these 2 m The average energy of the constellation points is 1, that is, E[‖x T ‖ 2 ] / n=1.

[0104] For the complex model, that is, the model where the signal can be divided into two mutually orthogonal components, two independent coding and modulation can be used, transmitted in the in-phase and quadrature parts respectively, to form an I / Q 2 2m -QAM modulation. This conforms to the 2 m -PAM and 2 2m -QAM modulation.

[0105] Step 5: 2 mThe use of LDPC codes over the integer ring in single-input single-output (SISO) systems:

[0106] Considering a single-user uplink communication system, the following settings are made for the communication system model used for bit error rate simulation: the user uses a single antenna, and the base station receiver is also equipped with a single antenna. A fixed channel model is used, that is, the channel coefficient is always 1, see the received signal expression below.

[0107] a) Codeword Design

[0108] Select the appropriate code length n and coding rate R code After that, the message sequence length k can be calculated as:

[0109] k=n·R code (16)

[0110] Then select the appropriate variable node degree sequence D v , you can calculate the check matrix H and the generator matrix S according to the operation sequence in step 1.

[0111] b) Sending and receiving signals

[0112] The message sequence b generated by the user T Assuming a memoryless, equally probable source, the encoding and modulation process is as described in step 3, generating the codeword c T and 2 m -PAM symbol sequence x T Receive signal y T The expression is:

[0113] y T =x T +z T (17)

[0114] The z in the formula T The mean is 0 and the variance is The signal-to-noise ratio of this system is

[0115] c) Detection and decoding

[0116] Without considering the correlation between symbols, the posterior probability p(c j =θ|y T can be approximated as p(c j =θ|y i ), the calculation formula is:

[0117]

[0118] γ6 is still the normalization factor, ensuring By passing the posterior probability to the FFT-BP decoder, the message sequence b sent by the user can be recovered T .

[0119] d) Simulation and performance evaluation

[0120] Consider m=2, m=3 and m=4, which correspond to LDPC codes on 4-ary, 8-ary and 16-ary integer rings respectively, and the modulation modes are 4-PAM, 8-PAM and 16-PAM respectively, and record the frame error rate (FER) results. m LDPC codes on the tuple integer ring can achieve excellent performance with low decoding complexity. See step 5 of the specific implementation method for details.

[0121] Step 6: 2 m The use of LDPC codes over the integer ring in lattice-code multiple-access (LCMA) systems:

[0122] When the transmitter of the information sends multiple streams of message data at the same time, m As a trellis code, LDPC codes over the integer ring can be applied to LR and IF detection, where the detection method of integer combinations of multi-stream data needs to be considered.

[0123] Here we consider a K-user single-cell uplink multiple access model, that is, the communication of each cell is not interfered by other cells. For the clarity and simplicity of the model, the following settings are made: each user is equipped with a single antenna, and the base station receiver is equipped with N antennas. There is no inter-symbol interference in the model, which can be ensured by adopting orthogonal frequency division multiplexing (OFDM). Consider a flat fading model, that is, the channel coefficient of each coding block remains unchanged. Following the convention of studying uplink multi-user systems, consider an open-loop system, in which the base station receiver does not provide a feedback link to give the transmitter channel state information (CSI) or adaptive coding modulation (ACM) information. Each user transmits at the same target rate. The base station knows the channel state information H channel .

[0124] The relevant steps are as follows:

[0125] a) Codeword Design

[0126] Consistent with the design method in step 5 a), all users use the same encoder.

[0127] b) Sending a signal

[0128] Let user s's 2 m The sequence of meta-messages is represented by a row vector Indicates that s = 1, ..., K, k is the length of the message sequence, It is called first-class message. The message data of all K users can be expressed in matrix B = [b1,…,b K ] T The size is K×k. Use the coding method designed in step a) to encode the message sequence of each user to obtain the codeword Each codeword is a stream of data sent by a user, and K users send K streams of data in total. Let c s [t] means The tth sign bit of , t = 1,…,n. Let column vector c[t] = [c1[t],…,c K [t]] T represents the tth sign bit of all K stream data. Then, 2 is formed by formula (15) m -PAM symbol sequence is called a first-class symbol. Similarly, let the column vector x[t] = [x1[t],…,x K [t]] T Indicates the tth symbol bit of all K stream symbols. All users transmit simultaneously in the same frequency band.

[0129] Since this coding and modulation belongs to trellis code and has the algebraic properties of trellis code, this multiple access method is also called "trellis code multiple access".

[0130] c) Receiving signal

[0131] Consider that the spatial dimension of the received signal at the receiving end is N. (For example, the receiving end is equipped with N antennas, and each antenna provides an observation. Or, the length of the system's spread spectrum sequence is N, and each chip-level signal provides an observation.)

[0132] For the real number model, the received signal is expressed as:

[0133]

[0134] Among them, h s Represents the channel vector of the signal sent by the s-th user, that is, the s-th stream signal, to the N observations at the receiving end; represents the channel matrix, which contains the channel vectors corresponding to all stream signals; matrix X = [x1,…,x K ] Trepresents the sequence of all K stream symbols, with the sth row being the sth stream symbol; Z represents the additive white Gaussian noise (AWGN) matrix, whose elements are independent and identically distributed zero-mean, unit-variance Gaussian noise; ρ represents the average energy of each stream signal, which is equivalent to the signal-to-noise ratio. Here, Y = [y[1],…,y[n]], y[t] is the received signal vector of the tth symbol bit.

[0135] A complex number model can be represented by a real number model with two dimensions, that is:

[0136]

[0137] Wherein, Re(Y) represents the real part of Y, and Im(Y) represents the imaginary part of Y. The real part and the imaginary part of the other matrices are expressed in the same form. For the sake of clarity, the present invention adopts a real number model for description.

[0138] d) Integer combination of multi-stream data

[0139] Consider a (non-all-zero)2 m Integer coefficient vector a over the integer ring T . Another one in 2 m The integer combination (ICB) of c[t] on the integer ring is expressed as:

[0140]

[0141] The value range of the integer combination is

[0142] Generally, L-way ICB is expressed as:

[0143]

[0144] represents the integer coefficient vector corresponding to the l-th ICB, a l [s] means The s-th element of .

[0145] The present invention is applicable to any coefficient vector Optimal The selection method is not the focus of the present invention. For the completeness of the description, the specific implementation step six briefly describes Optimization selection method.

[0146] The base station receiver receives the signal (see (19). The base station receives the signal according to the channel state information H at the receiving end. channel , select L = K in 2 mLinearly independent integer coefficient vectors over the ring of integers Let A=[a1,…,a K ] T , called the integer coefficient matrix, A is in 2 m The integer combination of message data is defined as:

[0147]

[0148] Since L = K, K is the number of users, there are a total of K integer combinations. The receiving end first calculates the K integer combinations Then restore all users' message data B=[b1,…,b K ] T . The calculation of is shown in steps e) and f) below, and its derivation is shown in step 6 of the specific implementation method.

[0149] e) Posterior probability calculation for integer combinations of multi-stream data

[0150] The receiving end calculates the L-path ICB based on the received signal Y = [y[1], ..., y[n]], drawing on the ideas of lattice, PNC, and IF. The first step is to solve the posterior probability of the L-path ICB.

[0151] Because we use a sign-by-sign operation, we can omit the sign bit index "[t]" below. Recall that the ICB value range is Thus, the operation of calculating the posterior probability of ICB is expressed as:

[0152]

[0153] The operation steps of formula (24) are shown in step 6 of the specific implementation method.

[0154] f) Channel coding decoding

[0155] The posterior probability Passed to the FFT-BP decoder. The decoder outputs the decision result of the message sequence If the decoding is correct, the l-th integer combination of K user message data can be obtained:

[0156]

[0157] as well as

[0158] g) User data recovery

[0159] The soft decision detection and decoding operations of K-way ICB are carried out in parallel to generate the decision results of K-way integer combinations And the judgment results of K users' messages There is a relationship between:

[0160]

[0161] Because A is in 2 m On the ring of integers with full rank, there exists a unique inverse matrix A -1 satisfy Available through:

[0162]

[0163] The operation obtains the judgment results of all user messages

[0164] h) Simulation and performance evaluation

[0165] Considering m=2 and m=3, the modulation modes are 4-PAM and 8-PAM respectively, simulation is performed and the block error rate (BLER) results are recorded. m The LDPC code on the π-tuple integer ring can realize the trellis code multiple access method of high-order modulation and obtain excellent performance. For details, see step 6 of the specific implementation method.

[0166] (III) Advantages and effects

[0167] 2 of the present invention m The LDPC code on the 2-dimensional integer ring has a simple design process and stable performance under the condition of medium and short code length. m The BP decoding process of LDPC codes on the 2-element integer ring reduces the decoding complexity and improves its feasibility on the hardware system. m LDPC codes on the integer ring of 1-tuples belong to trellis codes, which can realize the theoretical gains of calculation and transmission, physical layer network coding, LR and IF in actual communication systems. As the modulation order increases, the performance gain of LR and IF detection relative to ordinary MMSE detection will also increase. In order to obtain this performance gain, the codeword design and decoding algorithm design of high-order trellis codes are required. This is exactly the problem solved by the present invention: by increasing m, a higher-order trellis code with lower encoding and decoding complexity can be obtained. In the uplink system, the 2 m The LDPC code on the y-ary integer ring can support overload transmission of K / N=200% when m=3 and the transmission rate is 1.5 bits / symbol.

Brief Description of the Drawings

[0168] Figure 1 It is the block error rate performance of the SISO system at different bit rates when the code length is 512 and the modulation is 4-PAM.

[0169] Figure 2It is the block error rate performance of the SISO system at different bit rates when the code length is 512 and the modulation is 8-PAM.

[0170] Figure 3 It is the block error rate performance of the SISO system at different bit rates when the code length is 512 and the modulation is 16-PAM.

[0171] Figure 4 It is the performance of the LCMA system with 8 antennas, 4-PAM modulation, coding rate 0.5, and carrying different numbers of users.

[0172] Figure 5 It is the performance of the LCMA system with 8 antennas, 4-PAM modulation, coding rate 0.75, and carrying different numbers of users.

[0173] Figure 6 It is the performance of the LCMA system with 8 antennas, 8-PAM modulation, coding rate 0.5, and carrying different numbers of users.

[0174] Figure 7 It is a flow chart of the present invention. [Specific implementation method]

[0175] The following is combined with Figure 1-7 To further explain the technical solution of the present invention, the present invention proposes a 2 m A low-density parity check code encoding method on a tuple integer ring comprises the following steps:

[0176] Step 1: Digital coding;

[0177] Step 2: Codeword design;

[0178] a) determining the positions of non-zero elements in the check matrix H;

[0179] As described in step 2 a) of the technical solution, the number of rows in the check matrix H is nk, and the number of columns is n. n is the code length, and k is the message sequence length. v1,v2,…,v n represents a variable node, and its degree sequence is The degree of the jth variable node is D v [j]; use represents a check node, and its degree sequence is The degree of the i-th check node is The entire set of check nodes is denoted as With variable node v j The connected edges are represented as Where v j The αth edge connected is denoted by If the edge is simultaneously Connected, remember If the edge is not connected to any check node, Is empty.

[0180] If the variable node v j As the root node, the Tanner graph is expanded layer by layer into a tree. In the tree, all variable nodes and their child check nodes at the same depth are called a layer. From top to bottom, the number of layers is 0, 1, .... Definition are all the check nodes contained in the 0th to the vth layer of the tree, and the set of the remaining check nodes is The entire set of nodes that are checkpoints for each other The complement of

[0181] The basic process of the PEG algorithm is:

[0182] First, perform the first iteration and randomly select Check Node Connected to v1, In Assign values ​​to Then perform the 2nd,…,nth iterations, each time connecting a variable node that is not connected to any edge to the number of check nodes equal to its set degree.

[0183] In the Tth (T = 2, ..., n)th iteration, first find the check nodes with the least number of connected edges, that is, The check nodes with the least number of connected edges in the , randomly select a check node from them Will Assigned to That is to say With v T connected.

[0184] Consider all the With variable node v T As the root node, the Tanner graph is expanded layer by layer through the edges connected to the check nodes. When it is expanded to the vth layer, if No longer grows and the number of check nodes, that is, The potential is less than the total number of check nodes nk; or but That is, the v+1th layer of the tree graph already contains all the check nodes. Randomly select a check node with the least number of current connected edges Will Assigned to

[0185] When with v TAfter all the connected edges are connected to the check node, continue to T+1 The connected edges search for check nodes, starting with the T+1th iteration until all edges are traversed.

[0186] When constructing H using the PEG algorithm, you need to first determine the code length n and the message sequence length k (both of which are integers), which are determined by the memory, processing power, and actual rate requirements of the communication system. Generally, n is in the range of [100, 10000], and k is in the range of [0.25n, 0.75n].

[0187] It is also necessary to determine the degree sequence D of the variable node v . D v Determined by the degree distribution λ(x) of the variable node, d v Represents the maximum degree of the variable node, that is, the maximum number of edges connected to a single variable node, then the degree distribution λ(x) is defined as:

[0188]

[0189] In the formula, λ d′ The ratio of the edges connected to the variable nodes with degree d′ to all the edges in the Tanner graph. For example, the degree distribution of a (3,6)-regular LDPC code with 3 edges connected to each variable node and 6 edges connected to each check node is λ(x)=x 2 Then, the number of variable nodes with degree d′ is n d′ yes:

[0190]

[0191] Regardless of D v How to arrange the elements in as long as it contains n d′ d′(d′=2,…,d v ), the degree distribution given by λ(x) can be satisfied. It should be noted that the PEG algorithm tries to make the degree distribution of each check node uniform, that is, the number of non-zero elements in each row of H is kept consistent as much as possible.

[0192] Unless otherwise specified, in the simulation tests performed by the present invention, the degree distribution of the variable nodes is λ(x)=x 2 , that is, the number of non-zero elements in each column of H is 3.

[0193] b) determining the values ​​of non-zero elements in the check matrix H;

[0194] c) NNCS algorithm evaluates the performance of the check matrix H;

[0195] The specific steps of the NNCS algorithm can be summarized as follows:

[0196] 1. In the all-zero codeword On the basis of superimposing a m -1} uniformly valued random sequence v T ={0,…,2 m -1} 1×n , and q-PAM modulation is performed to obtain x T :

[0197]

[0198] The γ5 in the formula is the energy normalization factor, which ensures that E[‖x T ‖ 2 ] / n=1. T The mean of the symbols with the same length n added is 0 and the mean square is The additive white Gaussian noise (AWGN) sequence z T , we get y T :

[0199] y T =x T +z T (30)

[0200] Assume that y T The receiver knows v T , and assume that the symbols sent by the source are independent and uniformly distributed on {0,…,q-1}. Using y T The jth symbol y j , we can calculate the posterior probability p(c j =θ|y j ):

[0201]

[0202] The meaning of γ6 in the formula is consistent with that in step 5 c) of the technical solution, which is a normalization factor to ensure α is the energy normalization factor, as described in step 3. These calculated values ​​of the posterior probabilities are input into the 2 m In the meta-BP decoder, after a certain number of iterations, the output value of the posterior probability can be obtained.

[0203] 2. According to the probability information after the decoder iteration, calculate the entropy value of each codeword symbol as the criterion of its "reliability". The entropy value H of the jth symbol j Depend on The calculation results are:

[0204]

[0205] The larger the entropy value of a symbol, the lower its reliability. Arrange the reliability of n symbols from low to high, that is, arrange them in order of entropy value from large to small. Rearrange the columns of the check matrix H in the same arrangement order to obtain H1. Let the arrangement order be π1, the i-th symbol before the arrangement corresponds to the i1-th symbol after the arrangement, i1=π1(i).

[0206] 3. Perform semi-Gaussian elimination on H1 to obtain a matrix H2 with an approximate upper triangular structure. H2 is a matrix obtained by rearranging columns and transforming rows of H1, which satisfies:

[0207] (1) The first nk columns of H2 correspond to the first nk linearly independent columns of H1;

[0208] (2) When 1≤j≤nk,j≤i≤nk, the element in the i-th row and j-th column of H2 is 0.

[0209] Let H2 be the column rearrangement of H1 as π2, the i1th symbol of H1 corresponds to the i2th symbol of H2, i2=π2(i1).

[0210] 4. Select a positive integer N d , N d The value range of is {1,2,…,k}, which is generally not more than 10. First, make a hard decision on the symbols corresponding to the n-k+1th to nth columns of H2, and the decision result is recorded as

[0211]

[0212] In the formula,

[0213] 5. Then perform the calculation from the n-k+1th to the n-k+Nth of H2. d All possible values ​​of the symbol corresponding to the column are traversed, and there are There are two cases, each of which corresponds to a code word. The solution to such a code word is: Since each row of H2 represents a check equation, and its 1st to nkth columns form an upper triangular matrix (all elements on the diagonal are non-0), we can start from the symbol corresponding to the nkth column of H2, and use each row of H2 from bottom to top to solve the symbols corresponding to its nk-1, nk-2, ..., 1th columns one by one.

[0214] 6. If c is a codeword, then is also a code word. Codeword Multiplication operation on k, k = 1, ..., 2 m-1, the total number of codewords can be expanded to There may be duplications. Calculate the code weights of these code words, and the smallest one is used as the minimum code distance estimated by this algorithm, denoted as Md.

[0215] The codeword c with the minimum code weight obtained by the NNCS algorithm min Record it down, and the position of the non-zero elements of the codeword is recorded as set Q,

[0216] In x T When adding additive Gaussian white noise, it is necessary to select an appropriate mean square value When the code length and rate are different, The value of will also be different.

[0217] Due to the increase in random sequence v T and Gaussian white noise z T There is randomness when , so the NNCS algorithm can be implemented multiple times and the minimum Md obtained is taken as the algorithm result, and its corresponding c is recorded min and Q.

[0218] d) 2-opt local search optimization;

[0219] e) Calculate the generator matrix S;

[0220] When verifying that the check matrix H is a row-full rank matrix, a row transformation is performed on it Where B is H in The Hermitian standard form on . Since H is a full row rank matrix, each row of B has its first non-zero factor 1. Assume that the first non-zero factor 1 of the i-th row of B is located at the k-th row. i The k1, k2, ..., kth columns of B n-k The columns can form an identity matrix I n-k .

[0221] Then find the full rank matrix P such that where K is 2 m Any (nk)×k-dimensional vector on the ring of integers. P is divided into blocks [P1 P2], where Then P1 is composed of I n The k1, k2, …, k n-k A matrix consisting of columns.

[0222] Known in 2 m Subtraction on the integer ring is defined as: for every 2 m For a on the integer ring, there exists a unique 2 m b over the ring of integers such that Such b is called the "negative element" of a, and is written as b = -a. m a,b on the integer ring, For matrix operations, the definitions are the same.

[0223] because so It is H in 2 m The generalized {1}-inverse over the ring of integers, denoted by H (1) .So It's the equation The general solution of m Any n×1-dimensional vector on the ring of integers. Then Each column of is an equation The solution is:

[0224]

[0225] Since the kth i Only the i-th column in the row is 1, and the rest of the elements are 0, so kth i row is the same as the i-th row of B. kth i The kth row i The kth element is 1. i All other elements in the column are 0. Therefore The k1, k2, …, k n-k The columns are all 0.

[0226] And because, Except for k1, k2, …, k n-k All rows other than columns are zero row vectors, so The K rows of have only one non-zero element that is 1, and these 1s are in different columns. The rank of is K.

[0227] If you remove If all zero columns in , then the resulting matrix will be a column-full rank matrix of size N × K and rank K, each column of which is the equation Such a matrix satisfies all the requirements of the generator matrix S.

[0228] Step 3: Decoding algorithm;

[0229] When calculating (7), for each Need to calculate Will The ordinal numbers of all check nodes in are recorded in order as Define two more lengths D v The vector P of [j]l ' eft and P′ right . Shilling P′ left [1]=1, then t=2,3,…,D v The order of [j] is P′ left [t] Assignment:

[0230]

[0231] Then let P′ right [D v [j]] = 1, and then t = D v [j]-1,D v [j]-2,…,1 in order of P′ right [t] Assignment:

[0232]

[0233] P′ left [t] and P′ right [t]After the assignment is completed, there are:

[0234]

[0235] Using equations (35), (36) and (37), we can simplify the operation of equation (7) by The number of multiplication calculations is reduced to (3D v [j]-4)×2 m Therefore, the number of floating-point multiplication calculations in formula (7) is

[0236] Similarly, in formula (12) A similar method can be used to simplify the vector multiplication to reduce the number of operations to 3D c [i]-2. For length 2 m The number of floating-point multiplications of FFT is m×2. m-1 .therefore The total number of floating-point multiplication calculations is The number of floating point multiplication calculations is [(3+m)D c [i]-2]×2 m The total number of floating-point multiplication calculations in formula (12) is

[0237] The number of floating-point multiplication calculations in formula (13) is Since the total number of edges in the Tanner graph is the number of non-zero elements in the check matrix H, denoted by E total :

[0238]

[0239] During each iteration, the number of floating point multiplications is 2. m ×[(10+m)E total -5n+2k].

[0240] Step 4: Digital modulation;

[0241] Step 5: 2 m The use of LDPC codes over integer rings in single-input single-output systems;

[0242] a) Codeword design;

[0243] Unless otherwise specified, the degree distribution of the variable node is taken as λ(x)=x 2 .

[0244] b) Send and receive signals;

[0245] c) Detection and decoding;

[0246] d) Simulation and performance evaluation;

[0247] Figure 1-3 The 2-bit scalar designed by the present invention is shown in Figure 2 for different m values ​​when the bit rates are 0.5, 0.75 and 0.25. m The block error rate performance of LDPC codes on the 1-element integer ring is compared with the Shannon limit. It can be seen that the coding algorithm of the present invention can be applied to different m and coding rates under medium and short code lengths, and can achieve good performance.

[0248] Figure 1 The block error rate performance of the LDPC codes with different code rates designed by the present invention under m=2, i.e. 4-PAM modulation, is shown. The code lengths corresponding to the three curves are all 1200, and the coding rates k / n are 0.5, 0.75 and 0.25, i.e. the message rates are 1.0 bit / symbol, 1.5 bit / symbol and 0.5 bit / symbol, respectively. The three dotted lines parallel to the vertical axis are, from left to right, the Shannon limits of k / n of 0.25, 0.5 and 0.75 when m=2.

[0249] Figure 2 The block error rate performance under m=3, i.e. 8-PAM modulation, is shown, with a code length of 1200, coding rates of 0.5, 0.75, and 0.25, and message rates of 1.5 bits / symbol, 2.25 bits / symbol, and 0.75 bits / symbol, respectively. The three dashed lines are also the corresponding Shannon limits.

[0250] Figure 3The block error rate performance under m=4, i.e. 8-PAM modulation, is demonstrated. Similarly, the code length is 1200, the coding rates are 0.5, 0.75 and 0.25, and the message rates are 2.0 bit / symbol, 3.0 bit / symbol and 1.0 bit / symbol respectively.

[0251] Step 6: 2 m The use of LDPC codes over tuple integer rings in trellis code multiple access systems;

[0252] a) Codeword design;

[0253] b) sending a signal;

[0254] c) receiving signals;

[0255] d) integer combination of multi-stream data;

[0256] This step requires identifying the optimal integer coefficient matrix A, where A is 2 m Any L×K-dimensional vector over the ring of integers. Consider the channel matrix H channel , its MMSE matrix Performing feature decomposition, we get:

[0257]

[0258] Ψ is a matrix of eigenvectors. The optimal coefficient matrix A is the solution to the following optimization problem:

[0259]

[0260] The optimization problem can be described as: Indicated by ∑ 1 / 2 Ψ T are all the grid points formed by the basis vector group. Find a set of L grid points that are linearly independent and have the shortest maximum length. This optimization problem is NP-hard, and the present invention uses a spherical decoding algorithm to approximate it.

[0261] P T Perform Choleski decomposition, that is, Ψ∑Ψ T =ΠΠ T , Π is an upper triangular matrix. Set a radius r, take zero as the center, and use the list spherical decoding method based on tree search to search for all grid points contained in the radius to form a list Use a greedy algorithm to find L candidate vectors in the list that are in 2 m Integer coefficient vector of rank L over the ring of integers Get the coefficient matrix A. If If the rank of all vectors in is less than L, the radius r is appropriately increased and the list spherical decoding is performed again until rank(A)=L is satisfied.

[0262] The following derives the integer combination of message data:

[0263] 2 m The linear code (ring code) has the "superposition property", that is, the integer multiples of K available code words are superimposed and 2 m After the modulus is calculated, it is still a usable codeword, that is,

[0264]

[0265] Still a usable codeword.

[0266] Using the superposition of codewords, we can get:

[0267]

[0268] That is to say, the codeword-level ICB and the message-level ICB are also linked by the channel coding generation matrix S. Based on this property, decoding can be achieved through the following steps:

[0269] 1. The soft decision detector calculates the symbol-by-symbol a posteriori probabilities (APPs) of the codeword-level ICB, i.e., p(v l [t]|y[t]),t=1,…,n. Here v l [t] and y[t] represent v l and the tth column of Y. See step e) below.

[0270] 2. The decoder takes the APP of the codeword-level ICB as input, performs FFT-BP decoding operation, and outputs a decision about the message-level ICB. See step f) below.

[0271] e) Calculation of posterior probability of integer combinations of multi-stream data;

[0272] The operation steps of formula (24) are as follows:

[0273] 3. Let W be a linear filter matrix of size L×N, with each element being a real number. For its lth row. After filtering, L signals are formed:

[0274]

[0275] This paper takes the regularized integer forcing (RIF) method as an example. The lth line of the filter matrix W is:

[0276]

[0277] The N-dimensional received signal is converted into an L-stream single-dimensional signal through RIF filtering. Then, each stream is used to calculate the posterior probability of an ICB.

[0278] 4. The first term in formula (43) Indicates that each user signal is The integers in are linear superposition coefficients to calculate the useful signal part of ICB; the sum of the last two terms It is uncorrelated with ICB and is considered as equivalent noise, and its mean square value is:

[0279]

[0280] The second term of formula (43) Each element in is considered to be equal to the first are independent, have a mean of 0, and a mean square of The sum of the last two terms is considered to have a mean of 0 and a mean square of The equivalent noise of the lth stream is for:

[0281]

[0282] 5. Since there is a linear relationship between x and c Therefore, the calculation formula of the posterior probability can be written as:

[0283]

[0284] remember The calculation formula for the posterior probability is:

[0285]

[0286] The γ in the formula is still the normalization factor, ensuring

[0287] 6. In formula (48) It is called conditional probability. According to equation (43) and the equivalent additive Gaussian white noise described above, the conditional probability can be calculated as:

[0288]

[0289] In formula (48), It is called the prior probability, and its computational complexity is The size and number of non-zero elements in . Substituting the calculated results of conditional probability and prior probability into equation (48), we can calculate the posterior probability By passing it to the decoder of the channel code and performing decoding operation, the decision of the integer combination of multi-stream message data can be obtained.

[0290] f) decoding of channel coding;

[0291] g) User data recovery;

[0292] h) Simulation and performance evaluation;

[0293] Figure 4-6 The present invention is designed under different m and bit rates. The block error rate performance of the LDPC code in the trellis code multiple access system is shown in FIG. 1 . When the number of antennas is set to 8 and the number of users is 8, the system is a full load rate system; when the number of users is 12 and 16, the system is an overload rate system. The present invention can work in an LCMA system with a load rate of 200% when m=2 and m=3.

[0294] Figure 4 The block error rate performance of the LDPC code on the 4-ary integer ring designed by the present invention in the LCMA system is shown. The check matrix used by each user is the same, the code length is 1200, the coding rate k / n is 0.5, and the message rate is 1.0 bit / symbol. The number of antennas is 8, and the three curves in the figure respectively show the performance when the number of users is 8, 12, and 16.

[0295] Figure 5 The block error rate performance of the LDPC code with k / n of 0.75 on the 4-ary integer ring designed by the present invention in the LCMA system is demonstrated. The code length of each user is also 1200 and the message rate is 1.5 bits / symbol. The number of antennas and the number of users are set to Figure 4 same.

[0296] Figure 6 The block error rate performance of the LDPC code with k / n of 0.5 on the 8-ary integer ring designed by the present invention in the LCMA system is demonstrated, with a code length of 800 and a message rate of 1.5 bits / symbol. Figure 4 same.

Claims

1. A2 m A low-density parity check code encoding method over a tuple integer ring, characterized in that: The steps include: Step 1: Digital coding: Known in 2 m On the integer ring, addition and multiplication operations satisfy modulo 2 m The law: In the formula, a and b are both 2 m The elements in the ring of integers, a,b∈{0,1,…,2 m -1}; mod 2 m Indicates 2 m Modulo; matrix operations also satisfy the same operational rules; Use row vector b T ∈{0,1,…,2 m -1} k Represents a message sequence, and the encoding process is expressed as: There is c T ∈{0,1,…,2 m -1} n , c is the codeword formed by the encoding; S in the formula is an n×k matrix, and the value range of its elements is {0,1,…2 m -1}, is called the generator matrix; n is called the codeword length, and k is called the message sequence length; The receiver needs to verify the judged codeword Whether the verification equation is satisfied, that is, whether: Where H is a 2 m The matrix over the ring of integers is called a check matrix. Step 2: 2 m Optimal design of codeword construction for low-density parity-check codes over a ring of integers: In 2 m On the integer ring of elements, consider a single stream message data, the message length of each frame is k, the codeword length is n; the message code element in each frame of data is represented by a row vector b T Indicates that its length is k; after channel coding, the codeword is row vector c T , length is n; Step 3: Efficient decoding algorithm for integer ring low-density parity-check codes: The Fast Fourier Transform-Belief Propagation FFT-BP algorithm is used for 2 m The decoding algorithm of LDPC code on the integer ring of n-element; the sender sends the codeword c with code length n T Sent to the receiving end through the channel, the receiving end receives the first-class signal y T ; Let c j Indicates c T The jth sign bit of , then the receiving end is based on y T Calculate c j The posterior probability p(c j =θ|y T )θ∈{0,…,2 m -1}; FFT-BP algorithm according to p(c j =θ|y T ) to get the decoding result Decoding is performed by passing the probability information of each node along each edge in the Tanner graph; the probability information here refers to a length of 2 m The vector of θ, where the θth element represents a probability of taking the value θ-1 (θ=1,…,2 m ); after the κth iteration, the probability information of the jth variable node is In the lth iteration, the probability information transmitted from the jth variable node to the ith check node is The probability information transmitted from the i-th check node to the j-th variable node is use express The θth element in , and the representation of the single element in the other two probability information is similar; the ordinal set of the check nodes connected to the jth variable node is recorded as The ordinal set of variable nodes connected to the i-th check node is recorded as Step 4: Digital Modulation: The data stream sequence after channel coding is mapped symbol by symbol into 2 m -The symbol sequence of PAM modulation is as follows: Among them, γ5 is the energy normalization factor, ensuring that these 2 m The average energy of the constellation points is 1, that is, E[‖x T ‖ 2 ] / n=1; For the complex model, that is, the model in which the signal is divided into two mutually orthogonal components, two independent coding and modulation are used, which are transmitted in the in-phase and orthogonal parts respectively, forming an I / Q 2 2m -QAM modulation; Step 5: 2 m The use of LDPC codes over the integer ring in single-input single-output SISO systems: Considering a single-user uplink communication system, the following settings are made for the communication system model used in the bit error rate simulation: the user uses a single antenna, and the base station receiver is also equipped with a single antenna; a fixed channel model is used, that is, the channel coefficient is always 1; including: codeword design, sending and receiving signals, receiving signals, detection and decoding, simulation and performance evaluation; Step 6: 2 m The use of LDPC codes over tuple integer rings in trellis coded multiple access LCMA systems: When the transmitter of the information sends multiple streams of message data at the same time, m LDPC codes over the tuple integer ring are used as a trellis code for LR and IF detection, where the detection method of integer combinations of multi-stream data needs to be considered; Consider a K-user single-cell uplink multiple access model, that is, the communication of each cell is not interfered by other cells; set as follows: each user is equipped with a single antenna, and the base station receiver is equipped with N antennas; there is no inter-symbol interference, which is guaranteed by adopting orthogonal frequency division multiplexing; consider a flat fading model, that is, the channel coefficient of each coding block remains unchanged; in this system, the base station receiver does not provide a feedback link to provide the transmitter with channel state information CSI or adaptive coding modulation ACM information; each user transmits at the same target rate; the base station knows the channel state information H channel .

2. The method according to claim 1 m A low-density parity check code encoding and decoding method over a tuple integer ring, characterized by: In step 2, it also includes: determining the position of non-zero elements in the check matrix H; Each LDPC-coded check matrix H corresponds to a Tanner graph with check nodes, variable nodes, and edges. Each check node in the Tanner graph represents a check equation in the linear code, that is, it corresponds to a row in H. Each variable node represents a symbol in the codeword, that is, it corresponds to a column in H. Each edge corresponds to a non-zero element in H. The edge connects the check node corresponding to the row where the non-zero element is located and the variable node corresponding to the column where the non-zero element is located. The weight of the edge is the value of the non-zero element, and the value range is {0,…,2 m -1}; the number of edges connected to each node, that is, the number of non-zero elements in each row or column of H, is called the degree of the node; starting from a variable node, traveling along non-repeating edges and nodes for a circle and returning to the variable node again, this route is called a ring, and the number of edges on the ring is called the ring length; the ring length in the Tanner graph is an even number not less than 4; Consider a full-rank check matrix H, whose number of rows is nk and the number of columns is n; n is the code length, k is the message sequence length; use v1,v2,…,v n represents a variable node, and its degree sequence is The degree of the jth variable node is D v [j]; use represents a check node, and its degree sequence is The degree of the i-th check node is The entire set of check nodes is denoted as With variable node v j The connected edges are represented as Where v j The αth edge connected is denoted by If the edge is simultaneously i Connected, remember If the edge is not connected to any check node, is empty; If the variable node v j As the root node, the Tanner graph is expanded layer by layer into a tree; in the tree, all variable nodes and their child check nodes at the same depth are called a layer; from top to bottom, the number of layers is 0, 1, ...; definition are all the check nodes contained in the 0th to the vth layer of the tree, and the set of the remaining check nodes is The entire set of nodes that are checkpoints for each other The complement of The PEG algorithm constructs H by gradually adding edges to the Tanner graph; it is necessary to first determine the degree of each variable node, that is, given D v ; For example, for a (3,6)-regular LDPC code with 3 edges connecting each variable node and 6 edges connecting each check node, D v ={3,3,…,3}.

3. The method according to claim 2 m A low-density parity check code encoding and decoding method over a tuple integer ring, characterized by: In step 2, it also includes: determining the values ​​of non-zero elements in the check matrix H; After the position of the edge is determined by the PEG algorithm, the weight of each edge, that is, the specific value of the non-zero element in the check matrix H, is determined by random assignment and verification of full rank. The value range of non-zero elements is {0,1,…,2 m -1}, the total number of non-zero elements in H is ω θ (θ=1,…,2 m -1) represents the number of θ in H, but is the frequency of non-zero elements taking the value of θ; the method of taking the value of non-zero elements in H is divided into two steps: "random assignment" and "verification of row full rank"; Random assignment: First, we need to determine For LDPC codes with medium and short code lengths, an experimental method is used; then, according to the determined frequencies of each non-zero element, a weight is randomly assigned to each edge to form a check matrix H that satisfies a large minimum loop length and a reasonable frequency of each non-zero element; Verify that the row is full rank: calculate whether H is in 2 m The ring of integers is full rank; first, the definition of zero factor and its order is given; If there are non-zero elements a and b, Then a and b are called zero factors; if for a non-zero element a, only when b = 0, Then a is called a non-zero factor; in 2 m On the ring of integers, a is a zero factor if and only if a is a non-zero even integer; In 2 m The Hermitian standard form B is obtained by reversible transformation of H on the integer ring. Q is 2 m A reversible matrix over the ring of integers; the Hermitian canonical form B satisfies the following properties: (1) Each of the first r rows of B contains at least one non-zero factor that is 1; if the first non-zero factor 1 in the i-th row of B is i (i=1,2,…,r) columns, then in the next nkr rows, the k1,k2,…,k r The elements in the columns are all 0, and the elements in the remaining columns are all zero factors; (2) k1 <k2<…<k r ; (3) k1, k2, …, k in B r The columns are all identity matrices I m The first r columns of Then the rank of H is r; If H is not row full rank over the ring of integers modulo 2, that is, r < n - k, then the non-zero elements in H need to be reassigned until H is row full rank over the ring of integers modulo 2. m If H is not row full rank over the ring of integers modulo 2, that is, r < n - k, then the non-zero elements in H need to be reassigned until H is row full rank over the ring of integers modulo 2. m over the ring of integers modulo 2.

4. The method according to claim 1 m A low-density parity check code encoding and decoding method over a tuple integer ring, characterized by: In step 2, it also includes: evaluating the performance of the check matrix H by using the nearest non-zero codeword search NNCS algorithm; In channel coding, error correction capability is measured by the minimum code distance; the minimum code distance d min (H) refers to the minimum value of the Hamming distance between any two codewords in the codebook C determined by the check matrix H; the Hamming distance D(c i ,c j ) refers to two code words c i and c j The number of different code element symbols at the same position; the minimum code distance is expressed as: A larger minimum code distance means a greater difference between different code words, thus allowing more errors to be corrected and stronger noise to be resisted.

5. The method according to claim 1 m A low-density parity check code encoding and decoding method over a tuple integer ring, characterized by: In step 2, it also includes: 2-opt local search optimization; The 2-opt local search algorithm is used to find the check matrix H that meets the requirements. The steps are as follows: Use the NNCS algorithm to obtain the codeword c with the minimum code weight min After finding the set of non-zero element positions Q, find the set of non-zero element positions in the column corresponding to Q in H = {(i, j)|H i,j ≠0,j∈Q}; Choose to perform one of the following two actions with equal probability: Re-randomize the elements of H that belong to the positions in P; Re-randomly assign values ​​to the elements of H that belong to the positions in P, and the range of assignment is {1,…,2 m -1}, the probability of assigning a value to a certain element is consistent with the random probability, that is The check matrix after the operation is recorded as H′, and the check matrix before the operation is still recorded as H; similarly, after each operation, it is necessary to confirm that H′ is a full-rank matrix; if H′ is not a full-rank matrix, it is necessary to re-execute the operation in step i or ii until H′ is a full-rank matrix; Use the NNCS algorithm to solve the minimum code distance Md' corresponding to the code word H' and the code word c' with the minimum code weight min and the non-zero element position set Q′; if Md′ is greater than Md, it means that the error correction capability of the check matrix H′ corresponding to the codeword set is improved compared with H. We retain the new result and assign H to H′, Md to Md′, and c min Assign it to c′ min , the set Q is assigned to Q′; if Md′ is not greater than Md, the results remain unchanged; Perform the next round of 2-opt optimization and repeat the above steps for several times until the minimum code distance is not less than the set value or the preset maximum number of iterations is reached.

6. The method according to claim 1 m A low-density parity check code encoding and decoding method over a tuple integer ring, characterized by: In step 2, it also includes: calculating a generator matrix S; The calculation steps to generate the matrix S are: Perform a reversible row transformation on the full-rank check matrix H to obtain its m The Hermitian canonical form B over the ring of integers, Q represents the process of reversible row transformation; then B is transformed into a column form [I n-k K], where I n-k is the nk-dimensional identity matrix, K is 2 m Any matrix of (nk)×k dimensions over the ring of integers; calculate H (1) It is H in 2 m Generalized {1}-inverse over the ring of numpy integers; Pick The non-all-zero columns of n is the nk-dimensional identity matrix.

7. The method according to claim 1 m A low-density parity check code encoding and decoding method over a tuple integer ring, characterized by: In step three, the steps of the FFT-BP algorithm are as follows: 3.1 Initialize the probability information of all variable nodes to the posterior probability calculated outside the decoder: It is irrelevant to the decoding algorithm and is called "external information"; The information transmitted from the initialization check node to the variable node is equally distributed: Let the number of iterations κ = 1; 3.2 Start the κth iteration; update the probability information transmitted by the variable node to the check node as external information The probability information transmitted by all check nodes connected to the variable node in the κ-1th iteration When the j-th variable node transmits information to the i-th check node connected to it, it is necessary to exclude the information transmitted by the i-th check node itself to avoid forming a small loop; therefore, first Assign all elements of 0 to 0, and then do the following calculation: In the formula, γ1 is to ensure The variables set; represents the ordinal numbers of the check nodes other than i connected to the j-th variable node, and these ordinal numbers are recorded as i′ in the formula; It is known that the i-th check node corresponds to the i-th check equation: when When the sequence number is known to be The probability distribution of all symbols of j′ =θ)θ∈ {0,…,2 m -1}, and assuming that the values ​​of each symbol are independent of each other, then the probability distribution p(c j =θ): In the above formula, γ2 is considered when the zero factor is taken into account. The variables set; therefore, through the probability information transmitted to the i-th check node by each edge, the probability of its transmission to the i-th check node is calculated The probability information of variable nodes; The calculation formula is as follows: γ3 is to ensure The variables set; the above formula uses fast Fourier transform FFT to reduce complexity; for a vector x of length L, L-point FFT is performed to obtain vector X, then x and X are a Fourier transform pair, denoted as X = FFT{x}, x = IFFT{X}; for a set Γ of vectors of length L, use Represents the vector obtained by multiplying the elements of corresponding positions of all vectors in Γ, that is: In the formula, x′ is a vector; x′[θ] represents its θth element, which is a scalar; Formula (11) is simplified to: Where ψ′ represents the Fourier transform of the probability information transmitted from the check node to the variable node; It represents the probability information transmitted from the j′th variable node to the i-th check node during the κ-th iteration; Indicates the probability information transmitted from the i-th check node to the j-th variable node during the κ-th iteration. is its θth element; θ′ satisfies the verification equation intermediate variables; after the κth iteration, the probability information ξ of all variable nodes is external information The probability information transmitted by all check nodes connected to the variable node in the kth iteration Element-wise multiplication of ; The γ4 in the above formula is to ensure And the variables set; 3.3 Make hard decisions on each symbol in the codeword: If the judgment If all nk verification equations are satisfied or the number of iterations κ has reached the set maximum value, the iteration is stopped and the judgment result is output. and the posterior probability Otherwise, let κ = κ + 1 and repeat steps 3.2 and 3.

3.

8. The method according to claim 7 m A low-density parity check code encoding and decoding method over a tuple integer ring, characterized by: When the verdict When all the check equations are satisfied, there exists a unique 2 m Vectors over the Ring of Integers satisfy Such As the decision result of the message sequence; The calculation method is Where S (1) It is S in 2 m Generalized {1}-inverse over the ring of integers, S (1) The calculation method of H (1) same; During each iteration, the number of floating point multiplications is 2. m ×[(10+m)E total -5n+2k], where E total is the total number of edges in the Tanner graph, that is, the number of non-zero elements in H; it shows that the decoding complexity is proportional to the code length n, which meets the needs of fast decoding in the communication system.

9. The method according to claim 1 m A low-density parity check code encoding and decoding method over a tuple integer ring, characterized by: In step five, codeword design: Select the code length n and the coding rate R code After that, the message sequence length k is calculated as: k=n·R code (16) Then select the variable node degree sequence D v , calculate and obtain the check matrix H and the generator matrix S; Sending and receiving signals: The message sequence b generated by the user T is set as a memoryless, equally probable source, generating codeword c T and 2 m -PAM symbol sequence x T ; Receive signal y T The expression is: y T =x T +z T (17) The z in the formula T The mean is 0 and the variance is The signal-to-noise ratio of this system is Detection and decoding: Without considering the correlation between symbols, the posterior probability p(c j =θ|y T ) is approximated as p(c j =θ|y i ), the calculation formula is: γ6 is still the normalization factor, ensuring The posterior probability is passed to the FFT-BP decoder to recover the message sequence b sent by the user. T ; Simulation and performance evaluation: Consider m=2, m=3 and m=4, which correspond to LDPC codes on 4-ary, 8-ary and 16-ary integer rings respectively. The modulation modes are 4-PAM, 8-PAM and 16-PAM respectively, and the frame error rate results are recorded.

10. The method according to claim 1 m A low-density parity check code encoding and decoding method over a tuple integer ring, characterized by: In step six, the following contents are also included: Codeword design: All users use the same encoder; Sending a signal: Let user s's 2 m Meta message sequence is represented by a row vector Indicates that s = 1, ..., K, k is the length of the message sequence, It is called first-class message; the message data of all K users are represented by the matrix B = [b1,…,b K ] T Represents a size of K×k; encode the message sequence of each user to obtain the codeword Each codeword is a stream of data sent by a user, and K users send K streams of data in total; let c s [t] means The tth sign bit of , t = 1, ..., n; let the column vector c[t] = [c1[t], ..., c K [t]] T represents the tth sign bit of all K stream data; then, 2 is formed by formula (15) m -PAM symbol sequence is called a first-class symbol; similarly, let the column vector x[t] = [x1[t],…,x K [t]] T Represents the tth symbol bit of all K stream symbols; all users transmit simultaneously in the same frequency band; Receive signal: For the real number model, the received signal is expressed as: Among them, h s Represents the channel vector of the signal sent by the s-th user, that is, the s-th stream signal, to the N observations at the receiving end; represents the channel matrix, which contains the channel vectors corresponding to all stream signals; matrix X = [x1,…,x K ] T represents the sequence of all K stream symbols, whose sth row is the sth stream symbol; Z represents the additive white noise AWGN matrix, each element of which is an independent and identically distributed zero-mean, unit-variance Gaussian noise; ρ represents the average energy of each stream signal, which is equivalent to the signal-to-noise ratio; Y = [y[1],…,y[n]], y[t] is the received signal vector of the tth symbol bit; A complex number model is represented by a real number model with two dimensions, that is: Where Re(Y) represents the real part of Y, and Im(Y) represents the imaginary part of Y; the real and imaginary parts of the other matrices are expressed in the same form; Integer combination of multi-stream data: Consider a 2- m Integer coefficient vector a over the integer ring T ; Let one in 2 m The ICB representation of integer combinations about c[t] on the integer ring is: The value range of the integer combination is L-way ICB is expressed as: represents the integer coefficient vector corresponding to the l-th ICB, a l [s] means The sth element of ; The base station receives the channel state information H from the receiving end. channel , select L = K in 2 m Linearly independent integer coefficient vectors over the ring of integers Let A=[a1,…,a K ] T , called the integer coefficient matrix, A is in 2 m The integer combination of message data is defined as: Since L = K, K is the number of users, there are a total of K integer combinations. The receiving end first calculates the K integer combinations Then restore all users' message data B=[b1,…,b K ] T ; Posterior probability calculation for integer combinations of multi-stream data: The receiving end first solves the posterior probability of L-path ICB based on the received signal Y=[y[1],…,y[n]]; Because the operation is sign-by-sign, the sign bit index "[t]" is omitted; recall that the ICB value range is The operation of calculating the posterior probability of ICB is expressed as: Channel coding decoding: The posterior probability Passed to the FFT-BP decoder; the decoder outputs the decision result of the message sequence If the decoding is correct, the l-th integer combination of K user message data is obtained: as well as Recovery of user data: The soft decision detection and decoding operations of K-way ICB are carried out in parallel to generate the decision results of K-way integer combinations And the judgment results of K users' messages There is a relationship between: Because A is in 2 m On the ring of integers with full rank, there exists a unique inverse matrix A -1 satisfy pass: The operation obtains the judgment results of all user messages