Encoding method, decoding method, and communication apparatus
By determining the relationship between the number of segments C and the polar code length in polar code encoding, the problem of high rate matching complexity is solved, and the encoding process is simplified and performance is improved.
Patent Information
- Application Number
- PCT/CN2025/089862
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-04-24
- Filing Date
- 2025-04-18
- Publication Date
- 2025-10-30
AI Technical Summary
In the encoding process of polar codes, the high rate matching complexity in existing technologies leads to poor encoding and decoding performance, especially in the case of long bit sequences to be encoded, which requires complex rate matching operations such as punching and shortening or repeating to adapt to physical time and frequency resources.
By determining the number of segments C of the bit sequence to be encoded, which is related to the encoding length of the polar code, and determining the output bit sequence based on the first transport block size TBS and the number of segments C, it is ensured that the code block length corresponding to each bit sequence is greater than or equal to the encoding length of the polar code, thus avoiding complex rate matching operations.
It reduces the complexity of rate matching, improves the performance of channel coding, simplifies the coding process, and increases coding efficiency.
Smart Images

Figure CN2025089862_30102025_PF_FP_ABST
Abstract
Description
Encoding and decoding methods and communication devices
[0001] This application claims priority to Chinese Patent Application No. 202410502131.3, filed with the China National Intellectual Property Administration on April 24, 2024, entitled “Method and Communication Apparatus for Encoding and Decoding”, the entire contents of which are incorporated herein by reference. Technical Field
[0002] This application relates to the field of communications, and more specifically, to a method for encoding and decoding, and a communication apparatus. Background Technology
[0003] Polar codes were the first channel coding method that could be rigorously proven to "achieve" channel capacity. Furthermore, polar codes have lower computational complexity in encoding and decoding. These advantages have led to their widespread adoption in fifth-generation (5G) coding systems. th It is widely used in generation (5G) communication systems.
[0004] In the encoding process of polar codes, when the length of the bit sequence to be encoded is large, polar code segmentation can be performed to encode each segment, thereby obtaining better encoding and decoding performance. In the polar code segmentation scheme of the new radio (NR) standard, the number of segments C is determined based on the length A of the bit sequence to be encoded and the transmitted code length E after rate matching. This means that each polar codeword may not be the parent code length of the polar code. Therefore, it is necessary to adapt the resources of each codeword based on rate matching and construction. This rate matching method may cause additional overhead. For example, it is necessary to puncture, shorten, or repetite the code blocks to be transmitted to match physical time and frequency resources. Summary of the Invention
[0005] This application provides a method and apparatus for encoding and decoding, which can reduce the complexity of rate matching in the channel coding process and improve the performance of channel coding.
[0006] Firstly, an encoding method is provided, which can be applied to a transmitting device. Unless otherwise specified, the term "transmitting device" in this application can refer to the transmitting device itself (e.g., a network device, a terminal device), a component in the transmitting device (e.g., a processor, a chip, or a chip system), or a logic module or software that can implement all or part of the functions of the transmitting device.
[0007] The method includes: determining the length of the bit sequence to be encoded; obtaining the number of segments C corresponding to the bit sequence to be encoded, the value of C being related to the number of encoded bits used for transmitting the transport block and the encoding length of the polar code (also known as the mother code length), the transport block corresponding to the bit sequence to be encoded, and the encoding length of the polar code being an integer power of 2; obtaining the first transport block size (TBS), the first TBS being the TBS closest to the length of the bit sequence to be encoded, and the first TBS being not less than the length of the bit sequence to be encoded; determining the output bit sequence based on the first TBS and the number of segments C; and performing polar coding based on the encoding length of the polar code and the output bit sequence.
[0008] Based on the above scheme, by relating the value of C to the number of coded bits used to transmit the transport block and the coding length of the polar code, and by determining the output bit sequence according to the first TBS and the number of segments C, the length of the code block corresponding to each bit sequence after segmenting the output bit sequence based on C can be greater than or equal to the coding length of the polar code, that is, near the coding length of the polar code. Therefore, there is no need to perform complex rate matching (e.g., shortening or puncturing) on the code block, which can reduce the complexity of rate matching and improve the performance of channel coding.
[0009] In some implementations of the first aspect, the value of C satisfies the following relationship with the number of coded bits G used to transmit the transport block and the coding length N0 of the polar code:
[0010] in, This indicates rounding down to the nearest integer.
[0011] Based on the above scheme, the number of segments C can be determined by the number of encoded bits used to transmit the transport block and the encoding length of the polar code. Furthermore, by determining the output bit sequence based on the first TBS and the number of segments C, the length of the code block corresponding to each bit sequence after segmenting the output bit sequence based on C can be made to be close to the encoding length of the polar code.
[0012] In some implementations of the first aspect, the difference between the ratio of the first TBS to the code rate of the transport block and a first value is less than or equal to a first threshold, the first value being the product of the value of C and the coding length of the polar code.
[0013] In some implementations of the first aspect, the difference between the ratio of the first TBS to the second value and the coding length of the polar code is less than or equal to a second threshold, the second value being the product of the value of C and the code rate for transmitting the transport block.
[0014] Based on the above scheme, the length of the code block corresponding to each bit sequence after segmenting the output bit sequence determined by the first TBS and the number of segments C is greater than or equal to the coding length of the polar code, that is, near the coding length of the polar code.
[0015] In some implementations of the first aspect, the length of the coded bit sequence is determined based on the number of coded bits used to transmit the transport block and the code rate at which the transport block is transmitted.
[0016] For example, the length N of the bit sequence to be encoded info The following relationship is satisfied between the number of coded bits G used to transmit the transport block and the code rate R used to transmit the transport block: This indicates rounding down to the nearest integer.
[0017] In some implementations of the first aspect, a first quantization table is selected from a candidate quantization table based on the bit rate of transmitting the transport block. The first quantization table corresponds to the bit rate range to which the bit rate belongs, and the first quantization table indicates a plurality of candidate TBSs. The first TBS is then selected from the plurality of candidate TBSs.
[0018] Based on the above scheme, the complexity of determining the first TBS can be simplified by obtaining the first TBS based on the quantization table.
[0019] In some implementations of the first aspect, the length of the first coded bit sequence is determined based on the value of C, the coding length of the polar code, the code rate for transmitting the transport block, and a first parameter, wherein the first parameter is greater than 0 and less than 1; the first TBS is determined based on the length of the first coded bit sequence.
[0020] In some implementations of the first aspect, the length N1 of the first encoded bit sequence and the value of C, the encoding length N0 of the polar code, the code rate R, and the first parameter α1 satisfy the following relationship: N1=(1+α1)C·N0·R; the first TBS is obtained by rounding down the length N1 of the first encoded bit sequence.
[0021] Based on the above scheme, by determining the length of the first encoded bit sequence based on the relationship between the length of the first encoded bit sequence and the value of C, the encoding length N0 of the polar code, the code rate R, and the first parameter α1, and by performing a rounding operation on the length N1 of the first encoded bit sequence to obtain the first TBS, the flexibility and accuracy of determining the first TBS can be improved.
[0022] In some implementations of the first aspect, a first number of bits G1 is obtained, where G1 is the number of bits closest to the number of coded bits used to transmit the transport block, and G1 is not greater than the number of coded bits used to transmit the transport block; a first TBS is determined based on G1 and the code rate for transmitting the transport block.
[0023] Based on the above scheme, the first TBS can be obtained by quantizing the number of encoded bits used to transmit the transport block.
[0024] In some implementations of the first aspect, G1 is obtained according to a second quantization table indicating a plurality of candidate bit numbers; G1 is selected from the plurality of candidate bit numbers.
[0025] Based on the above scheme, the computational load for determining the first bit number can be reduced by obtaining the first bit number based on the quantization table.
[0026] In some implementations of the first aspect, G1 is determined based on the value of C, the coding length N0 of the polar code, and the second parameter α2. G1, the value of C, N0, and α2 satisfy the following relationship:
[0027] G1∈[C·N0, (1+α2)C·N0];
[0028] The second parameter is greater than 0 and less than 1.
[0029] Based on the above scheme, by determining the first bit number based on the relationship between the first bit number and the value of C, the coding length N0 of the polar code, and the second parameter, the flexibility and accuracy of determining the first bit number can be improved.
[0030] In some implementations of the first aspect, the first TBS is obtained by rounding down the product of G1 and the bit rate.
[0031] In some implementations of the first aspect, the first TBS is an integer multiple of a first length, which is the length of bytes, or the first length is an integer multiple of the length of bytes.
[0032] Based on the above scheme, the first TBS can be divided by the byte length or an integer multiple of the byte length, which can facilitate processor processing.
[0033] In some implementations of the first aspect, the first TBS is obtained by quantizing the bit sequence to be encoded, the quantization process including:
[0034] Among them, N' info This indicates the first TBS, N info N represents the length of the bit sequence to be encoded. infominThis is the preset minimum value of the first TBS. max() is the function to find the maximum value. This indicates rounding down to the nearest integer.
[0035] Based on the above scheme, this quantization process can make the first TBS divisible by the byte length or an integer multiple of the byte length, which can facilitate processor processing.
[0036] In some implementations of the first aspect, a first bit sequence in the output bit sequence is determined based on the values of the first TBS and the C, and the bits in the first bit sequence are set to 0. The length TBS1 of the first bit sequence satisfies the following relationship with the values of the first TBS and the C: Where TBS represents the first TBS, This indicates rounding up to the nearest integer.
[0037] Based on the above scheme, by determining the first bit sequence in the output sequence and setting the bits in the first bit sequence to 0, the anti-interference capability of the channel can be improved.
[0038] In some implementations of the first aspect, the output bit sequence is divided into C bit sequences based on the number of segments C; and the C bit sequences are polar encoded based on the encoding length of the polar code.
[0039] In some implementations of the first aspect, the C bit sequence is encoded into C encoded sequences of length N, any one of the C encoded sequences of length N includes a first sequence and a second sequence, the first sequence is obtained by polar coding using the encoding length of the polar code, and the second sequence is a repetition based on the first sequence.
[0040] Based on the above scheme, the rate matching method of the C encoded sequences obtained by polar coding of C bit sequences is repetitive, which can avoid complex rate matching (e.g., shortening or punching) and reduce the complexity of rate matching.
[0041] In some implementations of the first aspect, J bits from the C bit sequences are encoded into J encoded sequences of length equal to the encoding length of the polar code; K bits from the C bit sequences are encoded into K encoded sequences of length N1, each of the K encoded sequences of length N1 including a first sequence and a third sequence, the first sequence being obtained by polar encoding using the encoding length of the polar code, and the third sequence being a repetition of the first sequence, wherein the K bit sequences are bit sequences other than the J bit sequences from the C bit sequences.
[0042] Based on the above scheme, among the C encoded sequences obtained by polar coding of C bit sequences, J encoded sequences do not need to be rate matched, and K encoded sequences among the C encoded sequences are subjected to repeated rate matching, which can avoid complex rate matching (e.g., shortening or punching).
[0043] In some implementations of the first aspect, the K bit sequence precedes the J bit sequence, or, K1 bit sequences of the K bit sequence precede the J bit sequence, where K1 is an integer less than K.
[0044] Based on the above scheme, by using a rate-matching method that repeats the first K or K1 coded bits in C coded sequences, the bit error rate of higher priority coded sequences can be reduced.
[0045] In some implementations of the first aspect, the output bit sequence is divided into C bit sequences based on the relationship between the code rate of the transmission block and the code rate threshold.
[0046] Based on the above scheme, if the relationship between the code rate and the code rate threshold of the transmission block meets the requirements, the output bit sequence can be divided into C bit sequences based on C, which can improve the flexibility of segmenting the output sequence.
[0047] Secondly, an encoding method is provided, which can be applied to a transmitting device. Unless otherwise specified, the term "transmitting device" in this application can refer to the transmitting device itself (e.g., a network device, a terminal device), a component in the transmitting device (e.g., a processor, a chip, or a chip system), or a logic module or software that can implement all or part of the functions of the transmitting device.
[0048] The method includes: determining the length of the bit sequence to be encoded; obtaining the number of segments C corresponding to the bit sequence to be encoded, the value of which is related to the number of encoded bits used to transmit the transport block and the encoding length of the polar code, the transport block corresponding to the bit sequence to be encoded, and the encoding length of the polar code being an integer power of 2; obtaining a first number of bits, which is the number of bits closest to the number of encoded bits used to transmit the transport block, and the first number of bits is not greater than the number of encoded bits used to transmit the transport block; determining an output bit sequence based on the first number of bits and the number of segments C; and performing polar coding based on the encoding length of the polar code and the output bit sequence.
[0049] Based on the above scheme, by relating the value of C to the number of coded bits used to transmit the transport block and the coding length of the polar code, and by determining the output bit sequence based on the first number of bits and the number of segments C, the length of the code block corresponding to each bit sequence after segmenting the output bit sequence based on C is greater than or equal to the coding length of the polar code, and is close to the coding length of the polar code. Therefore, there is no need to perform complex rate matching (e.g., shortening or puncturing) on the code block, which can reduce the complexity of rate matching and improve the performance of channel coding.
[0050] In some implementations of the second aspect, the value of C satisfies the following relationship with the number of coded bits G used to transmit the transport block and the coding length N0 of the polar code:
[0051] in, This indicates rounding down to the nearest integer.
[0052] In some implementations of the second aspect, the difference between the first number of bits and the first value is less than or equal to a third threshold, where the first value is the product of the value of C and the coding length of the polar code.
[0053] In some implementations of the second aspect, the difference between the ratio of the first number of bits to the value of C and the coding length of the polar code is less than or equal to the fourth threshold.
[0054] Based on the above scheme, the length of the code block corresponding to each bit sequence after segmenting the output bit sequence determined by the first number of bits and the number of segments C is greater than or equal to the encoding length of the polar code, and is near the encoding length of the polar code.
[0055] In some implementations of the second aspect, the length of the bit sequence to be encoded is determined based on the number of encoded bits used to transmit the transport block and the code rate for transmitting the transport block.
[0056] For example, the length N of the bit sequence to be encoded info The following relationship exists between the number of coded bits G used to transmit the transport block and the code rate R used to transmit the transport block: This indicates rounding down to the nearest integer.
[0057] In some implementations of the second aspect, the first bit number is obtained according to a second quantization table indicating a plurality of candidate bit numbers; the first bit number is selected from the plurality of candidate bit numbers.
[0058] Based on the above scheme, the complexity of determining the first bit number can be simplified by obtaining the first bit number based on the quantization table.
[0059] In some implementations of the second aspect, the first number of bits G1 is determined based on the value of C, the encoding length N0 of the polar code, and the second parameter α2. The value of C, N0, and α2 satisfy the following relationship:
[0060] G1∈[C·N0,(1+α2)C·N0]; where the second parameter is greater than 0 and less than 1.
[0061] Based on the above scheme, by determining the first bit number based on the relationship between the first bit number and the value of C, the coding length N0 of the polar code, and the second parameter α2, the flexibility and accuracy of determining the first bit number can be improved.
[0062] In some implementations of the second aspect, a first TBS is determined based on the first number of bits and the code rate at which the transport block is transmitted; the output bit sequence is determined based on the first TBS and the number of segments C.
[0063] In some implementations of the second aspect, the first TBS is obtained by rounding down the product of the first number of bits and the code rate.
[0064] In some implementations of the second aspect, the difference between the ratio of the first TBS to the code rate of the transport block and a first value is less than or equal to a first threshold, where the first value is the product of the value of C and the coding length of the polar code.
[0065] In some implementations of the second aspect, the difference between the ratio of the first TBS to the second value and the coding length of the polar code is less than or equal to a second threshold, where the second value is the product of the value of C and the code rate for transmitting the transport block.
[0066] Based on the above scheme, the length of the code block corresponding to each bit sequence after segmenting the output bit sequence determined by the first TBS and the number of segments C is greater than or equal to the encoding length of the polar code, and is near the encoding length of the polar code.
[0067] In some implementations of the second aspect, the first TBS is divisible by a first length, which is the length of a byte, or an integer multiple of the length of a byte.
[0068] In some implementations of the second aspect, the first TBS is obtained by quantizing the bit sequence to be encoded, the quantization process including:
[0069] Among them, N' info This indicates the first TBS, N info N represents the length of the bit sequence to be encoded. infominThis is the preset minimum value of the first TBS. max() is the function to find the maximum value. This indicates rounding down to the nearest integer.
[0070] In some implementations of the second aspect, a first bit sequence in the output bit sequence is determined based on the values of the first TBS and the C, and the bits in the first bit sequence are set to 0. The length TBS1 of the first bit sequence satisfies the following relationship with the values of the first TBS and the C: Where TBS represents the first TBS, This indicates rounding up to the nearest integer.
[0071] In some implementations of the second aspect, the output bit sequence is divided into C bit sequences; the C bit sequences are then polar-coded based on the encoding length of the polar code.
[0072] In some implementations of the second aspect, the C bit sequence is encoded into C encoded sequences of length N, each of the C encoded sequences of length N including a first sequence and a second sequence. The first sequence is obtained by polar coding using the encoding length of the polar code, and the second sequence is a repetition based on the first sequence.
[0073] In some implementations of the second aspect, J bits from the C bit sequences are encoded into J encoded sequences of length equal to the encoding length of the polar code; K bits from the C bit sequences are encoded into K encoded sequences of length N1, each of the K encoded sequences of length N1 including a first sequence and a third sequence, the first sequence being obtained by polar encoding using the encoding length of the polar code, and the third sequence being a repetition of the first sequence, wherein the K bit sequences are bit sequences other than the J bit sequences from the C bit sequences.
[0074] In some implementations of the second aspect, the K bit sequence precedes the J bit sequence, or, K1 bit sequences of the K bit sequence precede the J bit sequence, where K1 is an integer less than K.
[0075] In some implementations of the second aspect, the output bit sequence is divided into C bit sequences based on the relationship between the code rate of transmitting the transport block and the threshold.
[0076] Thirdly, a decoding method is provided, which can be applied to a receiving device. Unless otherwise specified, the "receiving device" in this application can refer to the sending device itself (e.g., network device, terminal device), a component in the receiving device (e.g., processor, chip, or chip system), or a logic module or software that can implement all or part of the functions of the receiving device.
[0077] The method includes: acquiring a bit sequence to be decoded; decoding the bit sequence to be decoded based on a first transport block size (TBS) and a segment number (C) to obtain an output bit sequence; wherein the first TBS is the TBS closest to the length of the bit sequence to be encoded, the first TBS is not less than the length of the bit sequence to be encoded, the value of C is related to the number of encoded bits used to transmit the transport block and the encoding length of the polar code, the transport block corresponds to the bit sequence to be encoded, and the encoding length of the polar code is an integer power of 2.
[0078] Based on the above scheme, by making the value of C related to the number of coded bits used to transmit the transport block and the coding length of the polar code, and by decoding the sequence to be decoded according to the first TBS and the number of segments C to obtain the output bit sequence, the length of the codeword corresponding to each bit sequence included in the output bit sequence can be greater than or equal to the coding length of the polar code, and near the coding length of the polar code, the complexity of rate matching can be reduced and the performance of channel decoding can be improved.
[0079] In some implementations of the third aspect, the value of C satisfies the following relationship with the number of coded bits G used to transmit the transport block and the coding length N0 of the polar code: in, This indicates rounding down to the nearest integer.
[0080] In some implementations of the third aspect, the difference between the ratio of the first TBS to the code rate of the transport block and a first value is less than or equal to a first threshold, where the first value is the product of the value of C and the coding length of the polar code.
[0081] In some implementations of the third aspect, the difference between the ratio of the first TBS to the second value and the coding length of the polar code is less than or equal to a second threshold, where the second value is the product of the value of C and the code rate of transmitting the transport block.
[0082] In some implementations of the third aspect, the length of the bit sequence to be encoded is determined based on the number of encoded bits used to transmit the transport block and the code rate for transmitting the transport block.
[0083] In some implementations of the third aspect, the method further includes: obtaining the first TBS.
[0084] In some implementations of the third aspect, a first quantization table is selected from a candidate quantization table based on the bit rate of transmitting the transport block. The first quantization table corresponds to the bit rate range to which the bit rate belongs, and the first quantization table indicates multiple candidate TBSs. The first TBS is then selected from the multiple candidate TBSs.
[0085] In some implementations of the third aspect, the length of the first coded bit sequence is determined based on the value of C, the coding length of the polar code, the code rate for transmitting the transport block, and the first parameter, wherein the first parameter is greater than 0 and less than 1; the first TBS is determined based on the length of the first coded bit sequence.
[0086] In some implementations of the third aspect, the length N1 of the first encoded bit sequence and the value of C, the encoding length N0 of the polar code, the code rate R, and the first parameter α1 satisfy the following relationship: N1=(1+α1)C·N0·R; the first TBS is obtained by rounding down the length N1 of the first encoded bit sequence.
[0087] In some implementations of the third aspect, a first number of bits G1 is obtained, which is the number of bits closest to the number of encoded bits used to transmit the transport block, and G1 is not greater than the number of encoded bits used to transmit the transport block; a first TBS is determined based on G1 and the code rate for transmitting the transport block.
[0088] In some implementations of the third aspect, G1 is obtained according to a second quantization table indicating a plurality of candidate bit numbers; G1 is selected from the plurality of candidate bit numbers.
[0089] In some implementations of the third aspect, G1 is determined based on the value of C, the encoding length N0 of the polar code, and the second parameter α2. G1, the value of C, N0, and α2 satisfy the following relationship: G1∈[C·N0, (1+α2)C·N0]; where the second parameter is greater than 0 and less than 1.
[0090] In some implementations of the third aspect, the first TBS is obtained by rounding down the product of G1 and the bit rate.
[0091] In some implementations of the third aspect, the first TBS is divisible by a first length, which is the length of bytes or an integer multiple of the length of bytes.
[0092] In some implementations of the third aspect, the first TBS is obtained by quantizing the bit sequence to be encoded, including:
[0093] Among them, N' info Indicates the first TBS, N infoN represents the length of the bit sequence to be encoded. infomin The minimum value of the first TBS is preset. max() is the function to find the maximum value. This indicates rounding down to the nearest integer.
[0094] In some implementations of the third aspect, a second bit sequence in the bit sequence to be decoded is determined based on the values of the first TBS and the C. This second bit sequence is obtained by encoding the first bit sequence, with the bits in the first bit sequence set to 0. The length TBS1 of the second bit sequence satisfies the following relationship with the values of the first TBS and the C:
[0095] Where TBS represents the first TBS, This indicates rounding up to the nearest integer.
[0096] Based on the above scheme, the first bit sequence in the output sequence can be determined, and the bits in the first bit sequence are 0, thereby realizing the decoding of the first bit sequence.
[0097] In some implementations of the third aspect, the bit sequence to be decoded is determined to include C encoded sequences; the length of the information bit sequence in each of the C encoded sequences is determined based on the value of the first TBS and the value of C; and each encoded sequence is decoded to obtain the output bit sequence.
[0098] In some implementations of the third aspect, the C encoded sequences are C encoded sequences of length N. The fourth sequence in each of the C encoded sequences is decoded based on the encoding length of the polar code to obtain a first decoded sequence. The fourth sequence is obtained by polar encoding the information bit sequence in each encoded sequence using the encoding length of the polar code. The fifth sequence in each encoded sequence is decoded to obtain a second decoded sequence. The length of the fifth sequence is determined according to the value of N and the encoding length of the polar code. The fifth sequence is based on the repetition of the fourth sequence. The output sequence includes the first decoded sequence and the second decoded sequence.
[0099] Based on the above scheme, each encoded sequence can be decoded based on the encoding length of the polar code and the length of each encoded sequence.
[0100] In some implementations of the third aspect, the C encoded sequences include J encoded sequences of length equal to the encoding length of the polar code, and K encoded sequences of length N1. Each of the J encoded sequences is polar-decoded based on the encoding length of the polar code to obtain a third decoded sequence. The fourth sequence in each of the K encoded sequences is decoded based on the encoding length of the polar code to obtain a fourth decoded sequence, which is obtained by polar-coding the information bit sequence in each encoded sequence using the encoding length of the polar code. The sixth sequence in each of the K encoded sequences is decoded to obtain a fifth decoded sequence, the length of which is determined based on the value of N1 and the encoding length of the polar code. The sixth sequence is a repetition of the fourth sequence. The output sequence includes the third decoded sequence, the fourth decoded sequence, and the fifth decoded sequence.
[0101] Based on the above scheme, J encoded sequences can be decoded based on the encoding length of the polar code, and each of K encoded sequences can be decoded based on the encoding length of the polar code and the length of each encoded sequence.
[0102] In some implementations of the third aspect, the K encoded sequences are located before the J encoded sequences, or K1 encoded sequences of the K encoded sequences are located before the J encoded sequences, where K1 is an integer less than K.
[0103] In some implementations of the third aspect, the output bit sequence is determined by decoding the bit sequence to be decoded based on the first TBS and the number of segments C, according to the relationship between the code rate of the transmission block and the code rate threshold.
[0104] Based on the above scheme, if the relationship between the code rate and the code rate threshold of the transmission block meets the requirements, decoding the bit sequence to be decoded based on the first TBS and the number of segments C can improve the flexibility of decoding.
[0105] Fourthly, a decoding method is provided, which can be applied to a receiving device. Unless otherwise specified, the "receiving device" in this application can refer to the sending device itself (e.g., network device, terminal device), a component in the receiving device (e.g., processor, chip, or chip system), or a logic module or software that can implement all or part of the functions of the receiving device.
[0106] The method includes: acquiring a bit sequence to be decoded; decoding the bit sequence to be decoded based on a first number of bits and a segment number C to obtain an output bit sequence; wherein the first number of bits is the number of bits closest to the number of coded bits used to transmit the transport block, the first number of bits is not greater than the number of coded bits used to transmit the transport block, and the value of C is related to the number of coded bits used to transmit the transport block and the coding length of the polar code, the coding length of the polar code being an integer power of 2.
[0107] Based on the above scheme, by making the value of C related to the number of coded bits used to transmit the transport block and the coding length of the polar code, and by decoding the sequence to be decoded according to the first number of bits and the number of segments C to obtain the output bit sequence, the length of the codeword corresponding to each bit sequence segment included in the output bit sequence can be greater than or equal to the coding length of the polar code. Furthermore, near the coding length of the polar code, the complexity of rate matching can be reduced, and the performance of channel decoding can be improved.
[0108] In some implementations of the fourth aspect, the value of C satisfies the following relationship with the number of coded bits G used to transmit the transport block and the coding length N0 of the polar code:
[0109] in, This indicates rounding down to the nearest integer.
[0110] In some implementations of the fourth aspect, the difference between the first number of bits and the first value is less than or equal to the third threshold, and the first value is the product of the value of C and the coding length of the polar code.
[0111] In some implementations of the fourth aspect, the difference between the ratio of the first number of bits to the value of C and the coding length of the polar code is less than or equal to the fourth threshold.
[0112] In some implementations of the fourth aspect, the method further includes: obtaining the first number of bits.
[0113] In some implementations of the fourth aspect, the first number of bits is obtained according to a second quantization table indicating a plurality of candidate number of bits; the first number of bits is selected from the plurality of candidate number of bits.
[0114] In some implementations of the fourth aspect, the first number of bits G1 is determined based on the value of C, the encoding length N0 of the polar code, and the second parameter α2. The value of C, N0, and α2 satisfy the following relationship:
[0115] G1∈[C·N0,(1+α2)C·N0]; where the second parameter is greater than 0 and less than 1.
[0116] In some implementations of the fourth aspect, a first TBS is determined based on the first number of bits and the code rate of transmitting the transport block; the output bit sequence is obtained by decoding the bit sequence to be decoded based on the first TBS and the number of segments C.
[0117] In some implementations of the fourth aspect, the first TBS is obtained by rounding down the product of the first number of bits and the code rate.
[0118] In some implementations of the fourth aspect, the difference between the ratio of the first TBS to the code rate of the transport block and a first value is less than or equal to a first threshold, where the first value is the product of the value of C and the coding length of the polar code.
[0119] In some implementations of the fourth aspect, the difference between the ratio of the first TBS to the second value and the coding length of the polar code is less than or equal to a second threshold, where the second value is the product of the value of C and the code rate of transmitting the transport block.
[0120] In some implementations of the fourth aspect, the first TBS is divisible by a first length, which is the length of a byte, or an integer multiple of the length of a byte.
[0121] In some implementations of the fourth aspect, the first TBS is obtained by quantizing the bit sequence to be encoded, the quantization process including:
[0122] Among them, N' info This indicates the first TBS, N info N represents the length of the bit sequence to be encoded. infomin This is the preset minimum value of the first TBS. max() is the function to find the maximum value. This indicates rounding down to the nearest integer.
[0123] In some implementations of the fourth aspect, a second bit sequence in the bit sequence to be decoded is determined based on the values of the first TBS and the C. This second bit sequence is obtained by encoding the first bit sequence, with the bits in the first bit sequence set to 0. The length TBS1 of the second bit sequence satisfies the following relationship with the values of the first TBS and the C:
[0124] Where TBS represents the first TBS, This indicates rounding up to the nearest integer.
[0125] In some implementations of the fourth aspect, the bit sequence to be decoded is determined to include C encoded sequences; the length of the information bit sequence in each of the C encoded sequences is determined based on the value of the first TBS and the value of C; and each encoded sequence is decoded to obtain the output bit sequence.
[0126] In some implementations of the fourth aspect, the C encoded sequences are C encoded sequences of length N. The first sequence in each of the C encoded sequences is decoded based on the encoding length of the polar code. The first sequence is obtained by polar coding using the encoding length of the polar code. The length of the second sequence in each encoded sequence is determined based on the encoding length of the polar code and the length of each encoded sequence. The second sequence is a repetition of the first sequence. The second sequence is then decoded.
[0127] In some implementations of the fourth aspect, the C encoded sequences include J encoded sequences of length equal to the encoding length of the polar code, and K encoded sequences of length N1. Each of the J encoded sequences is decoded based on the encoding length of the polar code. A first sequence in each of the K encoded sequences is decoded based on the encoding length of the polar code, the first sequence being obtained by polar coding using the encoding length of the polar code. The length of a third sequence in each of the K encoded sequences is determined based on the encoding length of the polar code and the length of each encoded sequence, the third sequence being a repetition of the first sequence. The third sequence is then decoded.
[0128] In some implementations of the fourth aspect, the K encoded sequences are located before the J encoded sequences, or, K1 of the K encoded sequences are located before the J encoded sequences, where K1 is an integer less than K.
[0129] In some implementations of the fourth aspect, the output bit sequence is obtained by decoding the bit sequence to be decoded based on the relationship between the code rate of transmitting the transport block and the code rate threshold.
[0130] Fifthly, a communication device is provided, which may be a transmitting device. The device includes a processing unit configured to: determine the length of a bit sequence to be encoded; obtain the number of segments C corresponding to the bit sequence to be encoded, the value of C being related to the number of encoded bits used to transmit a transport block and the encoding length of the polar code, the transport block corresponding to the bit sequence to be encoded, and the encoding length of the polar code being an integer power of 2; obtain a first TBS, the first TBS being the TBS closest to the length of the bit sequence to be encoded, and the first TBS being not less than the length of the bit sequence to be encoded; determine an output bit sequence based on the first TBS and the number of segments C; and perform polar encoding based on the encoding length of the polar code and the output bit sequence.
[0131] In some implementations of the fifth aspect, the value of C satisfies the following relationship with the number of coded bits G used to transmit the transport block and the coding length N0 of the polar code:
[0132] in, This indicates rounding down to the nearest integer.
[0133] In some implementations of the fifth aspect, the difference between the ratio of the first TBS to the code rate of the transport block and a first value is less than or equal to a first threshold, the first value being the product of the value of C and the coding length of the polar code.
[0134] In some implementations of the fifth aspect, the difference between the ratio of the first TBS to the second value and the coding length of the polar code is less than or equal to a second threshold, where the second value is the product of the value of C and the code rate for transmitting the transport block.
[0135] In some implementations of the fifth aspect, the processing unit is specifically used to: determine the length of the bit sequence to be encoded based on the number of encoded bits used to transmit the transport block and the code rate for transmitting the transport block.
[0136] For example, the length N of the bit sequence to be encoded info The following relationship is satisfied between the number of coded bits G used to transmit the transport block and the code rate R used to transmit the transport block: This indicates rounding down to the nearest integer.
[0137] In some implementations of the fifth aspect, the processing unit is specifically configured to: select a first quantization table from a candidate quantization table according to the bit rate of transmitting the transport block, the first quantization table corresponding to the bit rate range to which the bit rate belongs, the first quantization table indicating a plurality of candidate TBSs; and select the first TBS from the plurality of candidate TBSs.
[0138] In some implementations of the fifth aspect, the processing unit is specifically used to: determine the length of the first coded bit sequence based on the value of C, the coding length of the polar code, the code rate of transmitting the transport block, and the first parameter, wherein the first parameter is greater than 0 and less than 1; and determine the first TBS based on the length of the first coded bit sequence.
[0139] In some implementations of the fifth aspect, the length N1 of the first encoded bit sequence and the value of C, the encoding length N0 of the polar code, the code rate R, and the first parameter α1 satisfy the following relationship: N1=(1+α1)C·N0·R; the processing unit is specifically used to: perform a rounding operation on the length N1 of the first encoded bit sequence to obtain the first TBS.
[0140] In some implementations of the fifth aspect, the processing unit is specifically used to: obtain a first number of bits G1, where G1 is the number of bits closest to the number of coded bits used to transmit the transport block, and G1 is not greater than the number of coded bits used to transmit the transport block; and determine a first TBS based on G1 and the code rate of transmitting the transport block.
[0141] In some implementations of the fifth aspect, the processing unit is specifically used to: obtain G1 according to a second quantization table indicating a plurality of candidate bit numbers; and select G1 from the plurality of candidate bit numbers.
[0142] In some implementations of the fifth aspect, the processing unit is specifically used to: determine G1 based on the value of C, the coding length N0 of the polar code, and the second parameter α2, wherein G1, the value of C, N0, and α2 satisfy the following relationship:
[0143] G1∈[C·N0, (1+α2)C·N0];
[0144] The second parameter is greater than 0 and less than 1.
[0145] In some implementations of the fifth aspect, the processing unit is specifically used to: perform a rounding operation on the product of G1 and the bit rate to obtain the first TBS.
[0146] In some implementations of the fifth aspect, the first TBS is an integer multiple of a first length, which is the length of bytes or an integer multiple of the length of bytes.
[0147] In some implementations of the fifth aspect, the first TBS is obtained by quantizing the bit sequence to be encoded, the quantization process including:
[0148] Among them, N' info This indicates the first TBS, N infoN represents the length of the bit sequence to be encoded. infomin This is the preset minimum value of the first TBS. max() is the function to find the maximum value. This indicates rounding down to the nearest integer.
[0149] In some implementations of the fifth aspect, the processing unit is specifically used to: determine a first bit sequence in the output bit sequence based on the values of the first TBS and the C, set the bits in the first bit sequence to 0, and the length TBS1 of the first bit sequence satisfies the following relationship with the values of the first TBS and the C: Where TBS represents the first TBS, This indicates rounding up to the nearest integer.
[0150] In some implementations of the fifth aspect, the processing unit is specifically used to: divide the output bit sequence into C bit sequences based on the number of segments C; and perform polar coding on the C bit sequences based on the coding length of the polar code.
[0151] In some implementations of the fifth aspect, the processing unit is specifically used to: encode the C bit sequence into C encoded sequences of length N, wherein any one of the C encoded sequences of length N includes a first sequence and a second sequence, wherein the first sequence is obtained by polar coding using the encoding length of the polar code, and the second sequence is a repetition based on the first sequence.
[0152] In some implementations of the fifth aspect, the processing unit is specifically used to: encode J bits from the C bit sequences into J encoded sequences of length equal to the encoding length of the polar code; encode K bits from the C bit sequences into K encoded sequences of length N1, wherein any one of the K encoded sequences of length N1 includes a first sequence and a third sequence, wherein the first sequence is obtained by polar encoding using the encoding length of the polar code, and the third sequence is a repetition of the first sequence, wherein the K bit sequences are bit sequences other than the J bit sequences from the C bit sequences.
[0153] In some implementations of the fifth aspect, the K bit sequence precedes the J bit sequence, or, K1 bit sequences of the K bit sequence precede the J bit sequence, where K1 is an integer less than K.
[0154] In some implementations of the fifth aspect, the processing unit is specifically used to: determine, based on the relationship between the code rate of transmitting the transport block and the code rate threshold, to divide the output bit sequence into C bit sequences.
[0155] In a sixth aspect, a communication apparatus is provided, the apparatus including a processing unit configured to: determine the length of a bit sequence to be encoded; obtain a segment number C corresponding to the bit sequence to be encoded, the value of C being related to the number of encoded bits used for transmitting a transport block and the encoding length of a polar code, the transport block corresponding to the bit sequence to be encoded, the encoding length of the polar code being an integer power of 2; obtain a first bit number, the first bit number being the bit number closest to the number of encoded bits used for transmitting the transport block, the first bit number being no greater than the number of encoded bits used for transmitting the transport block; determine an output bit sequence based on the first bit number and the segment number C; and perform polar coding based on the encoding length of the polar code and the output bit sequence.
[0156] In some implementations of the sixth aspect, the value of C satisfies the following relationship with the number of coded bits G used to transmit the transport block and the coding length N0 of the polar code:
[0157] in, This indicates rounding down to the nearest integer.
[0158] In some implementations of the sixth aspect, the difference between the first number of bits and the first value is less than or equal to the third threshold, and the first value is the product of the value of C and the coding length of the polar code.
[0159] In some implementations of the sixth aspect, the difference between the ratio of the first number of bits to the value of C and the coding length of the polar code is less than or equal to the fourth threshold.
[0160] In some implementations of the sixth aspect, the processing unit is specifically used to: determine the length of the bit sequence to be encoded based on the number of encoded bits used to transmit the transport block and the code rate for transmitting the transport block.
[0161] For example, the length N of the bit sequence to be encoded info The following relationship exists between the number of coded bits G used to transmit the transport block and the code rate R used to transmit the transport block: This indicates rounding down to the nearest integer.
[0162] In some implementations of the sixth aspect, the processing unit is specifically used to: obtain the first number of bits according to a second quantization table, the second quantization table indicating a plurality of candidate number of bits; and select the first number of bits from the plurality of candidate number of bits.
[0163] In some implementations of the sixth aspect, the processing unit is specifically used to: determine the first number of bits G1 based on the value of C, the coding length N0 of the polar code, and the second parameter α2, wherein G1, the value of C, N0, and α2 satisfy the following relationship:
[0164] G1∈[C·N0,(1+α2)C·N0]; where the second parameter is greater than 0 and less than 1.
[0165] In some implementations of the sixth aspect, the processing unit is specifically used to: determine a first TBS based on the first number of bits and the code rate of transmitting the transport block; and determine the output bit sequence based on the first TBS and the number of segments C.
[0166] In some implementations of the sixth aspect, the processing unit is specifically used to: perform a rounding operation on the product of the first number of bits and the code rate to obtain the first TBS.
[0167] In some implementations of the sixth aspect, the difference between the ratio of the first TBS to the code rate of the transport block and a first value is less than or equal to a first threshold, the first value being the product of the value of C and the coding length of the polar code.
[0168] In some implementations of the sixth aspect, the difference between the ratio of the first TBS to the second value and the coding length of the polar code is less than or equal to a second threshold, where the second value is the product of the value of C and the code rate for transmitting the transport block.
[0169] In some implementations of the sixth aspect, the first TBS is divisible by a first length, which is the length of a byte, or an integer multiple of the length of a byte.
[0170] In some implementations of the sixth aspect, the first TBS is obtained by quantizing the bit sequence to be encoded, the quantization process including:
[0171] Among them, N' info This indicates the first TBS, N info N represents the length of the bit sequence to be encoded. infomin This is the preset minimum value of the first TBS. max() is the function to find the maximum value. This indicates rounding down to the nearest integer.
[0172] In some implementations of the sixth aspect, the processing unit is specifically used to: determine a first bit sequence in the output bit sequence based on the values of the first TBS and the C, set the bits in the first bit sequence to 0, and the length TBS1 of the first bit sequence satisfies the following relationship with the values of the first TBS and the C: Where TBS represents the first TBS, This indicates rounding up to the nearest integer.
[0173] In some implementations of the sixth aspect, the processing unit is specifically used to: divide the output bit sequence into C bit sequences; and polarize the C bit sequences based on the encoding length of the polar code.
[0174] In some implementations of the sixth aspect, the processing unit is specifically used to: encode the C bit sequence into C encoded sequences of length N, any one of the C encoded sequences of length N includes a first sequence and a second sequence, the first sequence being obtained by polar coding using the encoding length of the polar code, and the second sequence being a repetition based on the first sequence.
[0175] In some implementations of the sixth aspect, the processing unit is specifically used to: encode J bits from the C bit sequences into J encoded sequences of length equal to the encoding length of the polar code; encode K bits from the C bit sequences into K encoded sequences of length N1, wherein any one of the K encoded sequences of length N1 includes a first sequence and a third sequence, wherein the first sequence is obtained by polar encoding using the encoding length of the polar code, and the third sequence is a repetition of the first sequence, wherein the K bit sequences are bit sequences other than the J bit sequences from the C bit sequences.
[0176] In some implementations of the sixth aspect, the K bit sequence precedes the J bit sequence, or, K1 bit sequences of the K bit sequence precede the J bit sequence, where K1 is an integer less than K.
[0177] In some implementations of the sixth aspect, the output bit sequence is divided into C bit sequences based on the relationship between the code rate of transmitting the transport block and the threshold.
[0178] In a seventh aspect, a communication device is provided, comprising a transceiver unit and a processing unit. The transceiver unit is used to acquire a bit sequence to be decoded. The processing unit is used to decode the bit sequence to be decoded based on a first transport block size (TBS) and a segment number (C) to obtain an output bit sequence. The first TBS is the TBS closest to the length of the bit sequence to be encoded, and the first TBS is not less than the length of the bit sequence to be encoded. The value of C is related to the number of encoded bits used to transmit the transport block and the encoding length of the polar code. The transport block corresponds to the bit sequence to be encoded, and the encoding length of the polar code is an integer power of 2.
[0179] In some implementations of the seventh aspect, the value of C satisfies the following relationship with the number of coded bits G used to transmit the transport block and the coding length N0 of the polar code: in, This indicates rounding down to the nearest integer.
[0180] In some implementations of the seventh aspect, the difference between the ratio of the first TBS to the code rate of the transport block and a first value is less than or equal to a first threshold, the first value being the product of the value of C and the coding length of the polar code.
[0181] In some implementations of the seventh aspect, the difference between the ratio of the first TBS to the second value and the coding length of the polar code is less than or equal to a second threshold, where the second value is the product of the value of C and the code rate for transmitting the transport block.
[0182] In some implementations of the seventh aspect, the length of the bit sequence to be encoded is determined based on the number of encoded bits used to transmit the transport block and the code rate for transmitting the transport block.
[0183] In some implementations of the seventh aspect, the processing unit is also used to acquire the first TBS.
[0184] In some implementations of the seventh aspect, the processing unit is specifically configured to: select a first quantization table from a candidate quantization table according to the bit rate of transmitting the transport block, the first quantization table corresponding to the bit rate range to which the bit rate belongs, the first quantization table indicating a plurality of candidate TBSs; and select the first TBS from the plurality of candidate TBSs.
[0185] In some implementations of the seventh aspect, the processing unit is specifically used to: determine the length of the first coded bit sequence based on the value of C, the coding length of the polar code, the code rate for transmitting the transport block, and the first parameter, wherein the first parameter is greater than 0 and less than 1; and determine the first TBS based on the length of the first coded bit sequence.
[0186] In some implementations of the seventh aspect, the length N1 of the first coded bit sequence and the value of C, the coding length N0 of the polar code, the code rate R, and the... 一 The parameters α1 satisfy the following relationship: N1=(1+α1)C·N0·R; the first TBS is obtained by rounding down the length N1 of the first encoded bit sequence.
[0187] In some implementations of the seventh aspect, the processing unit is specifically used to: obtain a first number of bits G1, where G1 is the number of bits closest to the number of coded bits used to transmit the transport block, and G1 is not greater than the number of coded bits used to transmit the transport block; and determine a first TBS based on G1 and the code rate for transmitting the transport block.
[0188] In some implementations of the seventh aspect, the processing unit is specifically used to: obtain G1 according to a second quantization table indicating a plurality of candidate bit numbers; and select G1 from the plurality of candidate bit numbers.
[0189] In some implementations of the seventh aspect, the processing unit is specifically used to: determine G1 based on the value of C, the encoding length N0 of the polar code, and the second parameter α2. G1, the value of C, N0, and α2 satisfy the following relationship: G1∈[C·N0, (1+α2)C·N0]; where the second parameter is greater than 0 and less than 1.
[0190] In some implementations of the seventh aspect, the processing unit is specifically used to: perform a rounding operation on the product of G1 and the bit rate to obtain the first TBS.
[0191] In some implementations of the seventh aspect, the first TBS is divisible by a first length, which is the length of bytes or an integer multiple of the length of bytes.
[0192] In some implementations of the seventh aspect, the first TBS is obtained by quantizing the bit sequence to be encoded, the quantization process including:
[0193] Among them, N' info Indicates the first TBS, N info N represents the length of the bit sequence to be encoded. infomin The minimum value of the first TBS is preset. max() is the function to find the maximum value. This indicates rounding down to the nearest integer.
[0194] In some implementations of the seventh aspect, the processing unit is further configured to: determine a second bit sequence in the bit sequence to be decoded based on the values of the first TBS and the C, the second bit sequence being obtained by encoding the first bit sequence, wherein the bits in the first bit sequence are set to 0, and the length TBS1 of the second bit sequence satisfies the following relationship with the values of the first TBS and the C:
[0195] Where TBS represents the first TBS, This indicates rounding up to the nearest integer.
[0196] In some implementations of the seventh aspect, the processing unit is specifically used to: determine that the bit sequence to be decoded includes C coded sequences; determine the length of the information bit sequence in each of the C coded sequences based on the value of the first TBS and the value of C; and decode each coded sequence to obtain the output bit sequence.
[0197] In some implementations of the seventh aspect, the C encoded sequences are C encoded sequences of length N. The fourth sequence in each of the C encoded sequences is decoded based on the encoding length of the polar code to obtain a first decoded sequence. The fourth sequence is obtained by polar encoding the information bit sequence in each encoded sequence using the encoding length of the polar code. The fifth sequence in each encoded sequence is decoded to obtain a second decoded sequence. The length of the fifth sequence is determined according to the value of N and the encoding length of the polar code. The fifth sequence is based on the repetition of the fourth sequence. The output sequence includes the first decoded sequence and the second decoded sequence.
[0198] In some implementations of the seventh aspect, the C encoded sequences include J encoded sequences of length equal to the encoding length of the polar code, and K encoded sequences of length N1. Each of the J encoded sequences is polar-decoded based on the encoding length of the polar code to obtain a third decoded sequence. The fourth sequence in each of the K encoded sequences is decoded based on the encoding length of the polar code to obtain a fourth decoded sequence, which is obtained by polar-coding the information bit sequence in each encoded sequence using the encoding length of the polar code. The sixth sequence in each of the K encoded sequences is decoded to obtain a fifth decoded sequence, the length of which is determined based on the value of N1 and the encoding length of the polar code. The sixth sequence is a repetition of the fourth sequence. The output sequence includes the third decoded sequence, the fourth decoded sequence, and the fifth decoded sequence.
[0199] In some implementations of the seventh aspect, the K coded sequences are located before the J coded sequences, or, K1 of the K coded sequences are located before the J coded sequences, where K1 is an integer less than K.
[0200] In some implementations of the seventh aspect, the processing unit is specifically used to: determine, based on the relationship between the code rate of the transmission block and the code rate threshold, decode the bit sequence to be decoded to obtain the output bit sequence.
[0201] Eighthly, a communication device is provided, comprising a transceiver unit and a processing unit, the transceiver unit being configured to: acquire a bit sequence to be decoded; the processing unit being configured to: decode the bit sequence to be decoded based on a first number of bits and a segment number C to obtain an output bit sequence; wherein the first number of bits is the number of bits closest to the number of coded bits used for transmitting a transport block, the first number of bits is not greater than the number of coded bits used for transmitting the transport block, and the value of C is related to the number of coded bits used for transmitting the transport block and the encoding length of the polar code, the encoding length of the polar code being an integer power of 2.
[0202] In some implementations of the eighth aspect, the value of C satisfies the following relationship with the number of coded bits G used to transmit the transport block and the coding length N0 of the polar code:
[0203] in, This indicates rounding down to the nearest integer.
[0204] In some implementations of the eighth aspect, the difference between the first number of bits and the first value is less than or equal to the third threshold, and the first value is the product of the value of C and the coding length of the polar code.
[0205] In some implementations of the eighth aspect, the difference between the ratio of the first number of bits to the value of C and the coding length of the polar code is less than or equal to the fourth threshold.
[0206] In some implementations of the eighth aspect, the processing unit is also used to: obtain the first number of bits.
[0207] In some implementations of the eighth aspect, the processing unit is specifically used to: obtain the first number of bits according to a second quantization table, the second quantization table indicating a plurality of candidate number of bits; and select the first number of bits from the plurality of candidate number of bits.
[0208] In some implementations of the eighth aspect, the processing unit is specifically used to: determine the first number of bits G1 based on the value of C, the coding length N0 of the polar code, and the second parameter α2, wherein G1, the value of C, N0, and α2 satisfy the following relationship:
[0209] G1∈[C·N0,(1+α2)C·N0]; where the second parameter is greater than 0 and less than 1.
[0210] In some implementations of the eighth aspect, the processing unit is specifically used to: determine a first TBS based on the first number of bits and the code rate of transmitting the transport block; and decode the bit sequence to be decoded based on the first TBS and the number of segments C to obtain an output bit sequence.
[0211] In some implementations of the eighth aspect, the processing unit is specifically used to: perform a rounding operation on the product of the first number of bits and the code rate to obtain the first TBS.
[0212] In some implementations of the eighth aspect, the difference between the ratio of the first TBS to the code rate of the transport block and a first value is less than or equal to a first threshold, the first value being the product of the value of C and the coding length of the polar code.
[0213] In some implementations of the eighth aspect, the difference between the ratio of the first TBS to the second value and the coding length of the polar code is less than or equal to a second threshold, where the second value is the product of the value of C and the code rate for transmitting the transport block.
[0214] In some implementations of the eighth aspect, the first TBS is divisible by a first length, which is the length of a byte, or an integer multiple of the length of a byte.
[0215] In some implementations of the eighth aspect, the first TBS is obtained by quantizing the bit sequence to be encoded, the quantization process including:
[0216] Among them, N' info This indicates the first TBS, N info N represents the length of the bit sequence to be encoded. infomin This is the preset minimum value of the first TBS. max() is the function to find the maximum value. This indicates rounding down to the nearest integer.
[0217] In some implementations of the eighth aspect, the processing unit is further configured to: determine a second bit sequence in the bit sequence to be decoded based on the values of the first TBS and the C, the second bit sequence being obtained by encoding the first bit sequence, wherein the bits in the first bit sequence are set to 0, and the length TBS1 of the second bit sequence satisfies the following relationship with the values of the first TBS and the C:
[0218] Where TBS represents the first TBS, This indicates rounding up to the nearest integer.
[0219] In some implementations of the eighth aspect, the processing unit is specifically used to: determine that the bit sequence to be decoded includes C coded sequences; determine the length of the information bit sequence in each of the C coded sequences based on the value of the first TBS and the value of C; and decode each coded sequence to obtain the output bit sequence.
[0220] In some implementations of the eighth aspect, the C encoded sequences are C encoded sequences of length N, and the processing unit is specifically used to: decode the first sequence in each encoded sequence based on the encoding length of the polar code, the first sequence being obtained by polar coding using the encoding length of the polar code; determine the length of the second sequence in each encoded sequence based on the encoding length of the polar code and the length of each encoded sequence, the second sequence being a repetition of the first sequence; and decode the second sequence.
[0221] In some implementations of the eighth aspect, the C encoded sequences include J encoded sequences of length equal to the encoding length of the polar code, and K encoded sequences of length N1. The processing unit is specifically used to: decode each of the J encoded sequences based on the encoding length of the polar code; decode a first sequence in each of the K encoded sequences based on the encoding length of the polar code, the first sequence being obtained by polar coding using the encoding length of the polar code; determine the length of a third sequence in each of the K encoded sequences based on the encoding length of the polar code and the length of each encoded sequence, the third sequence being a repetition of the first sequence; and decode the third sequence.
[0222] In some implementations of the eighth aspect, the K coded sequences are placed before the J coded sequences, or, K1 of the K coded sequences are placed before the J coded sequences, where K1 is an integer less than K.
[0223] In some implementations of the eighth aspect, the processing unit is specifically used to: determine, based on the relationship between the code rate of the transmission block and the code rate threshold, decode the bit sequence to be decoded to obtain the output bit sequence.
[0224] A ninth aspect provides a communication apparatus for performing the method provided by any of the above aspects or implementations thereof. Specifically, the apparatus may include units and / or modules for performing the method provided by any of the above aspects or implementations thereof, such as processing units and / or transceiver units.
[0225] In one implementation, the device is either a transmitting device or a receiving device. When the device is a transmitting device or a receiving device, the transceiver unit can be a transceiver, an input / output interface, or a communication interface; the processing unit can be at least one processor. Optionally, the transceiver is a transceiver circuit. Optionally, the input / output interface is an input / output circuit.
[0226] In another implementation, the device is a chip, chip system, or circuit used in a transmitting or receiving device. When the device is a chip, chip system, or circuit used in a transmitting or receiving device, the transceiver unit can be an input / output interface, interface circuit, output circuit, input circuit, pin, or related circuit on the chip, chip system, or circuit; the processing unit can be at least one processor, processing circuit, or logic circuit.
[0227] In a tenth aspect, a communication device is provided, comprising: a memory for storing a program; and at least one processor for executing the computer program or instructions stored in the memory to perform the method provided in any of the foregoing aspects or their implementations.
[0228] In one implementation, the device is either a transmitting device or a receiving device.
[0229] In another implementation, the device is a chip, chip system, or circuit used in a transmitting or receiving device.
[0230] Eleventhly, a communication device is provided, comprising: at least one processor and a communication interface, wherein the at least one processor is configured to obtain a computer program or instructions stored in a memory via the communication interface to execute the method provided in any of the preceding aspects or their implementations. The communication interface may be implemented in hardware or software.
[0231] In one implementation, the device further includes the memory.
[0232] In a twelfth aspect, a processor is provided for performing the methods provided in the foregoing aspects.
[0233] Unless otherwise specified, or if it does not contradict its actual function or internal logic in the relevant description, the transmission and acquisition / reception operations involved in the processor can be understood as processor output and reception, input and other operations, or as transmission and reception operations performed by radio frequency circuits and antennas. This application does not limit them in this regard.
[0234] In a thirteenth aspect, a computer-readable storage medium is provided that stores program code for execution by a device, the program code including methods for performing any of the foregoing aspects or implementations thereof.
[0235] In a fourteenth aspect, a computer program product containing instructions is provided, which, when run on a computer, causes the computer to perform the method provided in any of the foregoing aspects or their implementations.
[0236] In a fifteenth aspect, a chip is provided, comprising a processor and a communication interface. The processor reads instructions stored in a memory through the communication interface and executes the methods provided in any of the above aspects or their implementations. The communication interface can be implemented in hardware or software.
[0237] Optionally, as one implementation, the chip also includes a memory that stores computer programs or instructions. The processor is used to execute the computer programs or instructions stored in the memory. When the computer programs or instructions are executed, the processor is used to perform the methods provided by any of the above aspects or their implementations.
[0238] When the method provided in this application is executed by a chip, this application does not limit the specific number of chips implementing the method; for example, it can be executed by one chip or by multiple chips. Furthermore, when multiple chips execute the method, the chip manufacturers are not limited; they can be from the same manufacturer or different manufacturers.
[0239] In a sixteenth aspect, a computer program is provided that, when run on a computer, causes the methods provided by any of the foregoing aspects or their implementations to be executed.
[0240] In a seventeenth aspect, a communication system is provided, comprising at least one of the transmitting end device or receiving end device described above.
[0241] It should be understood that the beneficial effects of aspects five through seventeen and any of their implementations can be referenced to aspects one through four or any of their implementations. Attached Figure Description
[0242] Figure 1 is a schematic diagram of the architecture of a communication system applicable to embodiments of this application.
[0243] Figure 2 is a schematic diagram of the information transmission process.
[0244] Figure 3 is a schematic flowchart of an encoding method provided in this application.
[0245] Figure 4 is a comparison chart of rate matching performance.
[0246] Figure 5 is a schematic flowchart of another encoding method provided in this application.
[0247] Figure 6 is a schematic flowchart of a decoding method provided in this application.
[0248] Figure 7 is a schematic flowchart of another decoding method provided in this application.
[0249] Figures 8 and 9 are schematic block diagrams of the communication device provided in this application. Detailed Implementation
[0250] The technical solutions in this application will now be described with reference to the accompanying drawings.
[0251] Figure 1 is a schematic diagram of the architecture of a communication system applied in an embodiment of this application. As shown in Figure 1, the communication system includes a radio access network (RAN) 100. Optionally, the communication system may also include a core network 200 and an Internet 300.
[0252] RAN 100 may include at least one RAN node (as shown in Figure 1, 110a and 110b, collectively referred to as 110), and at least one terminal (as shown in Figure 1, 120a-120j, collectively referred to as 120). RAN 100 may also include other RAN nodes, such as wireless relay equipment and / or wireless backhaul equipment (not shown in Figure 1). Terminal 120 is wirelessly connected to RAN node 110. Terminals and RAN nodes can be interconnected via wired or wireless means. RAN node 110 is wirelessly or wired connected to core network 200. The core network equipment in core network 200 and RAN node 110 in RAN 100 can be independent and different physical devices, or they can be the same physical device integrating some or all of the logical functions of the core network equipment and some or all of the logical functions of the RAN node.
[0253] RAN 100 can be an evolved universal terrestrial radio access (E-UTRA) system, an NR system, a 6th generation (6G) radio access system, or a future radio access system as defined in the 3rd generation partnership project (3GPP), or a wireless fidelity (WiFi) system. RAN 100 can also include two or more of the above-mentioned different radio access systems. RAN 100 can also be an open RAN (O-RAN).
[0254] RAN nodes, also known as radio access network devices, RAN entities, or access nodes, are used to help terminals access communication systems wirelessly. In one application scenario, an RAN node can be a base station, an evolved NodeB (eNodeB), a transmission reception point (TRP), a next-generation NodeB (gNB) in a 5G mobile communication system, a next-generation base station in a 6G mobile communication system, a base station in a future mobile communication system, or an access node in a WiFi system. RAN nodes can be macro base stations (as shown in Figure 1, 110a), micro base stations or indoor stations (as shown in Figure 1, 110b), relay nodes, or donor nodes.
[0255] In another application scenario, multiple RAN nodes can collaborate to help terminals achieve wireless access, with different RAN nodes implementing different functions of the base station. For example, a RAN node can be a central unit (CU), a distributed unit (DU), or a radio unit (RU). Here, the CU performs the functions of the base station's Radio Resource Control (RRC) and Packet Data Convergence Protocol (PDCP), and can also perform the functions of the Service Data Adaptation Protocol (SDAP). The DU performs the functions of the base station's Radio Link Control (RANC) and Medium Access Control (MAC) layers, and can also perform some or all of the physical layer functions. For specific descriptions of these protocol layers, refer to the relevant 3GPP technical specifications. The RU can be used to implement radio frequency signal transmission and reception. The CU and DU can be two independent RAN nodes, or they can be integrated into the same RAN node, such as within a baseband unit (BBU). RUs can be included in radio frequency equipment, such as remote radio units (RRUs) or active antenna units (AAUs). CUs can be further divided into two types of RAN nodes: CU-control plane and CU-user plane.
[0256] In different systems, RAN nodes can have different names. For example, in an O-RAN system, a CU can also be called an open CU (O-CU), a DU can also be called an open DU (O-DU), and an RU can be called an open RU (O-RU). In this application, the RAN node can be implemented through software modules, hardware modules, or a combination of software and hardware modules. For example, the RAN node can be a server loaded with the corresponding software modules. The embodiments of this application do not limit the specific technology or device form used in the RAN node. For ease of description, a network device or base station is used as an example of a RAN node below.
[0257] A terminal can be a device with wireless transceiver capabilities, capable of sending signals to or receiving signals from a base station. Terminals can also be referred to as terminal equipment, user equipment (UE), mobile station, mobile terminal, etc. Terminals can be widely used in various scenarios, such as device-to-device (D2D), vehicle-to-everything (V2X) communication, machine-type communication (MTC), Internet of Things (IoT), virtual reality, augmented reality, industrial control, autonomous driving, telemedicine, smart grids, smart furniture, smart offices, smart wearables, smart transportation, smart cities, etc. Terminals can be mobile phones, tablets, computers with wireless transceiver capabilities, wearable devices, vehicles, airplanes, ships, robots, robotic arms, smart home devices, etc. The embodiments of this application do not limit the specific technology or device form used in the terminal.
[0258] Base stations and terminals can be fixed or mobile. They can be deployed on land, including indoors or outdoors, handheld or vehicle-mounted; they can also be deployed on water; and they can be deployed on aircraft, balloons, and satellites. The embodiments of this application do not limit the application scenarios of the base stations and terminals.
[0259] The roles of base stations and terminals can be relative. For example, the helicopter or drone 120i in Figure 1 can be configured as a mobile base station. For terminals 120j that access the wireless access network 100 through 120i, terminal 120i is a base station; however, for base station 110a, 120i is a terminal, meaning that 110a and 120i communicate via a wireless air interface protocol. Of course, 110a and 120i can also communicate via a base station-to-base station interface protocol. In this case, relative to 110a, 120i is also a base station. Therefore, both base stations and terminals can be collectively referred to as communication devices. 110a and 110b in Figure 1 can be called communication devices with base station functions, and 120a-120j in Figure 1 can be called communication devices with terminal functions.
[0260] Communication between base stations and terminals, between base stations, and between terminals can be conducted using licensed spectrum, unlicensed spectrum, or both simultaneously. Communication can be conducted using spectrum below 6 GHz, spectrum above 6 GHz, or both simultaneously. The embodiments of this application do not limit the spectrum resources used for wireless communication.
[0261] In the embodiments of this application, the functions of the base station can be executed by modules (such as chips) within the base station, or by a control subsystem that includes base station functions. This control subsystem, including base station functions, can be a control center in the aforementioned application scenarios such as smart grids, industrial control, intelligent transportation, and smart cities. Similarly, the functions of the terminal can be executed by modules (such as chips or modems) within the terminal, or by a device that includes terminal functions.
[0262] In this application, the base station sends downlink signals or downlink information to the terminal, with the downlink information carried on the downlink channel; the terminal sends uplink signals or uplink information to the base station, with the uplink information carried on the uplink channel. In order to communicate with the base station, the terminal needs to establish a radio connection with a cell controlled by the base station. The cell with which the terminal has established a radio connection is called the terminal's serving cell.
[0263] To facilitate understanding of the embodiments of this application, some basic concepts involved in this application are briefly explained. It should be understood that the basic concepts introduced below are illustrated using the basic concepts specified in the NR protocol as examples, but do not limit the embodiments of this application to be applied only to NR systems. Therefore, the standard names that appear when describing using an NR system as an example are functional descriptions, and the specific names are not limited.
[0264] 1. Polar codes
[0265] Polar codes, also known as polar codes, are a novel coding method based on channel polarization. They possess a deterministic construction method and are a known channel coding method that has been rigorously proven to "achieve" channel capacity. From the perspectives of algebraic coding and probabilistic coding, polar codes possess the characteristics of both.
[0266] The theoretical basis of Polar codes includes channel polarization. Channel polarization can be divided into two parts: channel combination and channel decomposition. When the number of combined channels approaches infinity, polarization occurs: some channels tend to become noiseless channels, while others tend to become noisy channels. This phenomenon is called channel polarization. The transmission rate of a noiseless channel approaches 1. When the code length approaches infinity, the ratio K / N of the number of noiseless channels K to the total number of channels N approaches the channel capacity C, while the transmission rate of a noisy channel approaches zero. The encoding strategy of Polar codes utilizes this phenomenon, using noiseless channels to transmit useful information to the user, and using noisy channels to transmit agreed-upon information or no information at all.
[0267] After channel polarization is complete, the channels with a capacity approaching 1 can be used to carry information bits, while the remaining channels can be used to carry frozen bits that are consistent at both the transmitting and receiving ends. This is the polar code encoding method.
[0268] Polar codes are linear block codes whose encoding matrix (also called the generator matrix) is G. N The encoding process can be represented by formula (1):
[0269] in, It is a binary row vector (i.e., a sequence of information bits) with a length of N (i.e., code length); G N It is an N×N matrix. Also known as a polarized nucleus; This represents the nth power of the Kronecker product, where n = log2(N).
[0270] During the encoding process of Polar codes, A portion of the bits in a sequence are used to carry information and are called information bits. The set of indices of these bits is denoted as . The remaining bits are set to fixed values pre-agreed upon by the receiver and transmitter; these are called fixed bits or frozen bits, and their index set is used... supplement This indicates that the encoded output of the Polar code can be simplified to... in, for Information bits in Let K be a row vector of length K, i.e. The symbol || represents the number of elements in a set, i.e., K represents the set. The number of elements in the code also represents the number of bits of information to be encoded; It is matrix G N The middle is composed of sets The submatrix obtained by the row corresponding to the index in the matrix. It is a K×N matrix.
[0271] Figure 2 is a flowchart of an information transmission method. As shown in Figure 2, the transmitting end can use Polar codes to perform channel coding on the information source from the media access control (MAC); the receiving end sends the demodulated log likelihood ratio (LLR) soft information into the Polar decoder to recover the information source information and upload it to the MAC.
[0272] When communicating using wireless technology, the information source at the transmitting end generally undergoes source coding, channel coding, rate matching, and modulation before being transmitted over the channel. After receiving the signal, the receiving end sequentially undergoes demodulation, derate matching, channel decoding, and source decoding to obtain the information sink.
[0273] It should be understood that the method of information transmission in FIG. 2 is only illustrative, and other processes may also be included in the actual transmission process. For example, after rate matching, processes such as multiplexing and bit scrambling may be performed, followed by the modulation process. After that, interleaving, cell-related scrambling, and resource mapping to the physical resources of the channel for transmission may be performed. Correspondingly, the receiving end may perform the corresponding inverse processes to obtain the information sink information.
[0274] In the above process, Polar code encoding can be used when performing channel coding. Generally, after using Polar code encoding, rate matching needs to be performed according to the size of the current channel resources. Specifically, the length of the encoded bits after Polar code encoding is equal to the length of the mother code, which is a power of 2. If a Polar code matching the resource size is to be obtained, rate matching needs to be performed on the encoded bits to obtain the final transmitted bits.
[0275] In other words, the size of the channel resources in this application can be the code length of the actually transmitted Polar code, that is, the number of actually transmitted bits. That is, after using Polar code for channel coding on the to-be-encoded bit sequence to obtain N encoded bits, rate matching needs to be performed to obtain the actually transmitted bits corresponding to the size of the channel resources.
[0276] In the encoding process of the Polar code, when the length of the to-be-encoded bit sequence is large, Polar code segmentation can be performed to segment the to-be-encoded bits. By encoding each segment, better encoding and decoding performance can be obtained. In the NR standard, the input sequence for Polar code segmentation is a to-be-encoded bit sequence with a length of A (0 < A ≤ 1706). If (A ≥ 360 and E ≥ 1088) or if A ≥ 1013, the A bits are evenly divided into 2 segments; otherwise, no segmentation is performed. E is the transmitted code length after rate matching.
[0277] The pseudo-code for Polar code segmentation is as follows:
[0278] In existing Polar code segmentation schemes, the number of segments C is determined based on the length A of the bit sequence to be encoded and the transmitted code length E after rate matching. This results in the target code length of each Polar codeword (i.e., the Polar code) potentially not being the parent code length. Therefore, rate matching based on the NR standard is required to adapt the resources of each codeword segment. This rate matching and construction module may incur additional overhead, thus affecting the performance of channel coding. For example, shortening or puncturing the code block to be transmitted to match the capacity of physical time-frequency resources may also incur additional overhead.
[0279] In view of this, this application provides a method and apparatus for encoding and decoding to improve the performance of channel coding.
[0280] To facilitate understanding of the embodiments of this application, the following points are explained before introducing the embodiments of this application.
[0281] First, the various numerical designations used in the embodiments of this application are merely for descriptive convenience and are not intended to limit the scope of the embodiments of this application. The order of the process numbers does not imply the order of execution; the execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application.
[0282] Second, in the embodiments of this application, the terms "first," "second," and various numerical designations are used for ease of description and are not intended to limit the scope of the embodiments of this application. For example, they are used to distinguish different indication information.
[0283] Third, in the embodiments of this application, descriptions such as "when," "under what circumstances," and "if" all refer to the device making corresponding processing under certain objective circumstances, and are not limited to a specific time. They do not require the device to make a judgment action during implementation, nor do they imply any other limitations.
[0284] Figure 3 is a schematic diagram of an encoding method 300 provided in this application.
[0285] It is understood that method 300 can be executed by a sending device (e.g., a first communication device). Unless otherwise specified, "sending device" can refer to the sending device itself or a device that enables the sending device to perform this function. For ease of description, the terms "sending device" and "receiving device" will be used interchangeably below. The sending device can be a terminal device or a network device. The following description uses the execution of method 300 by the first communication device as an example. The method can include the following steps.
[0286] S310, determine the length of the bit sequence to be encoded.
[0287] The bit sequence to be encoded can be understood as a usable bit sequence for encoding, or a bit sequence that can be used to transmit information. The "bit sequence to be encoded" can also be called the "information bit sequence to be encoded" or the "bit sequence used to transmit information," etc., without limitation.
[0288] The length of the bit sequence to be encoded (i.e. the number of bits it contains) is related to the number of encoded bits (denoted as G) used to transmit the transport block (TB) and the code rate (denoted as R) used to transmit the TB. In other words, the length of the bit sequence to be encoded is determined based on G and R.
[0289] Here, the TB corresponds to the bit sequence to be encoded, or in other words, the transport block is the transport block where the information to be transmitted is located; the number of encoded bits used to transmit the transport block can be understood as the number of encoded bits that can be used to transmit the transport block, the total number of encoded bits used to transmit the transport block, or the number of bits corresponding to the size of the resources that can be used to transmit the transport block, etc.
[0290] Specifically, the first communication device can determine G, and determine the length of the bit sequence to be encoded based on G and R. Determining G may include steps S1 and S2.
[0291] S1. Determine the size of the resource corresponding to the transmission block according to formula (1). For example, the size of the resource can be represented by the number of resource elements (REs), denoted as N. RE .
[0292] in, This indicates the number of subcarriers included in a resource block (RB), for example, The value is 12; This indicates the number of symbols (such as orthogonal frequency division multiplexing (OFDM) symbols) scheduled within a time unit (e.g., a time slot). The value can be 14 or 12; This indicates the number of resource elements (REs) occupied by the demodulation reference signal (DMRS) in a single RB. This indicates the number of overhead REs configured by higher-level parameters in an RB. The "·" sign represents multiplication and can be replaced by "×" or "*", with further explanation omitted below.
[0293] The RB mentioned above can be understood as a unit of frequency domain resource allocation, or a unit of frequency domain resource allocation. Unless otherwise specified, RB can refer to a physical resource block (PRB). The DMRS mentioned above is a reference signal used for channel estimation. This reference signal can also be other reference signals with the same or similar functions, without limitation.
[0294] Optionally, the bit rate for transmitting this TB can be pre-configured by higher-layer signaling, media access control (MAC) layer, or downlink physical layer signals, or given in the modulation and coding scheme (MCS).
[0295] S2, based on N RE The modulation order and the number of transmission layers are determined by G.
[0296] Specifically, G and N RE Modulation order Q m The following relationship exists between G and the number of transport layers v: G = N RE Q m ·v.
[0297] Furthermore, the length of the bit sequence to be encoded (denoted as N) is determined based on G and R. info ). Specifically, N info It is obtained by rounding down the product of G and R. This rounding operation can include rounding up, rounding down, or rounding to the nearest integer, and is not limited to any particular method.
[0298] For example, N info The following relationship exists between G and R: in, This indicates rounding up; explanations for the same case are omitted below.
[0299] S320, obtain the number of segments C corresponding to the bit sequence to be encoded.
[0300] Here, the number of segments C corresponding to the bit sequence to be encoded can be understood as the number of segments of length N that need to be encoded. info The number of bit sequences to be encoded that need to be divided into bit sequences of length N1, or the number of bit sequences to be divided into bit sequences of length N2, where N1 ≤ N. info N² ≤ N'. The value of N' is related to N. info The value of is related, or in other words, the output bit sequence is obtained based on the bit sequence to be encoded.
[0301] For example, the value of C is related to the number of coded bits G used to transmit the transport block and the coding length N0 of the polar code, or in other words, the value of C is determined based on G and N0.
[0302] The number of encoded bits G used to transmit the transport block is described in S310; the encoding length of the polar code is an integer power of 2, that is, the encoding length N0 of the polar code is 2n, where n is a positive integer, for example, the encoding length of the polar code is 1024.
[0303] In this application, the encoding length of the polar code can also be referred to as the mother code length of the polar code.
[0304] For example, the value of C is positively correlated with G and negatively correlated with N0. For instance, the value of C can be less than or equal to the value #1, which is obtained by rounding the product of G and N0. This rounding operation can include rounding up, rounding down, or rounding to the nearest integer, and is not limited to any particular value.
[0305] For example, the value of C satisfies the following relationship with G and N0: This indicates rounding down to the nearest integer.
[0306] For example, the value of C satisfies the following relationship with G and N0: This indicates rounding up to the nearest integer.
[0307] Based on the above scheme, by setting the value of C to be related to G and N0, the length of the codeword corresponding to each segment of the bit sequence after segmentation based on the value of C can be made to be close to the encoding length of the polar code, thereby reducing the complexity of subsequent rate matching.
[0308] S330, obtain the first TBS.
[0309] The first TBS can be used as the quantized value of the length of the bit sequence to be encoded. The first TBS is the TBS closest to the length of the bit sequence to be encoded, and the first TBS is not less than the length of the bit sequence to be encoded. In other words, in subsequent processing of the encoding process, the first TBS can be used instead of directly using the length of the bit sequence to be encoded.
[0310] Furthermore, the values of the first TBS and C, the coding length N0 of the polar code, and the code rate R for transmitting the transport block satisfy the first correspondence.
[0311] For example, the first correspondence can be: the difference between the ratio of the first TBS to the bit rate R and the value #2 (an example of the first value) is less than or equal to a first threshold, where the value #2 is the product of the value of C and N0. The first threshold can be determined according to the actual required quantization precision. For example, the first threshold can be set as the product of parameter #1 and value #2, where parameter #1 is greater than 0 and less than 1.
[0312] For example, the first correspondence is correspondence #1: That is, the first threshold is The value of parameter #1 is 1 / 8.
[0313] The first correspondence can also be: the ratio of the first TBS to the value #3 (an example of the second value), the difference between which is less than or equal to N0, is a second threshold, where the value #3 is C times N0. The second threshold can be determined according to the actual required quantization precision. For example, the second threshold can be set as the product of parameter #2 and N0, where parameter #2 is greater than 0 and less than 1. The values of the above parameters (parameter #1 and parameter #2) can be pre-configured or agreed upon through a protocol.
[0314] For example, this first correspondence is represented as correspondence #2: That is, the value of the second threshold is The value of parameter #2 is 1 / 8.
[0315] It should be understood that the above correspondence #1 and correspondence #2 are only examples of the first correspondence. The first correspondence can also be other equivalent forms of correspondence #1 and correspondence #2, without limitation.
[0316] Based on the above scheme, by using the first TBS as the quantization value of the bit sequence to be encoded, the first TBS satisfies the first correspondence, which makes the length of the code block corresponding to each bit sequence after segmentation of the bit sequence to be encoded greater than or equal to the encoding length of the polar code, and near the encoding length of the polar code. Therefore, there is no need to perform complex rate matching (e.g., shortening or punching) on the code block, which can reduce the complexity of rate matching.
[0317] In one possible implementation, the first TBS is obtained by quantizing the length of the bit sequence to be encoded.
[0318] In one example, the length of the bit sequence to be encoded is quantized according to a quantization table. This quantization table includes at least one table, which can correspond one-to-one with at least one code rate interval.
[0319] For example, the first communication device quantizes the bit sequence to be encoded according to a first quantization table. The first quantization table includes one or more rows in table #1, which is at least one table corresponding to the code rate interval to which the code rate of the transmission block belongs. The first quantization table indicates at least one candidate TBS, which is the TBS among the at least one candidate TBS that is closest to and not less than the length of the bit sequence to be encoded.
[0320] For an example of the division of bitrate intervals and the corresponding tables for different bitrate intervals, please refer to Tables 2 to 6 below.
[0321] It should be understood that the use of a quantization table to indicate at least one candidate TBS in this implementation is merely an example, and this application does not limit the method of indicating candidate TBS. For example, at least one candidate TBS can also be indicated by a set of TBSs, and different sets of TBSs can correspond to different bit rate ranges.
[0322] In another possible implementation, the first TBS is determined based on the value of C, the coding length N0 of the polar code, and the code rate R for transmitting the transport block.
[0323] Specifically, determining the first TBS based on the value of C, N0, and the code rate R may include: determining the length N1 of the first encoded bit sequence based on the value of C, N0, and the code rate R; and determining the first TBS based on N1.
[0324] The values of N1 and C, N0, and the bit rate R satisfy the following correspondence: N1 = (1 + α1)C·N0·R. α1 is an example of the first parameter, which is greater than 0 and less than 1. That is, N1 can be determined based on the values of C, N0, the bit rate R, and this correspondence.
[0325] Determining the first TBS based on N1 may include: performing a rounding operation on N1 to obtain the first TBS, which may include rounding down, rounding up, or rounding to the nearest integer.
[0326] For example, the first TBS can be represented as: Where, N i " nf o indicates the first TBS.
[0327] For example,
[0328] Where, N” info This indicates the first TBS, N' infoThe quantized value (denoted as quantized value #1) is obtained by performing quantization processing #1 on the bit sequence to be encoded. Quantized value #1 is divisible by a first length, which is the length of a byte or an integer multiple of the length of a byte. In other words, the quantized value of the length of the bit sequence to be encoded after quantization processing #1 is divisible by the length of a byte or an integer multiple of the length of a byte.
[0329] For example, quantization processing #1 can be represented as:
[0330] Among them, N' info Indicates quantization value #1, N info N represents the length of the bit sequence to be encoded. infomin The minimum value of the preset quantization value #1 max() is the function to find the maximum value. This indicates rounding down to the nearest integer.
[0331] Optionally, determining the first TBS based on the value of C, the coding length N0 of the polar code, and the code rate R for transmitting the transport block includes: when the code rate R is greater than a threshold #1, determining the first TBS based on the value of C, N0, and the code rate R; furthermore, when the code rate R is less than the threshold #1, the first TBS can be the length of the bit sequence to be encoded, or the aforementioned N' info That is, when the code rate R is less than the threshold #1, the length of the bit sequence to be encoded can be left unquantized, or the length of the bit sequence to be encoded can be quantized as shown in quantization #1.
[0332] It should be understood that this application does not limit the case where the code rate R equals the threshold #1. For example, when the code rate R equals the threshold #1, the first TBS can be determined according to this implementation method, or the length of the bit sequence to be encoded or the aforementioned N' can also be used. info This serves as the first TBS. The aforementioned threshold #1 can be a pre-configured bitrate threshold, for example, the value of threshold #1 is 0.5.
[0333] In another possible implementation, the first TBS is obtained by quantizing the number of bits G used to transmit the transport block.
[0334] Specifically, the first communication device quantizes G to obtain a first number of bits G1, and determines the first TBS based on G1 and the code rate R. Here, G1 is the number of bits closest to G, and G1 is not greater than G.
[0335] For example, quantizing G can include two methods:
[0336] Method 1: Quantify G according to the quantification table.
[0337] For example, G is quantized according to a second quantization table to obtain G1. The second quantization table indicates at least one candidate bit number. The second quantization table includes one or more rows from table #2, which indicates multiple candidate bit numbers. Specifically, quantizing G according to the quantization table includes selecting G1 from the second quantization table, where G1 is the bit number among the at least one candidate bit number that is closest to G and not greater than G.
[0338] For an example of Table #2, see Table 7 below.
[0339] It should be understood that the use of a quantization table to indicate at least one candidate bit number in this implementation is merely an example, and this application does not limit the method of indicating the candidate bit number. For example, at least one candidate bit number can also be indicated by a set of bit numbers.
[0340] Method 2: Determine G1 based on the value of C and the encoding length N0 of the polar code.
[0341] Specifically, the difference between G1 and the value #2 is greater than or equal to 0, where the value #2 is the product of the value of C and N0, meaning G1 is greater than or equal to C times N0, and the difference between G1 and C times N0 is less than or equal to the third threshold. This third threshold can be determined according to the actual required quantization precision. For example, the third threshold can be set as the product of parameter #3 (an example of the second parameter) and the value #3, where parameter #3 is greater than 0 and less than 1.
[0342] For example, G1 can be represented as: G1∈[C·N0,(1+α2)C·N0], where α2 represents parameter #3.
[0343] Further, determining the first TBS based on G1 and the bit rate R includes: performing a rounding operation on the product of G1 and R to obtain the first TBS. This rounding operation can include rounding up, rounding down, or rounding to the nearest integer, and is not limited to any particular method.
[0344] For example, the first TBS, G1, and the bit rate R satisfy the following relationship:
[0345] After obtaining the first TBS through the above method, optionally, the first TBS can also be subjected to quantization processing #2. The first TBS obtained after quantization processing #2 is divisible by a first length, where the first length is the length of bytes or an integer multiple of the byte length. In other words, the first TBS after quantization processing #2 is divisible by the byte length or an integer multiple of the byte length, which facilitates processor processing and supports higher throughput.
[0346] Specifically, quantization processing #2 can be represented as:
[0347] Among them, N' info This represents the quantized value of the first TBS after quantization processing #2 (denoted as quantized value #2), where TBS represents the first TBS, and N... infomin This is the minimum value of the preset quantization value #2. max() is the function to find the maximum value. This indicates rounding down to the nearest integer.
[0348] Based on the above scheme, the first TBS is obtained by quantizing the length of the bit sequence to be encoded or the number of bits used to transmit the transport block. This allows the first TBS to satisfy the first correspondence, thereby making the length of the code block corresponding to each bit sequence after segmentation of the bit sequence to be encoded greater than or equal to the encoding length of the polar code. Furthermore, near the encoding length of the polar code, the complexity of rate matching can be reduced.
[0349] S340 determines the output bit sequence based on the first TBS and the number of segments C.
[0350] The output bit sequence may include a first bit sequence and a bit sequence of length first TBS.
[0351] The first bit sequence is a 0-bit sequence, or in other words, the output bit sequence is obtained by padding a bit sequence of length 1 TBS with 0s.
[0352] Specifically, determining the output bit sequence based on the first TBS and the number of segments C may include: determining the first bit sequence based on the first TBS and the number of segments C. The length TBS1 of the first bit sequence is related to the values of the first TBS and C, or in other words, TBS1 is determined according to the first TBS and C.
[0353] For example, the values of TBS1, the first TBS, and C satisfy the following relationship:
[0354] Optionally, in the output bit sequence, the first bit sequence may be located before a bit sequence of length first TBS.
[0355] S350, polar coding is performed based on the encoding length of the polar code and the output bit sequence.
[0356] Alternatively, the output bit sequence can be polar-coded using the encoding length of the polar code.
[0357] For example, polar coding based on the encoding length of the polar code and the output bit sequence may include: dividing the output bit sequence into C bit sequences based on the number of segments C; and polar coding the C bit sequences based on the encoding length of the polar code to obtain C encoded sequences.
[0358] In this application, the C bit sequence can also be called C code blocks (CB); the encoded sequence can also be called codeword, without limitation.
[0359] For example, the output bit sequence is divided into segments of length N based on the number of segments C. CB A bit sequence, that is, a C bit sequence in which each bit sequence has a length of N. CB N CB =TBS2 / C. Where TBS2 represents the length of the output bit sequence.
[0360] Optionally, in this application, it can be determined whether to divide the output bit sequence into C bit sequences based on the number of segments C, according to the relationship between the bit rate R and the bit rate threshold. In other words, it can be determined whether to segment the output bit sequence based on the number of segments C, according to whether the relationship meets the requirements. For example, if the relationship meets the requirements, the output bit sequence is segmented based on the number of segments C; if the relationship does not meet the requirements, the output bit sequence is segmented according to the existing segmentation method.
[0361] Alternatively, in this application, the determination of whether to determine the number of segments C in the manner shown in S320 is based on the relationship between the bit rate R and the bit rate threshold. For example, if the relationship meets the requirements, the number of segments C is determined in the manner shown in S320; if the relationship does not meet the requirements, the number of segments C is determined in the existing manner. After determining the number of segments C, the output bit sequence is segmented based on the number of segments C.
[0362] It should be understood that when the code rate R is less than the code rate threshold, the performance of polar coding of the output bit sequence based on the number of segments C shown in S320 is close to the performance of polar coding of the output bit sequence based on the number of segments C determined by existing methods. The complexity of rate matching can be reduced by using the segmentation scheme in this application.
[0363] The bitrate threshold can be pre-configured or agreed upon by the protocol. For example, the bitrate threshold is 0.5.
[0364] Optionally, based on the relationship between the length of the bit sequence (e.g., the length of the output bit sequence TBS2 or the first TBS) and the bit sequence length threshold (which may include threshold #3 and threshold #4, which are the thresholds corresponding to TBS2 and the first TBS, respectively), it is determined whether to determine the number of segments C in the manner shown in S320.
[0365] Taking the length of the output bit sequence as an example, when the relationship between TBS2 and threshold #3 meets the requirements, the number of segments C is determined according to the method shown in S320; when the relationship between TBS2 and threshold #3 does not meet the requirements, the number of segments C is determined according to the existing method. After determining the number of segments C, the output bit sequence is further segmented based on this number of segments C.
[0366] The bit sequence length threshold can be pre-configured or protocol-defined. Optionally, this threshold can also be mapped to the length of the output bit sequence TBS2 and / or the encoding length of the polar code, as shown in Table 1.
[0367] Table 1
[0368] Table 1 is only one example of a mapping relationship. The mapping relationship can also be in other forms. For example, the bitrate R in Table 1 can include other values, or the bitrate threshold corresponding to the bitrate R in Table 1 can be other values, or the mapping relationship between the threshold and the bitrate R and N0 can be represented by a function, etc.
[0369] It should also be understood that this application does not limit the case where the code rate R and / or the length of the bit sequence are equal to a threshold (e.g., a code rate threshold and / or a bit sequence length threshold). That is, when the code rate R and / or the length of the bit sequence are equal to the threshold, the number of segments C can be determined based on the scheme of this application or based on the number of segments C determined by existing schemes.
[0370] Optionally, the method further includes adding a cyclic redundancy check (CRC) bit sequence to each of the C bit sequences. For example, the length of the CRC bit sequence is L.
[0371] That is, after segmenting the output bit sequence, the length of each bit sequence is N. CB ', N CB =TBS2 / C+L.
[0372] The following describes the specific method for obtaining C encoded sequences by polar coding of C bit sequences. For example, obtaining C encoded sequences by polar coding of C bit sequences can include two methods:
[0373] Method 1: Encode C bit sequences into C encoded sequences of length N, or in other words, encode each bit sequence in the C bit sequences into an encoded sequence of length N.
[0374] Each encoded sequence of length N includes a first sequence and a second sequence. The length of the first sequence is the encoding length N0 of the polar code. The first sequence is obtained by polar encoding bit sequence #1 (any bit sequence among C bit sequences) using N0. For specific polar encoding algorithms, please refer to existing relevant descriptions. The second sequence is based on the repetition of the first sequence, that is, a segment of the encoded sequence in the first sequence is selected as the second sequence.
[0375] For example, the length N2 of the second sequence is related to the values of the number of coded bits G, N0, and C that can be used to transmit the transport block, for example, That is, a coded sequence of length N2 in the first sequence is selected as the second sequence.
[0376] It should be understood that this application does not limit the method of selecting the second sequence from the first sequence. For example, a coding sequence of length N2 can be selected from the beginning position of the first sequence or a coding sequence of length N2 can be selected from the end position of the first sequence as the second sequence.
[0377] In other words, the rate matching method of the C encoded sequences obtained by polar coding of C bit sequences is repetition, and the number of repeated bits in each encoded sequence is N2 as mentioned above. In this way, complex rate matching (e.g., shortening or punching) can be avoided, and the complexity of rate matching can be reduced.
[0378] Method 2: Encode J bits from the C bit sequences into J encoded sequences of length N0 (the encoding length of the polar code); and encode K bits from the C bit sequences into K encoded sequences of length N1. Here, J and K are positive integers less than C.
[0379] Each of the J coding sequences is obtained by polar coding with a mother code length of N0. The specific polar coding algorithm can be found in existing descriptions. Each of the K coding sequences includes a first sequence and a third sequence. The first sequence can be found in the description in Method 1. The third sequence is based on the repetition of the first sequence, i.e., a segment of the first sequence is selected as the third sequence.
[0380] For example, the length of the third sequence is related to the value of K or J, the number of encoded bits G, N0, and C that can be used to transmit the transport block. For example, That is, a coding sequence of length N3 in the first sequence is selected as the third sequence. For example, a coding sequence of length N3 is selected starting from the beginning or end of the first sequence as the third sequence.
[0381] In other words, of the C encoded sequences obtained by polar coding of C bit sequences, J encoded sequences do not require rate matching, and K encoded sequences of the C encoded sequences adopt a repeated rate matching method, with each of the K encoded sequences including the aforementioned N3 repeated bits. In this way, complex rate matching (e.g., shortening or puncturing) can be avoided, and the complexity of rate matching can be reduced.
[0382] Optionally, in Method 2, the K coded bits can include K1 coded bits with higher priority, where K1 is a positive integer less than or equal to K. That is, a repeated rate-matching method is used for the K1 coded bits with higher priority to reduce the bit error rate of the higher priority coded sequence.
[0383] Optionally, a coding sequence using a repetitive rate-matching method (e.g., K or K1 coding sequences) is interleaved at the beginning of the C coding sequences to reduce the transmission delay of the K or K1 coding sequences. For specific interleaving methods of code blocks, please refer to existing related descriptions.
[0384] Optionally, the method further includes: concatenating the C coded bits, modulating them, and transmitting them to the channel. Specific concatenation and modulation methods are described in existing literature and will not be repeated here.
[0385] Based on the above scheme, by setting the value of C to be related to G and N0, and by using the first TBS as the quantization value of the bit sequence to be encoded, the length of the code block corresponding to each bit sequence after segmenting the bit sequence to be encoded based on the value of C can be greater than or equal to the encoding length of the polar code, and be close to the encoding length of the polar code. Therefore, there is no need to perform complex rate matching (e.g., shortening or puncturing) on the code block, which can reduce the complexity of rate matching and thus simplify the coding overhead of the channel.
[0386] Figure 4 shows a performance comparison of rate matching using the segmentation scheme of this application and existing segmentation schemes at different code rates. The horizontal axis represents the signal-to-noise ratio (SNR), i.e., the ratio of signal power to noise power; the vertical axis represents the block error rate (BLER). In Figure 4, K1 and N1 represent the number of bits to be encoded in each segment obtained by the segmentation scheme of this application and the length of the encoded sequence N1 after encoding; K2 is the number of bits to be encoded in each segment obtained by the existing segmentation scheme, and N2 is the length of the encoded sequence obtained by the existing segmentation scheme; M is the modulation order, and M=2 is quadrature phase shift keying (QPSK) modulation. The two lines correspond to a mother code length N0 of 1024 and a TBS value of 32000. It can be seen that when N2 is less than the mother code length N0, a puncturing rate matching method is required; when N1 is greater than N0, simple repetition is sufficient as the rate matching method, which is simpler than the rate matching method obtained by the existing segmentation method. Furthermore, in the performance comparison graph shown from left to right in Figure 4, the code rates are 0.5, 0.66667, 0.75, and 0.9375, respectively. When the code rate is low, the two lines basically overlap, indicating that the performance loss of rate matching based on the method of this application is small; when the code rate is higher, the performance loss of rate matching based on the method of this application is less than 0.1dB.
[0387] The following section provides a detailed explanation of how to quantize the bit sequence to be encoded or the number of bits G used to transmit the transport block in step S320, based on the specific bit rate range and quantization table.
[0388] Specifically, at least one bit rate interval includes R<0.5, 0.5≤R<2 / 3, 2 / 3≤R<3 / 4, 3 / 4≤R<5 / 6, 5 / 6≤R<15 / 16 and R≥15 / 16, which correspond to Tables 2 to 6 (an example of the first quantization table).
[0389] When R < 0.5,
[0390] When 0.5 ≤ R < 2 / 3, according to Table 2, N info Quantization is performed, for example, selecting from Table 2 items that are not less than N. info and N info The closest value.
[0391] For example, suppose N info If the value is 9450, then the result of the TBS lookup table is TBS=9472 corresponding to index=67 in Table 1.
[0392] When 2 / 3 ≤ R < 3 / 4, refer to Table 3 for N. info Quantization is performed, following rules similar to those for 0.5 ≤ R < 2 / 3. Similarly, when 3 / 4 ≤ R < 5 / 6, N is quantized according to Table 4. info Quantization is performed; when 5 / 6 ≤ R < 15 / 16, N is quantified according to Table 5. info Quantification is performed; when R ≥ 15 / 16, N is quantified according to Table 6. info Quantify it.
[0393] Tables 2 to 6 are shown below, where Index represents the index corresponding to TBS (the value of the first TBS).
[0394] Table 2 (0.5≤R<2 / 3)
[0395] Table 3 (2 / 3 ≤ R < 3 / 4)
[0396] Table 4 (3 / 4 ≤ R < 5 / 6)
[0397] Table 5 (5 / 6 ≤ R < 15 / 16)
[0398] Table 6 (R≥15 / 16)
[0399] The above bitrate interval division is only an example. In actual processing, more or fewer bitrate intervals can be divided according to computational overhead, performance requirements, etc., and the divided bitrate intervals can be mapped to different quantization tables.
[0400] Furthermore, the quantization tables corresponding to the different bitrate intervals described above are merely examples. Depending on the required quantization accuracy, the quantization table for each bitrate interval can also take other forms. For instance, the number of TBS values included in the table can be increased to improve quantization accuracy. Alternatively, the quantization accuracy can be changed by altering the maximum or minimum value of the TBS included in the table. Or, besides the quantization table format described above, at least one candidate TBS can be indicated by a sequence or set; for example, the set or sequence may include the TBS values from the table described above.
[0401] Table 7 is an example of a second quantization table. G1 is obtained by quantizing G according to Table 7. For example, G1 is selected from Table 7; G1 is the number of bits closest to G and not greater than G.
[0402] Table 7
[0403] Table 7 is merely an example. Depending on the required quantization precision, this quantization table can also take other forms. For example, the number of bit values included in the table can be further increased to improve quantization precision. Alternatively, the quantization precision can be changed by altering the maximum or minimum value of the bit number included in the table. Or, besides the quantization table form described above, at least one candidate bit number can be indicated by a sequence or set. For example, the set or sequence may include the values of G1 from the table above.
[0404] The following is the pseudocode for the above solution:
[0405] Figure 5 is a schematic diagram of an encoding method 500 provided in this application. Method 500 can be performed by a transmitting device (e.g., a first communication device). The method may include the following steps.
[0406] S510, the first communication device determines the length of the bit sequence to be encoded.
[0407] This step refers to the description of S310.
[0408] For example, the length of the bit sequence to be encoded is related to the number of encoded bits G used to transmit the TB and the code rate R for transmitting the TB; in other words, the length of the bit sequence to be encoded is determined based on G and R. The specific method for determining the length of the bit sequence to be encoded based on G and R is described in S310.
[0409] S520, the first communication device obtains the number of segments C corresponding to the bit sequence to be encoded.
[0410] This step refers to the description of S320.
[0411] For example, the value of C is related to the number of encoded bits G used to transmit the transport block and the encoding length N0 of the polar code; in other words, the value of C is determined based on G and N0. The specific method for determining the value of C is described in S320.
[0412] S530, the first communication device acquires the first number of bits.
[0413] This first bit number can be used as the quantization value of the number of bits G used to transmit the transport block. This first bit number is the bit number closest to G, and the first bit number is not greater than G.
[0414] Furthermore, the first number of bits and the value of C, along with the encoding length N0 of the polar code, satisfy the second correspondence.
[0415] For example, the second correspondence can be: the difference between the first number of bits and the value #2 is less than or equal to the third threshold, where the value #2 is the product of the value of C and N0. The third threshold can be determined according to the actual required quantization precision. For example, the third threshold can be set as the product of parameter #1 and the value #2, where parameter #1 is greater than 0 and less than 1.
[0416] For example, the second correspondence is correspondence #3: That is, the third threshold is The value of parameter #1 is 1 / 8.
[0417] The second correspondence can also be: the difference between the ratio of the first number of bits to the value of C and N0 is less than or equal to the fourth threshold, where the fourth threshold can be determined according to the actual required quantization precision. For example, the fourth threshold can be set as the product of parameter #2 and N0, where parameter #2 is greater than 0 and less than 1.
[0418] For example, this second correspondence is represented as correspondence #4: That is, the value of the fourth threshold is The value of parameter #2 is 1 / 8.
[0419] It should be understood that the above correspondences #3 and #4 are only examples of the first correspondence. The first correspondence can also be other equivalent forms of correspondences #3 and #4, without limitation.
[0420] For example, G is quantized to obtain G1. The two ways to quantize G to obtain G1 are described in S330.
[0421] S540 determines the output bit sequence based on the first number of bits and the number of segments C.
[0422] Specifically, a first TBS is determined based on the first number of bits G1 and the code rate R; and an output bit sequence is determined based on the first TBS and the number of segments C. The first TBS can be used as a quantized value representing the length of the bit sequence to be encoded. The values of the first TBS and C, the encoding length N0 of the polar code, and the code rate R satisfy a first correspondence, which is described in S330.
[0423] The specific method for determining the first TBS based on G1 and the code rate R is described in S330; the method for determining the output bit sequence based on the first TBS and the number of segments C is described in S340.
[0424] S550 performs polar coding based on the encoding length of the polar code and the output bit sequence.
[0425] For example, polar coding based on the encoding length of the polar code and the output bit sequence may include: dividing the output bit sequence into C bit sequences based on the number of segments C; and polar coding the C bit sequences based on the encoding length of the polar code to obtain C encoded sequences.
[0426] This step is based on the relevant description of S350.
[0427] Based on the above scheme, by setting the value of C to be related to G and N0, and by using the first bit number as the quantization value of the number of bits that can be used to transmit the transport block, the length of the code block corresponding to each bit sequence after segmenting the bit sequence to be encoded based on the value of C is greater than or equal to the encoding length of the polar code, and is close to the encoding length of the polar code. Therefore, there is no need to perform complex rate matching (e.g., shortening or puncturing) on the code block, which can reduce the complexity of rate matching.
[0428] Figure 6 is a schematic diagram of a decoding method 600 provided in this application.
[0429] It is understood that method 600 can be executed by a receiving device (e.g., a second communication device). Unless otherwise specified, "receiving device" can refer to the receiving device itself or a device that enables the receiving device to perform this function. For ease of description, the term "receiving device" will be used consistently below. The receiving device can be a terminal device or a network device. The following description uses the execution of method 600 by a second communication device as an example. The method may include the following steps.
[0430] S610, obtain the bit sequence to be decoded.
[0431] For example, the second communication device receives a bit sequence to be decoded from the first communication device. The bit sequence to be decoded is obtained by the first communication device through polar coding of the output bit sequence, as detailed in the relevant descriptions in Figure 3 or Figure 5.
[0432] S620 decodes the bit sequence to be decoded based on the first TBS and the number of segments C to obtain the output bit sequence.
[0433] Here, the segment number C can be understood as the number of encoded sequences included in the bit sequence to be decoded. The value of C is related to the number of encoded bits G used to transmit the transport block and the encoding length N0 of the polar code, or in other words, the value of C is determined based on G and N0.
[0434] The specific method for determining the value of C is described in S320.
[0435] The first TBS can be the quantized value of the bit sequence to be encoded, wherein the bit sequence to be encoded is determined based on the number of bits G used to transmit the transport block and the code rate R of the transport block. The first TBS is the TBS closest to the length of the bit sequence to be encoded, and the first TBS is not less than the length of the bit sequence to be encoded.
[0436] The first TBS and the method for determining the first TBS can be found in the description in S310.
[0437] For example, decoding the bit sequence to be decoded based on the first TBS and C to obtain the output bit sequence may include: determining the number of encoded sequences included in the bit sequence to be decoded based on the value of C; determining the length of the information bit sequence included in each encoded sequence based on the value of the first TBS and C; and decoding each encoded sequence to obtain the output sequence.
[0438] Optionally, based on the relationship between the code rate R and the code rate threshold, it is determined whether to determine the number of encoded sequences included in the bit sequence to be decoded based on the number of segments C. For example, when the relationship between the code rate R and the code rate threshold meets the requirements, the number of encoded sequences included in the bit sequence to be decoded is determined based on the number of segments C; when the relationship does not meet the requirements, the number of segments C is determined in the existing manner.
[0439] Alternatively, based on the relationship between the first TBS and the bit sequence length threshold, it can be determined whether the number of coded sequences included in the bit sequence to be decoded is determined based on the number of segments C.
[0440] Wherein, the length N of the information bit sequence in each encoded sequence CB The first TBS and C satisfy the following relationship: N CB =TBS' / C,
[0441] Optionally, the method further includes: determining the length of the second bit sequence in the sequence to be decoded based on the values of the first TBS and C. The second bit sequence is a bit sequence obtained by polar coding of the first bit sequence, wherein the first bit sequence is a 0-bit sequence.
[0442] For example, the values of TBS1, the first TBS, and C satisfy the following relationship: TBS1 = TBS' - TBS, where TBS represents the value of the first TBS.
[0443] Optionally, before decoding each encoded sequence, the method further includes determining the length of each of the C encoded sequences. For example, the second communication device can determine the length of each encoded sequence based on indication information from the first communication device. That is, the indication information indicates the length of each encoded sequence.
[0444] In one example, the length of each of the C encoded sequences is N.
[0445] The encoded sequence of length N includes a fourth sequence and a fifth sequence. The length of the fourth sequence is the encoding length N0 of the polar code; the fourth sequence is obtained by polar encoding the information bit sequence in the encoded sequence using N0; the fifth sequence is a repetition of the fourth sequence, and the length of the fifth sequence can be determined based on N and N0, or the length N5 of the fifth sequence can be determined based on G, C and N0.
[0446] For example,
[0447] In this example, decoding each encoded sequence may include: polar decoding the fourth sequence in each encoded sequence using the mother code length N0 to obtain the decoded sequence #1 (an example of the first decoded sequence); and determining the decoded sequence #2 corresponding to the fifth sequence (an example of the second decoded sequence) based on the decoded sequence #1.
[0448] The decoding algorithms corresponding to polarization decoding can be found in existing descriptions, such as successive cancellation decoding (SC) and successive elimination list (SC List, SCL) algorithms.
[0449] In another example, the C encoded sequences include J encoded sequences of length equal to the length of the polar code, and K encoded sequences of length N1. Here, J and K are positive integers less than C.
[0450] In this example, for each of the J encoded sequences of length J, which is the length of the polar code, polar decoding can be performed using the mother code length N0 to obtain the decoded sequence #3 (an example of the third decoded sequence).
[0451] Each of the K encoded sequences includes a fourth sequence and a sixth sequence. The fourth sequence can be found in the previous example; the sixth sequence is a repetition of the first sequence.
[0452] For example, the length of the sixth sequence can be determined based on N1 and N0, or the length N6 of the sixth sequence can be determined based on the values of J or K, G, C, and N0. For example
[0453] In this example, decoding each of the K encoded sequences may include: polar decoding the fourth sequence in each encoded sequence using the mother code length N0 to obtain the decoded sequence #4 (an example of the fourth decoded sequence); and determining the decoded sequence #5 (an example of the fifth decoded sequence) corresponding to the third sequence based on the decoded sequence #1.
[0454] Optionally, in this example, the position of the encoding sequence can be determined based on the priority of the encoding sequence. For example, the K encoded bits are located before the J encoded sequences, that is, the K encoded sequences are higher priority encoded bits; or, for another example, the K1 bit sequence of the K encoded bits is located before the J encoded sequences, where K1 is a positive integer less than or equal to K.
[0455] It can be understood that the above output sequence includes the decoded sequence obtained by decoding each encoded sequence.
[0456] Figure 7 is a schematic diagram of a decoding method 700 provided in this application. Method 700 can be executed by a receiving device (e.g., a second communication device), and the method can include the following steps.
[0457] S710, the second communication device acquires the bit sequence to be decoded.
[0458] For example, the second communication device receives a bit sequence to be decoded from the first communication device. The bit sequence to be decoded is obtained by the first communication device through polar coding of the output bit sequence, as detailed in the relevant descriptions in Figure 3 or Figure 5.
[0459] S720, the second communication device decodes the bit sequence to be decoded based on the first number of bits and the number of segments C to obtain the output bit sequence.
[0460] The number of segments C can be found in the description in S620.
[0461] The first bit number G1 is the bit number closest to G, and G1 is not greater than G. For details on G1 and how G1 is determined, please refer to the description in S530.
[0462] For example, decoding the bit sequence to be decoded based on G1 and the number of segments C may include: determining a first TBS based on G1; and decoding the bit sequence to be decoded based on the first TBS and the number of segments C.
[0463] The specific method for determining the first TBS based on G1 and the code rate R is described in S330; the specific process for decoding the bit sequence to be decoded based on the first TBS and the number of segments C is described in S620.
[0464] It is understood that the steps in the above figures are merely illustrative and are not intended to be strictly limited. Furthermore, the sequence numbers of the processes described above do not imply a specific order of execution; the execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application.
[0465] It is also understood that some optional features in the various embodiments of this application may not depend on other features in some scenarios, or may be combined with other features in some scenarios, without limitation.
[0466] It is also understood that the methods and operations implemented by the transmitting end device (first communication device) or the receiving end device (second communication device) in the above-described method embodiments can also be implemented by components of the device (e.g., chips or circuits), without limitation.
[0467] The method embodiments provided in this application have been described in detail above with reference to Figures 1 to 7. The apparatus embodiments of this application are described below with reference to Figures 8 and 9. It is understood that, in order to implement the functions in the above embodiments, the apparatuses in Figures 8 and 9 include hardware structures and / or software modules corresponding to the execution of each function. Those skilled in the art should readily recognize that, based on the units and method steps of the various examples described in conjunction with the embodiments disclosed in this application, this application can be implemented in hardware or a combination of hardware and computer software. It is understood that the technical features described in the above method embodiments are also applicable to the following apparatus embodiments.
[0468] Figures 8 and 9 are schematic diagrams of possible apparatus structures provided in embodiments of this application. These apparatuses can be used to implement the functions of the transmitting or receiving devices in the above method embodiments, and thus can also achieve the beneficial effects of the above method embodiments.
[0469] Figure 8 is a schematic block diagram of a communication device 1000 provided in an embodiment of this application. As shown in Figure 8, the device 1000 may include a communication unit 1010 and a processing unit 1020. The communication unit 1010 can communicate with the outside world, and the processing unit 1020 is used for data processing. The communication unit 1010 may also be referred to as a communication interface or a transceiver unit.
[0470] In one possible design, the device 1000 can implement the steps or processes corresponding to those executed by the transmitting device (first communication device) in the above method embodiments, wherein the processing unit 1020 is used to execute processing-related operations of the transmitting device in the above method embodiments, and the communication unit 1010 is used to execute transmission-related operations of the transmitting device in the above method embodiments.
[0471] In another possible design, the device 1000 can implement the steps or processes corresponding to those performed by the receiving device (second communication device) in the above method embodiments, wherein the communication unit 1010 is used to perform the receiving-related operations of the receiving device in the above method embodiments, and the processing unit 1020 is used to perform the processing-related operations of the receiving device in the above method embodiments.
[0472] It is understood that the device 1000 here is embodied in the form of a functional unit. The term "unit" here can refer to an application-specific integrated circuit (ASIC), electronic circuitry, a processor (e.g., a shared processor, a proprietary processor, or a group processor, etc.) and memory for executing one or more software or firmware programs, integrated logic circuitry, and / or other suitable components supporting the described functions. In an alternative example, those skilled in the art will understand that the device 1000 may specifically be the transmitting end device in the above embodiments, used to execute the various processes and / or steps corresponding to the transmitting end device in the above method embodiments; or, the device 1000 may specifically be the receiving end device in the above embodiments, used to execute the various processes and / or steps corresponding to the receiving end device in the above method embodiments. To avoid repetition, further details are omitted here.
[0473] The apparatus 1000 of each of the above-described schemes has the function of implementing the corresponding steps performed by the transmitting device in the above-described method, or the apparatus 1000 of each of the above-described schemes has the function of implementing the corresponding steps performed by the receiving device in the above-described method. The function can be implemented by hardware or by hardware executing corresponding software. The hardware or software includes one or more modules corresponding to the above functions; for example, the communication unit can be replaced by a transceiver (e.g., the transmitting unit in the communication unit can be replaced by a transmitter, and the receiving unit in the communication unit can be replaced by a receiver), and other units, such as processing units, can be replaced by a processor, respectively executing the transmission and reception operations and related processing operations in each method embodiment.
[0474] Furthermore, the aforementioned communication unit can also be a transceiver circuit (e.g., it may include a receiving circuit and a transmitting circuit), and the processing unit can be a processing circuit. In the embodiments of this application, the device in FIG8 can be the receiving end device or transmitting end device in the foregoing embodiments, or it can be a chip or a chip system, such as a system on chip (SoC). The communication unit can be an input / output circuit or a communication interface; the processing unit is a processor, microprocessor, or integrated circuit integrated on the chip. No limitation is made here.
[0475] Figure 9 is a schematic block diagram of a communication device 1100 provided in an embodiment of this application. The device 1100 includes a processor 1110 and a transceiver 1120. The processor 1110 and the transceiver 1120 communicate with each other through an internal connection path. The processor 1110 is used to execute instructions to control the transceiver 1120 to send and / or receive signals.
[0476] Optionally, the device 1100 may further include a memory 1130, which communicates with the processor 1110 and the transceiver 1120 via an internal connection. The memory 1130 stores instructions, and the processor 1110 can execute the instructions stored in the memory 1130. In one possible implementation, the device 1100 is used to implement the various processes and steps corresponding to the transmitting end device (first communication device) in the above method embodiments. In another possible implementation, the device 1100 is used to implement the various processes and steps corresponding to the receiving end device (second communication device) in the above method embodiments.
[0477] Optionally, the memory 1130 may be integrated into the processor 1110.
[0478] In one possible scenario, device 1100 includes at least one processor with integrated memory, and other memory besides the memory integrated on the processor.
[0479] It is understood that the device 1100 can specifically be the transmitting or receiving device in the above embodiments, or it can be a chip or a chip system. Correspondingly, the transceiver 1120 can be the transceiver circuit of the chip, which is not limited here. Specifically, the device 1100 can be used to execute the various steps and / or processes corresponding to the transmitting or receiving device in the above method embodiments.
[0480] Optionally, the memory 1130 may include read-only memory and random access memory, and provide instructions and data to the processor. The memory may include non-volatile random access memory. For example, the memory may also store device type information. The processor 1110 may be used to execute instructions stored in the memory, and when the processor 1110 executes instructions stored in the memory, the processor 1110 is used to perform the various steps and / or processes of the method embodiments corresponding to the transmitting or receiving devices described above.
[0481] In implementation, each step of the above method can be completed by integrated logic circuits in the processor's hardware or by instructions in software. The steps of the method in conjunction with the embodiments of this application can be directly manifested as execution by the hardware processor, or as a combination of hardware and software modules in 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, and the processor reads information from the memory and, in conjunction with its hardware, completes the steps of the above method. To avoid repetition, detailed descriptions are omitted here.
[0482] It should be noted that the processor in the embodiments of this application can be an integrated circuit chip with signal processing capabilities. During implementation, each step of the above method embodiments can be completed by the integrated logic circuitry in the processor's hardware or by instructions in software form. The processor can be a general-purpose processor, digital signal processing (DSP), ASIC, field-programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. The processor in the embodiments of this application can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of this application. The general-purpose processor can be a microprocessor or any conventional processor. The steps of the methods disclosed in the embodiments of this application can be directly embodied as being executed by a hardware decoding processor, or executed by a combination of hardware and software modules in the decoding processor. The software modules can be located 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, and the processor reads the information in the memory and, in conjunction with its hardware, completes the steps of the above methods.
[0483] It is understood that the memory in the embodiments of this application can be volatile memory or non-volatile memory, or may 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 random access memory (RAM), which is used 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). It should be noted that the memory used in the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.
[0484] Optionally, the memory (e.g., 1130) in this embodiment may be integrated into the processor (e.g., 1110).
[0485] In addition, this application also provides a computer-readable storage medium storing computer instructions, which, when executed on a computer, cause the operations and / or processes performed by the sending end device (first communication device) or the receiving end device (second communication device) in the various method embodiments of this application to be executed.
[0486] 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 sending end device (first communication device) or the receiving end device (second communication device) in the various method embodiments of this application are executed.
[0487] 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 operations and / or processes performed by a transmitting device (first communication device) or a receiving device (second communication device) in any method embodiment are performed.
[0488] Furthermore, the chip may also include a communication interface. The communication interface may be an input / output interface or an interface circuit, etc. Furthermore, the chip may also include a memory.
[0489] In addition, this application also provides a communication system, including the transmitting end device and the receiving end device in the embodiments of this application.
[0490] It should also be noted that the memory described herein is intended to include, but is not limited to, these and any other suitable types of memory.
[0491] 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. Those skilled in the art will clearly 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. In the several embodiments provided in this application, it should be understood that the disclosed systems, devices, and methods can be implemented in other ways. For example, the device embodiments described above are merely illustrative; for example, the division of units is merely 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 displayed or discussed mutual coupling or direct coupling or communication connection may be through some interfaces; the indirect coupling or communication connection of devices or units may be electrical, mechanical, or other forms. 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. Furthermore, the functional units in the various embodiments of this application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
[0492] 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.
Claims
1. An encoding method, characterized in that, include: Determine the length of the bit sequence to be encoded; Obtain the number of segments C corresponding to the bit sequence to be encoded. The value of C is related to the number of encoded bits used to transmit the transport block and the encoding length of the polar code. The transport block corresponds to the bit sequence to be encoded, and the encoding length of the polar code is an integer power of 2. Obtain the first transport block size (TBS), where the first TBS is the TBS closest to the length of the bit sequence to be encoded, and the first TBS is not less than the length of the bit sequence to be encoded. The output bit sequence is determined based on the first TBS and the number of segments C; Polar coding is performed based on the encoding length of the polar code and the output bit sequence.
2. The method according to claim 1, characterized in that, The value of C satisfies the following relationship with the number of coded bits G used to transmit the transport block and the coding length N0 of the polar code: in, This indicates rounding down to the nearest integer.
3. The method according to claim 1 or 2, characterized in that, The difference between the ratio of the first TBS to the code rate of the transmitted block and a first value is less than or equal to a first threshold, where the first value is the product of the value of C and the coding length of the polar code.
4. The method according to claim 1 or 2, characterized in that, The difference between the ratio of the first TBS to the second value and the coding length of the polar code is less than or equal to a second threshold, where the second value is the product of the value of C and the code rate of transmitting the transport block.
5. The method according to any one of claims 1 to 4, characterized in that, Determining the length of the bit sequence to be encoded includes: The length of the bit sequence to be encoded is determined based on the number of encoded bits used to transmit the transport block and the code rate for transmitting the transport block.
6. The method according to any one of claims 1 to 5, characterized in that, The process of obtaining the first transport block size (TBS) includes: Based on the bit rate of transmitting the transport block, a first quantization table is selected from the candidate quantization table. The first quantization table corresponds to the bit rate range to which the bit rate belongs. The first quantization table indicates multiple candidate TBSs. The first TBS is selected from the plurality of candidate TBSs.
7. The method according to any one of claims 1 to 5, characterized in that, The process of obtaining the first transport block size (TBS) includes: The length of the first coded bit sequence is determined based on the value of C, the encoding length of the polar code, the code rate of transmitting the transport block, and the first parameter, wherein the first parameter is greater than 0 and less than 1. The first TBS is determined based on the length of the first encoded bit sequence.
8. The method according to claim 7, characterized in that, The length N1 of the first encoded bit sequence, the value of C, the encoding length N0 of the polar code, the code rate R, and the first parameter α1 satisfy the following relationship: N1=(1+α1)C·N0·R; Determining the first TBS based on the length of the first coded bit sequence includes: The first TBS is obtained by rounding down the length N1 of the first encoded bit sequence.
9. The method according to any one of claims 1 to 5, characterized in that, The process of obtaining the first transport block size (TBS) includes: Obtain a first number of bits G1, wherein G1 is the number of bits closest to the number of coded bits used to transmit the transport block, and G1 is not greater than the number of coded bits used to transmit the transport block; The first TBS is determined based on G1 and the code rate of the transport block.
10. The method according to claim 9, characterized in that, The process of obtaining the first number of bits G1 includes: The G1 is obtained according to a second quantization table, which indicates the number of bits for multiple candidates; G1 is selected from the plurality of candidate bit numbers.
11. The method according to claim 9, characterized in that, The process of obtaining the first number of bits G1 includes: Based on the value of C, the encoding length N0 of the polar code and the second parameter α2 determine G1. The value of C, N0, and α2 satisfy the following relationship: G1∈[C·N0, (1+α2)C·N0]; The second parameter is greater than 0 and less than 1.
12. The method according to any one of claims 9 to 11, characterized in that, Determining the first TBS based on G1 and the code rate of the transport block includes: The first TBS is obtained by rounding down the product of G1 and the bit rate.
13. The method according to any one of claims 1 to 12, characterized in that, The first TBS is divisible by a first length, which is the length of a byte or an integer multiple of the length of a byte.
14. The method according to claim 13, characterized in that, The first TBS is obtained by quantizing the bit sequence to be encoded, the quantization process including: Where, N′ inf o N represents the first TBS. inf o N represents the length of the bit sequence to be encoded. inf omin The minimum value of the first TBS is preset. max() is the function to find the maximum value. Indicates rounding down 。 15. The method according to any one of claims 1 to 14, characterized in that, The step of determining the output bit sequence based on the first TBS and the number of segments C corresponding to the bit sequence to be encoded includes: The first bit sequence in the output bit sequence is determined based on the values of the first TBS and the value of C. The bits in the first bit sequence are set to 0. The length of the first bit sequence, TBS1, satisfies the following relationship with the values of the first TBS and the value of C: Wherein, TBS represents the first TBS. This indicates rounding up to the nearest integer.
16. The method according to any one of claims 1 to 15, characterized in that, The polar coding based on the encoding length of the polar code and the output bit sequence includes: The output bit sequence is divided into C bit sequences based on the number of segments C; The C bit sequences are polar-coded based on the encoding length of the polar code.
17. The method according to claim 16, characterized in that, The polar coding of the C bit sequence based on the encoding length of the polar code includes: The C bit sequences are encoded into C encoded sequences of length N. Each of the C encoded sequences of length N includes a first sequence and a third sequence. The first sequence is obtained by polar encoding using the encoding length of the polar code, and the third sequence is a repetition of the first sequence.
18. The method according to claim 16, characterized in that, The polar coding of the C bit sequence based on the encoding length of the polar code includes: Encode J bits from the C bit sequences into J encoded sequences of length equal to the encoding length of the polar code; K bits from the C bit sequences are encoded into K encoded sequences of length N1. Each of the K encoded sequences of length N1 includes a first sequence and a third sequence. The first sequence is obtained by polar encoding using the encoding length of the polar code. The third sequence is a repetition of the first sequence. The K bit sequences are the bit sequences other than the J bit sequences from the C bit sequences.
19. The method according to claim 18, characterized in that, The K bit sequences are located before the J bit sequences, or, K1 bit sequences from the K bit sequences are located before the J bit sequences, where K1 is an integer less than K.
20. The method according to any one of claims 16 to 19, characterized in that, The step of dividing the output bit sequence into C equal bit sequences based on the number of segments C includes: Based on the relationship between the code rate of the transmitted block and the code rate threshold, the output bit sequence is divided into C bit sequences based on C.
21. An encoding method, characterized in that, include: Determine the length of the bit sequence to be encoded; Obtain the number of segments C corresponding to the bit sequence to be encoded. The value of C is related to the number of encoded bits used to transmit the transport block and the encoding length of the polar code. The transport block corresponds to the bit sequence to be encoded, and the encoding length of the polar code is an integer power of 2. Obtain a first number of bits, which is the number of bits closest to the number of encoded bits used to transmit the transport block, and the first number of bits is not greater than the number of encoded bits used to transmit the transport block; The output bit sequence is determined based on the first number of bits and the number of segments C; Polar coding is performed based on the encoding length of the polar code and the output bit sequence.
22. The method according to claim 21, characterized in that, The value of C satisfies the following relationship with the number of coded bits G used to transmit the transport block and the coding length N0 of the polar code: in, This indicates rounding down to the nearest integer.
23. The method according to claim 21 or 22, characterized in that, The difference between the first number of bits and the first value is less than or equal to the third threshold, and the first value is the product of the value of C and the encoding length of the polar code.
24. The method according to claim 21 or 22, characterized in that, The difference between the ratio of the first number of bits to the value of C and the encoding length of the polar code is less than or equal to the fourth threshold.
25. The method according to any one of claims 21 to 24, characterized in that, Determining the length of the bit sequence to be encoded includes: The length of the bit sequence to be encoded is determined based on the number of encoded bits used to transmit the transport block and the code rate for transmitting the transport block.
26. The method according to any one of claims 21 to 25, characterized in that, The process of obtaining the first number of bits includes: The first bit count is obtained according to a second quantization table, wherein the second quantization table indicates multiple candidate bit counts; The first number of bits is selected from the plurality of candidate number of bits.
27. The method according to any one of claims 21 to 25, characterized in that, The process of obtaining the first number of bits includes: Based on the value of C, the encoding length N0 of the polar code and the second parameter α2 determine the first number of bits G1. The value of C, N0, and α2 satisfy the following relationship: G1∈[C·N0, (1+α2)C·N0]; The second parameter is greater than 0 and less than 1.
28. The method according to any one of claims 21 to 27, characterized in that, Determining the output bit sequence based on the first number of bits and the number of segments C includes: The first TBS is determined based on the first number of bits and the code rate of transmitting the transport block; The output bit sequence is determined based on the first TBS and the number of segments C.
29. The method according to claim 28, characterized in that, Determining the first TBS based on the first number of bits and the code rate of transmitting the transport block includes: The first TBS is obtained by rounding down the product of the first number of bits and the code rate.
30. The method according to claim 28 or 29, characterized in that, The difference between the ratio of the first TBS to the code rate of the transmitted block and a first value is less than or equal to a first threshold, where the first value is the product of the value of C and the coding length of the polar code.
31. The method according to claim 28 or 29, characterized in that, The difference between the ratio of the first TBS to the second value and the coding length of the polar code is less than or equal to a second threshold, where the second value is the product of the value of C and the code rate of transmitting the transport block.
32. The method according to any one of claims 28 to 31, characterized in that, The first TBS is an integer multiple of the first length, which is the length of bytes, or the first length is an integer multiple of the byte length.
33. The method according to claim 32, characterized in that, The first TBS is obtained by quantizing the bit sequence to be encoded, the quantization process including: Where, N′ inf o N represents the first TBS. inf o N represents the length of the bit sequence to be encoded. inf omin The minimum value of the first TBS is preset. max() is the function to find the maximum value. This indicates rounding down to the nearest integer.
34. The method according to any one of claims 28 to 33, characterized in that, The step of determining the output bit sequence based on the first TBS and the number of segments C corresponding to the bit sequence to be encoded includes: The first bit sequence in the output bit sequence is determined based on the values of the first TBS and the value of C. The bits in the first bit sequence are set to 0. The length of the first bit sequence, TBS1, satisfies the following relationship with the values of the first TBS and the value of C: Wherein, TBS represents the first TBS. This indicates rounding up to the nearest integer.
35. The method according to any one of claims 21 to 34, characterized in that, The polar coding based on the encoding length of the polar code and the output bit sequence includes: The output bit sequence is divided into C bit sequences; The C bit sequences are polar-coded based on the encoding length of the polar code.
36. The method according to claim 35, characterized in that, The polar coding of the C bit sequence based on the encoding length of the polar code includes: The C bit sequences are encoded into C encoded sequences of length N. Each of the C encoded sequences of length N includes a first sequence and a second sequence. The first sequence is obtained by polar encoding using the encoding length of the polar code, and the second sequence is a repetition of the first sequence.
37. The method according to claim 35, characterized in that, The polar coding of the C bit sequence based on the encoding length of the polar code includes: Encode J bits from the C bit sequences into J encoded sequences of length equal to the encoding length of the polar code; K bits from the C bit sequences are encoded into K encoded sequences of length N1. Each of the K encoded sequences of length N1 includes a first sequence and a third sequence. The first sequence is obtained by polar encoding using the encoding length of the polar code. The third sequence is a repetition of the first sequence. The K bit sequences are the bit sequences other than the J bit sequences from the C bit sequences.
38. The method according to claim 37, characterized in that, The K bit sequences are located before the J bit sequences, or, K1 bit sequences from the K bit sequences are located before the J bit sequences, where K1 is an integer less than K.
39. The method according to any one of claims 35 to 38, characterized in that, The step of dividing the output bit sequence into C bit sequences includes: Based on the relationship between the code rate of the transmitted block and the threshold, the output bit sequence is determined to be divided into C bit sequences.
40. A decoding method, characterized in that, include: Obtain the bit sequence to be decoded; The output bit sequence is obtained by decoding the bit sequence to be decoded based on the first transport block size TBS and the number of segments C. Wherein, the first TBS is the TBS closest to the length of the bit sequence to be encoded, the first TBS is not less than the length of the bit sequence to be encoded, the value of C is related to the number of encoded bits used to transmit the transport block and the encoding length of the polar code, the transport block corresponds to the bit sequence to be encoded, and the encoding length of the polar code is an integer power of 2.
41. The method according to claim 40, characterized in that, The value of C satisfies the following relationship with the number of coded bits G used to transmit the transport block and the coding length N0 of the polar code: in, This indicates rounding down to the nearest integer.
42. The method according to claim 40 or 41, characterized in that, The difference between the ratio of the first TBS to the code rate of the transmitted block and a first value is less than or equal to a first threshold, where the first value is the product of the value of C and the coding length of the polar code.
43. The method according to claim 40 or 41, characterized in that, The difference between the ratio of the first TBS to the second value and the coding length of the polar code is less than or equal to a second threshold, where the second value is the product of the value of C and the code rate of transmitting the transport block.
44. The method according to any one of claims 40 to 43, characterized in that, The length of the bit sequence to be encoded is determined based on the number of encoded bits used to transmit the transport block and the code rate for transmitting the transport block.
45. The method according to any one of claims 40 to 44, characterized in that, The method further includes: Obtain the first TBS.
46. The method according to claim 45, characterized in that, The acquisition of the first TBS includes: Based on the bit rate of transmitting the transport block, a first quantization table is selected from the candidate quantization table. The first quantization table corresponds to the bit rate range to which the bit rate belongs. The first quantization table indicates multiple candidate TBSs. The first TBS is selected from the plurality of candidate TBSs.
47. The method according to claim 45, characterized in that, The acquisition of the first TBS includes: The length of the first coded bit sequence is determined based on the value of C, the encoding length of the polar code, the code rate of transmitting the transport block, and the first parameter, wherein the first parameter is greater than 0 and less than 1. The first TBS is determined based on the length of the first encoded bit sequence.
48. The method according to claim 47, characterized in that, The length N1 of the first encoded bit sequence, the value of C, the encoding length N0 of the polar code, the code rate R, and the first parameter α1 satisfy the following relationship: N1=(1+α1)C·N0·R; Determining the first TBS based on the length of the first coded bit sequence includes: The first TBS is obtained by rounding down the length N1 of the first encoded bit sequence.
49. The method according to claim 45, characterized in that, The acquisition of the first TBS includes: Obtain a first number of bits G1, wherein G1 is the number of bits closest to the number of coded bits used to transmit the transport block, and G1 is not greater than the number of coded bits used to transmit the transport block; The first TBS is determined based on G1 and the code rate of the transport block.
50. The method according to claim 49, characterized in that, The process of obtaining the first number of bits G1 includes: The G1 is obtained according to a second quantization table, which indicates the number of bits for multiple candidates; G1 is selected from the plurality of candidate bit numbers.
51. The method according to claim 49, characterized in that, The process of obtaining the first number of bits G1 includes: Based on the value of C, the encoding length N0 of the polar code and the second parameter α2 determine G1. The value of C, N0, and α2 satisfy the following relationship: G1∈[C·N0, (1+α2)C·N0]; The second parameter is greater than 0 and less than 1.
52. The method according to any one of claims 49 to 51, characterized in that, Determining the first TBS based on G1 and the code rate of the transport block includes: The first TBS is obtained by rounding down the product of G1 and the bit rate.
53. The method according to any one of claims 40 to 52, characterized in that, The first TBS is an integer multiple of the first length, which is the length of bytes, or the first length is an integer multiple of the byte length.
54. The method according to claim 53, characterized in that, The first TBS is obtained by quantizing the bit sequence to be encoded, the quantization process including: Where, N′ inf o N represents the first TBS. inf o N represents the length of the bit sequence to be encoded. inf omin The minimum value of the first TBS is preset. max() is the function to find the maximum value. This indicates rounding down to the nearest integer.
55. The method according to any one of claims 40 to 54, characterized in that, The method further includes: The second bit sequence in the bit sequence to be decoded is determined based on the values of the first TBS and the value of C. The second bit sequence is obtained by encoding the first bit sequence, with the bits in the first bit sequence set to 0. The length TBS1 of the first bit sequence satisfies the following relationship with the values of the first TBS and the value of C: Wherein, TBS represents the first TBS. This indicates rounding up to the nearest integer.
56. The method according to any one of claims 40 to 55, characterized in that, The decoding of the bit sequence to be decoded based on the first transport block size (TBS) and the number of segments (C) to obtain the output bit sequence includes: The bit sequence to be decoded is determined to include C encoded sequences; The length of the information bit sequence in each of the C encoded sequences is determined based on the values of the first TBS and C. The output bit sequence is obtained by decoding each encoded sequence.
57. The method according to claim 56, characterized in that, The C encoded sequences are C encoded sequences of length N, and the decoding of each encoded sequence to obtain the output bit sequence includes: Based on the encoding length of the polar code, the fourth sequence in each encoding sequence is decoded to obtain the first decoded sequence. The fourth sequence is obtained by polar encoding the information bit sequence in each encoding sequence using the encoding length of the polar code. The fifth sequence in each of the encoded sequences is decoded to obtain a second decoded sequence. The length of the fifth sequence is determined according to the value of N and the encoding length of the polar code. The fifth sequence is a repetition of the fourth sequence. The output sequence includes the first decoded sequence and the second decoded sequence.
58. The method according to claim 56, characterized in that, The C encoded sequences include J encoded sequences of length equal to the encoded length of the polar code, and K encoded sequences of length N1. Decoding each encoded sequence to obtain the output bit sequence includes: Polar decoding is performed on each of the J encoded sequences based on the encoding length of the polar code to obtain the third decoded sequence; Based on the encoding length of the polar code, the fourth sequence in each of the K encoded sequences is decoded to obtain the fourth decoded sequence. The fourth sequence is obtained by polar encoding the information bit sequence in each encoded sequence using the encoding length of the polar code. The sixth sequence in each of the K encoded sequences is decoded to obtain the fifth decoded sequence. The length of the sixth sequence is determined according to the value of N1 and the encoding length of the polar code. The sixth sequence is a repetition of the fourth sequence. The output sequence includes the third decoded sequence, the fourth decoded sequence, and the fifth decoded sequence.
59. The method according to claim 58, characterized in that, The K encoded sequences are located before the J encoded sequences, or, K1 of the K encoded sequences are located before the J encoded sequences, where K1 is an integer less than K.
60. The method according to any one of claims 40 to 59, characterized in that, The decoding of the bit sequence to be decoded based on the first transport block size (TBS) and the number of segments (C) to obtain the output bit sequence includes: Based on the relationship between the code rate of the transmitted transport block and the code rate threshold, the output bit sequence is obtained by decoding the bit sequence to be decoded based on the first TBS and the number of segments C.
61. A decoding method, characterized in that, include: Obtain the bit sequence to be decoded; The output bit sequence is obtained by decoding the bit sequence to be decoded based on the first number of bits and the number of segments C. Wherein, the first number of bits is the number of bits closest to the number of coded bits used to transmit the transport block, the first number of bits is not greater than the number of coded bits used to transmit the transport block, the value of C is related to the number of coded bits used to transmit the transport block and the encoding length of the polar code, and the encoding length of the polar code is an integer power of 2.
62. The method according to claim 61, characterized in that, The value of C satisfies the following relationship with the number of coded bits G used to transmit the transport block and the coding length N0 of the polar code: in, This indicates rounding down to the nearest integer.
63. The method according to claim 61 or 62, characterized in that, The difference between the first number of bits and the first value is less than or equal to the third threshold, and the first value is the product of the value of C and the encoding length of the polar code.
64. The method according to claim 61 or 62, characterized in that, The difference between the ratio of the first number of bits to the value of C and the encoding length of the polar code is less than or equal to the fourth threshold.
65. The method according to any one of claims 61 to 64, characterized in that, The method further includes: Obtain the first number of bits.
66. The method according to claim 65, characterized in that, The process of obtaining the first number of bits includes: The first bit count is obtained according to a second quantization table, wherein the second quantization table indicates multiple candidate bit counts; The first number of bits is selected from the plurality of candidate number of bits.
67. The method according to claim 65, characterized in that, The process of obtaining the first number of bits includes: Based on the value of C, the encoding length N0 of the polar code and the second parameter α2 determine the first number of bits G1. The value of C, N0, and α2 satisfy the following relationship: G1∈[C·N0, (1+α2)C·N0]; The second parameter is greater than 0 and less than 1.
68. The method according to any one of claims 61 to 67, characterized in that, The decoding of the bit sequence to be decoded based on the first number of bits and the number of segments C to obtain the output bit sequence includes: The first TBS is determined based on the first number of bits and the code rate of transmitting the transport block; The output bit sequence is obtained by decoding the bit sequence to be decoded based on the first TBS and the number of segments C.
69. The method according to claim 68, characterized in that, Determining the first TBS based on the first number of bits and the code rate of transmitting the transport block includes: The first TBS is obtained by rounding down the product of the first number of bits and the code rate.
70. The method according to claim 68 or 69, characterized in that, The difference between the ratio of the first TBS to the code rate of the transmitted block and a first value is less than or equal to a first threshold, where the first value is the product of the value of C and the coding length of the polar code.
71. The method according to claim 68 or 69, characterized in that, The difference between the ratio of the first TBS to the second value and the coding length of the polar code is less than or equal to a second threshold, where the second value is the product of the value of C and the code rate of transmitting the transport block.
72. The method according to any one of claims 68 to 71, characterized in that, The first TBS is an integer multiple of the first length, which is the length of bytes, or the first length is an integer multiple of the byte length.
73. The method according to claim 72, characterized in that, The first TBS is obtained by quantizing the bit sequence to be encoded, the quantization process including: Where, N′ inf o N represents the first TBS. inf o N represents the length of the bit sequence to be encoded. inf omin The minimum value of the first TBS is preset. max() is the function to find the maximum value. This indicates rounding down to the nearest integer.
74. The method according to any one of claims 68 to 73, characterized in that, The method further includes: The second bit sequence in the bit sequence to be decoded is determined based on the values of the first TBS and the value of C. The second bit sequence is obtained by encoding the first bit sequence, with the bits in the first bit sequence set to 0. The length TBS1 of the first bit sequence satisfies the following relationship with the values of the first TBS and the value of C: Wherein, TBS represents the first TBS. This indicates rounding up to the nearest integer.
75. The method according to claim 74, characterized in that, The bit sequence to be decoded includes the C encoded sequences, and the decoding of the bit sequence to be decoded to obtain the output bit sequence includes: The bit sequence to be decoded is determined to include C encoded sequences; The length of the information bit sequence in each of the C encoded sequences is determined based on the values of the first TBS and C. The output bit sequence is obtained by decoding each encoded sequence.
76. The method according to claim 75, characterized in that, The C encoded sequences are C encoded sequences of length N, and the decoding of each encoded sequence to obtain the output bit sequence includes: Based on the encoding length of the polar code, the fourth sequence in each encoding sequence is decoded to obtain the first decoded sequence. The fourth sequence is obtained by polar encoding the information bit sequence in each encoding sequence using the encoding length of the polar code. The fifth sequence in each of the encoded sequences is decoded to obtain a second decoded sequence. The length of the fifth sequence is determined according to the value of N and the encoding length of the polar code. The fifth sequence is a repetition of the fourth sequence. The output sequence includes the first decoded sequence and the second decoded sequence.
77. The method according to claim 75, characterized in that, The C encoded sequences include J encoded sequences of length equal to the encoded length of the polar code, and K encoded sequences of length N1. Decoding each encoded sequence to obtain the output bit sequence includes: Polar decoding is performed on each of the J encoded sequences based on the encoding length of the polar code to obtain the third decoded sequence; Based on the encoding length of the polar code, the fourth sequence in each of the K encoded sequences is decoded to obtain the fourth decoded sequence. The fourth sequence is obtained by polar encoding the information bit sequence in each encoded sequence using the encoding length of the polar code. The sixth sequence in each of the K encoded sequences is decoded to obtain the fifth decoded sequence. The length of the sixth sequence is determined according to the value of N1 and the encoding length of the polar code. The sixth sequence is a repetition of the fourth sequence. The output sequence includes the third decoded sequence, the fourth decoded sequence, and the fifth decoded sequence.
78. The method according to claim 77, characterized in that, The K encoded sequences are located before the J encoded sequences, or, K1 of the K encoded sequences are located before the J encoded sequences, where K1 is an integer less than K.
79. The method according to any one of claims 61 to 78, characterized in that, The method involves decoding the bit sequence to be decoded based on the first number of bits and the number of segments C corresponding to the bit sequence to be encoded, to obtain the output bit sequence, including: Based on the relationship between the code rate of the transmitted block and the code rate threshold, the output bit sequence is obtained by decoding the bit sequence to be decoded based on the first number of bits and the number of segments C.
80. A communication device, characterized in that, It includes one or more processors, said one or more processors being configured to execute a computer program or instructions stored in a memory, such that the method as claimed in any one of claims 1 to 79 is performed.
81. A chip or chip system, characterized in that, The device includes a processor coupled to a memory for storing a computer program, and the processor for executing the computer program stored in the memory to implement the method as described in any one of claims 1 to 79.
82. A computer-readable storage medium, characterized in that, The storage medium stores a computer program or instructions that, when executed by a communication device, cause the method as described in any one of claims 1 to 79 to be performed.
83. A computer program product, characterized in that, Includes a computer program that, when run, causes the method as described in any one of claims 1 to 79 to be performed.
Citation Information
Patent Citations
Encoding method and device of Polar code
CN107800510A
Polar coding method and coding device, and Polar decoding method and decoding device
CN108365921A
Polar coding method and coding device, and decoding method and decoding device
CN108631930A
Method and device for decoding polar code
CN111699643A
Polar code segment coding method and communication equipment
CN112583522A