Coding method, decoding method, device, and storage medium

By using pre-sorted polarized sequences and polarization permutation tables in polarized code encoding and decoding, the problem of subcode cannot be quickly decoded in polarized code is solved, the decoding efficiency and parallelism are improved, and the complexity and delay are reduced.

WO2025066145A1PCT designated stage expired Publication Date: 2025-04-03ZTE CORP
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/091164
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-09-27
Filing Date
2024-05-06
Publication Date
2025-04-03

AI Technical Summary

Technical Problem

In the prior art, some subcodes of polarized codes cannot be quickly decoded, resulting in high decoding complexity and delay, and high complexity of rate adjustment algorithms, making it difficult to effectively reduce these problems.

Method used

By using pre-sorted polarization sequences and polarization permutation tables, the input bit sequence is encoded to generate a second bit sequence, reducing the number of nodes that need to be processed during the decoding process, and improving the decoding parallelism.

Benefits of technology

It effectively reduces the number of subcodes that need to be processed during the decoding process, improves the decoding parallelism, reduces the decoding delay, and reduces the complexity of rate adjustment.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024091164_03042025_PF_FP_ABST
    Figure CN2024091164_03042025_PF_FP_ABST
Patent Text Reader

Abstract

Provided in the present application are a coding method, a decoding method, a device, and a storage medium. The coding method comprises: coding a first bit sequence on the basis of a preset pre-sorting polar sequence and a polar transposition table, so as to obtain a second bit sequence (S110), wherein the first bit sequence is a sequence in which the number of input coding bits is K, the pre-sorting polar sequence is used for indicating a reliability sorting order of polar sub-channel indexes of a polar code, the maximum code length of which is Nmax, and is characterized in that code lengths are nested and the reliability sorting orders of polar sub-channel indexes of all sub-codes are the same, the polar transposition table is used for indicating sub-block indexes which require rate adjustment when the number of input coding bits is K, and the code length of the second bit sequence is N; and sending the second bit sequence to a receiving end (S120).
Need to check novelty before this filing date? Find Prior Art

Description

Coding and decoding method, device and storage medium Technical Field

[0001] The present application relates to the field of communication technology, and in particular to a coding and decoding method, device and storage medium. Background Art

[0002] The Fast Successive Cancellation (Fast-SC) algorithm is a commonly used fast decoding algorithm for polar codes. The basic idea of ​​this algorithm is that the decoding problem of a polar code of length N can be regarded as the decoding of two subcodes of length N / 2. Fast decoding methods exist for specific types of subcodes. The decoding of polar codes can be regarded as a depth-first traversal process on a binary tree. The number of nodes that need to be traversed determines the decoding delay. The fast decoding of specific types of subcodes in the Fast-SC algorithm can effectively reduce the number of nodes that need to be traversed, thereby reducing the decoding delay of polar codes. Related technologies have proposed fast decoding methods for various types of subcodes, such as Rate-0, REP (Repetition), REP-2, PCR (Parity checked repetition), RPC (Repeated parity check), SPC-2, SPC (Single-Parity-Check), and Rate-1. However, there are still several subcode types that cannot be quickly decoded, which has become a bottleneck for further reducing the decoding complexity and latency of polar codes. Another method in the related art uses a rate adjustment algorithm to adjust the code rate of polar code subcodes to eliminate subcodes that cannot be quickly decoded. This method requires running the rate adjustment algorithm for each code length or code rate configuration, resulting in high complexity.

[0003] Summary of the Invention

[0004] In view of this, the embodiments of the present application provide an encoding and decoding method, device and storage medium, which effectively reduce the number of nodes that need to be processed during the decoding process and improve the decoding parallelism.

[0005] This embodiment of the present application provides an encoding method, applied to a transmitting end, including:

[0006] The first bit sequence is encoded according to a preset pre-ordered polarization sequence and a polarization permutation table to obtain a second bit sequence; wherein the first bit sequence is a sequence with an input coding bit number of K; the pre-ordered polarization sequence is used to indicate a maximum code length of N maxThe polarization permutation table is used to indicate the sub-block indexes requiring rate adjustment when the number of input coded bits is K; the code length of the second bit sequence is N;

[0007] The second bit sequence is sent to the receiving end.

[0008] The present invention provides a decoding method, which is applied to a receiving end and includes:

[0009] receiving a second bit sequence sent by a transmitting end; wherein the code length of the second bit sequence is N;

[0010] The second bit sequence is decoded to obtain a codeword estimation value.

[0011] An embodiment of the present application provides a communication device, comprising: a memory, and one or more processors;

[0012] The memory is configured to store one or more programs;

[0013] When the one or more programs are executed by the one or more processors, the one or more processors implement the method described in any one of the above embodiments.

[0014] An embodiment of the present application provides a storage medium storing a computer program. When the computer program is executed by a processor, the method described in any one of the above embodiments is implemented. BRIEF DESCRIPTION OF THE DRAWINGS

[0015] FIG1 is a flow chart of an encoding method provided in an embodiment of the present application;

[0016] FIG2 is a flowchart of a decoding method provided in an embodiment of the present application;

[0017] FIG3 is a schematic diagram showing a performance comparison of a polar code in different coding schemes provided in an embodiment of the present application;

[0018] FIG4 is a schematic diagram showing a performance comparison of another polar code according to an embodiment of the present application in different coding schemes;

[0019] FIG5 is a structural block diagram of an encoding device provided in an embodiment of the present application;

[0020] FIG6 is a structural block diagram of a decoding device provided in an embodiment of the present application;

[0021] FIG7 is a schematic structural diagram of a communication device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0022] The following describes the embodiments of the present application in conjunction with the accompanying drawings. The following describes the present application in conjunction with the accompanying drawings. The examples are only used to explain the present application and are not used to limit the scope of the present application.

[0023] The related art method for constructing rapid polar codes includes the following steps: The (N, K) polar code constructed using the related art method is segmented into segments of length 16; all frozen bit positions are initialized to an active state, and the active bit positions can be converted to information bit positions; each segment is determined to be within a set of rapidly decodable modes. If it is not within the set, the least reliable information position in the current segment is converted to a frozen bit position, and the active frozen bit position in a subsequent segment is converted to an information bit position; the segment containing the frozen bit position converted to an information bit position should still be within the set of rapidly decodable modes after the conversion. If it is not, the position is deactivated and a new position is selected. However, the related art requires running a rate adjustment algorithm for each code length and code rate configuration, resulting in high complexity.

[0024] In view of this, an embodiment of the present application proposes a fast polar code encoding and decoding method. This method can perform fast polar code encoding and fast decoding for multiple nodes based on a pre-ordered polarization sequence and a polarization permutation table. This reduces the number of subcodes required to be processed during the decoding process and improves decoding parallelism.

[0025] In one embodiment, Figure 1 is a flowchart of an encoding method provided by an embodiment of the present application. This embodiment is applied to fast polar code encoding. This embodiment can be executed by a transmitting end. The transmitting end can also be understood as an encoding end and can include a first communication node or a second communication node. The first communication node can be a base station, and the second communication node can be a terminal. It should be noted that a communication node can also be referred to as a communication device.

[0026] As shown in FIG1 , this embodiment includes: S110 - S120 .

[0027] S110 : Encode the first bit sequence according to a preset pre-ordered polarization sequence and a polarization permutation table to obtain a second bit sequence.

[0028] The first bit sequence is a sequence with K input coding bits; the pre-ordered polarization sequence is used to indicate the maximum code length is N. max The polarization permutation table is used to indicate the sub-block indexes that require rate adjustment when the number of input coded bits is K. The code length of the second bit sequence is N.

[0029] The first bit sequence refers to the input bit sequence; the second bit sequence refers to the output bit sequence. In one example, the code length N of the second bit sequence is 2 to the power of n, that is, N=2 n .

[0030] The transmitting end may encode the first bit sequence as the input bit sequence according to the preset pre-ordered polarization sequence and the polarization permutation table to obtain the second bit sequence as the output bit sequence.

[0031] S120: Send the second bit sequence to the receiving end.

[0032] In one embodiment, encoding a first bit sequence according to a preset pre-ordered polarization sequence and a polarization permutation table to obtain a second bit sequence includes:

[0033] determining an information bit index set according to a pre-ordered polarization sequence, a number of input coded bits, and a code length of a second bit sequence;

[0034] Generate a first sequence to be encoded according to the information bit index set;

[0035] performing rate adjustment on the first sequence to be encoded according to the polarization permutation table to generate a second sequence to be encoded;

[0036] replacing the second sequence to be encoded according to the first bit sequence to obtain a corresponding third sequence to be encoded;

[0037] The third sequence to be encoded is encoded according to a preset polarization transformation matrix to obtain a second bit sequence.

[0038] In one embodiment, determining an information bit index set according to a pre-ordered polarization sequence, a number of input coded bits, and a code length of a second bit sequence includes:

[0039] extracting a corresponding subsequence from the pre-ordered polarization sequence according to a code length of the second bit sequence to obtain a corresponding polarization sequence;

[0040] The K elements with the highest reliability in the polarization sequence constitute an information bit index set, and the other elements in the polarization sequence constitute a frozen bit index set.

[0041] Elements with a code length less than or equal to the second bit sequence are extracted from the pre-sorted polarization sequence to form a corresponding polarization sequence. The reliability of each element in the polarization sequence is then determined, and the K elements with the highest reliability form an information bit index set. The remaining elements in the polarization sequence form a frozen bit index set.

[0042] In one embodiment, for a pre-ordered polarization sequence, when naturally ordered polarization subchannel indices are divided into equal lengths according to a preset subblock length, the relative reliability ranking of the polarization subchannel indices within any subblock is fixed. The preset subblock length is a fixed value, and the preset subblock length is a power of 2. For example, assuming the preset subblock length is M, then M = 2 m Where m < n; the first sequence to be encoded can be divided according to a preset sub-block length to obtain N / M sub-blocks of equal length. In one example, the relative order of the reliability of the polarization sub-channel index within each sub-block is fixed, ensuring that the node type at the same code rate in the second bit sequence is unique.

[0043] In one embodiment, for the polarization permutation table, each row of data consists of three columns of data, namely the target number of bits, the sub-block index where the frozen bits requiring rate adjustment are located, and the sub-block index where the information bits requiring rate adjustment are located.

[0044] In one embodiment, for the polarization permutation table, each row of data represents a rate adjustment operation.

[0045] In one embodiment, for a polarization permutation table, a rate adjustment range to be performed is determined by a row index containing a maximum target bit number that is less than or equal to the input coded bit number and a preset range parameter. The preset range parameter may be a fixed value. The range of the rate adjustment operation to be performed in the polarization permutation table is defined as follows: the row index containing the maximum target bit number minus the preset range parameter, plus one, serves as the starting row; the row containing the maximum target bit number serves as the ending row.

[0046] In one embodiment, for the first sequence to be encoded, the elements indexed by the information bit index set and the frozen bit index set are initialized to different fixed values. For example, the elements in the information bit index set can be initialized to 1, while the elements in the frozen bit index set can be initialized to 0.

[0047] In one embodiment, for rate adjustment between sub-blocks in the first sequence to be coded, an interleaver interleaves two sub-blocks and then exchanges the least reliable information bits and the most reliable frozen bits.

[0048] In one embodiment, for the second sequence to be encoded after rate adjustment, the initialization values ​​of all information bits in the second sequence to be encoded are replaced by the first bit sequence. For the second sequence to be encoded obtained after rate adjustment, all elements in the second sequence to be encoded whose information bits have initialization values ​​are replaced by the first bit sequence.

[0049] In one embodiment, for the sub-blocks whose rate is adjusted through interleaving, the sub-blocks obtained through deinterleaving are used to replace the original sub-blocks in the first sequence to be encoded.

[0050] In one embodiment, Figure 2 is a flowchart of a decoding method provided by an embodiment of the present application. This embodiment is applied to fast polar code decoding. This embodiment can be performed by a receiving end. The receiving end can also be understood as a decoding end, which can include a base station or a terminal. As shown in Figure 2, this embodiment includes: S210-S220.

[0051] S210: Receive a second bit sequence sent by a transmitting end.

[0052] The code length of the second bit sequence is N.

[0053] S220: Decode the second bit sequence to obtain a codeword estimation value.

[0054] After receiving the second bit sequence sent by the transmitter, the receiver decodes the second bit sequence to obtain a codeword estimate. Since the transmitter encodes the second bit sequence, the number of nodes required for fast decoding is effectively reduced, thereby improving decoding parallelism.

[0055] Example 1

[0056] In one embodiment, a fast polar code encoding process is described by taking a transmitting end as a first communication node and a receiving end as a second communication node as an example. For example, a fast polar code encoding method includes:

[0057] The first communication node sends the encoded second bit sequence to the second communication node.

[0058] In an embodiment, the first communication node encodes a first bit sequence having K input coding bits according to a preset pre-ordered polarization sequence and a polarization permutation table to obtain a second bit sequence.

[0059] Among them, the pre-ordered polarization sequence is used to indicate that the maximum code length is N max The polarization permutation table specifies the reliability order of the polarization subchannel indexes of the polarization codes of the 10-bit subcodes, and has the characteristics of code length nesting and the same reliability order of the polarization subchannel indexes of all subcodes. The polarization permutation table is used to indicate the subblock indexes that require rate adjustment when the number of coded bits increases to K.

[0060] Assume that the first bit sequence is the input bit sequence c0,c1,c2,c3,...,c K-1 , the second bit sequence is the output bit sequence d=[d0 d1 d2...d N-1The first communication node receives the input bit sequence c0, c1, c2, c3, ..., c K-1 The following steps are performed to obtain the encoded output bit sequence d0, d1, d2, ..., d N-1 :

[0061] Step 1: Determine an information bit index set according to a pre-ordered polarization sequence, a code length N of a second bit sequence, and a number K of input coded bits of a first bit sequence.

[0062] Specifically, the polarization sequence corresponding to the code length N is is the pre-ordered polarization sequence A subset of The information bit index set is composed of all elements less than N. By polarization sequence The K elements with the highest reliability in the frozen bit index set Made up of the remaining elements.

[0063] Step 2: Index the set based on the information bit Generate the first sequence to be encoded v = [v0 v1 v2 ... v N-1 ].

[0064] Specifically, the sequence v = [v0 v1 v2...v N-1 All indexes in ] belong to the information bit index set The elements of are assigned a fixed value, and the remaining elements are assigned another fixed value.

[0065] Step 3: The first sequence to be encoded v=[v0 v1 v2 ... v N-1 ] to perform rate adjustment to obtain the second sequence to be encoded.

[0066] Specifically, the sequence v=[v0 v1 v2...v N-1 ] is divided into N / M equal-length sub-blocks, where M=2 m And m<n. According to the polarization permutation table, the sub-blocks that cannot be quickly decoded are converted into sub-blocks that can be quickly decoded, and the second sequence to be encoded v′=[v′0 v′1 v′2 ... v′ N-1 ].

[0067] Step 4: The second sequence to be encoded v′=[v′0 v′1 v′2 ... v′] is encoded according to the first bit sequence. N-1 ] to generate the third sequence to be encoded u=[u0 u1 u2...u N-1 ].

[0068] Specifically, the sequence v′=[v′0 v′1 v′2...v′ N-1 ] are replaced by the input bit sequence c = [c0 c1 c2 ... c K-1 ], get the sequence u=[u0 u1 u2...u N-1 ].

[0069] Step 5: The third sequence to be encoded u=[u0 u1 u2 ... u N-1 ] performs polarization transformation to obtain the coded output bit sequence d=[d0 d1 d2...d N-1 ].

[0070] Specifically, the output bit sequence d=[d0 d1 d2...d N-1 ]Through d=uG N Get, where G N is the polarization transformation matrix.

[0071] The second communication node decodes the channel reception value to obtain a codeword estimation value.

[0072] Specifically, in this embodiment, a polar code with a code length of N is represented as a full binary tree with a depth of n, and the second communication node performs depth-first node traversal decoding.

[0073] In this embodiment, the second communication node performs fast decoding on different types of nodes (referring to each node in the full binary tree).

[0074] Specifically, if all leaf nodes of the current node correspond to information bits, then the log-likelihood ratio information α received from the parent node is directly v Make a hard decision to obtain the codeword of the current node.

[0075] If all leaf nodes of the current node correspond to frozen bits, then the codeword estimate β of the current node is v = 0. Get codeword β v After that, the codeword β is fed back to the parent node v .

[0076] If only the leaf node with the largest index in the current node corresponds to the information bit, then the node is a REP node, and the decoding result is obtained by summing the messages received by the node from the parent node.

[0077] If only the leaf node with the smallest index in the current node corresponds to the frozen bit, the node is an SPC node. The decoder responds to the message α received from the parent node. vPerform a hard decision to determine whether the hard decision result satisfies the parity check. If the parity check satisfies the parity check, the hard decision result is fed back to the parent node; otherwise, the hard decision result after flipping the least reliable position is fed back to the parent node.

[0078] If only the two leaf nodes with the smallest index in the current node correspond to frozen bits, the node is an SPC-2 node. It will receive message α from the parent node. v The messages are divided into two groups according to the parity of the index, and the two groups of messages are used as inputs of the SPC node for decoding.

[0079] If only the two leaf nodes with the largest index in the current node correspond to information bits, then the node is a REP-2 node. It will receive message α from the parent node. v The messages are divided into two groups according to the parity of the index, and the decoding result can be obtained by summing the two groups of messages.

[0080] If only the three leaf nodes with the smallest index in the current node correspond to frozen bits, the node is an RPC node. The decoder first directly v Make a hard decision to obtain β v , according to the result of the modulo 4 operation on the index, β v The data is divided into four groups, and the checksum is calculated for each group. The four checksums are decoded as a virtual repetition code with a rate of 1 / 4. The decoding results of the virtual repetition code are used to determine the groups that do not meet the checksum requirements, and the hard decision results of the least reliable positions are flipped.

[0081] If only the three leaf nodes with the highest indexes in the current node correspond to information bits, the node is a PCR node. The decoder divides the results of the modulo-4 operation on the index into four groups, sums the messages in each group to obtain four enhanced signals, and uses the enhanced signals as the input of an SPC node for decoding.

[0082] If the number of leaf nodes of the current node is N v = 16 and only the 12th, 14th, 15th, and 16th leaf nodes correspond to information bits, then the node is a Rate0-REP-SPC (RORS) node. The decoder divides the index into eight groups based on the result of a modulo-8 operation. The messages in each group are summed to obtain eight enhanced signals, which are then decoded as the input of an RPC node. If the decoding result of an RPC node does not meet the checksum requirements for that node, the decoding result of the RPC node is expanded by bit flipping, and the result that meets the checksum requirements is selected as the decoder output.

[0083] If the index is the largest N v / 2-3 leaf nodes and Nth v / 2 leaf nodes correspond to information bits, and this node is a REP-RPC node. The decoder first directly v Make a hard decision to obtain β v , for β v The first N v / 2 elements and N v / 2 elements are added modulo 2 and then summed. If the sum is less than N v / 4, then for β v The first N v / 2 elements and N v / 2 elements are summed to get N v / 2 enhanced signals, otherwise obtained by subtraction. Finally, N v / 2 enhanced signals are decoded as input of an RPC node.

[0084] If the index is the largest N v / 2-2 leaf nodes and Nth v / 2 leaf nodes correspond to information bits, and this node is a REP-SPC2 node. The decoding process of this node is the same as that of the REP-RPC node. The difference is that N v / 2 enhanced signals are decoded as input of an SPC2 node.

[0085] If the index is the largest N v / 2-1 leaf node and Nth v / 2 leaf nodes correspond to information bits, and this node is a REP-SPC node. The decoding process of this node is the same as that of the REP-RPC node. The difference is that N v / 2 enhanced signals are decoded as input of an SPC node.

[0086] If N v = 16 and only the 1st, 2nd, 3rd, 4th, 5th and 9th leaf nodes correspond to frozen bits, and this node is a PCR-SPC node. The decoder first directly v Make a hard decision to obtain β v , according to the result of the modulo 4 operation on the index, β v Divide into 4 groups, and the checksum of each group constitutes a virtual repetition code with a rate of 1 / 4. The virtual repetition code is known to be an all-0 code. At the same time, divide the index by 4 and then round it down to the integer value. v The code is divided into four groups, and the checksum of each group is decoded as another virtual repetition code with a rate of 1 / 4. The number of groups that do not meet the checksum relationship between the two virtual codewords is determined based on the decoding results of the virtual repetition code. The bits of the groups that do not meet the checksum relationship in the virtual codewords with a larger number of groups are flipped so that they meet the checksum relationship of both virtual repetition codes.

[0087] If N v = 16 and only the 1st, 2nd, 3rd, 5th, and 9th leaf nodes correspond to frozen bits. This node is a REP-SPC-SPC (RSS) node. The decoding process for this node is the same as that for PCR-SPC, except that the first virtual repetition code is unknown and needs to be decoded.

[0088] If N v = 16 and only the 1st, 2nd, 3rd, and 5th leaf nodes correspond to frozen bits. This node is a REP-SPC-Rate 1 (RSR1) node. The decoder first decodes this node as an RPC node. If the decoding result of the RPC node does not satisfy the parity check relation for that node, the decoding result of the RPC node is expanded by bit flipping, and the result that satisfies the parity check relation is selected as the decoder output.

[0089] If the current node is a non-leaf node and cannot be quickly decoded, the process calculates the message to the left child and waits for feedback from the left child. After receiving the message from the left child, the process calculates the message to the right child and waits for feedback from the right child. After receiving the message from the right child, the process calculates the decoding result for the current node and sends it back to the parent node.

[0090] Specifically, for nodes that cannot be quickly decoded, first calculate the message sent to the left child node

[0091] The function f(x,y) is defined as: f(x,y) = 2atanh(tanh(x / 2)tanh(y / 2)), then Send to the left child node v l Then the local decoder v waits until the left child node v l Receive codeword Then calculate

[0092] Then Send to the right child node v r Then the local decoder v waits until the left child node v r Receive codeword Finally, calculate β v :

[0093] Then β v Feedback to parent node p v These local decoders will not be activated again in the subsequent decoding process, so the local decoding operation in is terminated here.

[0094] When the root node obtains the codewords fed back by the left and right child nodes and After that, the decoding result is:

[0095] Table 1 Comparison of node numbers

[0096] Table 1 shows a comparison of the number of nodes at different rates for 5G NR polar codes with a code length of 1024. Compared with the Fast-SC algorithm in related technologies, the fast polar code encoding and decoding method proposed in this application effectively reduces the number of nodes that need to be traversed during the decoding process.

[0097] Figure 3 is a schematic diagram showing a performance comparison of a polar code provided in an embodiment of the present application under different coding schemes. As shown in Figure 3, a performance comparison of a (1024, 768) polar code under different coding methods is given. It can be seen that compared with the original SC decoding algorithm of the 5G NR polar code, the fast polar code coding algorithm in this application effectively reduces the number of decoding nodes while only causing a 0.1dB performance loss. Figure 4 is a schematic diagram showing a performance comparison of another polar code provided in an embodiment of the present application under different coding schemes. As shown in Figure 4, a performance comparison of a (1024, 832) polar code under different coding methods is given. It can be seen that compared with the SC decoding performance of the original 5G NR polar code of the polar code, the fast coding algorithm in this application effectively reduces the number of decoding nodes while only causing a 0.1dB performance loss.

[0098] Example 2

[0099] This embodiment further illustrates the characteristics of the pre-ordered polarization sequence based on the above-mentioned embodiment 1.

[0100] The pre-ordered polarization sequence in this embodiment has the following characteristics:

[0101] (1) In the pre-sorted polarization sequence In , the sequences are arranged in ascending order of reliability, i.e. in, Represents the polarization channel index reliability.

[0102] (2) In the pre-sorted polarization sequence In the case of naturally ordered polarization channel indices When the sub-block length is divided into equal lengths according to M, the reliability of the polarization sub-channel index in any segment is The relative ordering is fixed.

[0103] For example, as shown in Table 2, Nmax =1024, that is, 1024 polarization sub-channels. When the polarization sub-channel index of the natural order is When equal-length segmentation is performed according to M=16, the polarization subchannel index in the i-th subblock is {i×M, i×M+1,…,i×M+15}. After modulo operation on the subblock length M, the local index set in the subblock is {0,1,2,…,15}. The reliability ranking satisfies: W(0)<W(1)<W(2)<W(4)<W(8)<W(3)<W(5)<W(6) <W(9)<W(10)<W(12)<W(7)<W(11)<W(13)<W(14)<W(15)

[0104] Table 2 Pre-sorted polarization sequence and its corresponding reliability

[0105] Example 3:

[0106] This embodiment is based on the first and second embodiments. For the first sequence to be encoded, v=[v0 v1 v2...v N-1 ] is further explained.

[0107] Specifically, a possible assignment method is: sequence v = [v0 v1 v2...v N-1 All indexes in ] belong to the information bit index set The value of 1 is assigned to the elements of , and the value of 0 is assigned to the remaining elements.

[0108] For example, let N=8, K=4, Then the sequence v = [0 0 0 1 0 1 1 1].

[0109] Example 4:

[0110] This embodiment further illustrates the polarization permutation table based on the first to third embodiments.

[0111] The polarization permutation table T in this embodiment n It has the following characteristics:

[0112] (1) In the polarization permutation table T n Including K t , e I and e F Three columns of data;

[0113] (2) In the polarization permutation table T n In, K t Indicates the target number of bits, eI and e F It represents the sub-block index after the sequence v is divided into equal lengths according to the sub-block length M, that is, e F is the sub-block index where the frozen bit that needs rate adjustment is located, e I is the sub-block index where the information bits that need rate adjustment are located;

[0114] (3) In the polarization permutation table T n In the example, the exchange index is e I and e F The information bits and frozen bits in the sub-blocks can eliminate specific types of sub-codes that cannot be quickly decoded.

[0115] The polarization permutation table for N=1024 is shown in Table 3. The range of the number of input coding bits K compatible with this table is 128≤K≤910. This table can eliminate subcodes with a length of 16 and rates of 5 / 16 and 9 / 16 in the polar code.

[0116] Table 3: Polarization permutation table P for N=1024 10

[0117] Example 5

[0118] This embodiment provides another example of a polarization permutation table based on Embodiments 1 to 4, as shown in Table 4. The difference between this embodiment and Embodiment 4 is that:

[0119] (1) In the polarization permutation table, the corresponding code length N=512;

[0120] (2) In the polarization permutation table, the applicable range of the number of input coding bits K is 64≤K≤455.

[0121] Table 4: Polarization permutation table P9 for N=512

[0122] Example 6

[0123] This embodiment provides another example of a polarization permutation table based on Embodiments 1 to 5, as shown in Table 5. The difference between this embodiment and Embodiments 4 to 5 is:

[0124] (1) In the polarization permutation table, the corresponding code length N=256;

[0125] (2) In the polarization permutation table, the applicable range of the number of input coding bits K is 32≤K≤228.

[0126] Table 5: Polarization permutation table P8 for N=256

[0127] Example 7

[0128] This embodiment provides another example of a polarization permutation table based on Embodiments 1 to 6, as shown in Table 6. The difference between this embodiment and Embodiments 4 to 6 is:

[0129] (1) In the polarization permutation table, the corresponding code length N=128;

[0130] (2) In the polarization permutation table, the applicable range of the number of input coding bits K is 16≤K≤114.

[0131] Table 6: Polarization permutation table P7 for N=128

[0132] Example 8

[0133] This embodiment provides another example of a polarization permutation table based on Embodiments 1 to 7, as shown in Table 7. The difference between this embodiment and Embodiments 4 to 7 is:

[0134] (1) In the polarization permutation table, the corresponding code length N=64;

[0135] (2) In the polarization permutation table, the applicable range of the number of input coding bits K is 8≤K≤57.

[0136] Table 7: Polarization permutation table P6 for N=64

[0137] Example 9

[0138] This embodiment further illustrates the process of sub-block rate adjustment based on embodiments 1 to 8.

[0139] A possible process of adjusting the sub-block rate in this embodiment is as follows:

[0140] Determine the polarization permutation table T n All rate adjustment operations need to be performed in the polarization permutation table T n Each row represents a rate adjustment operation. Specifically, let the polarization permutation table T n The largest K less than or equal to K t The index of the row is D t , then it is necessary to execute the polarization permutation table T n D t -D+1 row to D t The preset parameter D is a positive integer. For example, when the code length N=1024, the parameter D can be preset to 11.

[0141] Determine the polarization permutation table Tn Whether the rate adjustment indicated by the current row in the needs to be performed.

[0142] Specifically, the sequence v = [v0 v1 v2...v N-1 ] F The sub-blocks are e I The sub-blocks are If the node type corresponding to the sub-block can be decoded quickly, the rate adjustment of the current row does not need to be performed, otherwise the rate adjustment operation needs to be performed. When the sub-block length M=16, a possible implementation method in this embodiment is to determine the sub-block v F The rate is 5 / 16 or 9 / 16. The sequence v = [v0 v1 v2...v N-1 ] is generated as shown in Example 3, then for sub-block v F and v I The sum can be obtained by the number of information bits r of the sub-block F and r I If the sub-block v F The number of information bits r F If it is 5 or 9, the rate adjustment operation of the current row needs to be performed.

[0143] Adjust sub-block v F and v I rate.

[0144] Specifically, the sub-block v F The most reliable frozen bits in the sub-block v are converted into information bits. I The least reliable information bits are converted into frozen bits. When the sub-block length M = 16, a possible implementation is as follows:

[0145] 1) Pair block v F and v I They are interleaved respectively to sort them according to reliability, and the interleaved sub-blocks are recorded as and The interleaving pattern is shown in Table 8:

[0146] Table 8: Interleaving pattern Π(m)

[0147] 2) If r I =10 or r I =6, then swap sub-blocks The index belongs to the set {Mr F -1,Mr F -2} elements and sub-blocks The index in the set {Mr I ,Mr I+1}; otherwise, swap the sub-blocks The index is Mr F -1 elements and sub-blocks The index is Mr I Elements of

[0148] 3) Pair Blocks and Deinterleave, and the deinterleaved sub-block is recorded as and

[0149] 4) Set the sequence v = [v0 v1 v2...v N-1 ] of the sub-block v F and v I Replace with v′ F and v′ I .

[0150] The above rate adjustment operation is performed cyclically until the polarization permutation table T n D t -D+1 row to D t All rate adjustment operations in the row range are traversed once.

[0151] Example 10

[0152] This embodiment provides another example of adjusting the sub-block rate based on the ninth embodiment. A major difference between this embodiment and the ninth embodiment is that:

[0153] When the sub-block length is M, another possible implementation is as follows:

[0154] Get the frozen bit index set With sub-block v F The intersection of the index sets of the elements in v F Frozen bit position index in According to the reliability of the index Pair Collection The indexes in the rank order are sorted, and the indexes with the highest and second highest reliability are recorded as d F and d′ F ;

[0155] Get the information bit index set With sub-block v I The intersection of the index sets of the elements in v I The information bit position index in According to the reliability of the index Pair Collection The indexes in the rank order are sorted, and the indexes with the lowest and second lowest reliability are recorded as d Iand d′ I ;

[0156] Swap sequence v = [v0 v1 v2...v N-1 ] and

[0157] If r I =10 or r I =6, then the exchange sequence v = [v0 v1 v2...v N-1 ] in the elements and Otherwise, swap sequence v = [v0 v1 v2...v N-1 ] in the elements and

[0158] In one embodiment, FIG5 is a block diagram of a coding apparatus provided by an embodiment of the present application. This embodiment is applied to a transmitting end. As shown in FIG5 , the coding apparatus in this embodiment includes: an encoder 510 and a transmitter 520.

[0159] The encoder 510 is configured to encode the first bit sequence according to a preset pre-ordered polarization sequence and a polarization permutation table to obtain a second bit sequence.

[0160] The first bit sequence is a sequence with K input coding bits; the pre-ordered polarization sequence is used to indicate the maximum code length is N. max The polarization permutation table is used to indicate the sub-block indexes that require rate adjustment when the number of input coded bits is K. The code length of the second bit sequence is N.

[0161] The transmitter 520 is configured to send the second bit sequence to the receiving end.

[0162] In one embodiment, the encoder 510 includes:

[0163] a first determining unit configured to determine an information bit index set according to a pre-ordered polarization sequence, a number of input coded bits, and a code length of a second bit sequence;

[0164] A first generating unit is configured to generate a first sequence to be encoded according to an information bit index set;

[0165] a second generating unit configured to perform rate adjustment on the first sequence to be encoded according to the polarization permutation table to generate a second sequence to be encoded;

[0166] a third generating unit configured to replace the second sequence to be encoded according to the first bit sequence to obtain a corresponding third sequence to be encoded;

[0167] The encoding unit is configured to encode the third sequence to be encoded according to a preset polarization transformation matrix to obtain a second bit sequence.

[0168] In one embodiment, the first determining unit includes:

[0169] an extraction subunit, configured to extract a corresponding subsequence from the pre-sorted polarization sequence according to a code length of the second bit sequence to obtain a corresponding polarization sequence;

[0170] The division subunit is configured to form an information bit index set from K elements with the highest reliability in the polarization sequence, and to form a frozen bit index set from other elements in the polarization sequence.

[0171] In one embodiment, for a pre-ordered polarization sequence, when naturally ordered polarization subchannel indices are divided into equal-length segments according to a preset subblock length, the relative order of the reliability of the polarization subchannel indices within any subblock is fixed.

[0172] In one embodiment, for the polarization permutation table, each row of data consists of three columns of data, namely the target bit number, the sub-block index where the frozen bits requiring rate adjustment are located, and the sub-block index where the information bits requiring rate adjustment are located.

[0173] In one embodiment, for the polarization permutation table, each row of data represents a rate adjustment operation.

[0174] In one embodiment, for the polarization permutation table, the rate adjustment range to be performed is determined by the row index of the maximum target number of bits and a preset range parameter; wherein the maximum target number of bits is less than or equal to the number of input coded bits.

[0175] In one embodiment, for the first sequence to be encoded, the elements whose indices belong to the information bit index set and the frozen bit index set are respectively initialized to different fixed values.

[0176] In one embodiment, for rate adjustment between sub-blocks in the first sequence to be coded, an interleaver interleaves two sub-blocks and then exchanges the least reliable information bits and the most reliable frozen bits.

[0177] In one embodiment, for the second sequence to be encoded after rate adjustment, the initialization values ​​of all information bits in the second sequence to be encoded are replaced by the first bit sequence.

[0178] In one embodiment, for the sub-blocks whose rate is adjusted through interleaving, the sub-blocks obtained through deinterleaving are used to replace the original sub-blocks in the first sequence to be encoded.

[0179] The encoding device provided in this embodiment is configured to implement the encoding method applied to the transmitting end of the embodiment shown in FIG1 . The implementation principle and technical effects of the encoding device provided in this embodiment are similar and will not be described in detail here.

[0180] In one embodiment, FIG6 is a block diagram of a decoding device provided by an embodiment of the present application. This embodiment is applied to a receiving end. As shown in FIG6 , the decoding device in this embodiment includes: a receiver 610 and a decoder 620.

[0181] The receiver 610 is configured to receive a second bit sequence sent by the transmitter; wherein the code length of the second bit sequence is N;

[0182] The decoder 620 is configured to decode the second bit sequence to obtain a codeword estimate.

[0183] The decoding device provided in this embodiment is configured to implement the decoding method applied to the receiving end of the embodiment shown in FIG2 . The implementation principle and technical effects of the decoding device provided in this embodiment are similar and will not be described in detail here.

[0184] In one embodiment, Figure 7 is a schematic diagram of the structure of a communication device provided in an embodiment of the present application. As shown in Figure 7, the device provided in the present application includes: a processor 710, a memory 720, and a communication module 730. The number of processors 710 in the device can be one or more, and Figure 7 uses one processor 710 as an example. The number of memories 720 in the device can be one or more, and Figure 7 uses one memory 720 as an example. The processor 710, memory 720, and communication module 730 of the device can be connected via a bus or other means, and Figure 7 uses a bus connection as an example. In this embodiment, the device can be a transmitting end.

[0185] The memory 720, as a computer-readable storage medium, can be configured to store software programs, computer executable programs, and modules, such as program instructions / modules corresponding to the device of any embodiment of the present application (for example, the encoder 510 and the transmitter 520 in the encoding device). The memory 720 may include a program storage area and a data storage area, wherein the program storage area may store an operating system, an application required for at least one function; the data storage area may store data created according to the use of the device, etc. In addition, the memory 720 may include a high-speed random access memory, and may also include a non-volatile memory, such as at least one disk storage device, a flash memory device, or other non-volatile solid-state storage device. In some instances, the memory 720 may further include a memory remotely located relative to the processor 710, and these remote memories may be connected to the device via a network. Examples of the above-mentioned network include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof.

[0186] In the case where the communication device is a transmitting end, the above-provided device can be configured to execute the encoding method applied to the transmitting end provided in any of the above-mentioned embodiments, and have corresponding functions and effects.

[0187] In the case where the communication device is a receiving end, the above-provided device can be configured to execute the decoding method applied to the receiving end provided in any of the above-mentioned embodiments, and have corresponding functions and effects.

[0188] The embodiment of the present application further provides a storage medium containing computer-executable instructions. When the computer-executable instructions are executed by a computer processor, the computer-executable instructions are used to perform a coding method applied to a transmitting end. The method comprises: encoding a first bit sequence according to a preset pre-ordered polarization sequence and a polarization permutation table to obtain a second bit sequence; wherein the first bit sequence is a sequence with an input coding bit number of K; the pre-ordered polarization sequence is used to indicate a maximum code length of N. max The reliability arrangement order of the polarization subchannel indexes of the polarization code of the first subcode is determined, and the reliability arrangement order of the polarization subchannel indexes of all subcodes is characterized by code length nesting and the same reliability arrangement order of the polarization subchannel indexes of all subcodes; the polarization permutation table is used to indicate the subblock indexes that need to be rate adjusted when the number of input coded bits is K; the code length of the second bit sequence is N; and the second bit sequence is sent to the receiving end.

[0189] An embodiment of the present application also provides a storage medium containing computer-executable instructions. When the computer-executable instructions are executed by a computer processor, they are used to execute a decoding method applied to a receiving end. The method includes: receiving a second bit sequence sent by a transmitting end; wherein the code length of the second bit sequence is N; decoding the second bit sequence to obtain a codeword estimate.

[0190] It will be appreciated by those skilled in the art that the term user equipment encompasses any suitable type of wireless user equipment, such as a mobile phone, a portable data processing device, a portable web browser or a car-mounted mobile station.

[0191] In general, various embodiments of the present application may be implemented in hardware or dedicated circuits, software, logic, or any combination thereof. For example, some aspects may be implemented in hardware, while other aspects may be implemented in firmware or software that can be executed by a controller, microprocessor, or other computing device, although the present application is not limited thereto.

[0192] Embodiments of the present application may be implemented by executing computer program instructions by a data processor of a mobile device, for example, in a processor entity, or by hardware, or by a combination of software and hardware. The computer program instructions may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages.

[0193] The block diagram of any logical flow in the drawings of the present application may represent program steps, or may represent interconnected logical circuits, modules and functions, or may represent a combination of program steps and logical circuits, modules and functions. A computer program may be stored on a memory. The memory may be of any type suitable for the local technical environment and may be implemented using any suitable data storage technology, such as, but not limited to, a read-only memory (ROM), a random access memory (RAM), an optical storage device and system (a digital versatile disc (DVD) or a compact disk (CD)). Computer-readable media may include non-transient storage media. A data processor may be of any type suitable for the local technical environment, such as, but not limited to, a general-purpose computer, a special-purpose computer, a microprocessor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), and a processor based on a multi-core processor architecture.

Claims

1. A coding method, applied to a transmitting end, comprising: The first bit sequence is encoded according to a preset pre-ordered polarization sequence and a polarization permutation table to obtain a second bit sequence; wherein the first bit sequence is a sequence with an input coding bit number of K; the pre-ordered polarization sequence is used to indicate that the maximum code length is N max The polarization permutation table is used to indicate the sub-block indexes that need to be rate adjusted when the number of input coded bits is K; the code length of the second bit sequence is N; The second bit sequence is sent to the receiving end.

2. The method according to claim 1, wherein: The step of encoding the first bit sequence according to the preset pre-ordered polarization sequence and the polarization permutation table to obtain the second bit sequence includes: determining an information bit index set according to the pre-ordered polarization sequence, the number of input coded bits, and a code length of the second bit sequence; Generate a first sequence to be encoded according to the information bit index set; Performing rate adjustment on the first sequence to be encoded according to the polarization permutation table to generate a second sequence to be encoded; The second sequence to be encoded is replaced according to the first bit sequence to obtain a corresponding third sequence to be encoded; The third sequence to be encoded is encoded according to a preset polarization transformation matrix to obtain a second bit sequence.

3. The method according to claim 2, wherein: The determining the information bit index set according to the pre-ordered polarization sequence, the input coded bit number and the code length of the second bit sequence includes: extracting a corresponding subsequence from the pre-ordered polarization sequence according to a code length of the second bit sequence to obtain a corresponding polarization sequence; The K elements with the highest reliability in the polarization sequence are used to form an information bit index set, and the other elements in the polarization sequence except the K elements with the highest reliability are used to form an information bit index set.

4. The method according to any one of claims 1 to 3, wherein: For the pre-ordered polarization sequence, when the naturally ordered polarization subchannel indexes are divided into equal lengths according to a preset sub-block length, the relative order of the reliability of the polarization subchannel indexes in any sub-block is fixed.

5. The method according to any one of claims 1 to 3, wherein: For the polarization permutation table, each row of data is composed of three columns of data, and the three columns of data are respectively the target bit number, the sub-block index where the frozen bits that need to be rate adjusted are located, and the sub-block index where the information bits that need to be rate adjusted are located.

6. The method according to any one of claims 1 to 3, wherein: For the polarization permutation table, each row of data represents a rate adjustment operation.

7. The method according to any one of claims 1 to 3, wherein: For the polarization permutation table, the rate adjustment range to be executed is determined by the row index where the maximum target number of bits is located and a preset range parameter; wherein the maximum target number of bits is less than or equal to the input coded bit number.

8. The method according to claim 3, wherein: For the first sequence to be encoded, the indexes of the elements included in the first sequence to be encoded and belonging to the information bit index set and the elements of the frozen bit index set are respectively initialized to different fixed values.

9. The method according to claim 2, wherein: For rate adjustment between sub-blocks in the first sequence to be encoded, the interleaver interleaves two sub-blocks and then exchanges the least reliable information bits and the most reliable frozen bits.

10. The method according to claim 2, wherein: For the second sequence to be encoded after rate adjustment is completed, the initialization values ​​of all information bits in the second sequence to be encoded are replaced by the first bit sequence.

11. The method according to claim 9, wherein: For the sub-blocks whose rate is adjusted through interleaving, the sub-blocks obtained through deinterleaving are used to replace the original sub-blocks in the first sequence to be encoded.

12. A decoding method, applied to a receiving end, comprising: Receive a second bit sequence sent by a transmitting end; wherein the code length of the second bit sequence is N; The second bit sequence is decoded to obtain a codeword estimation value.

13. A communication device, comprising: memory, and one or more processors; The memory is configured to store one or more programs; When the one or more programs are executed by the one or more processors, the one or more processors implement the method as described in any one of claims 1 to 11 or 12 above.

14. A storage medium storing a computer program, wherein the computer program, when executed by a processor, implements the method according to any one of claims 1 to 11 or 12.

Citation Information

Patent Citations

  • Data processing method and device

    CN108429603A

  • Coding and decoding method for two-user multiple access system based on non-binary polar code

    CN114257342A

  • Polarization code BPL decoding method with improved factor graph selection mode

    CN114421974A

  • Methods and Systems for Decoding Polar Codes

    US20130117344A1