Encoding or decoding method, and apparatus

WO2026158153A1PCT designated stage Publication Date: 2026-07-30HUAWEI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
HUAWEI TECH CO LTD
Filing Date
2026-01-15
Publication Date
2026-07-30

Smart Images

  • Figure CN2026072830_30072026_PF_FP_ABST
    Figure CN2026072830_30072026_PF_FP_ABST
Patent Text Reader

Abstract

Provided in the present application are an encoding or decoding method, and an apparatus. After a plurality of first matrices are determined on the basis of a target code length and an information bit length, a plurality of second matrices corresponding to the plurality of first matrices on a one-to-one basis are acquired, wherein a first matrix having a length that is not an integer power of 2 is extended to a second matrix having a length that is an integer power of 2, and a first matrix having a length that is an integer power of 2 may not be extended. On the basis of the plurality of second matrices, a long code can be obtained by means of coupling, thus providing a solution to the problem whereby non-regular polarization kernels having different lengths cannot be coupled; and non-regular-kernel polar codes having relatively large code lengths can be constructed, and compared with Arikan-kernel polar codes, the performance gain is obtained.
Need to check novelty before this filing date? Find Prior Art

Description

Encoding or decoding methods and apparatus

[0001] This application claims priority to Chinese Patent Application No. 202510125372.5, filed on January 26, 2025, entitled "Method and Apparatus for Encoding or Decoding", and Chinese Patent Application No. 202510125372.5, filed on April 23, 2025, entitled "Method and Apparatus for Encoding or Decoding", the entire contents of which are incorporated herein by reference. Technical Field

[0002] This application relates to the field of channel coding, and more specifically, to a method and apparatus for encoding or decoding. Background Technology

[0003] Polar codes are coding schemes that can be rigorously proven to achieve Shannon channel capacity, offering advantages such as good decoding performance and low complexity. Currently, the construction method proposed by Professor Erdal Arikan, also known as Arikan kernel-based polar code construction, is commonly used when constructing polar codes. Traditional Arikan kernel polar codes, when the code length is a power of 2, only have one coupling method, failing to achieve optimal performance across various code lengths and information bit lengths. When considering other coupling methods, polar kernels of different lengths cannot be directly coupled. Summary of the Invention

[0004] This application provides a method and apparatus for encoding or decoding, offering a solution for the coupling of polarization nuclei of different lengths.

[0005] Firstly, an encoding method is provided, which can be executed by a communication device. This communication device can be a communication equipment or a module applied to a communication equipment (e.g., a processor, chip, chip system, integrated circuit, etc., or a logic module, hardware, and / or software capable of implementing all or part of the functions of the communication equipment). The communication device can also be called an encoding device, for example, an encoding device or an encoder. The method includes: acquiring at least two first matrices, wherein the at least two first matrices include a first matrix of size l, where l < 2. t And l is not an integer power of 2, t is an integer, and l is a positive integer; obtain at least two second matrices that correspond one-to-one with the at least two first matrices, wherein the second matrix corresponding to the first matrix of size l is obtained by expanding the first matrix of size l, and the size of the second matrix corresponding to the first matrix of size l is 2. tFurthermore, the method involves encoding based on the at least two second matrices to obtain an encoded sequence. Optionally, the method may further include outputting the encoded sequence.

[0006] In this technical solution, multiple second matrices are obtained, each corresponding to a first matrix. First matrices whose length is not a power of 2 are expanded into second matrices whose length is a power of 2. First matrices whose length is a power of 2 may not be expanded or may be expanded into larger powers of 2. The polarization kernels corresponding to these multiple second matrices differ from the Arikan polarization kernel and can be called non-regular polarization kernels. This application provides a method for coupling non-regular polarization kernels of different lengths, solving the problem that non-regular polarization kernels of different lengths cannot be coupled.

[0007] Long codes can be obtained by coupling multiple second matrices. Furthermore, compared with polar code encoding based on Arikan kernels, encoding based on the non-regular polar kernel of this application can achieve better performance at various code lengths and information bit lengths.

[0008] Furthermore, when the target code length is long, the encoding or decoding sides of other non-regular core polar codes store encoding matrices corresponding to the target code length (e.g., encoding matrices of the mother code length corresponding to the target code length), resulting in significant storage overhead. In contrast, the solution in this application only stores a few small cores (such as at least two first matrices in the embodiments of this application), thus reducing storage overhead.

[0009] Secondly, a decoding method is provided, which can be executed by a communication device. This communication device can be a communication equipment or a module applied to a communication equipment (e.g., a processor, chip, chip system, integrated circuit, etc., or a logic module, hardware, and / or software capable of implementing all or part of the functions of the communication device). The communication device can also be called a decoding device, such as a decoding device or decoder. The method includes: acquiring at least two first matrices, wherein the at least two first matrices include a first matrix of size l, where l < 2. t And l is not an integer power of 2, t is an integer, and l is a positive integer; obtain at least two second matrices that correspond one-to-one with the at least two first matrices, wherein the second matrix corresponding to the first matrix of size l is obtained by expanding the first matrix of size l, and the size of the second matrix corresponding to the first matrix of size l is 2. t Decode based on the at least two second matrices to obtain a decoded sequence; and output the decoded sequence.

[0010] The second aspect is the decoding method corresponding to the encoding method in the first aspect; the technical effects can be found in the explanation of the first aspect.

[0011] Furthermore, on the decoding side, compared with decoding based on Arikan core polar codes, the decoding performance is better, for example, with a lower error rate, while the decoding complexity remains basically unchanged.

[0012] In some implementations of the first or second aspect, the second matrix corresponding to the first matrix of size l is obtained by extending the first matrix of size l, including: the second matrix corresponding to the first matrix of size l is obtained by extending the first matrix of size l based on the rate matching mode of the mother code corresponding to the target code length E, wherein the rate matching mode includes puncturing and / or shortening.

[0013] In this implementation, the first matrix is ​​expanded into a second matrix, which is related to the rate matching mode of the mother code corresponding to the target code length.

[0014] In this implementation, the rate matching mode based on the mother code expands the first matrix into a second matrix. The position of the expansion can be determined based on the position of the rate matching of the mother code, making the implementation simple.

[0015] In some implementations of the first or second aspect, the at least two first matrices include a first matrix of size raised to the power of 2, and the second matrix corresponding to the first matrix of size raised to the power of 2 is the first matrix of size raised to the power of 2 itself.

[0016] Based on the above implementation of expanding a first matrix whose length is not a power of 2 to obtain a second matrix, it can be seen that after obtaining multiple first matrices, expanding the first matrices whose length is not a power of 2 yields the corresponding second matrices. The second matrix corresponding to a first matrix whose length is a power of 2 is the first matrix itself.

[0017] In some implementations of the first or second aspect, obtaining at least two first matrices includes: obtaining the at least two first matrices according to the target code length E, the information bit length K, and the rate matching mode of the mother code corresponding to the target code length E.

[0018] In this implementation, for the target code corresponding to the target code length E and information bit length K, the coupling of the Arikan core has only one mode, which cannot achieve the optimal coupling for various code lengths and information bit lengths. However, in this application, based on the rate matching mode of the mother code, several small cores (corresponding to at least two first matrices) are determined first. Under different code lengths and information bit lengths, the construction of the cores is more flexible, which can reduce the bit error rate.

[0019] In some implementations of the first or second aspect, the first matrix of size l is matrix #1, and the second matrix corresponding to the first matrix of size l is matrix #2, wherein matrix #2 satisfies the following characteristics:

[0020] The first position set of matrix #2 corresponds to an identity matrix. The first position set includes the row index of the row corresponding to the punch position or shortened position of matrix #2, and the position corresponding to the column index of the column corresponding to the punch position or shortened position of matrix #2.

[0021] The elements in the second position set of matrix #2 are 0. The second position set includes the row index of the row corresponding to the non-punched or non-shortened position of matrix #2, and the position corresponding to the column index of the column corresponding to the punched or shortened position of matrix #2.

[0022] The elements in the third position set of matrix #2 are 0. The third position set includes the row index of the row corresponding to the punched or shortened position of matrix #2, and the position corresponding to the column index of the column corresponding to the non-punched or non-shortened position of matrix #2; and...

[0023] The fourth position set of matrix #2 corresponds to the first matrix. The fourth position set includes the row index of the row corresponding to the non-punched or non-shortened position of matrix #2, and the position corresponding to the column index of the column corresponding to the non-punched or non-shortened position of matrix #2.

[0024] This implementation presents the process of expanding the first matrix into the second matrix. In other words, it provides a method for constructing the second matrix. Compared to polar codes based on the Arikan kernel, the encoding complexity remains largely unchanged, but the decoding performance is improved, for example, the bit error rate is reduced.

[0025] In some implementations of the first or second aspect, the set of information bits corresponding to matrix #2 is determined based on the set of information bits of matrix #1.

[0026] In some implementations of the first or second aspect, the i-th bit of matrix #1 corresponds to the i-th bit of matrix #2. The bit, the first bit The 1 bit is the i-th bit in matrix #2, excluding the punched and / or shortened positions, ordered by index from smallest to largest. The information bit set of matrix #1 is {i1,…,i...} s The information bit set of matrix #2 is as follows: s is a positive integer.

[0027] This implementation provides a method for determining the information bits of the second matrix after expanding the first matrix to obtain the corresponding second matrix. In other words, based on this implementation, the information bits of the non-regular kernel polar code can be determined.

[0028] In some implementations of the first or second aspect, any two of the at least two first matrices may be the same or different. This implementation allows for flexible and different core constructions with varying code lengths and bit lengths, while maintaining encoding / decoding complexity comparable to that of Arikan-based cores.

[0029] In some implementations of the first or second aspect, the step of encoding based on the at least two second matrices to obtain an encoded sequence includes: coupling the at least two second matrices to obtain a third matrix; and encoding based on the third matrix to obtain the encoded sequence.

[0030] In some implementations of the first or second aspect, the step of encoding based on the at least two second matrices to obtain an encoded sequence includes: encoding at least two sub-blocks of the sequence to be encoded based on the at least two second matrices to obtain at least two encoded sub-blocks, wherein the at least two sub-blocks are obtained by splitting the sequence to be encoded based on the size of the at least two second matrices; and coupling the at least two encoded sub-blocks to obtain the encoded sequence.

[0031] The two implementations described above are two ways of encoding based on multiple sub-matrices. One method is to couple multiple sub-matrices into a large matrix and then encode based on this large matrix to obtain an encoding sequence. The other method is to use multiple sub-matrices to encode the sub-blocks of the vector to be encoded, obtain the corresponding encoding sub-blocks, and finally couple the multiple encoding sub-blocks to obtain an encoding sequence.

[0032] The former implementation provides a general method for constructing the generator matrix of polar codes based on non-regular kernels; the latter implementation has low encoding complexity and low computational cost.

[0033] In the methods of the first or second aspect, after determining at least two first matrices, the encoding side expands the first matrix that is not a power of 2 into a second matrix. The first matrix can also be called a non-regular polarization kernel, which is different from the Arikan polarization kernel. The non-regular polarization kernel that is not a power of 2 remains a non-regular polarization kernel after expansion. Taking the construction of a non-regular polarization kernel with a target code length E and the number of information bits K as an example, when the target code length E and the number of information bits K are known (or determined), this application also provides corresponding schemes for constructing these at least two non-regular polarization kernels, which can be used for encoding on the encoding side or decoding on the decoding side, respectively referring to the encoding method of the third aspect or the decoding method of the fourth aspect.

[0034] Thirdly, an encoding method is provided, which can be executed by a communication device. Regarding the communication device, refer to the description in the first aspect. Taking the encoding method executed by the encoding device as an example, the method includes: the encoding device determining information for P subcodes, the information for the P subcodes including the code length and the number of information bits for each subcode; the encoding device determining R first matrices based on the information for each subcode in the P subcodes, the R first matrices including a first matrix of size l, where l is not a power of 2 and l is a positive integer, P and R are both integers greater than or equal to 2, and R is greater than or equal to P; the encoding device performing encoding based on the R first matrices to obtain an encoded sequence.

[0035] Based on the third aspect of the method, a method for determining the irregular polar kernel of each subcode of an irregular polar code is provided for its construction. An irregular polar code of arbitrary code length and code rate can be constructed from multiple irregular polar kernels. The performance of the irregular kernel polar code obtained in this way is superior to that of the Arikan polar code.

[0036] Combining the encoding methods of the first and third aspects, for the construction of irregular core polar codes of arbitrary code length and code rate, the encoding device constructs multiple irregular polar kernels (corresponding to R first matrices) based on the target code length E and the number of information bits, using the method of the third aspect. These multiple irregular polar kernels are coupled to obtain the target code. During the coupling process, if any of the multiple irregular polar kernels includes an irregular polar kernel whose length is not a power of 2, it can be expanded to a power of 2 polar kernel using the method of the first aspect before coupling. The irregular core polar codes obtained using the encoding method provided in this application can construct irregular core polar codes of arbitrary code length and code rate, and their performance is superior to Arikan polar codes.

[0037] Fourthly, a decoding method is provided, which can be executed by a communication device. For details regarding the communication device, please refer to the description in the first aspect. Taking the decoding method executed by the decoding device as an example, the method includes: the decoding device determining information for P sub-codes, the information for the P sub-codes including the code length and the number of information bits for each sub-code; the decoding device determining R first matrices based on the information for each sub-code in the P sub-codes, the R first matrices including a first matrix of size l, where l is not a power of 2 and l is a positive integer, P and R are both integers greater than or equal to 2, and R is greater than or equal to P; the decoding device performing decoding based on the R first matrices to obtain a decoded sequence.

[0038] In one implementation of the third or fourth aspect, the range of values ​​for the code lengths of the P subcodes satisfies at least one of the following: the range of values ​​for the code lengths of the P subcodes is predefined; the range of values ​​for the code lengths of the P subcodes is related to the target code length E; or the range of values ​​for the code lengths of the P subcodes is related to the transmission requirements.

[0039] In this implementation, the code lengths of the P subcodes generally have the same range. The range of code lengths for the P subcodes can be set based on transmission requirements. For example, generally, a larger code length results in a lower bit error rate, but also a greater latency. This principle can be used to set the range of code lengths for the subcodes to meet the construction of non-regular kernel polar codes under different transmission requirements.

[0040] In one implementation of the third or fourth aspect, the code length of each of the P subcodes is determined based on at least one of the following: the rate matching mode of the mother code corresponding to the target code length E; at least two of the target code length E, the number of information bits K, and the code rate.

[0041] In this implementation, given that the target code length E and the number of information bits K are determined, the code length of each of the P subcodes can be determined by combining at least one of the above.

[0042] In one implementation of the third or fourth aspect, the number of information bits in each of the P sub-codes is determined based on at least one of the following: the reliability sequence corresponding to the length of the mother code, the length of the mother code being determined according to the target code length E; at least two of the target code length E, the number of information bits K, and the code rate; the code length of each of the P sub-codes; and the rate matching mode of the mother code corresponding to the target code length E.

[0043] In this implementation, given that the target code length E and the number of information bits K are determined, the number of information bits for each of the P subcodes can be determined by combining at least one of the above-mentioned factors.

[0044] In one implementation of the third or fourth aspect, determining the information of the P subcodes includes: determining the code length of each of the P subcodes; and determining the number of information bits in each subcode based on the code length of each subcode.

[0045] In the technical solution of this application, the code length of P sub-codes can be determined first, and then the number of information bits of each sub-code can be determined.

[0046] In one implementation of the third or fourth aspect, the method further includes: determining K positions from the reliability sequence corresponding to the mother code based on the rate matching mode of the mother code corresponding to the target code length E, where K is the number of information bits of the target code; determining the number of information bits in each sub-code based on the code length of each sub-code includes: determining the number K of information bits in each of the P sub-codes based on the code length of each sub-code and the distribution of the K positions in the P sub-codes. j , K j It is a non-negative integer.

[0047] In this implementation, the number of information bits in each of the P subcodes is determined by the reliability sequence, and the complexity of determining the number of information bits is relatively low.

[0048] In one implementation of the third or fourth aspect, determining R first matrices based on the information of each of the P subcodes includes: determining R first matrices, P = R, based on first correspondence information and the information of each of the P subcodes, wherein the first correspondence information indicates the correspondence between the target code length E, the number of information bits K, and the matrix #1 corresponding to the first subcode, wherein the first subcode is any one of the P subcodes, and the matrix #1 corresponding to the first subcode is one of the R first matrices.

[0049] In this implementation, a matrix with a low decoding error rate is determined based on the code length and the number of information bits of each subcode.

[0050] In this implementation, the specific form of the first correspondence information is not limited. For example, the first correspondence may be presented in one or more forms such as a table or formula. For instance, in the table presentation method, the query items of the table can be the code length and the number of information bits, and the output item is the non-regular polarization kernel (i.e., the first matrix) corresponding to the code length and the number of information bits. That is, by querying the table, the non-regular polarization kernel corresponding to a sub-code can be directly determined.

[0051] In one implementation of the third or fourth aspect, determining R first matrices based on the information of each of the P subcodes includes: determining subcode #1 (N1, K1) and subcode #2 (N0-N1, K0-K1) based on the first subcode (N0, K0), wherein the first subcode (N0, K0) is one of the P subcodes; when the code length of subcode #1 is less than or equal to a threshold, determining matrix #1 corresponding to subcode #1, wherein matrix #1 is one of the R first matrices; and / or, when the code length of subcode #2 is less than or equal to a threshold, determining matrix #2 corresponding to subcode #2, wherein matrix #2 is one of the R first matrices.

[0052] In this implementation, only the matrices corresponding to subcodes whose code length is less than or equal to the threshold can be stored. Compared with the method of directly storing all matrices, the matrix storage complexity and storage overhead of the present application are lower.

[0053] In one implementation of the third or fourth aspect, determining subcode #1 (N1, K1) and subcode #2 (N0-N1, K0-K1) based on the first subcode (N0, K0) includes: determining the information of subcode #1 and subcode #2 of the first subcode (N0, K0) based on second correspondence information, wherein the second correspondence information indicates the correspondence between the information of the first subcode (E0, K0) and the information of subcode #1, the first subcode (E0, K0) is obtained by coupling subcode #1 (N1, K1) and subcode #2 (E0-N1, K0-K1), the first subcode is one of P subcodes, and E0, K0, N1 and K1 are all positive integers; determining the information of subcode #2 based on the information of the first subcode (N0, K0) and the information of subcode #1.

[0054] In this implementation, the matrix corresponding to the sub-code with the smaller code length can be determined by the matrix corresponding to the sub-code with the smaller code length. Compared with the method of directly storing all matrices, the matrix storage complexity is lower.

[0055] Furthermore, the specific form of the second correspondence information is not limited. For example, the second correspondence may be presented in the form of a table, formula, etc. For instance, in the form of a table, the query items of the table can be the code length and the number of information bits of the first sub-code, and the output items are the code length and the number of information bits of sub-code #1. As another example, in the form of a formula, it can be implemented using a function whose input is the code length and the number of information bits of the first sub-code, and whose output is the code length and the number of information bits of sub-code #1. Alternatively, it may be implemented using two functions. For example, function 1 takes the code length and the number of information bits of the first sub-code as input and outputs the code length of sub-code #1; function 2 takes the code length and the number of information bits of the first sub-code as input and outputs the number of information bits of sub-code #1.

[0056] In one implementation of the third or fourth aspect, when the code length E0 of the first subcode is in the range of 8 to 16, the code length N1 of subcode #1 is related to at least one of the following:

[0057] The values ​​of E0-K0;

[0058] The values ​​of E0 and K0;

[0059] E0 / q, where q is a constant.

[0060] As an example, N1 is determined based on the following rules: if any one of the following conditions 1 to 3 is met, N1 = floor(N0 / 2); otherwise, N1 = ceil(N0 / 2), where floor means rounding down and ceil means rounding up.

[0061] Condition 1: N0 - K0 > 9;

[0062] Condition 2: N0 - K0 = 4;

[0063] Condition 3: N0 = 15 and K0 = 10.

[0064] In this implementation, the code length of subcode #1 can be directly determined by the code length of the first subcode and the number of information bits, further reducing the complexity of matrix construction.

[0065] In one implementation of the third or fourth aspect, when the code length E0 of the first subcode is in the range of 8 to 16, the number of information bits K1 of subcode #1 is related to at least one of the following:

[0066] The possible values ​​of K0;

[0067] The values ​​of K0 / E0;

[0068] The values ​​of E0-K0.

[0069] As an example, K1 is determined based on the following rules:

[0070] If K 00 If K1 >= 11, then K1 = 4; otherwise,

[0071] If K0 >= 8 and K0 / N0 >= 9 / 15, then K1 = 3; otherwise, 6.

[0072] If K0 >= 7 and N0 - K0 <= 8, or K0 = 6 and N0 - K0 <= 5, then K1 = 2; otherwise

[0073] K1 = 1.

[0074] In this implementation, the number of information bits of subcode #1 can be directly determined by the code length and the number of information bits of the first subcode, further reducing the complexity of matrix construction.

[0075] Fifthly, a communication device is provided, which has the function of implementing the methods of the first aspect or the third aspect, or any possible implementation of these aspects. The function can be implemented by hardware or by hardware executing corresponding software. The hardware or software includes one or more units corresponding to the above-described functions.

[0076] Sixthly, a communication device is provided, which has the function of implementing the methods of the second or fourth aspect, or any possible implementation of these aspects. The function can be implemented in hardware or by hardware executing corresponding software. The hardware or software includes one or more units corresponding to the above-described functions.

[0077] A seventh aspect provides a communication device including at least one processor configured to cause the communication device to perform any one of the first to fourth aspects, or any implementation thereof. Optionally, the at least one processor is coupled to at least one memory for storing a computer program or instructions, and the at least one processor is configured to call and execute the computer program or instructions from the at least one memory, causing the communication device to perform any one of the first to fourth aspects, or any implementation thereof. Optionally, the processor and the memory are integrated together.

[0078] Optionally, the at least one processor may be included in the communication device or configured externally. Optionally, the communication device may also include the at least one memory. Furthermore, the communication device may optionally include a communication interface for inputting and / or outputting signals.

[0079] Eighthly, a communication device is provided, comprising a communication interface and a circuit. The communication interface is configured to receive a signal to be processed and transmit the signal to the circuit. The circuit is configured to process the signal to perform a method as described in any one of the first to fourth aspects, or any possible implementation thereof. Optionally, the communication interface is further configured to output the processed signal from the circuit. Optionally, the signal may include information and / or data. Optionally, the communication device may be a chip (e.g., a baseband chip) or a chip system. The communication interface may be an interface circuit.

[0080] Ninth aspect, a computer-readable storage medium is provided, wherein computer program code or instructions are stored therein, which, when executed on a computer, cause the method of any one of the first to fourth aspects, or any possible implementation thereof, to be implemented.

[0081] In a tenth aspect, a computer program product is provided, the computer program product comprising computer program code or instructions that, when the computer program code or instructions are executed on a computer, cause any one of the first to fourth aspects, or any possible implementation of these aspects, to be implemented.

[0082] Eleventhly, a wireless communication system is provided, including a communication device that performs the method of the first or third aspect, and a communication device that performs the method of the second or fourth aspect. Attached Figure Description

[0083] Figure 1 is a schematic diagram of an 8-bit polar code encoding.

[0084] Figure 2 is a schematic diagram of the SC decoding process.

[0085] Figure 3 is a schematic diagram of the coupling process of the Arikan polarization nucleus.

[0086] Figure 4 shows an example of a communication system applicable to the technical solution of this application.

[0087] Figure 5 is a schematic diagram of the basic process of wireless communication.

[0088] Figure 6 is a schematic flowchart of the encoding method 600 provided in this application.

[0089] Figure 7 shows an example of the first matrix.

[0090] Figure 8 shows an example of the second matrix.

[0091] Figure 9 is a schematic flowchart of the encoding method 900 provided in this application.

[0092] Figure 10 is a schematic diagram of expanding a non-normal polarization kernel with a length not equal to a power of 2 into a non-normal polarization kernel with a length equal to a power of 2.

[0093] Figure 11 is a performance comparison chart of non-regular kernel polar codes and Arikan polar codes based on the scheme of this application.

[0094] Figure 12 shows an example of non-canonical polarized nuclear coupling.

[0095] Figure 13 shows an example of non-canonical polarized nuclear coupling.

[0096] Figure 14 is a schematic structural diagram of the communication device 1000 provided in this application.

[0097] Figure 15 is a schematic block diagram of another communication device 1100 provided in this application.

[0098] Figure 16 is a schematic diagram of the chip provided in this application. Detailed Implementation

[0099] The technical solutions in this application will now be described with reference to the accompanying drawings.

[0100] First, the relevant concepts or technologies involved in the embodiments of this application will be introduced.

[0101] 1. Polar code encoding

[0102] Polar codes are the first coding scheme that can be rigorously proven to "achieve" Shannon channel capacity. They have the advantages of good decoding performance and low complexity. Currently, they have been selected by the 3rd generation partnership project (3GPP) as the control channel coding scheme for the enhanced mobile broadband (eMBB) scenario of the fifth generation (5G) system.

[0103] Figure 1 is a schematic diagram of an 8-bit polar code encoding. As shown, the encoding process includes several polarization kernel operations, where the polarization kernel ANDs the two input bits... Multiplying them yields two output bits. It can be seen that the polar code is constructed recursively; an 8-bit polar code can be seen as a result of coupling two 4-bit polar codes, and a 4-bit polar code can be seen as a result of coupling two 2-bit polar codes.

[0104] G N For an Arikan polarization kernel of length N, a polar code of length N can be seen as obtained by coupling two polar codes of length N / 2 before polarization. A polar code of length N / 2 can be seen as obtained by coupling two polar codes of length N / 4 before polarization, and so on. Furthermore, an Arikan polarization kernel of length N can be SC decoded by performing Nlog(N) f operations and g operations.

[0105] 2. Construction of Polar Code

[0106] The construction process of polar codes is used to determine the information bits and freeze bits. Typically, the reliability of each sub-channel is ranked, and the K positions with the highest reliability are set as information bits, while the remaining NK positions are set as freeze bits. As shown in Figure 1, to construct a polar code with N=8 and K=4, u3, u5, u6, and u7 are usually the information bits, and the remaining positions are freeze bits. In practice, polar codes can be constructed offline using a reliability sequence or online using methods such as Gaussian approximation.

[0107] 3. Polar code decoding

[0108] Polar codes can be decoded using a successive cancellation (SC) decoding algorithm. In the SC algorithm, the log likelihood ratio (LLR) of the information bits is calculated step by step. For an information bit, if LLR > 0, the bit is set to 0; if LLR < 0, the bit is set to 1. For a frozen bit, the bit is set to 0 regardless of the LLR value.

[0109] Figure 2 illustrates the SC decoding process. As shown in Figure 2, there are 8 computation nodes, including 4 f nodes and 4 g nodes. The computation of an f node requires 2 LLR inputs to its right, and the computation of a g node requires 2 LLR inputs to its right and 1 "partial sum" input above it. Furthermore, the output can only be calculated after the inputs have been calculated. According to the above rules, starting from the received signal on the right and calculating the 8 nodes sequentially, the decoding order of the 4 bit positions is ①→②→③→④, which is the SC decoding process.

[0110] 4. Rate matching

[0111] The parent code of a polar code is always an integer power of 2. However, in practical applications, the required length of the polar code (also known as the target code length) is not necessarily an integer power of 2. In this case, some bits can be removed from the parent code and not sent, or some bits in the parent code can be sent repeatedly. This process is called rate matching.

[0112] The rate matching in this application embodiment mainly uses the following two modes:

[0113] 1) Punch: This refers to directly punching holes in certain positions of a polar code of the master code length without transmitting the data. This method generates polar code sequences of arbitrary length. On the decoding side, since there is no information at the corresponding "punch" positions, the LLR of the corresponding bits is set to 0.

[0114] 2) Shortening: This involves designing the polar code so that certain positions in the encoded sequence are fixed values ​​and therefore do not need to be transmitted. On the decoding side, since the positions corresponding to the "shortening" are essentially known (usually set to 0), the LLR of the corresponding bit is set to infinity.

[0115] 5. Rate matching based on natural order

[0116] Specifically, this refers to continuously punching or shortening the bits of a polar code according to the natural order of their position indices. Taking punching as an example, when a polar code of length 6 is needed, first construct a polar code of length 8, then punch the first two bit positions; when a polar code of length 5 is needed, first construct a polar code of length 8, then punch the first three bit positions. Taking shortening as another example, when a polar code of length 7 is needed, a preset u7 = 0 can be used to make x7 0 in all encoded sequences; when a polar code of length 6 is needed, a preset u7 and u6 can be used to make x7 and x6 0 in all encoded sequences. In rate matching based on natural order, the shortening or punching positions are continuous, making implementation simple. It should be understood that in this example, the bit position indices are calculated starting from 0.

[0117] In existing polar code encoding techniques, when the code length N is a power of 2, there is only one coupling method, which cannot achieve optimal performance across all K values. Furthermore, when N is not a power of 2, rate matching is required, leading to a performance degradation in the SC algorithm.

[0118] Figure 3 is a schematic diagram of the coupling process of Arikan polarization nuclei. As shown in Figure 3, two polarization nuclei F2 with a length of 2 are coupled to obtain a polarization nuclei F4 with a length of 4; two polarization nuclei F1 with a length of 1 are coupled to obtain a polarization nuclei F2 with a length of 2.

[0119] Non-regular polar codes construct large kernels based on the channel state or the specific arrangement of polar trellis connections according to the information bit length K, accelerating polarization without increasing decoding complexity. Different N and K result in different kernels. Furthermore, when the code length N is large, there is a lack of systematic construction schemes, requiring coupling with smaller non-regular polar codes. Moreover, non-regular polar codes of different lengths cannot be directly coupled.

[0120] In view of this, this application provides an encoding method and a corresponding decoding method, which can construct non-regular core polar codes based on non-regular polarization kernel coupling under arbitrary rate matching.

[0121] The technical solution provided in this application is described below.

[0122] The technical solutions of this application can be applied to various communication systems, including but not limited to: satellite communication systems, fifth-generation (5G) systems or new radio (NR) systems, long-term evolution (LTE) systems, LTE frequency division duplex (FDD) systems, LTE time division duplex (TDD) systems, and future communication systems. Furthermore, they can also be applied to sidelink (SL) communication, vehicle-to-everything (V2X) communication, machine-to-machine (M2M) communication, machine-type communication (MTC), and Internet of Things (IoT) communication systems, or other communication systems, which are not limited herein.

[0123] Figure 4 illustrates an example of a communication system applicable to the technical solution of this application. As shown in Figure 4, the communication system may include one or more transmitting devices and one or more receiving devices. Optionally, one of the transmitting and receiving devices may be a terminal device, and the other may be a network device. The encoding or decoding method provided in this application is applicable to communication between the network device and the terminal device shown in Figure 4, i.e., uplink or downlink communication. For example, in downlink communication, the transmitting device (or corresponding encoding device) in this embodiment of the application is a network device, and the receiving device (or corresponding decoding device) is a terminal device; in uplink communication, the transmitting device is a terminal device, and the receiving device is a network device.

[0124] The communication system provided in this application may also include AI network elements for implementing some or all AI-related operations. AI network elements can also be referred to as AI nodes, AI devices, AI entities, AI modules, AI models, or AI units, etc. The AI ​​network elements may be built into the network elements of the communication system. For example, an AI network element may be an AI module built into: access network equipment, core network equipment, cloud server, or operation, administration, and maintenance (OAM) to implement AI-related functions. The OAM may act as the network management system for core network equipment and / or access network equipment. Alternatively, the AI ​​network element may also be an independently configured network element in the communication system. Optionally, the terminal or its built-in chip may also include AI entities for implementing AI-related functions.

[0125] For example, a terminal device may also be referred to as user equipment (UE), access terminal, user unit, user station, mobile station, mobile station, mobile terminal (MT), remote station, remote terminal, mobile device, user terminal, terminal, wireless communication device, user agent, or user apparatus. In the embodiments of this application, the terminal device may be a device that provides voice and / or data connectivity to a user, and can be used to connect people, objects, and machines, such as a handheld device with wireless connectivity, in-vehicle equipment, etc. The terminal devices in the embodiments of this application can be mobile phones, tablets, laptops, handheld computers, mobile internet devices (MIDs), wearable devices, virtual reality (VR) devices, augmented reality (AR) devices, point-of-sale (POS) machines, customer-premises equipment (CPEs), light user equipment (UEs), reduced capability UEs (REDCAP UEs), vehicle devices (such as vehicle units, vehicle modules, vehicle chips, on-board units (OBUs), or telematics boxes (T-BOXs), wireless terminals in industrial control, wireless terminals in self-driving, wireless terminals in remote medical surgery, wireless terminals in smart grids, wireless terminals in transportation safety, wireless terminals in smart cities, and wireless terminals in smart homes. Wireless terminals in the home (e.g., wireless terminals). Optionally, the UE can be used to act as a base station. For example, the UE can act as a scheduling entity that provides sidelink signaling between UEs in V2X or SL, etc.

[0126] In this embodiment, the device for implementing the functions of the terminal device can be the terminal device itself, or any device capable of supporting the terminal device in implementing the corresponding functions, such as a chip, chip system, processor, circuit, or a combination of hardware and / or software. This device is located on the terminal side and can be configured within or used in conjunction with the terminal device. The chip system can be composed of chips or may include chips and other discrete components.

[0127] The network device in this application embodiment may include a device for communicating with a terminal device. This network device may include an access network device or a radio access network device; for example, the network device may be a base station. An access network device may refer to a radio access network (RAN) node (or device) that connects the terminal device to a wireless network. A base station can broadly encompass, or be replaced by, various names such as: NodeB, evolved NodeB (eNB), next-generation NodeB (gNB), relay station, access point, transmitting and receiving point (TRP), transmitting point (TP), master station, auxiliary station, motor slide retainer (MSR) node, home base station, network controller, access node, wireless node, access point (AP), transmission node, transceiver node, baseband unit (BBU), remote radio unit (RRU), active antenna unit (AAU), remote radio head (RRH), central unit (CU), distributed unit (DU), radio unit (RU), positioning node, etc. A base station can be a macro base station, micro base station, relay node, donor node, or a combination thereof. A base station can also refer to a communication module, modem, or chip installed within the aforementioned equipment or apparatus. A base station can also be a mobile switching center, a device performing base station functions in D2D, V2X, and M2M communications, a network device (e.g., a base station) in a future communication network, or a device performing network device functions. A base station can support networks using the same or different access technologies. Optionally, a RAN node can also be a server, wearable device, vehicle, or in-vehicle equipment. For example, the access network equipment in vehicle-to-everything (V2X) technology can be a roadside unit (RSU). The embodiments of this application do not limit the specific technology or device form used in the network equipment.

[0128] Base stations can be fixed or mobile. For example, a helicopter or drone can be configured to act as a mobile base station, and one or more cells can move depending on the location of the mobile base station. In other examples, a helicopter or drone can be configured as a device to communicate with another base station.

[0129] In some deployments, the network device in this application embodiment may be a device including a CU, or a DU, or a device including both CU and DU, or a control plane CU node (central unit-control plane (CU-CP)) and a user plane CU node (central unit-user plane (CU-UP)) and a DU node. For example, the network device may include gNB-CU-CP, gNB-CU-UP, and gNB-DU.

[0130] In some deployments, multiple RAN nodes collaborate to assist terminals in achieving wireless access, with different RAN nodes each implementing some of the base station's functions. For example, RAN nodes can be CUs, DUs, CU-CPs, CU-UPs, or RUs. CUs and DUs can be configured separately or included in the same network element, such as a BBU. RUs can be included in radio frequency equipment or radio frequency units, such as RRUs, AAUs, or RRHs.

[0131] In different systems, CU (or CU-CP and CU-UP), DU, or RU may have different names, but those skilled in the art will understand their meaning. For example, in an open radio access network (ORAN / O-RAN) system, CU can also be called an open CU (open CU, O-CU), and DU can also be called an open DU (open DU, O-DU). CU-CP can also be called O-CU-CP, CU-UP can also be called O-CU-UP, and RU can also be called O-RU. Any of the units among CU (or CU-CP, CU-UP), DU, and RU in this application can be implemented through software modules, hardware modules, or a combination of software modules and hardware modules.

[0132] In this embodiment, the device used to implement the functions of the network device can be the network device itself; it can also be a device capable of supporting the network device in implementing the corresponding functions, such as a combination of a chip, processor, circuit, hardware, and / or software. This device is located on the network side and can be configured within or used in conjunction with the network device.

[0133] Figure 5 is a schematic diagram of the basic process of wireless communication. As shown in Figure 5, on the transmitting side, the signal source is transmitted after sequentially undergoing source coding, channel coding, and modulation. On the receiving side, the received signal is sequentially demodulated, channel decoded, and source recovery (or source decoding) before outputting the destination signal. Among these, channel coding and channel decoding are one of the core technologies in the field of wireless communication.

[0134] The encoding or decoding methods provided in this application correspond to the channel coding and channel decoding processes shown in Figure 5, respectively. They can be used in dedicated network equipment or general network equipment, and can be applied to the various network devices (e.g., base stations) and terminal devices mentioned above. Specifically, the channel coding scheme is mainly implemented through the channel coding unit (e.g., encoder) in these devices, and the channel decoding scheme is mainly implemented through the channel decoding unit (e.g., decoder) in these devices.

[0135] Figure 6 is a schematic flowchart of the encoding method 600 provided in this application. Method 600 includes steps 610 to 640, respectively denoted as S610 to S640, which can be executed by an encoding device, such as an encoding apparatus, or a device applied to the encoding apparatus (e.g., an encoder, chip, or circuit). The following embodiments use an encoding apparatus as an example.

[0136] In summary, this application provides a method for coupling irregular kernels into irregular kernel polar codes under arbitrary rate matching modes. Specifically, several irregular polar codes whose size is not an integer power of 2 are first expanded into kernels whose size is an integer power of 2, and then encoded based on the kernels whose size is an integer power of 2 to obtain irregular kernel polar codes.

[0137] For the generator matrix of the Arikan polar code, the row weights of the first row are all powers of 2, and the row weight of the 2kth row is twice the row weight of the kth row. The submatrices corresponding to the [1,N / 2]th row and [1,N / 2]th column, the [N / 2+1,N]th column and [1,N / 2]th column, and the [N / 2+1,N]th row and [N / 2+1,N]th column are the same, and the submatrix corresponding to the [N / 2+1,N]th row and [1,N / 2]th column is a zero matrix.

[0138] The encoding matrix of the non-regular kernel polar code in the technical solution of this application may not satisfy the above characteristics. In other words, the encoding matrix of the non-regular kernel polar code in the embodiments of this application refers to a matrix that does not satisfy the above characteristics.

[0139] S610, the encoding device acquires at least two first matrices, the at least two first matrices including a first matrix of size l, where l < 2. t And l is not an integer power of 2, t is an integer, and l is a positive integer.

[0140] Here, the first matrix is ​​a square matrix of size l, indicating that the size of the first matrix is ​​l*l.

[0141] In this embodiment of the application, at least two first matrices may include a first matrix of size l and a first matrix of other sizes, where l < 2. tFurthermore, l is not an integer power of 2. Therefore, a first matrix of size l specifically refers to a first matrix whose size is not an integer power of 2. First matrices of other sizes refer to first matrices whose size is an integer power of 2. Optionally, at least two first matrices include one or more first matrices whose size is not an integer power of 2. In other words, at least two first matrices include a first matrix of size l, where l can take one or more values. When l takes only one value, it means that at least two first matrices include one type of first matrix whose size is not an integer power of 2. For example, there are four first matrices, including two first matrices of size 6. When l takes multiple values ​​(meaning two or more), it means that at least two first matrices include multiple types of first matrices whose size is not an integer power of 2. For example, there are four first matrices, including a first matrix of size 6 and a first matrix of size 12, neither of which has a size that is an integer power of 2.

[0142] Therefore, a first matrix of size l is an example of a first matrix whose size is not an integer power of 2. It is not limited to the existence of only one or more first matrices whose size is not an integer power of 2, nor is it limited to the possibility of each type of first matrix being one or more. As examples, multiple first matrices include a first matrix of size 3, a first matrix of size 12, a first matrix of size 18, and a first matrix of size 32. In this example, the first matrices of size 3, size 12, and size 18 have different sizes. 3, 12, or 18 are examples of l.

[0143] The aforementioned at least two first matrices may be the same or different. Multiple different first matrices can mean that all first matrices are distinct, or that some first matrices are the same while others are different. Therefore, any two of the multiple first matrices may be the same or different.

[0144] The at least two first matrices are determined based on the target code length E, the information bit length K, and the rate matching pattern of the mother code corresponding to the target code length E. Optionally, the information used to determine the at least two first matrices may include, in addition to the above information, the code rate of the mother code corresponding to the target code length E.

[0145] S620, the encoding device acquires at least two second matrices that correspond one-to-one with the at least two first matrices.

[0146] There is a one-to-one correspondence between at least two second matrices and at least two first matrices. Specifically, the second matrix corresponding to a first matrix of size l is obtained by expanding the first matrix of size l, and the second matrix corresponding to a first matrix of size l has a size of 2. t Similar to the first matrix, the second matrix is ​​a square matrix with a size of 2. tThe second matrix, indicating that the size of the second matrix is ​​2. t *2 t .

[0147] For a first matrix of size l, the size of the corresponding second matrix varies depending on the value of l. For example, for a first matrix of size l = 6, the corresponding second matrix is ​​8; for a first matrix of size l = 12, the corresponding second matrix is ​​16. When expanding a first matrix of size l, it is generally expanded to the nearest power of 2, or it may be expanded to a larger power of 2.

[0148] When determining at least two second matrices that correspond one-to-one with at least two first matrices, for a first matrix whose size is a power of 2, one possibility is that its corresponding second matrix is ​​the first matrix itself, that is, the first matrix whose size is a power of 2 is not expanded. Another possibility is that its corresponding second matrix is ​​obtained by expanding the first matrix, and the second matrix is ​​a power of 2 and its size is greater than that of the first matrix. For a first matrix whose size is not a power of 2, its corresponding second matrix is ​​obtained by expanding the first matrix whose size is not a power of 2. Specifically, it is expanded into a matrix whose size is a power of 2 to obtain the second matrix.

[0149] In S620, firstly, according to the rate matching mode of the mother code corresponding to the target code length E, the values ​​less than or equal to 2 are matched. t The first matrix is ​​expanded to a size of 2 t The second matrix.

[0150] Assuming the rate matching mode of the mother code corresponding to the target code length E is already determined, and the size, construction, and information bits of each first matrix are also determined according to the code rate and rate matching mode of the mother code corresponding to the target code length E, the specific construction method of the second matrix is ​​as follows:

[0151] Let F represent the first matrix of size l, where l ≤ 2. t The set of information bits for the first matrix is ​​I. F ={i1,…,i s The set of punched and / or shortened bits in the first matrix is ​​denoted as Q, and Q can be determined by rate matching of the mother code. Indicates from size 2 t ×2 t The remaining positions, excluding set Q, within the rows and columns indicated by the combination of punched and / or shortened bits of the matrix corresponding to the mother code, have a size of 2. t×2 t The second matrix K can be defined as follows:

[0152] That is, the punched positions and / or shortened positions in the first matrix correspond to a size of 2. t The identity matrix (or identity matrix) of -l is denoted as: remember for The i-th bit in ascending order of size corresponds to the i-th bit in the second matrix. The set of information bits in the second matrix is ​​bits.

[0153] It is understandable that if the rate matching method of the mother code corresponding to the target code length E is determined, then the puncture bits and / or shortening bits are also determined, and thus the puncture bits and / or shortening bits in the first matrix are also determined. The positions of the rows corresponding to the puncture bits and / or the rows corresponding to the shortening bits in the first matrix, as well as the columns corresponding to the puncture bits and / or the columns corresponding to the shortening bits in the first matrix, constitute a set Q. All elements in set Q, as a whole, correspond to a matrix of size 2. t The identity matrix of -l.

[0154] For clarity and conciseness in the description of the scheme, the first matrix of size l is represented as matrix #1, and the second matrix corresponding to the first matrix of size l is represented as matrix #2.

[0155] For any matrix #1, the matrix #2 corresponding to the expanded matrix #1 can be described based on the above formula (1):

[0156] Matrix #2 satisfies the following characteristics:

[0157] The first set of positions of matrix #2 corresponds to the identity matrix. The first set of positions includes the row index of the row corresponding to the punched or shortened position of matrix #2, and the position corresponding to the column index of the column corresponding to the punched or shortened position of matrix #2.

[0158] The elements in the second position set of matrix #2 are 0. The second position set includes the row index of the row corresponding to the non-punched or non-shortened position of matrix #2, and the position corresponding to the column index of the column corresponding to the punched or shortened position of matrix #2.

[0159] The elements in the third position set of matrix #2 are 0. This third position set includes the row index of the row corresponding to the punched or shortened position of matrix #2, and the column index of the column corresponding to the non-punched or non-shortened position of matrix #2; and...

[0160] The fourth position set of matrix #2 corresponds to the first matrix. The fourth position set includes the row index of the row corresponding to the non-punched or non-shortened position of matrix #2, and the position corresponding to the column index of the column corresponding to the non-punched or non-shortened position of matrix #2.

[0161] The following example illustrates how matrix #1 can be expanded into matrix #2.

[0162] As an example, suppose matrix #1 has a size of 6*6, and matrix #1 is shown below:

[0163] To better illustrate the process of expanding matrix #1 into matrix #2, the following explanation is provided in conjunction with Figures 7 and 8.

[0164] Figure 7 shows an example of the first matrix, where matrix #1 is a 6x6 square matrix. Rows 3, 5, and 6 correspond to information bits, as shown in the bold italicized rows in Figure 7. The dashed lines in Figure 7 are only for easy comparison with the expanded matrix #2.

[0165] Assuming the rate matching mode of the mother code corresponding to the target code length E is shortened, and the shortened bits are 4 and 8, then the 6*6 matrix #1 is expanded into the following 8*8 matrix #2:

[0166] Figure 8 shows an example of the second matrix, which is the expanded version of matrix #1 in this example, namely matrix #2. As can be seen from Figure 8, because the shortened positions are 4 and 8, according to the expansion rules in formula (1) above: 1) the positions corresponding to the 4th row and 4th column, the positions corresponding to the 4th row and 8th column, the positions corresponding to the 8th row and 4th column, and the positions corresponding to the 8th row and 8th column correspond to an identity matrix of size 2*2 (i.e., 2...). t -l); These 4 positions constitute the first set of positions mentioned above. 2) The elements in the 4th column, except for the elements in the 4th row and the 8th row, and the elements in the 8th column, except for the elements in the 4th and 8th rows, are all 0. These positions constitute the second set of positions mentioned above; 3) The elements in the 4th row, except for the elements in the 4th and 8th columns, and the elements in the 8th row, except for the elements in the 4th and 8th columns, are all 0. These positions constitute the third set of positions mentioned above; 4) The remaining positions in the 8*8 matrix #2 constitute the fourth set of positions, corresponding to matrix #1, that is, the elements in matrix #1 are kept unchanged.

[0167] When there are multiple first matrices of size other than 2, each first matrix is ​​expanded in the manner of formula (1) to obtain a second matrix of size that is an integer power of 2.

[0168] The above steps can yield at least two second matrices, which may or may not be of equal size.

[0169] S630, The encoding device performs encoding based on the at least two second matrices to obtain an encoded sequence.

[0170] After obtaining at least two second matrices, each second matrix has a size that is a power of 2. The sequence to be encoded is then encoded based on these at least two second matrices to obtain the encoded sequence.

[0171] In one example, assuming there are *s* second matrices, the sequence to be encoded is divided into *s* sub-blocks based on the size of these *s* second matrices. Each of these *s* sub-blocks is then encoded using the *s* second matrices to obtain *s* encoded sub-blocks. Each of the *s* encoded sub-blocks corresponds one-to-one with one of the *s* second matrices, and each encoded sub-block is obtained by encoding the corresponding sub-block within the *s* sub-blocks based on its corresponding second matrix. Finally, the *s* encoded sub-blocks are coupled together to obtain the final encoded sequence.

[0172] remember Let s be the s second matrices obtained. The sequence to be encoded, u, is divided into s sub-blocks according to the size of the second matrix. The length is As explained above regarding the first and second matrices, at least two second matrices are obtained based on at least two first matrices. For any one of these at least two second matrices, it may be the first matrix itself (i.e., the first matrix does not need to be extended), or it may be obtained by extending the corresponding first matrix (i.e., the size of the first matrix is ​​a power of 2 and extended to a larger power of 2, or the size of the first matrix is ​​not a power of 2 and extended to a power of 2). In this case, the size of the second matrix is ​​greater than the size of the first matrix. Assuming the target code length is E, the number of information bits (or the length of the information bits) is K, the sum of the lengths of the information bits of the subcodes corresponding to the at least two first matrices is K, and the sum of the code lengths of the subcodes corresponding to the at least two first matrices is E. These at least two second matrices may contain second matrices obtained by extending the corresponding first matrices. Therefore, the sum of the lengths of the information bits of the subcodes corresponding to the at least two second matrices is K, and the sum of the code lengths of the subcodes corresponding to the at least two second matrices may be greater than E.

[0173] First calculate the coded sub-blocks during encoding. Thus constructing the sequence of coded sub-blocks Search for the two shortest adjacent coded sub-blocks sequentially from front to back. and By coupling, a coupled coded sub-block is obtained. Will and Remove from the sequence and add the coupled coded sub-block v to the sequence, or in other words, replace the coded sub-block with the coupled coded sub-block v. and This process continues until the final coupled coded sub-block is obtained. This final coupled coded sub-block, after rate matching, becomes the final coded sequence (or codeword). The two coupled sub-blocks are of equal length. Coupling two adjacent coded sub-blocks involves a bitwise XOR operation.

[0174] In another example, assuming there are s second matrices, these s second matrices are coupled to obtain a third matrix. The sequence to be encoded, u, is encoded based on the coupled third matrix, and after rate matching, a encoded sequence with a target code length of E is obtained.

[0175] Remember G N The encoding matrix of an Arikan polar code with a mother code length of N is shown below. In the technical solution provided in this application, the encoding matrix of the polar code based on a non-regular kernel is as follows:

[0176] in, Indicates length is Arikan polarization nuclei, Indicates length is The Arikan polarization nucleus, and so on.

[0177] The encoded sequence is obtained through the above steps.

[0178] In this example, at least two second matrices are coupled into a code length of N=2 according to the coupling method of Arikan polar codes. m The encoding matrix corresponding to the mother code is used to encode the sequence to be encoded, and the mother code is obtained. Then, the mother code is rate matched based on the determined rate matching mode to obtain the encoded sequence with code length E.

[0179] Optionally, it also includes the S640.

[0180] S640, The encoding device outputs the encoded sequence. The length of the encoded sequence is the target code length E.

[0181] It is understandable that Method 600 mainly involves the channel coding process. After obtaining the coding sequence through channel coding, it may also involve one or more of the following processes: scrambling, modulation, layer mapping, antenna port mapping, and resource mapping.

[0182] The encoding method provided in this application can obtain non-regular kernel polar codes coupled by non-regular polar kernels of different sizes under arbitrary rate matching modes.

[0183] In addition, this application also provides a decoding method. The decoding method may include the following steps 710 to 740, denoted as S710 to S740.

[0184] S710, the decoding device acquires at least two first matrices, the at least two first matrices including a first matrix of size l, where l < 2. t And l is not an integer power of 2, t is an integer, and l is a positive integer.

[0185] S720, the decoding device acquires at least two second matrices that correspond one-to-one with the at least two first matrices.

[0186] The second matrix corresponding to the first matrix of length l is obtained by extending the first matrix of length l, and the length of the second matrix corresponding to the first matrix of length l is 2. t .

[0187] S710 to S720 can be referred to the aforementioned steps S610 to S620, and will not be repeated here.

[0188] S730, the decoding device performs decoding based on the at least two second matrices to obtain a decoding sequence.

[0189] As an example, the decoding device performs decoding based on the SC decoding algorithm, as shown in Figure 2. Those skilled in the art will understand that, in the technical solution of this application, after obtaining at least two non-regular kernels (corresponding to the aforementioned at least two first matrices) based on the rate matching pattern of the mother code corresponding to the target code length, the first matrix of size l among the at least two first matrices is expanded to a second matrix of size 2 raised to the power of 2. This yields at least two second matrices that correspond one-to-one with the at least two first matrices, and the sequence to be decoded is then decoded based on these at least two second matrices.

[0190] Based on the technical solution of this application, after obtaining at least two second matrices, decoding is performed based on these at least two second matrices. As an example, a matrix of the mother code length can be obtained by coupling the at least two second matrices. When the decoding device performs decoding using the SC decoding algorithm based on the matrix of the mother code length, unlike the encoding matrix of the Arikan nuclear polar code of the same mother code length, the bit positions corresponding to the inputs of nodes f and g shown in Figure 2 are different, and the corresponding outputs are also different. The principle and process of decoding are well known to those skilled in the art and will not be elaborated upon. In addition, other decoding algorithms can also be used for decoding, such as successive cancellation list (SCL) or belief propagation (BP), etc., which are not limited in this application.

[0191] Optionally, it also includes the S740.

[0192] S740, the decoding device outputs the decoding sequence.

[0193] Based on the encoding method provided in this application, a first matrix whose size is not a power of 2 is expanded into a second matrix whose size is a power of 2 based on the rate matching pattern of the mother code corresponding to the target code length. This allows the construction of a polar code with a longer code length and an irregular kernel. Compared to directly constructing a polar code with a longer code length and an irregular kernel, the construction complexity is reduced. Furthermore, compared to the large kernels that need to be stored when directly constructing a polar code with a longer code length and an irregular kernel, the solution in this application only needs to store a few small kernels (such as at least two first matrices in the embodiments of this application), thus reducing storage overhead.

[0194] The following examples illustrate the process of expanding a first matrix whose length is not a power of 2 into a second matrix whose length is a power of 2.

[0195] Example 1

[0196] Construct a non-regular kernel polar code with a target code length E of 22, a number of information bits K of 10, and a first matrix size less than 8.

[0197] Assume the rate matching mode of the mother code is bit reverse shortening.

[0198] Based on the above description, the encoding process is as follows:

[0199] First, shorten the 32-bit mother code by 10 bits using the bit-reverse shortening pattern. The shortening positions are 32, 16, 24, 8, 28, 12, 20, 4, 30, 18. Divide the 32-bit mother code into four sub-blocks of length 8, represented by the bit index as [1 2 3 4 5 6 7 8], [9 10 11 12 13 14 15 16], [17 18 19 20 21 22 23 24], [25 26 27 28 29 30 31 32]. For simplicity, these are represented as sub-block [1,8], sub-block [9,16], sub-block [17,24], and sub-block [25,32]. In this matrix, sub-block [1,8] refers to a sub-block with bit positions ranging from 1 to 8 and a length of 8; sub-block [17,24] refers to a sub-block with bit positions ranging from 17 to 24 and a length of 8. The representation of other sub-blocks is similar. After removing the shortened bits from each sub-block of length 8, the remaining number of bits is the length of the first matrix. For example, in sub-block [17,24], the shortened bits are 20 and 24, therefore the length is 6.

[0200] Then, based on the reliability sequence of the 32-bit master code, the number of information bits in each first matrix is ​​determined. The reliability sequence is [1 2 3 5 9 17 4 6 10 7 18 11 19 13 21 25 8 12 20 14 15 22 27 26 23 29 16 24 28 30 31 32]. Shortened bits are pre-frozen (or removed), resulting in the sequence [1 2 3 5 9 17 6 ​​10 7 11 19 13 21 25 14 15 22 27 26 23 29 31]. Reading 10 information bits from the end gives 21 25 14 15 22 27 26 23 29. 31 represents the sum of the information bits in each sub-block. For example, the information bits read from sub-block [17,24] are 21, 22, 23, therefore the number of information bits is 3. Here, the reliability sequence of the mother code can be sorted in order of reliability from low to high or from high to low, without limitation; this reliability sequence is only for illustrative purposes. Finally, based on the length of the first matrix and the corresponding number of information bits, the corresponding first matrix is ​​obtained.

[0201] One possible implementation is to retrieve the corresponding first matrix from a pre-stored mapping relationship based on the length of the first matrix and the corresponding number of information bits. This mapping relationship indicates the first matrix corresponding to the number of information bits and the code length. For example, this mapping relationship can be a list of matrices. As an example, a list of matrices is shown in Table 1:

[0202] Table 1

[0203] The matrices in Table 1 are not unique in form. Some examples are given below:

[0204] G 4,2 The corresponding matrix is:

[0205] G 5,2 The corresponding matrix is:

[0206] G 5,3 The corresponding matrix is:

[0207] or

[0208] G 6,3 The corresponding matrix is:

[0209] or

[0210] G 7,2 The corresponding matrix is:

[0211] G 7,5 The corresponding matrix is:

[0212] G 6,2 The corresponding matrix is:

[0213] G 8,3 The corresponding matrix is:

[0214] G 8,5 The corresponding matrix is:

[0215] G 8,6 The corresponding matrix is:

[0216] 1) Based on the bit-reversal shortening pattern, the lengths of the first matrices are determined to be 6, 5, 6, and 5. The information bit lengths of each first matrix are then determined to be 0, 2, 3, and 5 using methods such as table lookup or formula calculation. The corresponding first matrix structures are F1, F2, F3, and F4, resulting in a total of four first matrices. For example, F3 is:

[0217] As can be seen, F3 is a 6x6 matrix. Rows 3, 5, and 6 correspond to information bits.

[0218] 2) Expand the non-regular polarization kernel into a second matrix of size 8.

[0219] Following the bit-reversal shortening method, F1, F2, F3, and F4 are sequentially expanded into four second matrices of size 8. For example, the bit-reversal shortening of a non-regular polarization kernel of size 6 is 4 and 8 bits. Therefore, F3 is expanded to...

[0220] Among them, the first matrix F3 is expanded to For the process, please refer to the explanations in Figures 7 and 8 above.

[0221] In Example 1, the rate matching mode involved is specifically bit reversal shortening, as explained below:

[0222] Assuming the mother code length is 16, the target code length is 12, and the rate matching mode is shortening, 4 bits need to be shortened. Assuming the 16 bits of the mother code are indices 1-15, the four positions with the highest indices are 12-15, which also correspond to the four positions with the lowest reliability. Their corresponding binary representations are 12 (1100), 13 (1101), 14 (1110), and 15 (1111). Reversing the binary sequence of these four positions yields 3 (0011), 11 (1011), 7 (0111), and 15 (1111). Therefore, after the bit reversal operation, the final shortened positions are the four bits corresponding to indices 3, 11, 7, and 15.

[0223] The first to sixth bits of the first matrix correspond to the first, second, third, fifth, sixth, and seventh bits of the second matrix, where the bold italicized lines represent the set of information bits {3,6,7}.

[0224] Four second matrices of size 8 Coupled into a third matrix of size 32:

[0225] Encoding is performed based on the third matrix to obtain a mother code of length 32. After shortening by bit reversal, a codeword with a non-regular polarization kernel of target code length 22 is obtained.

[0226] Example 2

[0227] Construct a target code length of 64, and the size of the first matrix is ​​a non-regular kernel polar code less than or equal to 8.

[0228] The rate matching method for the mother code is puncturing, and the puncturing positions are determined as follows in the mother code: {1,2,3,4,5,6,7,8,9,10,11,12,17,18,19,20,33,34,35}.

[0229] Based on the rate matching pattern of the mother code, the sizes of the first matrix are determined to be 0, 4, 4, 8, 5, 8, 8, 8. The first matrix F... i Each is expanded into a second matrix of length 8.

[0230] The second matrix is ​​obtained by using the extension method described in formula (1) above. They are as follows:

[0231] The remaining steps are similar to those in Example 1 and will not be repeated here.

[0232] Example 3

[0233] Construct a non-regular kernel polar code with a target code length E of 60 and an information bit length K of 30.

[0234] Assume the rate matching mode of the mother code is determined as follows: the first two bits of the punched mother code and the last two bits of the shortened mother code. Therefore, the punched positions are {1, 2}, and the shortened positions are {63, 64}. The information bits are read according to the 5G standard sequence following the pre-frozen positions 63 and 64, and the information bit positions are [23 39 42 29 43 50 45 51 16 53 24 57 28 40 30 44 31 46 52 47 54 55 58 59 61 32 48 56 60 62].

[0235] The size of the first matrix can be determined according to several criteria. For example, the range of the size of the first matrix can be determined first, such as the size of the first matrix being less than or equal to 8, and then the number of first matrices can be determined based on the target code length. Alternatively, the number of sub-blocks, i.e., the number of first matrices, can be determined first based on the target code length, and then the size of the first matrix can be determined.

[0236] As an example, when determining the size of the first matrix, the size can vary depending on the application scenario, such as the quality of channel conditions and the target code rate, thus allowing for flexible construction of the first matrix. In contrast, compared to the process of gradually obtaining a large kernel through coupling with smaller kernels, directly determining a large kernel offers greater flexibility and selectivity in its construction, leading to the identification of a higher-performing kernel. Consequently, decoding performance is improved under different code lengths and information bit lengths.

[0237] In the first two examples, the size of each first matrix is ​​the number of punctured / shortened bit positions in each 8-bit sub-block. In Example 3, the master code is pre-divided into three sub-blocks: position indices 1-16 form one sub-block, position indices 17-32 form another, and position indices 33-64 form yet another. The length of each first matrix is ​​the number of punctured / shortened bit positions in the corresponding sub-block. Therefore, the sizes of the three first matrices are 14, 16, and 30, respectively. Similarly, the number of information bits in each sub-block can be determined. The number of information bits in the first sub-block is the number of information bits selected from position indices 1-16, which is 16, therefore the number of information bits is 1. Similarly, the number of information bits in the second and third sub-blocks are 6 and 23, respectively.

[0238] The number of first matrices is determined to be three, with sizes of 14, 16, and 30 respectively. These three first matrices are denoted as F1, F2, and F3. F1, F2, and F3 are then expanded into second matrices of sizes 16, 16, and 32. They are shown below:

[0239] The remaining steps are similar to those in Example 1 and will not be repeated here.

[0240] In the above method embodiments, the process of expanding a non-regular polarization kernel whose size is not an integer power of 2 into a kernel whose size is an integer power of 2 is described in detail. The following describes how to determine multiple non-regular polarization kernels for encoding when the target code length E and the number of information bits K are known. This process can be understood as a further explanation of step 610 above, that is, it involves a method for obtaining at least two first matrices.

[0241] Figure 9 is a schematic flowchart of the encoding method 900 provided in this application. Similar to the description in Figure 6, the encoding method can be performed by an encoding device, such as an encoding apparatus, or a device applied to the encoding apparatus (e.g., an encoder, chip, or circuit). The following embodiments use an encoding apparatus as an example for illustration.

[0242] 910. The encoding device determines the information of P subcodes, which includes the code length and the number of information bits of each subcode.

[0243] In some implementations, the code lengths of the P subcodes can have the same range, and must satisfy at least one of the following:

[0244] The range of values ​​for the code lengths of the P subcodes is predefined;

[0245] The range of values ​​for the code lengths of the P subcodes is related to the target code length E; and,

[0246] The range of values ​​for the code length of the P subcodes is related to the transmission requirements.

[0247] In the above implementation, the transmission requirements may include, but are not limited to, at least one of the following: latency requirements, bit error rate requirements, etc. As an example, transmission requirements can be indicated by the network side through signaling carried on the control channel. Generally, the longer the code length, the lower the bit error rate, but the greater the latency. Therefore, the code length of the subcode can be predefined according to the transmission requirements under different communication scenarios.

[0248] Furthermore, the range of subcode values ​​is also related to the target code length E. For example, when the target code length E is large, it may be necessary to decompose it into multiple shorter subcodes to meet transmission requirements. Alternatively, when the target code length E is small, the length of the decomposed subcodes does not need to be much smaller than the target code length to meet transmission requirements.

[0249] As an example, based on the transmission requirements of different communication scenarios, the range of code length values ​​for subcodes under different communication scenarios can be set through protocol predefinition or pre-configuration on the network side and terminal side.

[0250] In one possible implementation, after the range of values ​​for the code lengths of the P subcodes is determined according to any of the above implementations, the code length of each of the P subcodes can be determined based on at least one of the following:

[0251] The rate matching pattern of the mother code corresponding to the target code length E; or,

[0252] At least two of the following: target code length E, number of information bits K, and code rate.

[0253] As an example, rate matching patterns can include at least one of puncture, shortening, and repetition. In one implementation, the rate matching pattern can be rate matching based on natural order. Rate matching based on natural order can involve puncturing or shortening the bits of the polar code in natural order. Taking puncture as an example, when a polar code of length 6 is needed, a master code of length 8 is first constructed, and then the first two bit positions are punctured; when a polar code of length 5 is needed, a master code of length 8 is first constructed, and then the first three bit positions are punctured. Taking shortening as another example, when a polar code of length 7 is needed, u7 can be preset to 0, making x7 0 in all encoded bit sequences; when a polar code of length 6 is needed, u7 and u6 can be preset to 0, making x7 and x6 0 in all encoded bit sequences. In rate matching based on natural order, the shortening or puncturing positions are consecutive, making implementation simple.

[0254] It is understandable that in these examples, u kThis represents the input bit before encoding, where the subscript k is the bit's position in the input vector u. For example, u6 and u7 represent the input bit corresponding to position index 6 or position index 7 in the input vector; x k This represents the encoded output bit. For example, x6 and x7 represent the encoded bit corresponding to position index 6 or position index 7.

[0255] As an example, assume the subcode length range is set to [4, 8], and the rate matching mode of the mother code is bit reverse shortening. Assume the 9 shortened bit positions of a mother code of length 32 are [4, 8, 12, 16, 20, 24, 28, 30, 32]. Due to the limitation of the subcode length range, consider splitting the mother code length 32 into 4 subcodes of length 8. Then, the shortened bit positions for subcode #1 are 4 and 8; for subcode #2, they are 12 and 16; for subcode #3, they are 20 and 24; and for subcode #4, they are 28, 30, and 32. Subtracting the number of shortened bit positions from the length of each subcode (8), we can determine the code lengths of the 4 subcodes as 6, 6, 6, and 5 respectively.

[0256] In another example, assume the target code length E = 49, the number of information bits K = 24, and the sub-code length ranges from [8, 16]. The target code length corresponds to a mother code length of 64. Based on the limitation of the sub-code length range, the mother code can be divided into 64 / 16 = 4 sub-codes. 49 divided by 4 equals 12 with a remainder of 1. Therefore, the lengths of the 4 sub-codes are 13, 12, 12, and 12, respectively.

[0257] In addition to determining the code length of each of the P subcodes, the encoding device also needs to determine the number of information bits in each subcode.

[0258] In some implementations, the number of information bits in the subcode can be determined based on at least one of the following:

[0259] The reliability sequence corresponding to the mother code length, the mother code length is determined according to the target code length E;

[0260] At least two of the following: target code length E, number of information bits K, and code rate;

[0261] The code length of each of the P subcodes; or,

[0262] Rate matching mode of the mother code corresponding to the target code length E.

[0263] Alternatively, the reliability sequence corresponding to the mother code length can also be described as: the reliability sequence of the mother code, or the reliability sequence of the sub-channel.

[0264] When determining the information of P subcodes, the encoding device first determines the code length of each subcode in the P subcodes, and then determines the number of information bits in each subcode in the P subcodes.

[0265] Specifically, the encoding device determines K positions from the reliability sequence corresponding to the mother code based on the rate matching pattern of the mother code corresponding to the target code length E. Further, based on the code length of each sub-code and the distribution of these K positions among P sub-codes, the number K information bits in each of the P sub-codes is determined. j , K j It is a non-negative integer.

[0266] In one example, taking the code lengths of the four subcodes as 6, 6, 6, and 5 respectively, the reliability sequence corresponding to the mother code of length 32 is [1,2,3,5,9,17,4,6,7,10,11,18,13,19,21,25,8,12,14,20,15,22,23,26,27,29,16,24,28,30,31,32], where [4,8,12,20,16,24,28,30,32] [19, 21, 25, 14, 15, 22, 23, 26, 27, 29, 31] are selected from positions other than the pre-frozen bits in descending order of reliability. Among them, [14, 15] belongs to the second sub-code, [19, 21, 22, 23] belongs to the third sub-code, and [25, 26, 27, 29, 31] belongs to the fourth sub-code. Thus, the number of information bits in each sub-code can be determined to be 0, 2, 4, and 5.

[0267] 920. The encoding device determines R first matrices based on the information of each of the P subcodes.

[0268] Once the information of the P subcodes is determined, that is, the code length and the number of information bits of each subcode are determined, the encoding device can determine R first matrices, where P and R are both integers greater than or equal to 2, and R is greater than or equal to P.

[0269] In some of the above embodiments, such as method 600, the encoding device acquires at least two first matrices, where the number of first matrices is represented as P. Based on the information of the P subcodes, R first matrices can be determined.

[0270] In one implementation, the encoding device determines R first matrices based on first correspondence information and information of P subcodes, wherein the first correspondence information indicates the correspondence between the target code length E, the number of information bits K, and the information of the first subcode, and the first subcode is any one of the P subcodes.

[0271] In other words, the first correspondence information indicates the correspondence between (E, K) and the matrix #1 corresponding to the first subcode, where the first subcode can be any one of the P subcodes, and the matrix #1 corresponding to the first subcode is one of the R first matrices. In this implementation, P = R. That is, based on each of the P subcodes, a first matrix is ​​determined, ultimately resulting in P first matrices.

[0272] As an example, the first correspondence information can be presented in the form of a table, such as Table 1 above.

[0273] Taking the above embodiments with four subcodes having code lengths of 6, 6, 6, and 5, and information bits of 0, 2, 4, and 5 respectively, by referring to Table 1, it can be determined that: subcode #1 (6,0) corresponds to Arikan puncture, indicating that subcode #1 uses the polarization kernel corresponding to the puncturing scheme of Arikan polar code (6,0); subcode #2 (6,2) corresponds to the non-regular polarization kernel G. 6,3 Subcode #3(6,4) corresponds to the non-canonical polarization kernel G. 6,3 Subcode #4(5,5) corresponds to Arikan shortening, indicating that subcode #4 adopts the polarization kernel corresponding to the shortening scheme of Arikan polar code (5,5). Thus, the four non-regular polarization kernels corresponding to the four subcodes can be determined, and these four non-regular polarization kernels are the four first matrices.

[0274] In another implementation, after the encoding device determines P subcodes, one or more of the P subcodes may be further split to ultimately determine R first matrices.

[0275] Suppose there are P subcodes, including the first subcode, which is represented as (N0, K0), meaning the first subcode has a length of N0 and contains K0 information bits. The process of splitting the first subcode can be as follows:

[0276] Based on the first subcode (N0, K0), subcodes #1 (N1, K1) and #2 (N0-N1, K0-K1) are determined, where the first subcode (N0, K0) can be obtained by coupling subcodes #1 (N1, K1) and #2 (N0-N1, K0-K1). Alternatively, the first subcode (N0, K0) is split into subcodes #1 (N1, K1) and #2 (N0-N1, K0-K1). Then, for subcode #1, if its code length is less than or equal to a threshold, subcode #1 is not further split. At this point, the non-regular polarization kernel corresponding to subcode #1 can be determined, which is also the first matrix corresponding to subcode #1. For subcode #2, if its length is less than or equal to the threshold, it will not be further split. In this case, the non-regular polarization kernel corresponding to subcode #2 can be determined, which is also the first matrix corresponding to subcode #2. It can be understood that if the length of subcode #1 or subcode #2 is greater than the threshold, the subcode with a length greater than the threshold will be split into subcodes with shorter lengths. For example, if the length of subcode #1 is greater than the threshold, it will be further split into two subcodes in the same way as the first subcode. If the length of subcode #2 is greater than the threshold, it will be further split into two subcodes in the same way as the first subcode. It can be understood that if the lengths of both subcode #1 and subcode #2 are greater than the threshold, they will each be split into two subcodes.

[0277] Here, we take the first subcode out of P subcodes as an example. We can see that by performing the above process on any one of the P subcodes, we can ultimately determine the R first matrices corresponding to the P subcodes. According to the description of the splitting process, the R first matrices refer to the following: by checking whether to split each of the P subcodes, and if splitting, continuing to check whether to split the resulting subcodes, until each of the P subcodes is split into subcodes with a code length less than or equal to a threshold, the number of subcodes obtained is R. Each of these R subcodes corresponds to a non-regular polarization kernel, which is the R first matrices.

[0278] Taking the splitting of the first subcode as an example, the splitting process can be as follows:

[0279] Based on the second correspondence information, the information of subcode #1 and subcode #2 of the first subcode (N0, K0) is determined. The second correspondence information indicates the correspondence between the information of the first subcode (N0, K0) and subcode #1, where N0, K0, N1, and K1 are all positive integers. After determining the information of subcode #1, the information of subcode #2 is determined based on the information of the first subcode (N0, K0) and the information of subcode #1.

[0280] As an example, the second correspondence information can be presented in the form of tables, formulas, etc.

[0281] For example, taking a polar code with a target code length E=11 and the number of information bits K=7 as an example, assume that the code length of each subcode is less than or equal to 8 (that is, the size of the non-regular polarization kernel is less than or equal to 8). The second correspondence information can be shown in Tables 2 and 3.

[0282] Table 2 (Code length N1 used to determine subcodes)

[0283] Table 3 (Number of information bits K1 used to determine the subcode)

[0284] Based on Table 2, with E = 11 and K = 7, we can determine that N1 = 5. Furthermore, we can determine that N2 = E - N1 = 6.

[0285] Based on Table 3, with E = 11 and K = 7, we can determine that K1 = 2. Furthermore, we can determine that K2 = K - K1 = 5.

[0286] It can be seen that for any one of the P subcodes (e.g., the first subcode), the first subcode can be split into two subcodes (e.g., subcode #1 and subcode #2). The code length N1 of subcode #1 can be determined using the correspondence in Table 2, and the code length N2 of subcode #2 can be derived from this. The number of information bits K1 of subcode #1 can be determined using the correspondence in Table 3, and the number of information bits of subcode #2 can be derived from this.

[0287] Those skilled in the art will recognize that the second correspondence information can also be presented through formulas, for example, by storing functions on the encoding and decoding sides respectively. The inputs to these functions are the code length E0 and the number of information bits K0, and the outputs are the code length N1 and the number of information bits K1, where N1 is less than E0. E0, K0, N1, and K1 are all positive integers. Here, E0 represents the code length of any code to be divided into subcodes, and K0 is the number of information bits in that code. As an example, E0 could be the code length of the first subcode among P subcodes, indicating that the first subcode among the P subcodes is being split, and the first subcode is any one of the P subcodes. Alternatively, E0 could also be the code length of any one of the P subcodes (e.g., represented as subcode #a) after being split, meaning that the subcode obtained after splitting subcode #a needs to be further split. It is evident that as long as the correspondence between the target code length E0, the number of information bits K0 and the code length N1 of the subcode, and the number of information bits K1 of the subcode are established respectively, this application does not limit the specific form of the second correspondence.

[0288] Understandably, in Tables 2 and 3, taking the splitting of (E, K) as an example, the encoding and decoding sides can also store the correspondence between (E0, K0) and code length N1, as well as the correspondence between (E0, K0) and the number of information bits K1. This means that when splitting any code length E0, the code length N1 and the number of information bits K1 of the two sub-codes obtained can be determined. In this table design, the value of E0 can be a code length less than or equal to the upper limit of the set range of code length values ​​for the sub-code, and K0 is less than or equal to E0 and greater than or equal to 0.

[0289] As described in the above embodiments, after determining the information of P sub-codes based on the target code length E and the number of information bits K, R first matrices are determined based on the information of these P sub-codes, where R is greater than or equal to P. When R equals P, the size of the non-regular polarization kernel of each of the P sub-codes is less than or equal to a threshold, and no further splitting is performed. Therefore, the P sub-codes correspond to P non-regular polarization kernels, which is also R first matrices, R = P. When R is greater than P, the size of the non-regular polarization kernel of one or more sub-codes in the P sub-codes is greater than the threshold (or, the code length of one or more sub-codes is greater than the threshold). Sub-codes with code lengths greater than the threshold are split into two sub-codes with smaller code lengths. The code length of the split sub-codes is then checked against the threshold to determine whether further splitting is necessary. This process is repeated until the code length of all sub-codes obtained from the P sub-codes is less than or equal to the threshold, resulting in R sub-codes. Based on the information of these R sub-codes, the non-regular polarization kernel of each of the R sub-codes is determined, resulting in R non-regular polarization kernels, which are also R first matrices. The process of determining the R irregular polarization kernels can be as shown in Table 1 above. Based on the code length and the number of information bits corresponding to each irregular polarization kernel, an irregular polarization kernel of the appropriate size and number of information bits is determined from the pre-designed irregular polarization kernels. For example, if the code length is 6 and the number of information bits is 3, the irregular polarization kernel determined based on Table 1 is G. 6,3 .

[0290] Alternatively, in another possible implementation, when P subcodes are split to obtain R subcodes, any one of these R subcodes can be a pre-designed non-regular polarization kernel (e.g., the non-regular polarization kernels included in Table 1) or an Arikan polarization kernel. In other words, the R subcodes contain at least one Arikan polarization kernel. As an example, subcode #b in the R subcodes is an Arikan polarization kernel, and the Arikan polarization kernel corresponding to subcode #b is less than or equal to a set threshold. For example, if the R subcodes contain an Arikan polarization kernel, the set threshold for the size of the Arikan polarization kernel is 2 or 1, as shown by F2 or F1 in Figure 3. It should be noted that when the polarization kernels corresponding to the R subcodes contain Arikan polarization kernels, since the coupling method of the non-regular polarization kernels in this application is different from the coupling method of the traditional Arikan polarization kernels, the final non-regular polarization kernel obtained by coupling is different from the polarization kernel obtained by the coupling method of the Arikan polarization kernel. The coupling method provided in this application is described in Figures 12-13 below.

[0291] 930. The encoding device encodes based on R first matrices to obtain the encoded sequence.

[0292] After obtaining R first matrices, the encoding process based on these R first matrices is described in the above embodiments, such as the method flow and various implementations in Figure 6, which will not be repeated here.

[0293] For the decoding device, after determining R first matrices, decoding is performed based on the R first matrices. See also the description of steps 710 to 730 in the above embodiment.

[0294] It is understandable that method 900 and the aforementioned method 600 can correspond to the same encoding scheme, but focus on different stages within the encoding scheme. For example, method 900 focuses on how to determine the R irregular polarization kernels (i.e., R first matrices) used for encoding, while method 600 focuses on how to expand some irregular polarization kernels to a power of 2 size after obtaining the R irregular polarization kernels. When all R irregular polarization kernels are powers of 2 (i.e., R second matrices), the encoding device performs encoding based on the R irregular polarization kernels, and the decoding device performs decoding based on the R irregular polarization kernels, each a power of 2. Therefore, method 600 and any implementation or example thereof can be combined with method 900 and any implementation or example thereof to illustrate the entire encoding or decoding scheme.

[0295] In summary, given the target code length E and the number of information bits K, the overall process of constructing irregular core polar codes provided in this application is roughly as follows: First, allocate the code length of each sub-code; second, allocate the number of information bits for each sub-code; third, determine the irregular polar kernel for each sub-code based on its code length and the number of information bits; fourth, couple the irregular polar kernels into a long code to obtain the target code. In the fourth step, before coupling the irregular polar kernels, if there are polar kernels whose length is not a power of 2, they are extended to a power of 2 before coupling. Based on this method, irregular core polar codes of arbitrary code length and code rate can be constructed.

[0296] The following two examples illustrate the process of determining P subcodes and further determining R first matrices based on the target code length E and the number of information bits K.

[0297] Example 4

[0298] Take the construction of an irregular kernel polar code with a target code length of E=23 and the number of information bits K=11 as an example.

[0299] 1) Determine the code length of the P subcodes.

[0300] The range of values ​​for the code length of the subcode is: Assuming the value is [4,8], the rate matching mode of the mother code is bit-reverse shortening. The positions of the nine shortened bits of the 32-bit mother code are [4,8,12,16,20,24,28,30,32]. Due to the limitation of the range of sub-code lengths, we consider splitting the 32-bit mother code into four sub-codes of length 8 (hereinafter referred to as sub-code #1 to sub-code #4). The length of each sub-code is 8 minus the number of shortened bit positions of each sub-code, which determines that the lengths of the four sub-codes are 6, 6, 6, and 5 respectively.

[0301] 2) Determine the number of information bits for each subcode.

[0302] As an example, suppose we calculate the reliability sequence using the Gaussian approximation of a 32-bit Arikan polar code, and then read K positions in descending order of reliability, along with pre-frozen shortened bits. The reliability sequence is: [1,2,3,5,9,17,4,6,7,10,11,18,13,19,21,25,8,12,14,20,15,22,23,26,27,29,16,24,28,30,31,32], where [4,8,12,16,20,24,28,30,32] are pre-frozen bits. (The remaining text appears to be a continuation of the previous sentence and may require further context for accurate translation.) The 11 positions read from the position are [19,21,25,14,15,22,23,26,27,29,31]. Among them, [14,15] belongs to the second sub-code, [19,21,22,23] belongs to the third sub-code, and [25,26,27,29,31] belongs to the fourth sub-code. Thus, the number of information bits in each sub-code can be determined to be 0, 2, 4, and 5.

[0303] 3) Determine the construction scheme of the non-regular polarization kernels of the four subcodes with code lengths of 6, 6, 6, and 5, and information bit numbers of 0, 2, 4, and 5, respectively.

[0304] It can be seen that the four subcodes can be represented as subcode #1(6,0), subcode #2(6,2), subcode #3(6,4) and subcode #4(5,5).

[0305] In one example, the non-regular polarization kernels with a size smaller than the threshold are pre-designed and stored on the encoding or decoding side. Taking the encoding device as an example, after determining the information of P subcodes (in this example, 4 subcodes), the code length of each subcode already meets the set code length range [4,8]. Therefore, these 4 subcodes do not need to be further split. The encoding device directly determines the non-regular polarization kernel corresponding to each subcode from the stored non-regular polarization kernels, that is, determines the first matrix. For example, it can be determined by referring to Table 1.

[0306] 4) Based on the rate matching pattern (such as bit reversal shortening in Example 4), expand the first matrix of the R first matrices whose length is not a power of 2 into a matrix whose length is a power of 2. Specifically, pad the rows and columns corresponding to the shortened bits with 1s, and pad the other positions with 0s.

[0307] Taking the first matrix corresponding to subcode #2(6,2) as an example, the expansion process is shown in Figure 10.

[0308] Figure 10 is a schematic diagram of expanding a non-regular polarization kernel of length not equal to a power of 2 into a non-regular polarization kernel of length 2. Figure 10(a) is a schematic diagram of the first matrix corresponding to subcode #2(6,2), where the last two rows are the rows corresponding to the information bits. Following the expansion method described in the above embodiment, the first matrix is ​​expanded into a second matrix, as shown in Figure 10(b).

[0309] The first matrices corresponding to these four sub-codes are expanded to obtain four second matrices of length 8, which correspond one-to-one with the four first matrices.

[0310] For a detailed explanation of how to expand the first matrix into the second matrix, please refer to the relevant instructions in Method 600.

[0311] 5) Encode based on these four second matrices.

[0312] For an explanation of step 5), please refer to the detailed explanation above, such as step 630, which will not be repeated here.

[0313] Figure 11 shows a performance comparison between the irregular kernel polar code and the Arikan polar code based on the scheme of this application. It can be seen that, for the setting of the size of the irregular polar kernel of the subcode to be 8, 16, or 32 (corresponding to N0 being less than or equal to 8, 16, or 32 in Figure 11), the performance of the irregular kernel polar code of this application is superior to that of the Arikan polar code. In Figure 11, the horizontal axis represents the target code length E, and the vertical axis represents the signal-to-noise ratio (SNR). Under the same target code length E, the SNR of the irregular kernel polar code of this application is smaller.

[0314] Example 5

[0315] Take the construction of an irregular kernel polar code with a target code length of E=49 and the number of information bits K=24 as an example.

[0316] 1) Determine the code length of the P subcodes.

[0317] The range of values ​​for the code length of the subcode is: Therefore, the value is [8, 16]. In this example, it is assumed that the code length is determined first, and then the rate matching mode is determined.

[0318] The target code length E = 49 has a mother code length of 64. Since the range of subcode lengths is limited to [8, 16], we consider splitting the 64-length mother code into 64 / 16 = 4 subcodes (hereinafter referred to as subcode #1 to subcode #4). The target code length 49 divided by 4 equals 12 with a remainder of 1. Therefore, the code lengths of the 4 subcodes are 13, 12, 12, and 12, respectively.

[0319] If the rate matching mode of the mother code is sequential punching, the set of punching positions for the four sub-codes is: {1,2,3,17,18,19,20,33,34,35,36,49,50,51,52}.

[0320] 2) Determine the number of information bits for each subcode.

[0321] In one example, the reliability sequence corresponding to the mother code length is first determined.

[0322] Assumption B j ∈{0,1}, j=[0,1,…,n-1], the reliability of sub-channel i is determined according to formula (1):

[0323] Among them, W i Represents the reliability of subchannel i, i0 = i mod 2m. The sequence [0 0.95 0.15 0.25 0.75 0.25 0.5 0.5] is just an example; in different implementations, the values ​​in this sequence can be other values.

[0324] After calculating the reliability of each sub-channel according to formula (1), the reliability sequence corresponding to the length of the mother code can be obtained. K positions are read in descending order of reliability, and the number of information bits in each sub-code is determined based on the distribution of these K positions across the four sub-codes. In this example, the number of information bits in the four sub-codes are 1, 4, 8, and 11, respectively.

[0325] The reliability sequence of the mother code calculated based on formula (1) can be used as a way to obtain the reliability sequence of the mother code. Since formula (1) is obtained by adjusting the PW formula to make the polarization weight (PW) formula for calculating the reliability of sub-channels in polar codes more applicable to the construction of non-regular core polar codes, the reliability sequence calculated based on formula (1) is more applicable to the construction of non-regular core polar codes, and the non-regular core polar codes constructed in this way have better performance.

[0326] 3) Determine the construction scheme of the non-regular polarization kernels of the four subcodes with code lengths of 13, 12, 12, and 12, and information bit numbers of 1, 4, 8, and 11, respectively.

[0327] In this example, assuming that the size of the R first matrices is not greater than 8, then all four sub-codes need to be further split until the code length of each sub-code obtained by the split is not greater than 8.

[0328] The following explanation uses the splitting of one of the P subcodes (e.g., the first subcode (N0, K0)) as an example.

[0329] In one example, when the code length E0 of the first subcode is in the range of 8 to 16, if the first subcode is split into subcode #1 (N1, K1) and subcode #2 (E0-N1, K0-K1), the code length N1 of subcode #1 can be related to at least one of the following:

[0330] The values ​​of E0-K0;

[0331] The values ​​of E0 and K0;

[0332] E0 / q, where q is a constant.

[0333] In one example, N1 is determined based on the following rule:

[0334] If any one of conditions 1 to 3 is satisfied, N1 = floor(N0 / 2); otherwise, N1 = ceil(N0 / 2), where floor represents rounding down and ceil represents rounding up.

[0335] Condition 1: N0 - K0 > 9;

[0336] Condition 2: N0 - K0 = 4;

[0337] Condition 3: N0 = 15 and K0 = 10.

[0338] In this example, condition 1 is: N0 - K0 is greater than 9; condition 2 is: N0 - K0 is equal to 4; condition 3 is: N0 = 15 and K0 = 10. When one of the conditions is met, the value of N1 is related to E0 / q, and in this example, q = 2.

[0339] The values ​​of the parameters in conditions 1 to 3 above are merely examples. When the code length E0 of the first subcode has a different range, for example, when E0 ranges from 4 to 8 or from 16 to 32, the values ​​of these parameters may differ from the examples above. Alternatively, the conditions above may also differ.

[0340] In one example, when the code length E0 of the first subcode is in the range of 8 to 16, if the first subcode is split into subcode #1 (N1, K1) and subcode #2 (E0-N1, K0-K1), the number of information bits K1 of subcode #1 can be related to at least one of the following:

[0341] The possible values ​​of K0;

[0342] The values ​​of K0 / E0;

[0343] The values ​​of E0-K0.

[0344] As an example, K1 is determined based on the following rules:

[0345] If K0 >= 11, then K1 = 4; otherwise,

[0346] If K0 >= 8 and K0 / N0 >= 9 / 15, then K1 = 3; otherwise, 6.

[0347] If K0 >= 7 and N0 - K0 <= 8, or K0 = 6 and N0 - K0 <= 5, then K1 = 2; otherwise

[0348] K1 = 1.

[0349] In this example, the value of K1 is related to the value of K0, the value of K0 / E0, and one or more of E0-K0. Here, ">=" indicates greater than or equal to, and "<=" indicates less than or equal to.

[0350] Similarly, the conditions for determining the value of K1 described above are merely examples, and the values ​​of each parameter are also examples. When the code length E0 of the first subcode has different ranges, for example, when E0 ranges from 4 to 8 or from 16 to 32, the values ​​of these parameters may differ from the examples described above, or the conditions described above may also differ.

[0351] Compared to the method in Example 4 that uses the mother code reliability sequence to determine the code length and number of information bits of the sub-code, the method in Example 5 that determines the information of the sub-code is more efficient.

[0352] After step 3), the information of R non-canonical polarization nuclei can be determined, and thus the R non-canonical polarization nuclei, i.e., the R first matrices, can be determined by referring to Table 1.

[0353] 4) Based on the rate matching pattern (such as sequential punching in Example 5), expand the first matrix of the R first matrices whose length is not a power of 2 into a matrix whose length is a power of 2.

[0354] After step 4), we obtain R second matrices, which correspond one-to-one with R first matrices. It can be understood that if some of the R first matrices are powers of 2, no expansion is needed; in this case, the second matrix is ​​essentially the same as the first matrix.

[0355] 5) Encode based on R second matrices.

[0356] For an explanation of step 5), please refer to the detailed explanation above, such as step 630, which will not be repeated here.

[0357] In the technical solution of this application, a method for determining the irregular polar kernel of each subcode of an irregular polar code is provided for constructing an irregular polar code. An irregular polar code can be constructed using irregular polar kernels of different lengths. The performance of the irregular kernel polar code obtained in this way is superior to that of the Arikan polar code.

[0358] As mentioned in the above embodiment, a subcode can be split into two subcodes of smaller length. Conversely, two smaller kernels can be coupled into a larger kernel. The following discussion uses a non-regularly polarized kernel [N,K] (or denoted as C) as an example. N,K It can be composed of non-canonical polarimetric nuclei [N1,K1] (or represented as...) ) and non-canonical polarized nuclei [N-N1, K-K1] (or represented as The coupling process illustrates the coupling process of the non-regular polarization kernel. It should be understood that N and K in this example refer to the code length and the number of information bits of the non-regular polarization code to be constructed, respectively. If this coupling process is applied to the example above where the first subcode (N0, K0) is coupled from subcode #1 (N1, K1) and subcode #2 (N0-N1, K0-K1), N can be replaced with N0, and K can be replaced with K0.

[0359] In one possible scenario, if N1 ≤ N - N1, the coupling position is s = (s1, ..., s N1 ), i.e., code The first to N1 bits are respectively related to the code The Bit coupling, the corresponding matrix construction is as follows Where P is The A submatrix composed of columns.

[0360] Figure 12 shows an example of non-uniform polarization nucleus coupling. The non-uniform polarization nucleus [5,2] is obtained by coupling non-uniform polarization nucleus [2,0] and non-uniform polarization nucleus [3,2] at position [1,3]. The matrix form is shown in Figure 12, where matrix P is matrix G. 3,2 The submatrix formed by the first and third columns.

[0361] In another possible scenario, if N1 > N - N1, the coupling position is... icode The The bits are respectively related to the code. The coupling from the 1st to the N1st bit is constructed as follows: Where P's first The submatrix composed of columns is The other positions are 0.

[0362] Figure 13 shows an example of non-uniform polarization kernel coupling. The non-uniform polarization kernel [5,3] is obtained by coupling non-uniform polarization kernels [3,2] and [2,1] at position [2,3]. The matrix form is shown in Figure 13, where the submatrix formed by the second and third columns of matrix P is matrix G. 2,1 The other positions of matrix P are 0.

[0363] The above provides a detailed description of the encoding or decoding methods provided in this application. The following describes the communication device provided in this application.

[0364] It should be understood that the description of the device embodiment corresponds to the description of the method embodiment. Therefore, for any content not described in detail, please refer to the method embodiment above. For the sake of brevity, some content will not be repeated.

[0365] To achieve the functions of the encoding or decoding device in the embodiments of this application, the encoding or decoding device can be implemented through hardware structure, software module, or a combination of hardware structure and software module. No limitation is made. For ease of description, the encoding device and decoding device will be collectively referred to as communication device.

[0366] Figure 14 is a schematic structural diagram of a communication device provided in this application. As shown in Figure 14, the communication device 1000 includes a processing module 1001 and a communication module 1002. The communication device 1000 can be a communication equipment, or a device applied to a communication equipment and capable of realizing the corresponding functions of the communication equipment, such as a chip, chip system, or circuit. Exemplarily, the communication equipment can be an encoding device or a decoding device as described in the method embodiment.

[0367] The communication module can also be a transceiver module, transceiver, transceiver device, or transceiver apparatus. The processing module can also be a processor, processing board, processing unit, or processing apparatus. Optionally, the communication module is used to perform the sending (or output) operation or receiving (or input) operation of the encoding or decoding device in any of the method embodiments. The device in the communication module that implements the receiving function can be considered a receiving unit, and the device in the communication module that implements the sending function can be considered a sending unit; that is, the communication module includes a receiving unit and a sending unit. The processing module is used to perform the relevant operations / processing implemented internally by the encoding or decoding device in any of the method embodiments.

[0368] For example, if the communication device 1000 corresponds to the encoding device, the communication device 1000 can execute the relevant steps in method 600 and / or method 900. For example, the processing module 1001 is used to acquire at least two first matrices, acquire at least two second matrices corresponding one-to-one with the at least two first matrices, and encode based on the at least two second matrices to obtain an encoded sequence; or, the processing module 1001 is used to determine information about P subcodes, determine R first matrices (i.e., at least two first matrices) based on the information about the P subcodes, and encode based on the R first matrices to obtain an encoded sequence. The communication module 1002 can also be used to output the encoded sequence.

[0369] For example, if the communication device 1000 corresponds to a decoding device, the communication device 1000 can execute the relevant steps of the decoding method corresponding to method 600, and / or the relevant steps of the decoding method corresponding to method 900. For example, the processing module 1001 is used to acquire at least two first matrices, acquire at least two second matrices that correspond one-to-one with the at least two first matrices, and decode based on the at least two second matrices to obtain a decoding sequence; or, the processing module 1001 is used to determine the information of P sub-codes, determine R first matrices (i.e., at least two first matrices) based on the information of the P sub-codes, and decode based on the R first matrices to obtain a decoding sequence. The communication module 1002 can also be used to output the decoding sequence.

[0370] Alternatively, the communication module and / or processing module can be implemented as virtual modules. For example, the processing module can be implemented as a software functional unit or a virtual device, and the communication module can be implemented as a software function or a virtual device. Alternatively, the processing module or communication module can also be implemented as a physical device. For example, the encoding or decoding device can be a chip, such as a system-on-chip (SoC) or hardware circuit. The communication module can be an input / output circuit and / or a communication interface, performing input and output operations; the processing module can be an integrated circuit or logic circuit, etc.

[0371] The module division in this application is illustrative and represents only one logical functional division. In actual implementation, other division methods are possible. Furthermore, the functional modules in the various examples of this application can be integrated into one module, exist as separate physical entities, or be integrated into one module. The integrated modules described above can be implemented in hardware, as software functional modules, or as a combination of hardware and software functional modules; no limitation is imposed.

[0372] As an example, the communication device 1000 can implement the corresponding software in hardware.

[0373] In another embodiment, the communication device 1000 can also be implemented in hardware.

[0374] Figure 15 is a schematic structural diagram of another communication device provided in this application. The communication device 1100 can be used to implement the encoding or decoding methods described in any of the foregoing method embodiments. The communication device 1100 may include at least one processor 1110. Optionally, the processor 1110 (or processing device) is coupled to a memory, which may be located within the decoding device, or integrated with the processor, or located outside the decoding device. For example, the decoding device 1100 may also include at least one memory 1120. The memory 1120 stores computer programs, instructions, or data necessary for implementing any of the foregoing method embodiments; the processor 1110 may execute the computer programs, instructions, or data stored in the memory 1120 to perform the corresponding functions of the encoding or decoding device in any of the foregoing embodiments.

[0375] Optionally, the decoding device 1100 may further include a communication interface 1130, through which the communication device 1100 can interact with other devices. For example, the communication interface 1130 may be a transceiver, circuit, bus, module, pin, or other type of communication interface. When the decoding device 1100 is a chip or circuit, the communication interface 1130 may also be an input / output circuit, capable of inputting information (or receiving information) and / or outputting information (or sending information). The processor may be an integrated circuit or logic circuit, etc., and the processor can determine the output information based on the input information.

[0376] The coupling in this application refers to indirect coupling or communication connection between devices, units, or modules, which can be electrical, mechanical, or other forms, used for information exchange between devices, units, or modules. The processor 1110 may operate in conjunction with the memory 1120 and the communication interface 1130. This application does not limit the connection medium between the processor 1110, the memory 1120, and the communication interface 1130.

[0377] Figure 16 is a schematic structural diagram of the chip provided in this application. Chip 30 includes a processing circuit 31 and a communication circuit 32. The processing circuit 31 can be a logic circuit, integrated circuit, etc., and the communication circuit 32 can be an input / output circuit, input / output interface, interface circuit, etc., capable of inputting information (or receiving information) or outputting information (or sending information). Chip 30 can execute the methods performed by the encoding or decoding device in the various embodiments of this application. The processing circuit 31 can be one or more processors, or all or part of the circuitry in one or more processors used for control or processing. Optionally, the functions on the encoding or decoding side can be deployed in different parts of the chip.

[0378] In addition, this application also provides a computer-readable storage medium storing computer instructions, which, when executed on a computer, cause operations and / or processes performed by an encoding or decoding device in the various method embodiments of this application to be executed.

[0379] This application also provides a computer program product, which includes computer program code or instructions. When the computer program code or instructions are run on a computer, the operations and / or processes performed by the encoding or decoding device in the various method embodiments of this application are executed.

[0380] Furthermore, this application also provides a chip including a processor. A memory for storing a computer program is provided independently of the chip, and the processor is used to execute the computer program stored in the memory, so that the operations and / or processes performed by the decoding device in any method embodiment are executed. Further, the chip may also include a communication interface. The communication interface may be an input / output interface or an interface circuit, etc. Further, the chip may also include a memory storing code and / or instructions required for the chip to execute the encoding and / or decoding methods of this application.

[0381] This application provides a communication system including the encoding and decoding devices described in the above method embodiments. As an example, one of the encoding and decoding devices may be a terminal device, and the other a network device.

[0382] The processor in this application embodiment has signal processing capabilities and can be a central processing unit (CPU), or a general-purpose processor, digital signal processor (DSP), application-specific integrated circuit (ASIC), field-programmable gate array (FPGA), or other programmable logic device, discrete gate or transistor logic device, or discrete hardware component. It can implement or execute the methods, steps, and logic block diagrams disclosed in this application. The general-purpose processor can be a microprocessor or any conventional processor. The steps of the methods disclosed in this application can be directly embodied in the execution of the hardware processor, or executed by a combination of hardware and software modules within the processor. The software modules can reside in random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, or other mature storage media in the art. This storage medium is located in memory; the processor reads information from the memory and, in conjunction with its hardware, completes the steps of the above methods.

[0383] In the embodiments of this application, the memory can be volatile memory or non-volatile memory, or it can include both volatile and non-volatile memory. The non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. The volatile memory can be a cache or random access memory (RAM), which serves as an external cache. By way of example, but not limitation, many forms of RAM are available, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous linked dynamic random access memory (SLDRAM), and direct rambus RAM (DR RAM). The memory of the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.

[0384] Those skilled in the art will recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0385] Those skilled in the art will understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here.

[0386] In the several embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between apparatuses or units may be electrical, mechanical, or other forms.

[0387] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.

[0388] In addition, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit.

[0389] If the aforementioned functions are implemented as software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or a portion of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, ROM, RAM, magnetic disks, or optical disks.

[0390] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.

Claims

A method of encoding, characterized by include: Determine the information of P subcodes, wherein the information of the P subcodes includes the code length and the number of information bits of each of the P subcodes; Based on the information of each of the P subcodes, R first matrices are determined. The R first matrices include a first matrix of size l, where l is not a power of 2 and l is a positive integer. P and R are both integers greater than or equal to 2, and R is greater than or equal to P. Encoding is performed based on the R first matrices to obtain the encoded sequence. A method of decoding, characterized in that include: Determine the information of P subcodes, wherein the information of the P subcodes includes the code length and the number of information bits of each of the P subcodes; Based on the information of each of the P subcodes, R first matrices are determined. The R first matrices include a first matrix of size l, where l is not a power of 2 and l is a positive integer. P and R are both integers greater than or equal to 2, and R is greater than or equal to P. Decoding is performed based on the R first matrices to obtain the decoded sequence. The method according to claim 1 or 2, characterized in that The range of values ​​for the code lengths of the P subcodes satisfies at least one of the following: The range of values ​​for the code lengths of the P subcodes is predefined; The range of values ​​for the code lengths of the P subcodes is related to the target code length E; The range of values ​​for the code length of the P subcodes is related to the transmission requirements. The method according to any one of claims 1-3, characterized in that The code length of each of the P subcodes is determined based on at least one of the following: Rate matching mode of the mother code corresponding to the target code length E; At least two of the following: target code length E, number of information bits K, and code rate. The method according to any one of claims 1-4, characterized in that The number of information bits in each of the P subcodes is determined based on at least one of the following: The reliability sequence corresponding to the mother code length, wherein the mother code length is determined based on the target code length E; At least two of the following: target code length E, number of information bits K, and code rate; The code length of each of the P subcodes; Rate matching mode of the mother code corresponding to the target code length E. The method according to any one of claims 1-5, characterized in that The information for determining the P subcodes includes: Determine the code length of each of the P subcodes; Based on the code length of each sub-code, the number of information bits of each sub-code is determined. The method according to claim 6, characterized in that The method further includes: Based on the rate matching mode of the mother code corresponding to the target code length E, K positions are determined from the reliability sequence corresponding to the mother code, where K is the number of information bits of the target code. Determining the number of information bits for each sub-code based on its code length includes: determining the number of information bits in each of the P sub-codes based on the code length of each of the sub-codes and the distribution of the K positions in the P sub-codes j , K j is a non-negative integer. The method according to any one of claims 1-7, characterized in that The step of determining R first matrices based on the information of each of the P sub-codes includes: Based on the first correspondence information and the information of each of the P subcodes, the R first matrices are determined, P = R, wherein the first correspondence information indicates the correspondence between the target code length E, the number of information bits K and the matrix #1 corresponding to the first subcode, wherein the first subcode is any one of the P subcodes and the matrix #1 corresponding to the first subcode is one of the R first matrices. The method according to any one of claims 1-7, characterized in that The step of determining R first matrices based on the information of each of the P sub-codes includes: Based on the first sub-code (N0, K0), sub-code #1 (N1, K1) and sub-code #2 (N0-N1, K0-K1) are determined, where the first sub-code (N0, K0) is one of the P sub-codes; When the code length of subcode #1 is less than or equal to a threshold, determine the matrix #1 corresponding to subcode #1, where matrix #1 is one of the R first matrices; and / or, When the code length of the subcode #2 is less than or equal to the threshold, the matrix #2 corresponding to the subcode #2 is determined, and the matrix #2 is one of the R first matrices. The method of claim 9, wherein The determination of subcode #1 (N1, K1) and subcode #2 (N0-N1, K0-K1) based on the first subcode (N0, K0) includes: Based on the second correspondence information, the information of subcode #1 and subcode #2 of the first subcode (N0, K0) is determined. The second correspondence information indicates the correspondence between the information of the first subcode (E0, K0) and the information of the subcode #1. The first subcode (E0, K0) is obtained by coupling the subcode #1 (N1, K1) and the subcode #2 (E0-N1, K0-K1). The first subcode is one of the P subcodes. E0, K0, N1 and K1 are all positive integers. Based on the information of the first subcode (N0, K0) and the information of the subcode #1, the information of the subcode #2 is determined. The method according to claim 9 or 10, characterized in that When the code length E0 of the first subcode is in the range of 8 to 16, the code length N1 of the subcode #1 is related to at least one of the following: The values ​​of E0-K0; The values ​​of E0 and K0; E0 / q, where q is a constant. The method of claim 11, wherein in, N1 is determined based on the following rules: If any one of conditions 1 to 3 is satisfied, N1 = floor(N0 / 2); otherwise, N1 = ceil(N0 / 2), where floor represents rounding down and ceil represents rounding up. Condition 1: N0 - K0 > 9; Condition 2: N0 - K0 = 4; Condition 3: N0 = 15 and K0 = 10. The method according to claim 11 or 12, characterized in that When the code length E0 of the first sub-code is in the range of 8 to 16, the number K1 of information bits of the sub-code #1 is related to at least one of the following: The possible values ​​of K0; The values ​​of K0 / E0; The values ​​of E0-K0. The method of claim 13, wherein K1 is determined based on the following rules: If K0 >= 11, then K1 = 4; otherwise, If K0 >= 8 and K0 / N0 >= 9 / 15, then K1 = 3; otherwise, 6. If K0 >= 7 and N0 - K0 <= 8, or K0 = 6 and N0 - K0 <= 5, then K1 = 2; otherwise K1=1。 The method according to any one of claims 1, 3-14, characterized in that The process of encoding based on the R first matrices to obtain the encoded sequence includes: Obtain R second matrices that correspond one-to-one with the R first matrices, wherein the second matrix corresponding to the first matrix of size l is obtained by expanding the first matrix of size l, and the size of the second matrix corresponding to the first matrix of size l is a power of 2 and is a positive integer; and, The encoded sequence is obtained by encoding based on the R second matrices. The method according to any one of claims 2-14, characterized in that The decoding based on the R first matrices to obtain the decoding sequence includes: Obtain R second matrices that correspond one-to-one with the R first matrices, wherein the second matrix corresponding to the first matrix of size l is obtained by expanding the first matrix of size l, and the size of the second matrix corresponding to the first matrix of size l is a power of 2 and is a positive integer; and, Decoding is performed based on the R second matrices to obtain the decoded sequence. The method according to claim 15 or 16, characterized in that The second matrix corresponding to the first matrix of size l is obtained by expanding the first matrix of size l, including: The second matrix corresponding to the first matrix of size l is obtained by expanding the first matrix of size l based on the rate matching pattern of the mother code corresponding to the target code length E, wherein the rate matching pattern includes puncturing and / or shortening. The method according to any one of claims 15-17, characterized in that The first matrix of size l is matrix #1, and the second matrix corresponding to the first matrix of size l is matrix #2. Matrix #2 satisfies the following characteristics: The first position set of matrix #2 corresponds to an identity matrix. The first position set includes the row index of the row corresponding to the punch position or shortened position of matrix #2, and the position corresponding to the column index of the column corresponding to the punch position or shortened position of matrix #2. The elements in the second position set of matrix #2 are 0. The second position set includes the row index of the row corresponding to the non-punched or non-shortened position of matrix #2, and the position corresponding to the column index of the column corresponding to the punched or shortened position of matrix #2. The elements in the third position set of matrix #2 are 0. The third position set includes the row index of the row corresponding to the punched or shortened position of matrix #2, and the position corresponding to the column index of the column corresponding to the non-punched or non-shortened position of matrix #2. as well as, The fourth position set of matrix #2 corresponds to the first matrix. The fourth position set includes the row index of the row corresponding to the non-punched or non-shortened position of matrix #2, and the position corresponding to the column index of the column corresponding to the non-punched or non-shortened position of matrix #2. The method according to any one of claims 15-18, characterized in that The first matrix of size l is matrix #1, the second matrix corresponding to the first matrix of size l is matrix #2, and the set of information bits corresponding to matrix #2 is determined based on the set of information bits of matrix #1. The method of claim 19, wherein The i-th bit of the matrix #1 corresponds to the i-th bit of the matrix #2 a first bit, the first bit The 1 bit is the i-th bit in matrix #2, excluding the punched and / or shortened positions, ordered by index from smallest to largest. The information bit set of matrix #1 is {i1,…,i...} s The information bit set of matrix #2 is as follows: s is a positive integer. The method according to any one of claims 1-20, characterized in that Any two of the R first matrices may be the same or different. A communication device, characterized by The device includes a processor that, by executing a computer program or instructions, causes the communication device to perform the method as described in any one of claims 1, 3-15, 17-21, or causes the communication device to perform the method as described in any one of claims 2-14, 16-21. The communication apparatus according to claim 22, characterized in that, It also includes a communication interface for inputting and / or outputting signals. The communication apparatus according to claim 22 or 23, characterized in that It also includes a memory for storing the computer program or instructions. A communication device, characterized by It includes modules or units for performing the method as described in any one of claims 1, 3-15, 17-21, or includes modules or units for performing the method as described in any one of claims 2-14, 16-21. A computer-readable storage medium, characterized by The computer-readable storage medium stores computer instructions that, when executed on a computer, implement the method as described in any one of claims 1, 3-15, 17-21, or the method as described in any one of claims 2-14, 16-21. A computer program product, characterized in that Includes a computer program or instructions for performing the method as described in any one of claims 1, 3-15, 17-21, or includes a computer program or instructions for performing the method as described in any one of claims 2-14, 16-21. A communication system characterized by The method includes a communication device for performing the method as described in any one of claims 1, 3-15, 17-21, and a communication device for performing the method as described in any one of claims 2-14, 16-21.