This application relates to the field of electronic technologies, and in particular, to a polar code segment encoding method and a communication device.
For a communication system that is very sensitive to a delay, after receiving data, a receive end device needs to complete processing of the data in a very short time and reply with an acknowledgment character ACK (Acknowledgment). For example, in a Bluetooth system, an interval between a time point at which a mobile phone completes sending data and a time point at which the mobile phone receives an ACK of a primary headset is 189 μs, and after the primary headset and a secondary headset receive all information sent by the mobile phone, there is a 15 μs time margin for decoding and data reporting. For a system that requires low power consumption, for example, a Bluetooth system, power of information reporting is usually limited. Consequently, a reporting rate of information bits is further limited. Currently, the Bluetooth system usually uses an encoding manner in which no channel code or convolutional code is used. When there is no code, a receive end may report received data while making a judgment, to meet a limit of completing decoding and data reporting in 15 μs. However, performance of the Bluetooth system is poor. When convolutional code is used, because a decoding algorithm of the convolutional code is a Viterbi decoding algorithm, the Viterbi decoding algorithm with traceback may also meet the limit of completing decoding and data reporting in 15 μs. However, the performance of the Bluetooth system needs to be further improved. For ease of description, in this application, duration from a time point at which all data sent by the mobile phone is received by the primary headset and/or the secondary headset to a time point at which the primary headset and/or the secondary headset continues to perform decoding and reporting is referred to as a delay of decoding and reporting, and the delay of decoding and reporting needs to meet a 15 μs margin limit.
In conclusion, in an existing encoding manner, performance of a low-power communication system cannot be effectively improved when a delay limit of decoding and reporting is met.
Embodiments of this application provide a polar code segment encoding method and a communication device, to effectively improve performance of a low-power communication system when a delay limit of decoding and reporting is met.
According to a first aspect, this application provides a polar code segment encoding method, including: determining, based on a length of to-be-encoded information bits and a code rate, a code length N after encoding, where N is a positive integer; determining, based on N, a minimum segment code length, and a maximum segment code length, a reserved segment quantity of each type of segments in segments of b−a+1 types of segment code lengths and a reserved code length corresponding to N, where a value of the minimum segment code length is 2{circumflex over ( )}a, a value of the maximum segment code length is 2{circumflex over ( )}b, the b−a+1 types of segment code lengths of the segments are 2{circumflex over ( )}c, a, b, and c are positive integers, a<b, and a≤c≤b; orderly determining a segment quantity of each type of segments based on N, the reserved code length, a segment code length of each type of segments, and the reserved segment quantity of each type of segments and based on the segment code lengths from the largest to the smallest, where a sum of segment quantities of all types of segments is equal to S, N corresponds to S segments, and a segment code length of an ith segment in the S segments is greater than or equal to a segment code length of an (i+1)th segment in the S segments; determining a target information bit length of each segment based on the code rate and a segment code length of each segment in the S segments; and performing polar code encoding on the to-be-encoded information bits based on the target information bit length of each segment.
Through implementation of the method described in the first aspect, the segments of the b−a+1 types of segment code lengths are determined based on the minimum segment code length and the maximum segment code length, the value of the minimum segment code length is 2{circumflex over ( )}a, and the value of the maximum segment code length is 2{circumflex over ( )}b; and the code length N after encoding is divided into the S segments based on the minimum segment code length and the b−a+1 types of segment code lengths of the segments, the segment code length of the ith segment in the S segments is greater than or equal to the segment code length of the (i+1)th segment in the S segments, and the to-be-encoded information bits are allocated to the S segments for polar code encoding. Segment code lengths of segments of a packet trailer of a data packet after segmentation are in a decreasing trend, so that performance of a low-power communication system can be effectively improved when a low delay requirement is met.
In a possible implementation, the determining, based on a length of to-be-encoded information bits and a code rate, a code length N after encoding includes: determining a theoretical code length L based on the length K0 of the to-be-encoded information bits and the code rate R, where a value of the theoretical code length is ceil(K0/R), and ceil(x) represents rounding up {circumflex over ( )}2; and determining N based on the theoretical code length and the minimum segment code length 2{circumflex over ( )}a, where a value of N is ceil(L/2{circumflex over ( )}a)*2{circumflex over ( )}a.
In a possible implementation, the determining, based on N, a minimum segment code length, and a maximum segment code length, a reserved segment quantity of each type of segments in segments of b−a+1 types of segment code lengths and a reserved code length corresponding to N, where a value of the minimum segment code length is 2{circumflex over ( )}a, a value of the maximum segment code length is 2{circumflex over ( )}b, the b−a+1 types of segment code lengths of the segments are 2{circumflex over ( )}c, a, b, and c are positive integers, a<b, and a≤c≤b includes: determining the segments of the b−a+1 types of segment code lengths based on the minimum segment code length and the maximum segment code length, where the value of the minimum segment code length is 2{circumflex over ( )}a, the value of the maximum segment code length is 2{circumflex over ( )}b, the b−a+1 types of segment code lengths of the segments are 2{circumflex over ( )}c, a, b, and c are positive integers, a<b, and a≤c≤b; orderly determining a reserved segment quantity of an ith type of segments in the b−a+1 types of segments based on the b−a+1 types of segment code lengths of the segments from the smallest to the largest and based on N and the segment code length of each type of segments in the b−a+1 types of segments, where the reserved segment quantity of the ith type of segments is greater than or equal to a reserved segment quantity of an (i+1)th type of segments in the b−a+1 types of segments; and determining the reserved code length corresponding to N based on the reserved segment quantity of each type of segments and the segment code length of each type of segments.
In a possible implementation, the determining, based on N, a minimum segment code length, and a maximum segment code length, a reserved segment quantity of each type of segments in segments of b−a+1 types of segment code lengths and a reserved code length corresponding to N includes: if N<p*2{circumflex over ( )}a, determining that a reserved segment quantity that corresponds to N and that is of segments whose segment code lengths are 2{circumflex over ( )}a is
and a reserved segment quantity that corresponds to N and that is of segments whose segment code lengths are 2{circumflex over ( )}j is 0, where a<j≤b and p≥2; if
determining that a reserved segment quantity that corresponds to N and that is of segments whose segment code lengths are 2{circumflex over ( )}j is 0, a reserved segment quantity that corresponds to N and that is of segments whose segment code lengths are 2{circumflex over ( )}c+1 is
and a reserved segment quantity that corresponds to N and that is of segments whose segment code lengths are 2{circumflex over ( )}a is P, where a≤c≤b−1, a≤v≤c, and c+1≤j≤b; or if
determining that the reserved segment quantity of each type of segments is P; and determining the reserved code length Nres based on the reserved segment quantity of each type of segments, where
and Mc,N represents a reserved segment quantity that corresponds to N and that is of segments whose segment code lengths are 2{circumflex over ( )}c. A value of P may be determined based on an actual case. Relative to a receiving rate, a lower reporting rate indicates a larger value of P.
When the reporting rate is very low, reporting of a last segment is not completed after a current segment is received. This causes a great impact on a delay of decoding and reporting. In this embodiment of this application, to effectively reduce an impact of reporting of the ith segment on the delay of decoding and reporting, P segments are pre-reserved for segments of a same segment code length. Through implementation of the solution provided in this embodiment of this application, an adverse impact of a low reporting rate on the delay of decoding and reporting can be effectively reduced.
In a possible implementation, the determining, based on N, a minimum segment code length, and a maximum segment code length, a reserved segment quantity of each type of segments in segments of b−a+1 types of segment code lengths and a reserved code length corresponding to N includes: if N<2{circumflex over ( )}a, determining that the reserved segment quantity of each type of segments is 0; if
determining that a reserved segment quantity of segments whose segment code lengths are 2{circumflex over ( )}j is 0, and a reserved segment quantity of segments whose segment code lengths are 2{circumflex over ( )}v is 1, where a≤c≤b−1, a≤v≤c, and c<j≤b; or if
determining that the reserved segment quantity of each type of segments is 1; and determining the reserved code length Nres based on the reserved segment quantity of each type of segments, where
and mc,N represents a reserved segment quantity that corresponds to N and that is of segments whose segment code lengths are 2{circumflex over ( )}c.
In this embodiment of this application, after the code length N is determined, a specific quantity of segments are pre-reserved for a segment type whose segment code length is small in the b−a+1 types of segments. This helps reduce the delay of decoding and reporting. The solution provided in this embodiment of this application is a special case in which the value of P is 1. In this embodiment of this application, there is no need to reserve a plurality of segments for segments of a same segment code length.
In a possible implementation, the orderly determining a segment quantity of each type of segments based on N, the reserved code length, a segment code length of each type of segments, and the reserved segment quantity of each type of segments and based on the segment code lengths from the largest to the smallest includes: orderly determining a remaining segment quantity of each type of segments based on N, the reserved code length, and the segment code length of each type of segments and based on the segment code lengths from the largest to the smallest, where the remaining segment quantity of each type of segments is a remaining segment quantity of each type of segments corresponding to a remaining code length that is obtained by subtracting the reserved code length from N; and determining the segment quantity of each type of segments based on the reserved segment quantity of each type of segments and the remaining segment quantity of each type of segments.
In this embodiment of this application, the remaining segment quantity of each type of segments is orderly determined based on the segment code lengths from the largest to the smallest, that is, the remaining code length is preferentially allocated to a segment type whose segment code length is large. This helps reduce a total segment quantity corresponding to N. A smaller segment quantity indicates better system performance.
In a possible implementation, the orderly determining a remaining segment quantity of each type of segments based on N, the reserved code length, and the segment code length of each type of segments and based on the segment code lengths from the largest to the smallest includes: if N<2{circumflex over ( )}a, determining that a remaining segment quantity Zc,N that corresponds to N and that is of the segments whose segment code lengths are 2{circumflex over ( )}c is 0, and a remaining segment quantity Za,N that corresponds to N and that is of the segments whose segment code lengths are 2{circumflex over ( )}a is 1, where a<c≤b; or if N≥2{circumflex over ( )}a, orderly determining the remaining segment quantity of each type of segments based on the segment code lengths from the largest to the smallest, and determining that a remaining segment quantity Zb,N that corresponds to N and that is of segments whose segment code lengths are 2{circumflex over ( )}b is
and a remaining segment quantity Zc,N that corresponds to N and that is of the segments whose segment code lengths are 2^c is
where a≤c<b, and floor(x) represents rounding down χ.
In a possible implementation, the determining the segment quantity of each type of segments based on the reserved segment quantity of each type of segments and the remaining segment quantity of each type of segments includes: determining a segment quantity Mc,N that corresponds to N and that is of the segments whose segment code lengths are 2{circumflex over ( )}c, where Mc,N=Mc,N+Zc,N, and a≤c≤b.
In this embodiment of this application, segment code lengths of the S segments are in a decreasing trend, so that performance of a low-power communication system can be effectively improved when a low delay requirement is met.
In a possible implementation, the determining a target information bit length of each segment based on the code rate and a segment code length of each segment in the S segments includes: determining that a target information bit length of a segment whose segment code length is 2{circumflex over ( )}c in the S segments is ceil(2{circumflex over ( )}c*R).
In this embodiment of this application, the target information bit length of each segment is determined based on the code rate and the segment code length of each segment. To ensure that the target information bit length of the segment is a positive integer, (2{circumflex over ( )}c*R) is rounded up.
In a possible implementation, the determining a target information bit length of each segment based on the code rate and a segment code length of each segment in the S segments includes: if
determining that a target information bit length of a segment whose segment code length is 2{circumflex over ( )}c is ceil(2{circumflex over ( )}c*R), where a≤c≤b; or if
determining that a target information bit length of a segment whose segment code length is 2{circumflex over ( )}c is ceil(2{circumflex over ( )}c*R), target information bit lengths that correspond to N and that are of the first Ma,N−1 segments in Ma,N segments whose segment code lengths are 2{circumflex over ( )}a are ceil(2{circumflex over ( )}a*R), and a target information bit length of an (Ma,N)th segment in the Ma,N segments is
where the (Ma,N)th segment is an Sth segment in the S segments, and a<c≤b.
In this embodiment of this application, to ensure that a sum of target information bit lengths of the S segments is equal to the length of the to-be-encoded information bits, a target information bit length of the Sth segment in the S segments can be adjusted.
In a possible implementation, the determining a target information bit length of each segment based on the code rate and a segment code length of each segment in the S segments includes: determining a reference information bit length of each segment; and determining the target information bit length of each segment based on the reference information bit length of each segment and the segment quantity of each type of segments.
In this embodiment of this application, the reference information bit length of each segment is determined first, and then the target information bit length of each segment is adjusted based on the reference information bit length and an actual requirement.
In a possible implementation, the determining a target information bit length of each segment based on the code rate and a segment code length of each segment in the S segments includes: if
determining that a reference information bit length that corresponds to N and that is of a segment whose segment code length is 2{circumflex over ( )}c is ceil(2{circumflex over ( )}c*R), where a≤c≤b; or if
determining that a reference information bit length that corresponds to N and that is of a segment whose segment code length is 2{circumflex over ( )}c is ceil(2{circumflex over ( )}c*R), reference information bit lengths of the first Ma,N−1 segments in Ma,N segments are ceil(2{circumflex over ( )}a*R), and a reference information bit length of an (Ma,N)th segment in the Ma,N segments is
where the (Ma,N)th segment is an Sth segment in the S segments, and a<c≤b; and determining the target information bit length of each segment based on the reference information bit length of each segment and the segment quantity of each type of segments.
In a possible implementation, the reference information bit length of the segment whose segment code length is 2{circumflex over ( )}c in the S segments is ceil(2{circumflex over ( )}c*R).
In a possible implementation, the determining the target information bit length of each segment based on the reference information bit length of each segment and the segment quantity of each type of segments includes: determining the target information bit length of each segment according to an allocation principle. The allocation principle is that on the basis of the reference information bit length of each segment, a first information bit length is totally added to f segments whose segment code lengths are the largest in the S segments, h segments whose segment code lengths are not the largest in the S segments are reduced by totally the first information bit length, a segment code rate of a (j+1)th segment in the h segments is less than or equal to a segment code rate of a jth segment in the h segments, a segment code length of the (j+1)th segment is less than or equal to a segment code length of the jth segment, and a sum of target information bit lengths of the S segments is K0, where f and h are positive integers, and a segment code rate of a segment=a target information bit length of the segment/a segment code length of the segment.
In a possible implementation, the determining the target information bit length of each segment based on the reference information bit length of each segment and the segment quantity of each type of segments includes: determining a target information bit length of a first segment, where the target information bit length of the first segment is equal to a reference information bit length of the first segment plus a second information bit length, and the first segment is a segment whose segment code length is the largest in the S segments; and determining a target information bit length of a second segment, where the target information bit length of the second segment is equal to a reference information bit length of the second segment minus a third information bit length, and the second segment is a segment whose segment code length is not the largest in the S segments. In the S segments, h segments whose segment code lengths are not the largest are reduced by totally f times of the second information bit length, where a segment code rate of a (j+1)th segment in the h segments is less than or equal to a segment code rate of a jth segment in the h segments, a segment code length of the (j+1)th segment is less than or equal to a segment code length of the jth segment, a sum of target information bit lengths of the S segments is K0, f is a segment quantity of segments whose segment code lengths are the largest in the S segments, and h is a positive integer greater than or equal to 0.
In this embodiment of this application, information bit lengths of the segments whose segment code lengths are not the largest are adjusted, so that a segment with a smaller segment code length in the segments whose segment code lengths are not the largest has a smaller segment code rate. This improves overall system performance, and can further reduce the delay of decoding and reporting.
In a possible implementation, the determining the target information bit length of each segment based on the reference information bit length of each segment and the segment quantity of each type of segments includes: if a segment code length of a segment whose segment code length is the largest in the S segments is 2{circumflex over ( )}a, determining that a target information bit length of the segment whose segment code length is 2{circumflex over ( )}a is equal to a reference information bit length of the segment whose segment code length is 2{circumflex over ( )}a; or if a segment code length of a segment whose segment code length is the largest in the S segments is 2{circumflex over ( )}j, determining that a target information bit length of the segment whose segment code length is 2{circumflex over ( )}j is a reference information bit length of the segment whose segment code length is 2{circumflex over ( )}j plus
and a target information bit length of a segment whose segment code length is 2{circumflex over ( )}c is a reference information bit length of the segment whose segment code length is 2{circumflex over ( )}c minus ∂c*Mr,N, where a≤c<r, ∂c is a proportion parameter, and ∂c is a positive integer.
In a possible implementation, 0<∂c+1≤2∂c.
In this embodiment of this application, 0<∂c+1≤2∂c, so that a segment with a smaller segment code length in the segments whose segment code lengths are not the largest has a smaller segment code rate.
In a possible implementation, if Mb,N>T, and T is a positive integer, the determining the target information bit length of each segment based on the reference information bit length of each segment and the segment quantity of each type of segments includes: determining that target information bit lengths of the first T segments in Mb,N segments whose segment code lengths are 2{circumflex over ( )}b are a reference information bit length of the segment whose segment code length is 2{circumflex over ( )}b plus
target information bit lengths of the last Mb,N−T segments in the Mb,N segments are equal to the reference information bit length of the segment whose segment code length is 2{circumflex over ( )}b, and a target information bit length of a segment whose segment code length is 2{circumflex over ( )}c is a reference information bit length of the segment whose segment code length is 2{circumflex over ( )}c minus ∂c*T, where a≤c<b, and ∂c is a positive integer.
In this embodiment of this application, the following problems caused by a large segment quantity Mb,N of segments whose segment code lengths are the largest can be resolved; An information bit length added for the segments whose segment code lengths are the largest in the S segments is excessively large. In addition, the information bit length reduced for the segments whose segment code lengths are not the largest in the S segments is excessively large.
In a possible implementation, the performing polar code encoding on the to-be-encoded information bits based on the target information bit length of each segment includes: orderly allocating the to-be-encoded information bits to the S segments based on the target information bit length of each segment, and performing polar code encoding on information bits of each segment.
In a possible implementation, the performing polar code encoding on the to-be-encoded information bits based on the target information bit length of each segment includes: if
orderly allocating the to-be-encoded information bits to the S segments based on the target information bit length of each segment, and performing polar code encoding on information bits of each segment; or if
performing zero-padding on to-be-encoded information bits whose information bit length is K0, where the information bit length of the to-be-encoded information bits after zero-padding is
orderly allocating the to-be-encoded information bits after zero-padding to the S segments based on the target information bit length of each segment, and performing polar code encoding on information bits of each segment.
In this embodiment of this application, a round up operation is used in a process of determining the target information bit length of each segment, so that the sum of the target information bit lengths of the S segments corresponding to N is greater than the length of the to-be-encoded information bits. Through a zero-padding operation, the length of the to-be-encoded information bits after zero-padding can be equal to the sum of the target information bit lengths of the S segments. This helps subsequently perform polar code encoding on each segment.
According to a second aspect, an embodiment of this application provides a terminal device. The terminal device may include a plurality of functional modules or units, configured to correspondingly perform the polar code segment encoding method provided in the first aspect.
For example, the terminal device may include a code length determining unit, a reservation unit, a segment quantity determining unit, an information bit length determining unit, and an encoding unit.
The code length determining unit is configured to determine, based on a length of to-be-encoded information bits and a code rate, a code length N after encoding, where N is a positive integer.
The reservation unit is configured to determine, based on N, a minimum segment code length, and a maximum segment code length, a reserved segment quantity of each type of segments in segments of b−a+1 types of segment code lengths and a reserved code length corresponding to N, where a value of the minimum segment code length is 2{circumflex over ( )}a, a value of the maximum segment code length is 2{circumflex over ( )}b, the b−a+1 types of segment code lengths of the segments are 2{circumflex over ( )}c, a, b, and c are positive integers, a<b, and a≤c≤b.
The segment quantity determining unit is configured to orderly determine a segment quantity of each type of segments based on N, the reserved code length, a segment code length of each type of segments, and the reserved segment quantity of each type of segments and based on the segment code lengths from the largest to the smallest, where a sum of segment quantities of all types of segments is equal to S, N corresponds to S segments, and a segment code length of an ith segment in the S segments is greater than or equal to a segment code length of an (i+1)th segment in the S segments.
The information bit length determining unit is configured to determine a target information bit length of each segment based on the code rate and a segment code length of each segment in the S segments.
The encoding unit is configured to perform polar code encoding on the to-be-encoded information bits based on the target information bit length of each segment.
In a possible implementation, the code length determining unit is specifically configured to: determine a theoretical code length L based on the length K0 of the to-be-encoded information bits and the code rate R, where a value of the theoretical code length is ceil(K0/R), and ceil(x) represents rounding up χ; and determine N based on the theoretical code length and the minimum segment code length 2{circumflex over ( )}a, where a value of N is ceil(L/2{circumflex over ( )}a)*2{circumflex over ( )}a.
In a possible implementation, the reservation unit is specifically configured to: determine the segments of the b−a+1 types of segment code lengths based on the minimum segment code length and the maximum segment code length, where the value of the minimum segment code length is 2{circumflex over ( )}a, the value of the maximum segment code length is 2{circumflex over ( )}b, the b−a+1 types of segment code lengths of the segments are 2{circumflex over ( )}c, a, b, and c are positive integers, a<b, and a≤c≤b; orderly determine a reserved segment quantity of an ith type of segments in the b−a+1 types of segments based on the b−a+1 types of segment code lengths of the segments from the smallest to the largest and based on N and the segment code length of each type of segments in the b−a+1 types of segments, where the reserved segment quantity of the ith type of segments is greater than or equal to a reserved segment quantity of an (i+1)th type of segments in the b−a+1 types of segments; and determine the reserved code length corresponding to N based on the reserved segment quantity of each type of segments and the segment code length of each type of segments.
In a possible implementation, the reservation unit is specifically configured to: if N<p*2{circumflex over ( )}a, determine that a reserved segment quantity that corresponds to N and that is of segments whose segment code lengths are 2{circumflex over ( )}a is
and a reserved segment quantity that corresponds to N and that is of segments whose segment code lengths are 2{circumflex over ( )}j is 0, where a<j≤b, and p≥2; if
determine that a reserved segment quantity that corresponds to N and that is of segments whose segment code lengths are 2{circumflex over ( )}j is 0, a reserved segment quantity that corresponds to N and that is of segments whose segment code lengths are 2{circumflex over ( )}c+1 is
and a reserved segment quantity that corresponds to N and that is of segments whose segment code lengths are 2{circumflex over ( )}v is P, where a≤c≤b−1, a≤v≤c, and c+1<j≤b; or if
determine that the reserved segment quantity of each type of segments is P; and determine the reserved code length Nres based on the reserved segment quantity of each type of segments, where
and mc,N represents a reserved segment quantity that corresponds to N and that is of segments whose segment code lengths are 2{circumflex over ( )}c.
In a possible implementation, the reservation unit is specifically configured to: if N<2{circumflex over ( )}a, determine that the reserved segment quantity of each type of segments is 0; if
determine that a reserved segment quantity of segments whose segment code lengths are 2{circumflex over ( )}j is 0, and a reserved segment quantity of segments whose segment code lengths are 2{circumflex over ( )}v is 1, where a≤c≤b−1, a≤v≤c, and c<j≤b; or if
determine that the reserved segment quantity of each type of segments is 1; and determine the reserved code length Nres based on the reserved segment quantity of each type of segments, where
and mc,N represents a reserved segment quantity that corresponds to N and that is of segments whose segment code lengths are 2{circumflex over ( )}c.
In a possible implementation, the segment quantity determining unit includes a remaining segment quantity determining unit and a segment quantity determining subunit.
The remaining segment quantity determining unit is configured to orderly determine a remaining segment quantity of each type of segments based on N, the reserved code length, and the segment code length of each type of segments and based on the segment code lengths from the largest to the smallest, where the remaining segment quantity of each type of segments is a remaining segment quantity of each type of segments corresponding to a remaining code length that is obtained by subtracting the reserved code length from N.
The segment quantity determining subunit is configured to determine the segment quantity of each type of segments based on the reserved segment quantity of each type of segments and the remaining segment quantity of each type of segments.
In a possible implementation, the remaining segment quantity determining unit is specifically configured to: if N<2{circumflex over ( )}a, determine that a remaining segment quantity Zc,N that corresponds to N and that is of the segments whose segment code lengths are 2{circumflex over ( )}c is 0, and a remaining segment quantity Za,N that corresponds to N and that is of the segments whose segment code lengths are 2{circumflex over ( )}a is 1, where a<c≤b; or if N ≥2{circumflex over ( )}a, orderly determine the remaining segment quantity of each type of segments based on the segment code lengths from the largest to the smallest, and determine that a remaining segment quantity Zb,N that corresponds to N and that is of segments whose segment code lengths are 2{circumflex over ( )}b is
and a remaining segment quantity Zc,N that corresponds to N and that is of the segments whose segment code lengths are 2{circumflex over ( )}c is
where a≤c<b, and floor(x) represents rounding down χ.
In a possible implementation, the segment quantity determining subunit is specifically configured to: determine a segment quantity Mc,N that corresponds to N and that is of the segments whose segment code lengths are 2{circumflex over ( )}c, where Mc,N=mc,N+zc,N, and a≤c≤b.
In a possible implementation, the information bit length determining unit is specifically configured to: determine that a target information bit length of a segment whose segment code length is 2{circumflex over ( )}c in the S segments is ceil(2{circumflex over ( )}c*R).
In a possible implementation, the information bit length determining unit is specifically configured to: if
determine that a target information bit length of a segment whose segment code length is 2{circumflex over ( )}c is ceil(2{circumflex over ( )}c*R), where a≤c≤b; or if
determine that a target information bit length of a segment whose segment code length is 2{circumflex over ( )}c is Ceil(2{circumflex over ( )}c*R), target information bit lengths that correspond to N and that are of the first Ma,N−1 segments in Ma,N segments whose segment code lengths are 2{circumflex over ( )}a are ceil(2{circumflex over ( )}a*R), and a target information bit length of an (Ma,N)th segment in the Ma,N segments is
where the (Ma,N)th segment is an Sth segment in the S segments, and a<c≤b.
In a possible implementation, the information bit length determining unit includes a reference information bit length determining unit and a target information bit length determining unit.
The reference information bit length determining unit is configured to determine the reference information bit length of each segment.
The target information bit length determining unit is configured to determine the target information bit length of each segment based on the reference information bit length of each segment and the segment quantity of each type of segments.
In a possible implementation, the reference information bit length determining unit is specifically configured to: if
determine that a reference information bit length that corresponds to N and that is of a se ent whose segment code length is 2{circumflex over ( )}c is ceil(2{circumflex over ( )}c*R), where a≤c≤b; or if
determine that a reference information bit length that corresponds to N and that is of a segment whose segment code length is 2{circumflex over ( )}c is ceil(2{circumflex over ( )}c*R), reference information bit lengths of the first Ma,N−1 segments in Ma,N segments are ceil(2{circumflex over ( )}a*R), and a reference information bit length of an (Ma,N)th segment in the Ma,N segments is
where the (Ma,N)th segment is an Sth segment in the S segments, and a<c≤b.
In a possible implementation, the reference information bit length of the segment whose segment code length is 2{circumflex over ( )}c in the S segments is ceil(2{circumflex over ( )}c*R).
In a possible implementation, the target information bit length determining unit is specifically configured to determine the target information bit length of each segment according to an allocation principle. The allocation principle is that on the basis of the reference information bit length of each segment, a first information bit length is totally added to f segments whose segment code lengths are the largest in the S segments, h segments whose segment code lengths are not the largest in the S segments are reduced by totally the first information bit length, a segment code rate of a (j+1)th segment in the h segments is less than or equal to a segment code rate of a jth segment in the h segments, a segment code length of the (j+1)th segment is less than or equal to a segment code length of the jth segment, and a sum of target information bit lengths of the S segments is K0, where f and h are positive integers.
In a possible implementation, the target information bit length determining unit is specifically configured to: determine a target information bit length of a first segment, where the target information bit length of the first segment is equal to a reference information bit length of the first segment plus a second information bit length, and the first segment is a segment whose segment code length is the largest in the S segments; and determine a target information bit length of a second segment, where the target information bit length of the second segment is equal to a reference information bit length of the second segment minus a third information bit length, and the second segment is a segment whose segment code length is not the largest in the S segments. In the S segments, h segments whose segment code lengths are not the largest are reduced by totally f times of the second information bit length, where a segment code rate of a (j+1) segment in the h segments is less than or equal to a segment code rate of a jth segment in the h segments, a segment code length of the (j+1)th segment is less than or equal to a segment code length of the jth segment, a sum of target information bit lengths of the S segments is K0, f is a segment quantity of segments whose segment code lengths are the largest in the S segments, and h is a positive integer greater than or equal to 0.
In a possible implementation, the target information bit length determining unit is specifically configured to: if a segment code length of a segment whose segment code length is the largest in the S segments is 2{circumflex over ( )}a, determine that a target information bit length of the segment whose segment code length is 2{circumflex over ( )}a is equal to a reference information bit length of the segment whose segment code length is 2{circumflex over ( )}a; or if a segment code length of a segment whose segment code length is the largest in the S segments is 2{circumflex over ( )}r, determine that a target information bit length of the segment whose segment code length is 2{circumflex over ( )}r is a reference information bit length of the segment whose segment code length is 2{circumflex over ( )}r plus
and a target information bit length of a segment whose segment code length is 2{circumflex over ( )}c is a reference information bit length of the segment whose segment code length is 2{circumflex over ( )}c minus ∂cMr,N, where a≤c<r, ∂c is a proportion parameter, and ∂c is a positive integer.
In a possible implementation, 0<∂c+1≤2∂c.
In a possible implementation, if Mb,N>T, and T is a positive integer, the target information bit length determining unit is specifically configured to: determine that target information bit lengths of the first T segments in Mb,N segments whose segment code lengths are 2{circumflex over ( )}b are a reference information bit length of the segment whose segment code length is 2{circumflex over ( )}b plus
target information bit lengths of the last Mb,N−T segments in the Mb,N segments are equal to the reference information bit length of the segment whose segment code length is 2{circumflex over ( )}b, and a target information bit length of a segment whose segment code length is 2{circumflex over ( )}c is a reference information bit length of the segment whose segment code length is 2{circumflex over ( )}c minus ∂c*T, where a≤c<b, and ∂c is a positive integer.
In a possible implementation, 0<∂c+1≤2∂c.
In a possible implementation, the encoding unit is specifically configured to: orderly allocate the to-be-encoded information bits to the S segments based on the target information bit length of each segment, and perform polar code encoding on information bits of each segment.
In a possible implementation, the encoding unit is specifically configured to: if
orderly allocate the to-be-encoded information bits to the S segments based on the target information bit length of each segment, and perform polar code encoding on information bits of each segment; or if
perform zero-padding on to-be-encoded information bits whose information bit length is K0, where the information bit length of the to-be-encoded information bits after zero-padding is
orderly allocate the to-be-encoded information bits after zero-padding to the S segments based on the target information bit length of each segment, and perform polar code encoding on information bits of each segment.
According to a third aspect, an embodiment of this application provides a communication device, configured to perform the polar code segment encoding method provided in the first aspect. The network device may include a memory, a processor, a transmitter, and a receiver, where the transmitter and the receiver are configured to communicate with another communication device. The memory is configured to store implementation code of the polar code segment encoding method provided in the first aspect, and the processor is configured to execute program code stored in the memory, that is, perform the polar code segment encoding method provided in the first aspect.
According to a fourth aspect, this application provides a communication chip. The communication chip may include a processor and one or more interfaces coupled to the processor. The processor may be configured to invoke some or all of implementation programs of the polar code segment encoding method provided in the first aspect from a memory, and execute instructions included in some or all of the implementation programs. The interface may be configured to output a data processing result of the processor.
According to a fifth aspect, an embodiment of this application provides a computer-readable storage medium, where the readable storage medium stores program instructions, and when the program instructions are run on a processor, the processor is enabled to perform the polar code segment encoding method described in the third aspect.
According to a sixth aspect, an embodiment of this application provides a computer program product including instructions, and when the computer program product is run on a processor, the processor is enabled to perform the polar code segment encoding method described in the first aspect.
The following clearly describes technical solutions in embodiments of this application in detail with reference to accompanying drawings. In descriptions of the embodiments of this application, unless otherwise stated, “/” indicates “or”. For example, A/B may indicate A or B. The term “and/or” in this specification merely describes an association relationship for describing associated objects, and indicates that three relationships may exist. For example, A and/or B may indicate the following three cases: Only A exists, both A and B exist, and only B exists. In addition, in the descriptions of the embodiments of this application, “a plurality of” means two or more.
The terms “first” and “second” mentioned below are merely intended for description, and shall not be understood as an indication or implication of relative importance or implicit indication of a quantity of indicated technical features. Therefore, a feature limited by “first” or “second” may explicitly or implicitly include one or more features. In the descriptions of the embodiments of this application, unless otherwise specified, “a plurality of” means two or more.
The Bluetooth communication system 100 is based on a Bluetooth technology. The Bluetooth technology is an open global specification for wireless data and voice communication. The Bluetooth technology is based on a low-cost short-range wireless connection, and is a special short-range wireless connection technology for establishing communication environments for fixed and mobile devices. The Bluetooth technology enables some portable mobile devices and computer devices today to connect to the Internet without requiring cables, and to access the Internet wirelessly. The Bluetooth technology replaces an infrared technology, to be applied to computers and mobile communication products with advantages of low costs, low power consumption, a short range, a high frequency (a frequency hopping technology), and high confidentiality.
The terminal device 101 may be fixed, or may be mobile. In some embodiments of this application, the terminal device 101 may be implemented as a mobile device, user equipment (User Equipment, UE), a terminal (terminal), a UE unit, a UE station, a mobile device, or the like. This is not limited in this embodiment of this application.
The Bluetooth headset 102 may be fixed, or may be mobile. A distance between the Bluetooth headset 102 and the terminal device 101 falls within a preset range. As shown in
The Bluetooth communication system 100 is very sensitive to a delay. After receiving data, the Bluetooth headset needs to process the data in a very short time and reply with an acknowledgment message. Currently, interval duration from a time point at which the terminal device 101 completes sending the data to a time point the terminal device 101 receives an ACK of the primary headset is 189 μs.
For a system that requires low power consumption, for example, a Bluetooth system, power of information reporting is usually limited. Consequently, a reporting rate of reporting information bits to the MAC layer is limited to the power of information reporting. For ease of description, in this application, duration from a time point at which all data sent by the terminal device is received by the primary headset and/or the secondary headset to a time point at which the primary headset and/or the secondary headset performs decoding and reporting is referred to as a delay of decoding and reporting, and the delay of decoding and reporting needs to be less than or equal to t. If the delay of decoding and reporting exceeds t, the mobile phone cannot accurately receive the acknowledgment message fed back by the primary headset.
An existing Bluetooth system usually uses an encoding manner in which no channel code or convolutional code is used. Although the foregoing two encoding manners may meet a delay requirement, performance of the Bluetooth system needs to be improved. In this application, performance of the entire system is improved by using polar code.
Polar (Polar) code is the first encoding manner that is theoretically proven to reach a Shannon capacity, and has characteristics of high performance and low encoding and decoding complexity. In different code lengths, especially for code based on a finite field, performance of the polar code is much better than Turbo code and LDPC code. Currently, the polar code has become an encoding manner for new radio (New radio, NR) control information of the 3rd generation partnership project protocol (3rd Generation Partnership Project, 3GPP).
The polar code is linear block code, a generation matrix of the polar code is FN, and an encoding process of the polar code is x1N=μ1NFN. μ1N=(μ1,μ2, . . . ,μN) is a binary row vector with a length N (namely, a code length). FN is a matrix of N×N, and FN=F2⊗(log2(N)). Herein,
and F2⊗(log
In the encoding process of the polar code, some bits in μ1N are used to carry information, and are referred to as information bits. A set of indexes of these bits is recorded as I. The other bits are set to be fixed values pre-appointed by a transmit end and a receive end, and are referred to as fixed bits. A set of indexes of these bits is represented by a complementary set Ic of I. The fixed bits are usually set to 0. However, the fixed bits may be randomly set provided that the transmit end and the receive end reach an agreement in advance.
For the polar code, encoding and decoding are performed based on a segment code length (a power of 2). A longer segment code length indicates a stronger error correcting capability and greater complexity. Therefore, an appropriate segment code length is usually selected after performance and complexity are weighed. The polar code is linear block code. If a transmitted data packet is large, which far exceeds a maximum segment code length set by the polar code, in this case, segment processing may be performed on transmitted data.
There are two existing polar code segmentation manners in 5G. In a first segmentation manner, an information bit sequence is evenly divided into two segments. If an information bit length of the information bit sequence cannot be divided by 2, zero-padding is performed at a front end of a first segment in the two segments. When polar code segment encoding is performed in the first segmentation manner, rate matching needs to be performed on all segments, that is, a segment code length of each segment obtained after polar code encoding is converted to an actually required length in a manner of puncturing, shortening, or repetition. It may be understood that the actually required length meets the power of 2.
In the first segmentation manner, rate matching needs to be performed, which increases implementation complexity and is not applicable to a low-power system. In addition, the first segmentation manner may not meet a delay requirement of decoding and reporting. For example,
In a second segmentation manner, an information bit sequence is divided into n segments based on a maximum segment code length, and code rates corresponding to the n segments are equal. Segment code lengths of the first n−1 segments in the n segments are the maximum segment code length, and information bit lengths of the first n−1 segments may be determined based on the maximum segment code length and the code rates; an information bit length of the last segment in the n segments may be determined; and then a segment code length of the last segment may be determined based on the code rate and the information bit length of the last segment.
In the second segmentation manner, rate matching does not need to be performed. Compared with the first segmentation manner, implementation complexity is reduced. However, the second segmentation manner may alternatively not meet the delay limit of decoding and reporting. For example,
In this application, it is hoped that the performance of the entire system is improved by using the polar code. In addition, a new segmentation method is proposed by using a characteristic that the polar code is linear block code, to meet a delay limit on decoding and reporting of a low-power system in this application.
An embodiment of this application provides a polar code segment encoding method.
S501: Determine, based on a length of to-be-encoded information bits and a code rate, a code length N after encoding, where N is a positive integer.
Optionally, based on the foregoing analysis, the determining, based on a length of to-be-encoded information bits and a code rate, a code length N after encoding includes: determining a theoretical code length L based on the length K0 of the to-be-encoded information bits and the code rate R, where a value of the theoretical code length is ceil(K0/R), and ceil(x) represents rounding up χ; and determining N based on the theoretical code length and the minimum segment code length 2{circumflex over ( )}a, where a value of N is ceil(L/2{circumflex over ( )}a)*2{circumflex over ( )}a. According to the determining manner of the code length N, it is ensured that an actual code length N after encoding is an integer multiple of the minimum segment code length.
It should be noted that in this embodiment of this application, it is proposed that segment code lengths of all segments corresponding to the code length N need to be equal to a power of2, and a segment code length of each segment is greater than or equal to a preset minimum segment code length. It may be understood that in the foregoing case, a sum (that is, the actual code length after encoding) of the segment code lengths of all the segments is an integer multiple of the minimum segment code length. In the determining manner of the code length N, rate matching does not need to be performed, and implementation complexity is not increased. Therefore, the determining manner is applicable to a low-power system.
S502: Determine, based on N, a minimum segment code length, and a maximum segment code length, a reserved segment quantity of each type of segments in segments of b−a+1 types of segment code lengths and a reserved code length corresponding to N, where a value of the minimum segment code length is 2{circumflex over ( )}a, a value of the maximum segment code length is 2{circumflex over ( )}b, the b−a+1 types of segment code lengths of the segments are 2{circumflex over ( )}c, a, b, and c are positive integers, a<b, and a≤c≤b.
Optionally, if the value of the minimum segment code length is 2{circumflex over ( )}a, and the value of the maximum segment code length is 2{circumflex over ( )}b, the segments of the b−a+1 types of segment code lengths may be determined based on the minimum segment code length and the maximum segment code length, the b−a+1 types of segment code lengths of the segments are 2{circumflex over ( )}c, a, b, and c are positive integers, a<b, and a≤c≤b.
In this embodiment of this application, the actual code length N is divided into S segments. The S segments include one or more types of segments in the b−a+1 types of segments that correspond to the b−a+1 types of segment code lengths. A delay of decoding and reporting is mainly limited to the last y segments of the S segments, where S and y are positive integers, and y is less than or equal to S.
It may be understood that in this embodiment of this application, a segment code length of each type of segments is equal to the power of 2. Therefore, implementation complexity can be relatively reduced in the solution provided in this embodiment of this application.
Optionally, segment code lengths of the last y segments of the S segments are less than segment code lengths of the first S−y segments of the S segments.
It may be understood that a smaller information bit length of a segment (in a same code rate, a smaller segment code length of the segment) indicates shorter duration of decoding and reporting. That the segment code lengths of the last y segments are less than the segment code lengths of the first S−y segments helps reduce the delay of decoding and reporting.
Optionally, a segment code length of an (i+1)th segment in the S segments is less than or equal to a segment code length of an (i+1)th segment in the S segments.
It may be understood that, to avoid a case in which the delay of decoding and reporting is limited to reporting duration of the penultimate segment because an information bit length (a segment code length) of the last segment is much smaller than an information bit length (a segment code length) of the penultimate segment, in this embodiment of this application, a segment code length of a (j+1)th segment in the last y segments is less than or equal to a segment code length of a jth segment in the last y segments, so that the segment code lengths of the last y segments are in a decreasing trend.
In some embodiments of this application, to implement that the segment code lengths of the last y segments of the S segments are less than the segment code lengths of the first S−y segments of the S segments, and the segment code length of the (j+1)th segment of the last y segments is less than or equal to the segment code length of the jth segment of the last y segments, after the code length N is determined, a specific quantity of segments are pre-reserved for a segment type whose segment code length is small in the b−a+1 types of segments.
Optionally, the determining, based on N, a minimum segment code length, and a maximum segment code length, a reserved segment quantity of each type of segments in segments of b−a+1 types of segment code lengths and a reserved code length corresponding to N, where a value of the minimum segment code length is 2{circumflex over ( )}a, a value of the maximum segment code length is 2{circumflex over ( )}b, the b−a+1 types of segment code lengths of the segments are 2{circumflex over ( )}c, a, b, and c are positive integers, a<b, and a≤c≤b includes: determining the segments of the b−a+1 types of segment code lengths based on the minimum segment code length and the maximum segment code length, where the value of the minimum segment code length is 2{circumflex over ( )}a, the value of the maximum segment code length is 2{circumflex over ( )}b, the b−a+1 types of segment code lengths of the segments are 2{circumflex over ( )}c, a, b, and c are positive integers, a<b, and a≤c≤b; orderly determining a reserved segment quantity of an ith type of segments in the b−a+1 types of segments based on the b−a+1 types of segment code lengths of the segments from the smallest to the largest and based on N and the segment code length of each type of segments in the b−a+1 types of segments, where the reserved segment quantity of the ith type of segments is greater than or equal to a reserved segment quantity of an (i+1)th type of segments in the b−a+1 types of segments; and determining the reserved code length corresponding to N based on the reserved segment quantity of each type of segments and the segment code length of each type of segments.
Optionally, the determining, based on N, a minimum segment code length, and a maximum segment code length, a reserved segment quantity of each type of segments in segments of b−a+1 types of segment code lengths and a reserved code length corresponding to N includes: if N<p*2{circumflex over ( )}a, determining that a reserved segment quantity that corresponds to N and that is of segments whose segment code lengths are 2{circumflex over ( )}a is
and a reserved segment quantity that corresponds to N and that is of segments whose segment code lengths are 2{circumflex over ( )}j is 0, where a<j≤b and p≥2; if
determining that a reserved segment quantity that corresponds to N and that is of segments whose segment code lengths are 2{circumflex over ( )}j is 0, a reserved segment quantity that corresponds to N and that is of segments whose segment code lengths are 2{circumflex over ( )}c+1 is
and a reserved segment quantity that corresponds to N and that is of segments whose segment code lengths are 2{circumflex over ( )}v is P, where a≤c≤b−1, a≤v≤c, and c+1<j≤b; or if
determining that the reserved segment quantity of each type of segments is P; and determining the reserved code length Nres, based on the reserved segment quantity of each type of segments, where
and mc,N represents a reserved segment quantity that corresponds to N and that is of segments whose segment code lengths are 2{circumflex over ( )}c.
Relative to a receiving rate, when a reporting rate is very low, reporting of a last segment is not completed after a current segment is received. This causes a great impact on the delay of decoding and reporting. In this embodiment of this application, a value of P may be determined based on an actual case. Relative to the receiving rate, a lower reporting rate indicates a larger value of P.
Through implementation of the solution provided in this embodiment of this application, an adverse impact of a low reporting rate on the delay of decoding and reporting can be effectively reduced.
It should be noted that a Bluetooth bandwidth is equal to B1, a reporting bandwidth is equal to B2, and a code rate is R0. N corresponds to the S segments, and the segment code length of the ith segment and the segment code length of the (i+1)th segment in the S segments are N4 and N5. Receiving duration of the (i+1)th segment is
and reporting duration of the ith segment is
reporting of the ith segment is not ended after receiving of the (i+1)th segment is ended. Consequently, a start point of reporting of the (i+1)th segment is affected, and in this case,
Therefore, in the foregoing case, a final delay of decoding and reporting may be affected. In this application, N4≥N5. To reduce an impact of reporting of the ith segment on reporting of the (i+1)th segment, N4=N5 may be set. Therefore, in this embodiment of this application, to effectively reduce an impact of reporting of the ith segment on the delay of decoding and reporting, P segments are pre-reserved for segments of a same segment code length.
For example, the value of P is 2. If the minimum segment code length is 128, namely, 2{circumflex over ( )}7, and the maximum segment code length is 1024, namely, 2{circumflex over ( )}10, a reserved segment quantity of each type of segments in segments of four types of segment code lengths and the reserved code length corresponding to N are determined based on N, the minimum segment code length, and the maximum segment code length. This step includes: determining, based on the minimum segment code length and the maximum segment code length, that the four types of segment code lengths are 1024, 512, 256, and 128; and determining the reserved segment quantity of each type of segments in the four types of segments and the reserved code length corresponding to N, as shown in Table 1.
It may be understood that m10,N represents a reserved segment quantity of the segments whose segment code lengths are 1024, m9,n represents a reserved segment quantity of the segments whose segment code lengths are 512, m8,N represents a reserved segment quantity of the segments whose segment code lengths are 256, and m7,N represents a reserved segment quantity of the segments whose segment code lengths are 128. The value of P is 2. If N<256, the reserved code length corresponding to N is
if 256≤N<768, the reserved code length corresponding to N is p*2{circumflex over ( )}7, namely, 256; if 768≤N<1792, the reserved code length corresponding to N is p*(2{circumflex over ( )}7+2{circumflex over ( )}8), namely, 768; if 1792≤N<3840, the reserved code length corresponding to N is p*(2{circumflex over ( )}7+2{circumflex over ( )}8+2{circumflex over ( )}9), namely, 1792; or if 3840≤N, the reserved code length corresponding to N is p*(2{circumflex over ( )}72{circumflex over ( )}8+2{circumflex over ( )}8+2{circumflex over ( )}9), namely, 3840.
Examples in which the value of N is 1024, 2048, 3712, and 6144 are used for description. When the value of N is 1024, the reserved segment quantity corresponding to m9,N is
namely, 0, the reserved segment quantities of the four types of segments are 0, 0, 2, and 2, and the reserved code length corresponding to N is 768; when the value of N is 2048, the reserved segment quantity corresponding to m10,N is
namely, 0, the reserved segment quantities of the four types of segments are 0, 2, 2, and 2, and the reserved code length corresponding to N is 1792; when the value of N is 3712, the reserved segment quantity corresponding to m10,N is
namely, 1, the reserved segment quantities of the four types of segments are 1, 2, 2, and 2, and the reserved code length corresponding to N is 1920; and when the value of N is 6144, the reserved segment quantity corresponding to m10,N is
namely, 2, the reserved segment quantities of the four types of segments are 2, 1, 1, and 1, and the reserved code length corresponding to N is 3840.
Optionally, the determining, based on N, a minimum segment code length, and a maximum segment code length, a reserved segment quantity of each type of segments in segments of b−a+1 types of segment code lengths and a reserved code length corresponding to N includes: determining the b−a+1 types of segments based on the minimum segment code length and the maximum segment code length; if N<2{circumflex over ( )}a, determining that the reserved segment quantity of each type of segments is 0; if
determining that a reserved segment quantity of segments whose segment code lengths are 2{circumflex over ( )}j is 0, and a reserved segment quantity of segments whose segment code lengths are 2{circumflex over ( )}v is 1, where a≤c≤b−1, a≤v≤c, and c<j≤b; or if
determining that the reserved segment quantity of each type of segments is 1; and determining the reserved code length Nres, based on the reserved segment quantity of each type of segments, where
and mc,N represents a reserved segment quantity that corresponds to N and that is of segments whose segment code lengths are
indicates that superposition is performed on 2{circumflex over ( )}i with i changes, and a≤i≤c.
It may be understood that the solution in this embodiment of this application is a special case in which the value of P is 1. In this embodiment of this application, there is no need to reserve a plurality of segments for segments of a same segment code length. This solution is applicable to a case of
For example, if the minimum segment code length is 128, namely, 2{circumflex over ( )}7, and the maximum segment code length is 1024, namely, 2{circumflex over ( )}10, a reserved segment quantity of each type of segments in segments of four types of segment code lengths and the reserved code length corresponding to N are determined based on N, the minimum segment code length, and the maximum segment code length. This step includes: determining, based on the minimum segment code length and the maximum segment code length, that the four types of segment code lengths are 1024, 512, 256, and 128; and determining the reserved segment quantity of each type of segments in the four types of segments and the reserved code length corresponding to N, as shown in Table 2.
It may be understood that if N<128, the reserved code length corresponding to N is 0; if 128≤N<384, the reserved code length corresponding to N is 2{circumflex over ( )}7; if 384≤N<896, the reserved code length corresponding to N is 2{circumflex over ( )}7+2{circumflex over ( )}8, namely, 384; if 896≤N<1920, the reserved code length corresponding to N is 2{circumflex over ( )}7+2{circumflex over ( )}8+2{circumflex over ( )}9, namely, 896; or if 1920<N, the reserved code length corresponding to N is 2{circumflex over ( )}7+2{circumflex over ( )}8+2{circumflex over ( )}8+2{circumflex over ( )}9, namely, 1920.
It can be learned from the foregoing example that in this embodiment of this application, a specific quantity of segments may be pre-reserved for segments whose segment code lengths are short, and a sum of segment code lengths of the reserved segments is the reserved code length.
S503: Orderly determine a segment quantity of each type of segments based on N, the reserved code length, a segment code length of each type of segments, and the reserved segment quantity of each type of segments and based on the segment code lengths from the largest to the smallest, where a sum of segment quantities of all types of segments is equal to S, N corresponds to S segments, and a segment code length of an ith segment in the S segments is greater than or equal to a segment code length of an (i+1)th segment in the S segments.
Optionally, the orderly determining a segment quantity of each type of segments based on N, the reserved code length, a segment code length of each type of segments, and the reserved segment quantity of each type of segments and based on the segment code lengths from the largest to the smallest includes: orderly determining a remaining segment quantity of each type of segments based on N, the reserved code length, and the segment code length of each type of segments and based on the segment code lengths from the largest to the smallest, where the remaining segment quantity of each type of segments is a remaining segment quantity of each type of segments corresponding to a remaining code length that is obtained by subtracting the reserved code length from N; and determining the segment quantity of each type of segments based on the reserved segment quantity of each type of segments and the remaining segment quantity of each type of segments.
In this embodiment of this application, the remaining code length obtained by subtracting the reserved code length from N is segmented again. The orderly determining a remaining segment quantity of each type of segments based on the segment code lengths from the largest to the smallest is as follows: preferentially allocating the remaining code length to a segment type whose segment code length is large.
It may be understood that a smaller segment quantity indicates better system performance. In an optional embodiment of step S503, to meet the delay limit of decoding and reporting, a quantity of segments is first reserved for a segment type whose segment code length is small. When the delay limit of decoding and reporting is met, in this embodiment of this application, the remaining code length is preferentially allocated to the segment type whose segment code length is large, so that a total segment quantity is as small as possible, even if S is as small as possible.
Optionally, the orderly determining a remaining segment quantity of each type of segments based on N, the reserved code length, and the segment code length of each type of segments and based on the segment code lengths from the largest to the smallest includes: if N<2{circumflex over ( )}a, determining that a remaining segment quantity Zc,N that corresponds to N and that is of the segments whose segment code lengths are 2{circumflex over ( )}c is 0, and a remaining segment quantity Za,N that corresponds to N and that is of the segments whose segment code lengths are 2{circumflex over ( )}a is 1, where a<c≤b; or if N≥2{circumflex over ( )}a, orderly determining the remaining segment quantity of each type of segments based on the segment code lengths from the largest to the smallest, and determining that a remaining segment quantity Zb,N that corresponds to N and that is of segments whose segment code lengths are 2{circumflex over ( )}b is
and a remaining segment quantity Zc,N that corresponds to N and that is of the segments whose segment code lengths are 2{circumflex over ( )}c is
where a≤c<b, and floor(x) represents rounding down χ.
For example, if the minimum segment code length is 128, namely, 2{circumflex over ( )}7, and the maximum segment code length is 1024, namely, 2{circumflex over ( )}10, it is determined, based on the minimum segment code length and the maximum segment code length, that the four types of segment code lengths are 1024, 512, 256, and 128. Examples in which the value of N is 1024, 2048, 2560, and 6144 are used for description. When the value of N is 1024, the reserved segment quantities of the four types of segments are 0, 1, 1, and 1, the reserved code length corresponding to N is 896, and the remaining code length is 128; when the value of N is 2048, the reserved segment quantities of the four types of segments are 1, 1, 1, and 1, the reserved code length corresponding to N is 1920, and the remaining code length is 128; when the value of N is 2560, the reserved segment quantities of the four types of segments are 1, 1, 1, and 1, the reserved code length corresponding to N is 1920, and the remaining code length is 640; and when the value of N is 6144, the reserved segment quantities of the four types of segments are 1, 1, 1, and 1, the reserved code length corresponding to N is 1920, and the remaining code length is 4224. When the value of N is 1024, 2560, and 6144, corresponding remaining segment quantities of the four types of segments are shown in Table 3.
It may be understood that Z10,N represents a reserved segment quantity of the segments whose segment code lengths are 1024, Z9,N represents a reserved segment quantity of the segments whose segment code lengths are 512, Z8,N represents a reserved segment quantity of the segments whose segment code lengths are 256, and Z7,N represents a reserved segment quantity of the segments whose segment code lengths are 128. It can be learned from the foregoing example that in this embodiment of this application, a remaining segment quantity can be first allocated to a segment type whose segment code length is large.
Optionally, the determining the segment quantity of each type of segments based on the reserved segment quantity of each type of segments and the remaining segment quantity of each type of segments includes: determining a segment quantity Mc,N that corresponds to N and that is of the segments whose segment code lengths are 2{circumflex over ( )}c, where Mc,N=mc,N+zc,N, and a≤c≤b.
It may be understood that the segment quantity of the segments whose segment code lengths are 2{circumflex over ( )}c is equal to a reserved segment quantity of the segments whose segment code lengths are 2{circumflex over ( )}c plus a remaining segment quantity of the segments whose segment code lengths are 2{circumflex over ( )}c.
For example, if the minimum segment code length is 128, and the maximum segment code length is 1024, it is determined, based on the minimum segment code length and the maximum segment code length, that the four types of segment code lengths are 1024, 512, 256, and 128. When the value of N is 2048, the reserved segment quantities that correspond to N and that are of the four types of segments are 1, 1, 1, and 1, and the remaining segment quantities that correspond to N and that are of the four types of segments are 0, 0, 0, and 1. Therefore, segment quantities that correspond to N and that are of the four types of segments are 1, 1, 1, and 2.
S504: Determine a target information bit length of each segment based on the code rate and a segment code length of each segment in the S segments.
Optionally, the determining a target information bit length of each segment based on the code rate and a segment code length of each segment in the S segments includes: determining that a target information bit length of a segment whose segment code length is 2{circumflex over ( )}c in the S segments is ceil(2{circumflex over ( )}c*R).
It may be understood that in this embodiment of this application, segment code rates of the S segments almost equal, and a segment code rate of a segment=a target information bit length of the segment/a segment code length of the segment. In this embodiment of this application, the target information bit length of each segment is determined based on the code rate R and the segment code length of each segment. To ensure that the target information bit length of the segment is a positive integer, (2{circumflex over ( )}c*R) is rounded up. Therefore, a sum of target information bit lengths of the S segments is greater than or equal to the length K0 of the to-be-encoded information bits.
It should be noted that in a same channel environment and a same segment code rate, a larger segment code length of a segment indicates a lower packet error rate and better performance. Therefore, a segment with a larger segment code length in the S segments has better performance.
Optionally, a difference between the sum of the target information bit lengths of the S segments and the length of the to-be-encoded information bits is k0, and
To ensure that the sum of the target information bit lengths of the S segments is equal to the length of the to-be-encoded information bits, the determining a target information bit length of each segment based on the code rate and a segment code length of each segment in the S segments includes: when the segment code length of the ith segment in the S segments is 2{circumflex over ( )}c, determining that a target information bit length of the ith segment is ceil(2{circumflex over ( )}c*R)−k0, and a target information bit length of a segment that is in segments other than the ith segment in the S segments and whose segment code length is 2{circumflex over ( )}c is ceil(2{circumflex over ( )}c*R). 1≤i≤S, i may be equal to 1, equal to S, or equal to another predetermined value. This is not specifically limited in this embodiment of this application.
Optionally, if the ith segment in the S segments is an Sth segment in the S segments, the determining a target information bit length of each segment based on the code rate and a segment code length of each segment in the S segments includes: if
determining that a target information bit length of a segment whose segment code length is 2{circumflex over ( )}c is ceil(2{circumflex over ( )}c*R), where a≤c≤b; or if
determining that a target information bit length of a segment whose segment code length is 2{circumflex over ( )}c is ceil(2{circumflex over ( )}c*R), target information bit lengths that correspond to N and that are of the first Ma,N 1 segments in Ma,N segments whose segment code lengths are 2{circumflex over ( )}a are ceil(2{circumflex over ( )}a*R), and a target information bit length of an (Ma,N)th segment in the Ma,N segments is
where the (Ma,N)th segment is an Sth segment in the S segments, and a<c≤b.
Optionally, the determining a target information bit length of each segment based on the code rate and a segment code length of each segment in the S segments includes: determining a reference information bit length of each segment; and determining the target information bit length of each segment based on the reference information bit length of each segment and the segment quantity of each type of segments.
It should be noted that in this embodiment of this application, the reference information bit length of each segment is determined first, and then the target information bit length of each segment is adjusted based on the reference information bit length and an actual requirement.
Optionally, the reference information bit length of the segment whose segment code length is 2{circumflex over ( )}c in the S segments is ceil(2{circumflex over ( )}c*R).
Optionally, the determining a target information bit length of each segment based on the code rate and a segment code length of each segment in the S segments includes: if
determining that a reference information bit length that corresponds to N and that is of a segment whose segment code length is 2{circumflex over ( )}c is ceil(2{circumflex over ( )}c*R), where a≤c≤b; or if
determining that a reference information bit length that corresponds to N and that is of a segment whose segment code length is 2{circumflex over ( )}c is ceil(2{circumflex over ( )}c*R), reference information bit lengths of the first Ma,N−1 segments in Ma,N segments are ceil(2{circumflex over ( )}a*R), and a reference information bit length of an (Ma,N)th segment in the Ma,N segments is
where the (Ma,N)th segment is an Sth segment in the S segments, and a<c≤b; and determining the target information bit length of each segment based on the reference information bit length of each segment and the segment quantity of each type of segments.
Optionally, the determining the target information bit length of each segment based on the reference information bit length of each segment and the segment quantity of each type of segments includes: determining the target information bit length of each segment according to an allocation principle. The allocation principle is that on the basis of the reference information bit length of each segment, a first information bit length is totally added to f segments whose segment code lengths are the largest in the S segments, h segments whose segment code lengths are not the largest in the S segments are reduced by totally the first information bit length, a segment with a smaller segment code length in the segments whose segment code lengths are not the largest has a smaller segment code rate, and a sum of target information bit lengths of the S segments is K0, where f and h are positive integers.
It should be noted that a segment with a larger segment code length has better performance in a case of a same segment code rate. In this embodiment of this application, based on the reference information bit length, the target information bit length of each segment is adjusted, so that segment code rates of the segments whose segment code lengths are the largest in the S segments are increased, and segment code rates of the segments whose segment code lengths are not the largest in the S segments are decreased, thereby properly improving system performance of the segments whose segment code lengths are the largest, degrading system performance of the segments whose segment code lengths are not the largest, and implementing overall improvement of system performance. In addition, the segments whose segment code lengths are not the largest are segments of packet trailers of the S segments, and a segment having a smaller segment code length is more backward. Therefore, information bit lengths of the segments whose segment code lengths are not the largest may be adjusted, so that a segment with a smaller segment code length in the segments whose segment code lengths are not the largest has a smaller segment code rate. This improves overall system performance, and can further reduce the delay of decoding and reporting.
Optionally, the determining the target information bit length of each segment based on the reference information bit length of each segment and the segment quantity of each type of segments includes: determining a target information bit length of a first segment, where the target information bit length of the first segment is equal to a reference information bit length of the first segment plus a second information bit length, and the first segment is a segment whose segment code length is the largest in the S segments; and determining a target information bit length of a second segment, where the target information bit length of the second segment is equal to a reference information bit length of the second segment minus a third information bit length, and the second segment is a segment whose segment code length is not the largest in the S segments. In the S segments, h segments whose segment code lengths are not the largest are reduced by totally f times of the second information bit length, and a segment with a smaller segment code length in the segments whose segment code lengths are not the largest has a smaller segment code rate, where a sum of target information bit lengths of the S segments is K0, f is a segment quantity of segments whose segment code lengths are the largest in the S segments, and h is a positive integer greater than or equal to 0.
Optionally, the determining the target information bit length of each segment based on the reference information bit length of each segment and the segment quantity of each type of segments includes: if a segment code length of a segment whose segment code length is the largest in the S segments is 2{circumflex over ( )}a, determining that a target information bit length of the segment whose segment code length is 2{circumflex over ( )}a is equal to a reference information bit length of the segment whose segment code length is 2{circumflex over ( )}a; or if a segment code length of a segment whose segment code length is the largest in the S segments is 2{circumflex over ( )}r, determining that a target information bit length of the segment whose segment code length is 2{circumflex over ( )}r is a reference information bit length of the segment whose segment code length is 2{circumflex over ( )}r plus
and a target information bit length of a segment whose segment code length is 2{circumflex over ( )}c is a reference information bit length of the segment whose segment code length is 2{circumflex over ( )}c minus ∂c*Mr,N, where a≤c<r, ∂c is a proportion parameter, and ∂c is a positive integer.
Optionally, 0<∂c+1≤2∂c.
It should be noted that 0<∂c+1≤2∂c, so that the segment code rates of the segments whose segment code lengths are not the largest are in a decreasing trend.
For example, if the minimum segment code length is 128, and the maximum segment code length is 1024, it is determined, based on the minimum segment code length and the maximum segment code length, that the four types of segment code lengths are 1024, 512, 256, and 128. The value of N is 2048, the value of K0 is 1024, and the code rate is 0.5. It can be learned from derivation of the solution in this embodiment of this application that the segment quantities that correspond to N and that are of the four types of segments are 1, 1, 1, and 2. It is assumed that values of ∂7, ∂8, and ∂9 are 2, 4, and 6. In this case, information bit lengths of the segments whose segment code lengths are 1024 are 526, information bit lengths of the segments whose segment code lengths are 512 are 250, information bit lengths of the segments whose segment code lengths are 256 are 124, and information bit lengths of the segments whose segment code lengths are 128 are 26. Segment code rates of the four types of segments are 0.5137, 0.4883, 0.4844, 0.4844, and 0.4844. Therefore, it can be learned that the segment code lengths of the four types of segments are in a decreasing trend, and the segment code rates of the four types of segments are also in a decreasing trend.
Based on the foregoing example,
Based on the foregoing example, the value of K0 is 1024, and the code rate is 0.5. Under same network parameters, segmentation is performed based on the first segmentation manner, a to-be-encoded information sequence is divided into two parts, an information bit length of a second segment is 512, and a segment code length is 1024. The delay of decoding and reporting is approximately equal to 64 μs, which far exceeds the 15 μs delay limit of decoding and reporting. Under same network parameters, segmentation is performed based on the first segmentation manner, a to-be-encoded information sequence is divided into two parts, a segment code length of a second segment is 1024, and an information bit length is 512. The delay of decoding and reporting is also approximately equal to 64 μs, which far exceeds the 15 μs delay limit of decoding and reporting.
Based on the foregoing analysis, the solution proposed in this embodiment of this application can greatly optimize the delay of decoding and reporting.
It should be noted that in this embodiment of this application, when the segment quantities Mb,N of the segments whose segment code lengths are the largest are large, an information bit length added for the segments whose segment code lengths are the largest in the S segments is excessively large. In addition, the information bit length reduced for the segments whose segment code lengths are not the largest in the S segments is excessively large.
Optionally, to resolve the foregoing problem, if Mb,N>T, and T is a positive integer, the determining the target information bit length of each segment based on the reference information bit length of each segment and the segment quantity of each type of segments includes: determining that target information bit lengths of the first T segments in Mb,N segments whose segment code lengths are 2{circumflex over ( )}b are a reference information bit length of the segment whose segment code length is 2{circumflex over ( )}b plus
target information bit lengths of the last Mb,N−T segments in the Mb,N segments are equal to the reference information bit length of the segment whose segment code length is 2{circumflex over ( )}b, and a target information bit length of a segment whose segment code length is 2{circumflex over ( )}c is a reference information bit length of the segment whose segment code length is 2{circumflex over ( )}c minus ∂c*T, where a≤c<b, ∂c is a positive integer, and ∂c+1>∂c.
It should be noted that, to resolve the foregoing problem, in this embodiment of this application, information bits are added for only the first T segments in the Mb,N segments whose segment code lengths are 2{circumflex over ( )}b, and the information bit length is properly reduced, with T as a reference amount, for the segments whose segment code lengths are not the largest. In this embodiment of this application, segment code rates of the first T segments are greater than segment code rates of the last Mb,N−T segments.
S505: Perform polar code encoding on the to-be-encoded information bits based on the target information bit length of each segment.
Optionally, the performing polar code encoding on the to-be-encoded information bits based on the target information bit length of each segment includes: orderly allocating the to-be-encoded information bits to the S segments based on the target information bit length of each segment, and performing polar code encoding on information bits of each segment.
Optionally, the performing polar code encoding on the to-be-encoded information bits based on the target information bit length of each segment includes: if
orderly allocating the to-be-encoded information bits to the S segments based on the target information bit length of each segment, and performing polar code encoding on information bits of each segment; or if
performing zero-padding on to-be-encoded information bits whose information bit length is K0, where the information bit length of the to-be-encoded information bits after zero-padding is
orderly allocating the to-be-encoded information bits after zero-padding to the S segments based on the target information bit length of each segment, and performing polar code encoding on information bits of each segment.
It may be understood that in this embodiment of this application, a round up operation is used in a process of determining the target information bit length of each segment, so that the sum of the target information bit lengths of the S segments corresponding to N is greater than the length of the to-be-encoded information bits. In this embodiment of this application, through a zero-padding operation, the length of the to-be-encoded information bits after zero-padding is equal to the sum of the target information bit lengths of the S segments. This helps subsequently perform polar code encoding on each segment.
Optionally, the performing zero-padding on to-be-encoded information bits whose information bit length is K0 includes: performing zero-padding at a preset location in the to-be-encoded information bits whose information bit length is K0.
Optionally, zero-padding is performed at a front end of the to-be-encoded information bits whose information bit length is K0, or zero-padding is performed at a tail end of the to-be-encoded information bits whose information bit length is K0.
In this embodiment of this application, the segments of the b−a+1 types of segment code lengths are determined based on the minimum segment code length and the maximum segment code length, the value of the minimum segment code length is 2{circumflex over ( )}a, and the value of the maximum segment code length is 2{circumflex over ( )}b; and the code length N after encoding is divided into the S segments based on the minimum segment code length and the b−a+1 types of segment code lengths of the segments, the segment code length of the ith segment in the S segments is greater than or equal to the segment code length of the (i+1)th segment in the S segments, and the to-be-encoded information bits are allocated to the S segments for polar code encoding. In the proposed solution, rate matching does not need to be performed, so that overheads brought by rate matching are avoided. In addition, segment code lengths of segments of a packet trailer of a data packet after segmentation are in a decreasing trend. This can effectively improve performance of a low-power communication system when a low delay requirement is met. In addition, in this embodiment of this application, based on the reference information bit length, the target information bit length of each segment is adjusted, so that the segment code rates of the segments whose segment code lengths are the largest in the S segments are increased, and the segment code rates of the segments whose segment code lengths are not the largest in the S segments are decreased, thereby improving the overall system performance. In addition, the information bit lengths of the segments whose segment code lengths are not the largest are adjusted, so that a segment with a smaller segment code length in the segments whose segment code lengths are not the largest has a smaller segment code rate. This improves the overall system performance, can further reduce the delay of decoding and reporting, matches an existing communication system, and reduces modifications to the existing system.
The communication interface 703 may be configured to perform communication between the terminal device 700 and another communication device, for example, a network device. Specifically, the network device may be the network device 700 shown in
In some embodiments of this application, the transmitter 706 and the receiver 705 may be considered as a wireless modem. In the terminal device 700, there may be one or more transmitters 706 and receivers 705. The antenna 708 may be configured to convert electromagnetic energy in a transmission line into an electromagnetic wave in free space, or convert an electromagnetic wave in free space into electromagnetic energy in a transmission line. The coupler 707 is configured to divide the mobile communication signal received by the antenna 708 into a plurality of channels, and allocate the plurality of channels of signals to the plurality of receivers 705.
In addition to the transmitter 706 and the receiver 705 shown in
The terminal device 700 may further include input/output modules. The input/output modules may be configured to implement interaction between the terminal device 700 and a terminal device/an external environment, and may mainly include an audio input/output module, a key input module, a display, and the like. Specifically, the input/output module may further include a camera, a touchscreen, a sensor, and the like. All the input/output modules communicate with the terminal device processor 701 through the terminal device interface 709.
The memory 702 is coupled to the terminal device processor 701, and is configured to store various software programs and/or a plurality of groups of instructions. Specifically, the memory 702 may include a high-speed random access memory, and may also include a nonvolatile memory, for example, one or more magnetic disk storage devices, a flash memory device, or another nonvolatile solid-state storage device. The memory 702 may store an operating system (referred to as a system for short below), for example, an embedded operating system such as Android, iOS, Windows, or Linux. The memory 702 may further store a network communication program. The network communication program may be used to communicate with one or more additional devices, one or more terminal devices, and one or more network devices.
In some embodiments of this application, the memory 702 may be configured to store an implementation program of the polar code segment encoding method provided in one or more embodiments of this application on the terminal device 700 side. For implementation of the polar code segment encoding method provided in one or more embodiments of this application, refer to the foregoing embodiments.
The terminal device processor 701 may be configured to read computer-readable instructions and execute the computer-readable instructions. Specifically, the terminal device processor 701 may be configured to call a program stored in the memory 702, for example, the implementation program of the polar code segment encoding method provided in one or more embodiments of this application on the terminal device 700 side, and execute instructions included in the program.
It may be understood that the terminal device 700 may be the terminal device 101 in the communication system 100 shown in
It should be noted that the terminal device 700 shown in
The code length determining unit 801 is configured to determine, based on a length of to-be-encoded information bits and a code rate, a code length N after encoding, where N is a positive integer.
The reservation unit 802 is configured to determine, based on N, a minimum segment code length, and a maximum segment code length, a reserved segment quantity of each type of segments in segments of b−a+1 types of segment code lengths and a reserved code length corresponding to N, where a value of the minimum segment code length is 2{circumflex over ( )}a, a value of the maximum segment code length is 2{circumflex over ( )}b, the b−a+1 types of segment code lengths of the segments are 2{circumflex over ( )}c, a, b, and c are positive integers, a<b, and a≤c≤b.
The segment quantity determining unit 803 is configured to orderly determine a segment quantity of each type of segments based on N, the reserved code length, a segment code length of each type of segments, and the reserved segment quantity of each type of segments and based on the segment code lengths from the largest to the smallest, where a sum of segment quantities of all types of segments is equal to S, N corresponds to S segments, and a segment code length of an ith segment in the S segments is greater than or equal to a segment code length of an (i+1)th segment in the S segments.
The information bit length determining unit 804 is configured to determine a target information bit length of each segment based on the code rate and a segment code length of each segment in the S segments.
The encoding unit 805 is configured to perform polar code encoding on the to-be-encoded information bits based on the target information bit length of each segment.
Optionally, the code length determining unit 801 is specifically configured to: determine a theoretical code length L based on the length K0 of the to-be-encoded information bits and the code rate R, where a value of the theoretical code length is ceil(K0/R), and ceil(x) represents rounding up χ; and determine N based on the theoretical code length and the minimum segment code length 2{circumflex over ( )}a, where a value of N is ceil(L/2{circumflex over ( )}a)*2{circumflex over ( )}a.
Optionally, the reservation unit 802 is specifically configured to: determine the segments of the b−a+1 types of segment code lengths based on the minimum segment code length and the maximum segment code length, where the value of the minimum segment code length is 2{circumflex over ( )}a, the value of the maximum segment code length is 2{circumflex over ( )}b, the b−a+1 types of segment code lengths of the segments are 2{circumflex over ( )}c, a, b, and c are positive integers, a<b, and a≤c≤b; orderly determine a reserved segment quantity of an ith type of segments in the b−a+1 types of segments based on the b−a+1 types of segment code lengths of the segments from the smallest to the largest and based on N and the segment code length of each type of segments in the b−a+1 types of segments, where the reserved segment quantity of the ith type of segments is greater than or equal to a reserved segment quantity of an (i+1)th type of segments in the b−a+1 types of segments; and determine the reserved code length corresponding to N based on the reserved segment quantity of each type of segments and the segment code length of each type of segments.
Optionally, the reservation unit 802 is specifically configured to: if N<p*2{circumflex over ( )}a, determine that a reserved segment quantity that corresponds to N and that is of segments whose segment code lengths are 2{circumflex over ( )}a is
and a reserved segment quantity that corresponds to N and that is of segments whose segment code lengths are 2{circumflex over ( )}j, where a<j≤b, and p≥2; if
determine that a reserved segment quantity that corresponds to N and that is of segments whose segment code lengths are 2{circumflex over ( )}j is 0, a reserved segment quantity that corresponds to N and that is of segments whose segment code lengths are 2{circumflex over ( )}c+1 is
and a reserved segment quantity that corresponds to N and that is of segments whose segment code lengths are 2{circumflex over ( )}v is P, where a≤c≤b−1, a≤v≤c, and c+1<j≤b; or if
determine that the reserved segment quantity of each type of segments is P; and determine the reserved code length Nres based on the reserved segment quantity of each type of segments, where
and mc,N represents a reserved segment quantity that corresponds to N and that is of segments whose segment code lengths are 2{circumflex over ( )}c.
Optionally, the reservation unit 802 is specifically configured to: if N<2{circumflex over ( )}a, determine that the reserved segment quantity of each type of segments is 0; if
determine that a reserved segment quantity of segments whose segment code lengths are 2{circumflex over ( )}j is 0, and a reserved segment quantity of segments whose segment code lengths are 2{circumflex over ( )}v is 1, where a≤c≤b−1, a≤v≤c, and c<j≤b; or if
determine that the reserved segment quantity of each type of segments is 1; and determine the reserved code length Nres, based on the reserved segment quantity of each type of segments, where
and mc,N represents a reserved segment quantity that corresponds to N and that is of segments whose segment code lengths are 2{circumflex over ( )}c.
Optionally, the segment quantity determining unit 803 includes a remaining segment quantity determining unit 803 and a segment quantity determining subunit 803.
The remaining segment quantity determining unit 803 is configured to orderly determine a remaining segment quantity of each type of segments based on N, the reserved code length, and the segment code length of each type of segments and based on the segment code lengths from the largest to the smallest, where the remaining segment quantity of each type of segments is a remaining segment quantity of each type of segments corresponding to a remaining code length that is obtained by subtracting the reserved code length from N.
The segment quantity determining subunit 803 is configured to determine the segment quantity of each type of segments based on the reserved segment quantity of each type of segments and the remaining segment quantity of each type of segments.
Optionally, the remaining segment quantity determining unit 803 is specifically configured to: if N<2{circumflex over ( )}a, determine that a remaining segment quantity Zc,N that corresponds to N and that is of the segments whose segment code lengths are 2{circumflex over ( )}c is 0, and a remaining segment quantity Za,N that corresponds to N and that is of the segments whose segment code lengths are 2{circumflex over ( )}a is 1, where a<c≤b; or if N≥2{circumflex over ( )}a, orderly determine the remaining segment quantity of each type of segments based on the segment code lengths from the largest to the smallest, and determine that a remaining segment quantity Zb,N that corresponds to N and that is of segments whose segment code lengths are 2{circumflex over ( )}b is
and a remaining segment quantity Zc,N that corresponds to N and that is of the segments whose segment code lengths are 2{circumflex over ( )}c is
where a≤c<b, and floor(x) represents rounding down χ.
Optionally, the segment quantity determining subunit 803 is specifically configured to: determine a segment quantity Mc,N that corresponds to N and that is of the segments whose segment code lengths are 2{circumflex over ( )}c, where Mc,N=mc,N+zc,N, and a≤c≤b.
Optionally, the information bit length determining unit 804 is specifically configured to: determine that a target information bit length of a segment whose segment code length is 2{circumflex over ( )}c in the S segments is ceil(2{circumflex over ( )}c*R).
Optionally, the information bit length determining unit 804 is specifically configured to: if
determine that a target information bit length of a segment whose segment code length is 2{circumflex over ( )}c is Ceil(2{circumflex over ( )}c*R), where a≤c≤b; or if
determine that a target information bit length of a segment whose segment code length is 2{circumflex over ( )}c is ceil(2{circumflex over ( )}c*R), target information bit lengths that correspond to N and that are of the first Ma,N−1 segments in Ma,N segments whose segment code lengths are 2{circumflex over ( )}a are ceil(2{circumflex over ( )}a*R), and a target information bit length of an (Ma,N)th segment in the Ma,N segments is
where the (Ma,N)th segment is an Sth segment in the S segments, and a<c≤b.
Optionally, the information bit length determining unit 804 includes a reference information bit length determining unit 804 and a target information bit length determining unit 804.
The reference information bit length determining unit 804 is configured to determine a reference information bit length of each segment.
The target information bit length determining unit 804 is configured to determine the target information bit length of each segment based on the reference information bit length of each segment and the segment quantity of each type of segments.
Optionally, the reference information bit length determining unit 804 is specifically configured to: if
determine that a reference information bit length that corresponds to N and that is of a segment whose segment code length is 2{circumflex over ( )}c is ceil(2{circumflex over ( )}c*R) where a≤c≤b; or if
determine that a reference information bit length that corresponds to N and that is of a segment whose segment code length is 2{circumflex over ( )}c is ceil(2{circumflex over ( )}c*R) reference information bit lengths of the first Ma,N−1 segments in Ma,N segments are ceil(2{circumflex over ( )}a*R), and a reference information bit length of an (Ma,N)th segment in the Ma,N segments is
where the (Ma,N)th segment is an Sth segment in the S segments, and a<c≤b.
Optionally, the reference information bit length of the segment whose segment code length is 2{circumflex over ( )}c in the S segments is ceil(2{circumflex over ( )}a*R).
Optionally, the target information bit length determining unit 804 is specifically configured to determine the target information bit length of each segment according to an allocation principle. The allocation principle is that on the basis of the reference information bit length of each segment, a first information bit length is added to f segments whose segment code lengths are the largest in the S segments, h segments whose segment code lengths are not the largest in the S segments are reduced by totally the first information bit length, a segment code rate of a (j+1)th segment in the h segments is less than or equal to a segment code rate of a jth segment in the h segments, a segment code length of the (+1)th segment is less than or equal to a segment code length of the jth segment, and a sum of target information bit lengths of the S segments is K0, where f and h are positive integers, and a segment code rate of a segment=a target information bit length of the segment/a segment code length of the segment.
Optionally, the target information bit length determining unit 804 is specifically configured to: determine a target information bit length of a first segment, where the target information bit length of the first segment is equal to a reference information bit length of the first segment plus a second information bit length, and the first segment is a segment whose segment code length is the largest in the S segments; and determine a target information bit length of a second segment, where the target information bit length of the second segment is equal to a reference information bit length of the second segment minus a third information bit length, and the second segment is a segment whose segment code length is not the largest in the S segments. In the S segments, h segments whose segment code lengths are not the largest are reduced by totally f times of the second information bit length, where a segment code rate of a (j+1)th segment in the h segments is less than or equal to a segment code rate of a jth segment in the h segments, a segment code length of the (j+1)th segment is less than or equal to a segment code length of the jth segment, a sum of target information bit lengths of the S segments is K0, f is a segment quantity of segments whose segment code lengths are the largest in the S segments, and h is a positive integer greater than or equal to 0.
Optionally, the target information bit length determining unit 804 is specifically configured to: if a segment code length of a segment whose segment code length is the largest in the S segments is 2{circumflex over ( )}a, determine that a target information bit length of the segment whose segment code length is 2{circumflex over ( )}a is equal to a reference information bit length of the segment whose segment code length is 2{circumflex over ( )}a; or if a segment code length of a segment whose segment code length is the largest in the S segments is 2{circumflex over ( )}r, determine that a target information bit length of the segment whose segment code length is 2{circumflex over ( )}r is a reference information bit length of the segment whose segment code length is 2{circumflex over ( )}r plus
and a target information bit length of a segment whose segment code length is 2{circumflex over ( )}c is a reference information bit length of the segment whose segment code length is 2{circumflex over ( )}c minus ∂c*Mr,N, where a≤c<r, ∂c is a proportion parameter, and ∂c is a positive integer.
Optionally, 0≤∂c+1≤2∂c.
Optionally, if Mb,N>T, and T is a positive integer, the target information bit length determining unit 804 is specifically configured to: determine that target information bit lengths of the first T segments in Mb,N segments whose segment code lengths are 2{circumflex over ( )}b are a reference information bit length of the segment whose segment code length is 2{circumflex over ( )}b plus
target information bit lengths of the last Mb,N−T segments in the Mb,N segments are equal to the reference information bit length of the segment whose segment code length is 2{circumflex over ( )}b, and a target information bit length of a segment whose segment code length is 2{circumflex over ( )}c is a reference information bit length of the segment whose segment code length is 2{circumflex over ( )}c minus ∂c*T, where a≤c<b, ∂c is a positive integer, and ∂c+1>∂c.
Optionally, the encoding unit 805 is specifically configured to: orderly allocate the to-be-encoded information bits to the S segments based on the target information bit length of each segment, and perform polar code encoding on information bits of each segment.
Optionally, the encoding unit 805 is specifically configured to: if
orderly allocate the to-be-encoded information bits to the S segments c=a based on the target information bit length of each segment, and perform polar code encoding on information bits of each segment; or if
perform zero-padding on to-be-encoded information bits whose information bit length is K0, where the information bit length of the to-be-encoded information bits after zero-padding is
orderly allocate the to-be-encoded information bits after zero-padding to the S segments based on the target information bit length of each segment, and perform polar code encoding on information bits of each segment.
An embodiment of this application further provides a chip system 900, including one or more processors 901 and an interface circuit 902. The processor 901 is connected to the interface circuit 902.
The processor 901 may be an integrated circuit chip and has a signal processing capability. In an implementation process, steps in the foregoing methods can be implemented by a hardware integrated logical circuit in the processor 901, or by instructions in a form of software. The processor 901 may be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA) or another programmable logic device, a discrete gate or a transistor logic device, or a discrete hardware component. The processor 901 may implement or perform the methods and steps that are disclosed in the embodiments of this application. The general-purpose processor may be a microprocessor, any conventional processor, or the like.
The interface circuit 902 may send or receive data, instructions, or information. The processor 901 may process data, instructions, or other information received through the interface circuit 902, and send, through the interface circuit 902, information obtained after processing.
Optionally, the chip system further includes a memory 903. The memory 903 may include a read-only memory and a random access memory, and provide operation instructions and data for the processor. A part of the memory 903 may further include a non-volatile random access memory (NVRAM).
Optionally, the memory 903 stores an executable software module or a data structure, and the processor 903 may perform a corresponding operation by invoking an operation instruction stored in the memory (where the operation instruction may be stored in an operating system).
Optionally, the chip system may be used in the terminal device or the Bluetooth headset related to the embodiments of this application.
An embodiment of this application further provides a computer-readable storage medium. The method described in the foregoing method embodiments may be all or partially implemented by using software, hardware, firmware, or any combination thereof. If implemented in software, the function may be stored as one or more instructions or code on the computer-readable medium or transmitted on a computer-readable medium. The computer-readable medium may include a computer storage medium and a communication medium, and may further include any medium capable of transferring a computer program from one place to another. The storage medium may be any available medium accessible to a computer.
In an optional design, the computer-readable medium may include a RAM, a ROM, an EEPROM, a CD-ROM or another optical disc memory, a magnetic disk memory or another magnetic storage device, or any other medium that may be used for carrying or required program code is stored in a form of an instruction or a data structure, and is accessible to a computer. In addition, any connection may be appropriately referred to as a computer-readable medium. For example, if software is transmitted from a website, a server, or another remote source by using a coaxial cable, a fiber optical cable, a twisted pair, a digital subscriber line (DSL), or wireless technologies (for example, infrared ray, radio, and microwave), the coaxial cable, the fiber optical cable, the twisted pair, the DSL, or the wireless technologies such as infrared ray, radio and microwave are included in the definition of a medium. Disks and discs as used herein include optical discs (CDs), laser discs, optical discs, digital versatile discs (DVDs), floppy disks, and Blu-ray discs, where disks typically reproduce data magnetically, and discs reproduce data optically using lasers. The combination described above should also be included in the scope of the computer-readable medium.
An embodiment of this application further provides a computer program product. The method described in the foregoing method embodiments may be all or partially implemented by using software, hardware, firmware, or any combination thereof. If implemented in software, it may be implemented completely or partially in the form of a computer program product. The computer program product includes one or more computer instructions. When the foregoing computer program instructions are loaded and executed on the computer, the procedure or functions described according to the foregoing method embodiments are all or partially generated. The foregoing computer may be a general-purpose computer, a dedicated computer, a computer network, a network device, a user device, or other programmable apparatuses.
In conclusion, the foregoing embodiments are merely intended for describing the technical solutions of this application, but not for limiting this application. Although this application is described in detail with reference to the foregoing embodiments, a person of ordinary skill in the art should understand that modifications to the technical solutions recorded in the foregoing embodiments or equivalent replacements to some technical features thereof may still be made, without departing from the scope of the technical solutions of the embodiments of this application.
Number | Date | Country | Kind |
---|---|---|---|
201910927225.4 | Sep 2019 | CN | national |
This application is a continuation of International Application No. PCT/CN2020/113950, filed on Sep. 8, 2020, which claims priority to Chinese Patent Application No. 201910927225.4, filed on Sep. 27, 2019. The disclosures of the aforementioned applications are hereby incorporated by reference in their entireties.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/CN2020/113950 | Sep 2020 | US |
Child | 17704869 | US |