Embodiments of this application relate to the field of communications technologies, and in particular, to a retransmission method and an apparatus.
As a most basic radio access technology, channel coding plays a vital role in ensuring reliable data transmission. In an existing wireless communication system, a turbo code, a low-density parity-check (LDPC) code, and a polar code are usually used for channel coding. The turbo code cannot support information transmission at a very low or very high bit rate. For medium/short packet transmission, the turbo code and the LDPC code are also difficult to achieve ideal performance at limited code lengths due to coding and decoding features of the turbo code and the LDPC code. In terms of implementation, the turbo code and the LDPC code have relatively high computational complexity in coding and decoding implementation processes. It is theoretically proved that the polar code is a good code that can obtain a Shannon capacity and that has relatively simple coding and decoding complexity. Therefore, the polar code is more widely used. In a 5th generation (5G) communication system, the polar code is determined as a control channel coding manner. Therefore, a coding procedure of the polar code is specified in detail in a standard, and includes specific processes, such as a process of determining whether segmentation is to be performed, a process of determining a rate matching manner, a process of mapping information bits and check bits (including cyclic redundancy check bits and/or parity check bits) on polarized channels, a coding process, and a rate matching process.
However, in the 5G standard, the polar code is used for only a control channel, and therefore does not relate to a mechanism design of hybrid automatic repeat request (HARQ). In a data channel, introduction of HARQ effectively enhances transmission reliability to increase a system throughput. Therefore, how to design a proper HARQ solution for a coding mechanism of the polar code becomes a problem that urgently needs to be resolved in a subject of applying the polar code to data channel transmission.
One or more embodiments provide a retransmission method and an apparatus that are applied to wireless communication, and have an advantage of simple implementation.
Specific technical solutions provided in one or more embodiments are as follows:
According to a first aspect, a retransmission method is provided, including:
a sending apparatus obtains a to-be-coded bit sequence that includes K to-be-coded bits, where K is a positive integer;
performs polar coding on the to-be-coded sequence to obtain a coded first bit sequence, where a length of the first bit sequence is N0, and determines an initial transmission version RV0;
determines a length E1 of a retransmission version RV1;
determines the retransmission version RV1 based on an initial transmission bit rate R0; and
sends RV1.
In some embodiments, on one hand, a design in an existing standard is reused as much as possible, and on the other hand, advantages of an existing HARQ mechanism are absorbed. Therefore, implementation is simple, and performance can also meet a requirement.
In some embodiments, the determining the retransmission version RV1 based on an initial transmission bit rate R0 includes:
when R0 is less than or equal to a preset bit rate threshold R_threshold, obtaining RV1 by reading E1 bits from a first circular buffer for initial transmission; or
when R0 is greater than R_threshold, generating a coded second bit sequence in an incremental redundancy IR manner, and obtaining RV1 based on the second bit sequence, where a length of the second bit sequence is N1, and N1=2*N0.
In some embodiments, the obtaining RV1 based on the second bit sequence is:
obtaining a sub-channel set Q1, where Q1 includes K elements, and the K elements are sequence numbers of K sub-channels used to place the K to-be-coded bits in initial transmission;
obtaining a sub-channel set Q2, where Q2(i)=Q1(i)+N0, i=0, 1, . . . , K−1, and N0 is a mother code length of a polar code used during initial transmission;
obtaining a sub-channel set Q3, where Q3(i)<N0 or Q3(i)∈Q2, and i=0, 1, . . . , K−1;
determining an extended to-be-coded bit set Qext, where an element in Qext is an element less than N0 in Q3;
determining a copy bit set Qchk=Q2\(Q3\Qext); and
coding the K to-be-coded bits based on Q2, Q3, Qext, and Qchk by using a polar code with a mother code length N1, to obtain the second bit sequence.
In some embodiments, Q3 is determined based on a reliability sorting sequence of a length N1 and a rate matching manner for retransmission.
In some embodiments, the coding the K to-be-coded bits based on Q2, Q3, Qext, and Qchk by using a polar code with a mother code length N1 includes:
selecting bit values on some or all sub-channels in Qchk and copying the bit values to corresponding sub-channels in Qext one by one.
In some embodiments, the obtaining RV1 based on the second bit sequence is:
obtaining RV1 from the first N0 bits of the second bit sequence based on the rate matching manner for retransmission.
In some embodiments, the method further includes:
the sending apparatus cascades RV0 and RV1 and inputs a cascaded version to a second circular buffer; and
the sending apparatus performs retransmission based on RV0 and RV1.
According to a second aspect, a retransmission method is provided, including:
a receiving apparatus receives a receiving signal that includes information about K to-be-coded bits, where a mother code length corresponding to the receiving signal is N0, and determines an initial transmission version RV0;
determines a length E1 of a retransmission version RV1;
determines the retransmission version RV1 based on an initial transmission bit rate R0; and
performs decoding based on RV0 and RV1.
In some embodiments, the determining the retransmission version RV1 based on an initial transmission bit rate R0 includes:
when R0 is less than or equal to a preset bit rate threshold R_threshold, obtaining RV1 by reading E1 bits from a first circular buffer for initial transmission; or
when R0 is greater than R_threshold, generating a coded second bit sequence in an incremental redundancy IR manner, and obtaining RV1 based on the second bit sequence, where a length of the second bit sequence is N1, and N1=2*N0.
In some embodiments, the obtaining RV1 based on the second bit sequence is:
obtaining a sub-channel set Q1, where Q1 includes K elements, and the K elements are sequence numbers of K sub-channels used to place the K to-be-coded bits in initial transmission;
obtaining a sub-channel set Q2, where Q2(i)=Q1(i)+N0, i=0, 1, . . . , K−1, and N0 is a mother code length of a polar code used during initial transmission;
obtaining a sub-channel set Q3, where Q3(i)<N0 or Q3(i)∈Q2, and i=0, 1, . . . , K−1;
determining an extended to-be-coded bit set Qext, where an element in Qext is an element less than N0 in Q3;
determining a copy bit set Qchk=Q2\(Q3\Qext); and
coding the K to-be-coded bits based on Q2, Q3, Qext, and Qchk by using a polar code with a mother code length N1, to obtain the second bit sequence.
In some embodiments, Q3 is determined based on a reliability sorting sequence of a length N1 and a rate matching manner for retransmission.
In some embodiments, the coding the K to-be-coded bits based on Q2, Q3, Qext, and Qchk by using a polar code with a mother code length N1 includes:
selecting bit values on some or all sub-channels in Qchk and copying the bit values to corresponding sub-channels in Qext one by one.
In some embodiments, the obtaining RV1 based on the second bit sequence is:
obtaining RV1 from the first N0 bits of the second bit sequence based on the rate matching manner for retransmission.
In some embodiments, the method further includes:
the receiving apparatus cascades RV0 and RV1 and inputs a cascaded version to a second circular buffer; and
the receiving apparatus performs retransmission based on RV0 and RV1.
According to a third aspect, a sending apparatus is provided. The apparatus has a function of implementing the method in any one of the first aspect and the possible designs of the first aspect. The function may be implemented by hardware, or may be implemented by hardware executing corresponding software. The hardware or the software includes one or more modules corresponding to the foregoing function.
In some embodiments, when the function is partially or completely implemented by hardware, the sending apparatus includes: an input interface circuit, configured to obtain a to-be-transmitted transport block; a logic circuit, configured to execute the behavior in any one of the first aspect and the possible designs of the first aspect; and an output interface circuit, configured to output a coded sequence or a retransmission sequence.
In some embodiments, the sending apparatus may be a chip or an integrated circuit.
In some embodiments, when the function is partially or completely implemented by software, the sending apparatus includes: a memory, configured to store a program; and a processor, configured to execute the program stored in the memory. When the program is executed, the sending apparatus may implement the method according to any one of the first aspect and the possible designs of the first aspect.
In some embodiments, the memory may be a physically independent unit, or may be integrated with the processor.
In some embodiments, when the function is partially or completely implemented by software, the sending apparatus includes a processor. A memory configured to store a program is located outside the sending apparatus, and the processor is connected to the memory by using a circuit/wire, to read and execute the program stored in the memory.
In some embodiments, the apparatus is a network device or a terminal.
According to a fourth aspect, a receiving apparatus is provided. The apparatus has a function of implementing the method in any one of the second aspect and the possible designs of the second aspect. The function may be implemented by hardware, or may be implemented by hardware executing corresponding software. The hardware or the software includes one or more modules corresponding to the foregoing function.
In some embodiments, when the function is partially or completely implemented by hardware, the receiving apparatus includes: an input interface circuit, configured to obtain a receiving signal; a logic circuit, configured to execute the behavior in any one of the second aspect and the possible designs of the second aspect; and an output interface circuit, configured to output a decoding result.
In some embodiments, the receiving apparatus may be a chip or an integrated circuit.
In some embodiments, when the function is partially or completely implemented by software, the receiving apparatus includes: a memory, configured to store a program; and a processor, configured to execute the program stored in the memory. When the program is executed, the sending apparatus may implement the method according to any one of the second aspect and the possible designs of the second aspect.
In some embodiments, the memory may be a physically independent unit, or may be integrated with the processor.
In some embodiments, when the function is partially or completely implemented by software, the receiving apparatus includes a processor. A memory configured to store a program is located outside the receiving apparatus, and the processor is connected to the memory by using a circuit/wire, to read and execute the program stored in the memory.
In some embodiments, the apparatus is a network device or a terminal.
According to a fifth aspect, a computer storage medium is provided, storing a computer program. The computer program includes instructions used to execute the method according to any one of the first aspect and the possible designs of the first aspect.
According to a sixth aspect, a computer storage medium is provided, storing a computer program. The computer program includes instructions used to execute the method according to any one of the second aspect and the possible designs of the second aspect.
According to a seventh aspect, an embodiment provides a computer program product that includes instructions. When the computer program product is run on a computer, the computer is enabled to execute the methods in the foregoing aspects.
According to an eighth aspect, a wireless device is provided, including a sending apparatus configured to implement any one of the first aspect and the possible designs of the first aspect and a transceiver.
The transceiver is configured to receive or send a signal.
In some embodiments, the wireless device is a terminal or a network device.
According to a ninth aspect, a wireless device is provided, including a receiving apparatus configured to implement any one of the second aspect and the possible designs of the second aspect and a transceiver.
The transceiver is configured to receive or send a signal.
In some embodiments, the wireless device is a terminal or a network device.
The following describes in detail embodiments with reference to accompanying drawings.
When a polar code is considered to be extended to a data channel, one idea is reusing a polar code coding method in an existing 5G standard as much as possible, for example, a nested feature between mother code sequences of different lengths and a selection principle of a rate matching manner. Certainly, this is not limited in this application.
The embodiments provide a polar code coding method, including new rate matching and HARQ methods.
To facilitate understanding of the embodiments, the following briefly describes the polar code.
In a coding policy of the polar code, useful information of a user is transmitted by using a noiseless channel, and agreed information is transmitted by using a pure noisy channel or no information is transmitted. The polar code is also a linear block code. A coding matrix of the polar code is GN, and a coding process of the polar code is x1N=u1NGN, where u1N=(u1, u2, . . . , uN) is a binary row vector, and a length of u1N=(u1, u2, . . . , uN) is N (a code length, where it can be learned that lengths of sequences x and u respectively obtained before and after coding are both N, and N is also referred to as a mother code length). GN is an N×N matrix, and GN=F2⊗(log
In some embodiments, GN further includes a transposed matrix BN, but this does not affect essence of polar coding. Therefore, this is not limited herein. A solution in which BN is not introduced is still used as an example in this application.
In the coding process of the polar code, one part of bits u1N in are used to carry information and are referred to as a set of information bits, and a set of indexes of these bits is denoted as A; and the other part of the bits are set to fixed values pre-agreed on by a receive end and a transmit end and are referred to as a frozen bit set or a set of frozen bits, and a set of indexes of the frozen bits is represented by a complementary set Ac of A. The coding process of the polar code is equivalent to x1N=uAGN(A)⊗uA
After the mother code length N is determined, a construction process of the polar code is a selection process of the set A. This determines performance of the polar code. The construction process of the polar code is usually as follows: It is determined, based on the mother code length N, that there are a total of N polarized sub-channels, respectively corresponding to N rows of the coding matrix. When rate matching is not considered, indexes of the first K polarized sub-channels with relatively high reliability are used as elements of the set A, and indexes corresponding to remaining (N−K) polarized sub-channels are used as elements of the set Ac of the indexes of the frozen bits. The set A determines locations of the information bits, and the set Ac determines locations of the frozen bits. A sequence number of a polarized sub-channel is a location index of an information bit or a frozen bit, namely, a location index u1N.
When rate matching is considered, namely, when puncturing or shortening is mainly considered, usually, N−E polarized sub-channels that need to be punctured or shortened (deleted) are first determined. Herein, E is a target code length, namely, a bit sequence length obtained after rate matching. Herein, the selected N−E polarized sub-channels are used to place frozen bits. In a 5G new radio (NR) standard, in a puncturing case, some polarized sub-channels referred to as pre-frozen polarized sub-channels are further additionally determined, and are also used to place frozen bits. Herein, a quantity of pre-frozen polarized sub-channels may be defined as P. P is greater than or equal to 0 (in a shortening case, it is clear that P is 0, and P may not need to be considered in this case). Then, K polarized sub-channels with relatively high reliability are selected from remaining E−P polarized sub-channels based on reliability, to place the K information bits. Certainly, E−P−K sub-channels with relatively low reliability may be first selected to place the frozen bits, and remaining K sub-channels are used to place the information bits. Reliability of any one of the K polarized sub-channels for placing the K information bits is higher than reliability of any one of the E−P−K sub-channels for placing the frozen bits. In this application, a value of P is not limited. P may be 0 even in a puncturing case, and P may be greater than 0 even in a shortening case. This does not affect implementation of the technical solutions. A coder and a decoder are consistent in a principle and a method for determining the K sub-channels for placing the K information bits. In addition, in the 5G NR standard, for selection of the N−E polarized sub-channels, a sequence obtained after sub-blocks (for example, 32 sub-blocks obtained through division) are interleaved is placed in a circular buffer (where the sequence is equivalent to a rate matching sequence). In a puncturing case, reading starts from an (N−E)th location in the circular buffer, and bits at the zeroth location to an (N−E−1)th location are discarded. In a shortening cases, reading starts from the zeroth location until an (E−1)th location in the circular buffer, and bits at an Eth location to an (N−1)th location are discarded. In this manner, a relationship between rate matching sequences of different mother code lengths is not considered.
It should be noted that the reliability relative relationship herein is based on a given reliability calculation manner. Different reliability calculation manners may cause a change in the reliability relative relationship between the polarized sub-channels, but correspond to a same method for selecting the polarized sub-channels for placing the information bits. Except in the 5G NR standard, an information bit may also be considered to be placed on the last punctured or shortened polarized sub-channel. This application imposes no limitation that the polarized sub-channels for placing the information bits need to be selected according to the 5G NR standard.
When a transport block size (TBS) of a data channel is excessively large, a transport block needs to be segmented. The solution in the foregoing description may be considered as an implementation of performing polar coding on each segment. A specific segmentation criterion is not limited in this application.
As shown in
The network device may be a device configured to communicate with a terminal device. For example, the network device may be an evolved NodeB (eNB or eNodeB) in an LTE system, may be a gNB in a 5G network, or may be a satellite in satellite communication, or a network side device in a future communication system. Alternatively, the network device may be a relay station, an access point, a vehicle-mounted device, or the like. In a device to device (D2D) communication system, a machine to machine (M2M) communication system, and an internet of vehicles system, the network device may be alternatively a terminal that functions as a base station.
The terminal may be user equipment (UE), an access terminal, a subscriber unit, a mobile station, a remote station, a remote terminal, a mobile device, a user terminal, a wireless communication device, a user agent, or a user apparatus. The access terminal may be a cellular phone, a cordless telephone set, a session initiation protocol (SIP) phone, a wireless local loop (WLL) station, a personal digital assistant (PDA), a handheld device with a wireless communication function, a to computing device, another processing device connected to a wireless modem, a vehicle-mounted device, a wearable device, a communicable device in the internet of everything, a terminal device in a future communication network, or the like.
Based on the communication system architecture shown in
In this case, when a polar code is used as a channel coding manner of a data channel, if an error occurs in initial transmission, how to perform retransmission? A HARQ solution of the polar code is not specified in an existing 3GPP protocol. Therefore, on one hand, existing 3GPP technologies, including rate matching solution selection and information bit selection principles, may be considered to be reused in an initial transmission solution of the data channel. However, because the data channel supports a relatively large transport block, Nmax definitely needs to be increased, and a corresponding reliability sorting sequence also needs to be designed. However, this does not fall within the scope of the present disclosure, and is not limited. On the other hand, herein, a retransmission method is first provided: When an error occurs in initial transmission, an incremental redundancy (IR) manner is used for first-time retransmission, and a chase combining (CC) manner is used for subsequent retransmission. This manner can use advantages of the IR manner and can also simplify a design. It is a relatively good compromise.
As shown in
Operation 310: A transmit end performs polar coding on an obtained to-be-coded bit sequence to obtain a coded first bit sequence, and obtains an initial transmission version RV0 based on a rate matching manner.
This step may be performed by using the technology of some approaches. For example, according to the 3GPP standard, the coded first bit sequence is interleaved and then an interleaved bit sequence is written into a first circular buffer. When an initial transmission bit rate R0 is less than or equal to 7/16, a puncturing rate matching manner is used. In this case, RV0 is the last E0 bits in the first circular buffer. When R0 is greater than 7/16, a shortening rate matching manner is used. In this case, RV0 is the first E0 bits in the first circular buffer. R0=K/E0, and E0 is a quantity of bits actually transmitted by using an air interface in initial transmission.
Operation 320: Determine a length E1 of a retransmission version RV1.
E1 is a quantity of bits that can be transmitted by using an air interface in first-time retransmission. A specific value determining method is the same as a method for determining E0.
Operation 330: Determine RV1 based on one or more of parameters such as the initial transmission bit rate R0, a length E0 of RV0, a length E1 of RV1, and the rate matching manner for retransmission.
When R0 is less than or equal to a preset bit rate threshold R_threshold (R0<R_threshold), the version RV1 of the length E1 may be directly read from the first circular buffer for initial transmission. R_threshold may be any value between 1/4 and 1/2, such as 1/4, 3/8, 7/16, 15/32, or 1/2. RV1 may be the first E1 bits in the first circular buffer, or may be E1 bits that are sequentially read clockwise starting from a start point of the first circular buffer. In this selection method, a bit that is not transmitted in initial transmission may be preferably placed in RV1. Alternatively, a manner similar to that for initial transmission may be used to determine, based on the rate matching manner for retransmission, how to read RV1 from the first circular buffer. This is not limited herein.
When R0 is greater than R_threshold (R0>R_threshold), a coded second bit sequence may be generated in an IR manner, and rate matching is performed based on one or more of parameters including but not limited to a bit rate, Nmax, a mother code length N0 used for initial transmission coding, E0, E1, and the like, to obtain RV1.
If E1≥N0, the rate matching manner for retransmission is repetition. Otherwise, when R0 is less than or equal to a preset bit rate threshold R_threshold_initial, the rate matching manner for retransmission is puncturing; or when R0 is greater than the preset bit rate threshold R_threshold_initial, the rate matching manner for retransmission is shortening. R_threshold_initial is a threshold for determining a rate matching manner during initial transmission, and a value of R_threshold_initial in a 5G NR standard is 7/16. Certainly, the value of R_threshold_initial may be alternatively another preset value. For simplicity, R_threshold_initial=R_threshold may be set. Certainly, when R0=R_threshold, a manner that is the same as the manner used when R0>R_threshold may be alternatively used. This is determined based on an agreement between the transmit end and a receive end.
In some embodiments, if E1≥N0, the rate matching manner for retransmission is repetition. Otherwise, when R0 is greater than the preset bit rate threshold R_threshold_initial and the length E1 of the retransmission version RV1 is less than the length E0 of the initial transmission version RV0, the rate matching manner for retransmission may be shortening, puncturing, or a combination of shortening and puncturing.
When the rate matching manner for initial transmission is shortening or repetition, there may be the following three possible implementations.
Implementation a:
When the rate matching manner for initial transmission is shortening, sub-block interleaving is performed on the first N0 bits of the second bit sequence (this may be performed in a sub-block interleaving manner specified in the NR standard, or may be performed in another manner, such as a row and column interleaving manner. This is not limited in this application, and details are not described in the following) to obtain a third bit sequence, and sub-block interleaving is performed on the first N0/2 bits of the second bit sequence to obtain a fourth bit sequence.
Details are as follows:
When E1<β*E0 (herein, for a value of the threshold, a typical value of β is 1/4, but the value may be alternatively a value such as 1/6, 1/8, or 1/16. Without loss of generality, 1/4 is used as an example in the following description. In addition, the symbol “<” may be alternatively “≤”. This is because when a value is the threshold, regardless whether an equal case belongs to a greater side or a smaller side, there is a small difference in overall performance. Similarly, without loss of generality, processing of the threshold is not described otherwise in the following description), an (E0−E1)th bit to an (E0−1)th bit in the first circular buffer are used as RV1.
When E1≥β*E0 (when the foregoing “<” is “≤”, herein “>” is “>”) and E1<E0, the following operation is performed:
1. When E0−E1≤δ*N0 (herein, for a value of the threshold, a typical value of δ is 1/2. Without loss of generality, 1/2 is used as an example in the following description. In addition, the symbol “≤” may be alternatively “<”. This is because when a value is the threshold, regardless whether an equal case belongs to a greater side or a smaller side, there is a small difference in overall performance. Similarly, without loss of generality, processing of the threshold is not described otherwise in the following description), the zeroth bit to an (E0−E1−1)th bit of the third bit sequence are used as punctured bits, an (E0−E1)th bit to an (E0−1)th bit are used as RV1, and an (E0)th bit to an (N0−1)th bit are used as shortened bits.
2. When E0−E1>δ*N0 (when the foregoing “≤” is “<”, “>” herein is “≥”), the zeroth bit to a (δ*N0−E1−1)th bit of the fourth bit sequence are used as punctured bits, a (δ*N0−E1)th bit to a (δ*N0−1)th bit are used as RV1, and a (δ*N0)th bit to an (N0−1)th bit of the second bit sequence are used as shortened bits.
When the rate matching manner for initial transmission is repetition, sub-block interleaving is performed on the first N0 bits of the second bit sequence to obtain a third bit sequence, and sub-block interleaving is performed on the first N0/2 bits of the second bit sequence to obtain a fourth bit sequence.
When E1<1/4*E0 (β=1/4), an (N0−E1)th bit to an (N0−1)th bit in the first circular buffer are used as RV1.
When E1≥1/4*E0 and E1<E0, the following determining operation is performed:
1. When N0−E1≤N0/2 (δ=1/2), the zeroth bit to an (N0−E1−1)th bit of the third bit sequence are used as punctured bits, and an (N0−E1)th bit to an (N0−1)th bit are used as RV1.
2. When N0−E1>N0/2, the zeroth bit to an (N0/2−E1−1)th bit of the fourth bit sequence are used as punctured bits, an (N0/2−E1)th bit to an (N0/2−1)th bit are used as RV1, and an (N0/2)th bit to an (N0−1)th bit of the second bit sequence are used as shortened bits.
When the rate matching manner for initial transmission is repetition or shortening, an operation may be alternatively performed in a uniform manner while it is not distinguished whether the rate matching manner for initial transmission is repetition or shortening. Sub-block interleaving is performed on the first N0 bits of the second bit sequence to obtain a third bit sequence, and sub-block interleaving is performed on the first N0/2 bits of the second bit sequence to obtain a fourth bit sequence.
When E1<1/4*E0 (β=1/4), a (min(N0, E0)−E1)th bit to a (min(N0, E0)−1)th bit in the first circular buffer are used as RV1.
When E1≥1/4*E0 and E1<E0, the following operation is performed:
1. When min(N0, E0)−E1≤N0/2 (δ=1/2), the zeroth bit to a (min(N0, E0)−E1−1)th bit of the third bit sequence are used as punctured bits, a (min(N0, E0)−E1)th bit to a (min(N0, E0)−1)th bit are used as RV1, and a (min(N0, E0))th bit to an (N0−1)th bit are used as shortened bits. When N0≤E0, a quantity of shortened bits is 0.
2. When min(N0, E0)−E1>N0/2, the zeroth bit to an (N0/2−E1−1)th bit of the fourth bit sequence are used as punctured bits, an (N0/2−E1)th bit to an (N0/2−1)th bit are used as RV1, and an (N0/2)th bit to an (N0−1)th bit of the second bit sequence are used as shortened bits.
Implementation b:
When the rate matching manner for initial transmission is repetition or shortening, sub-block interleaving is performed on the first N0 bits of the second bit sequence to obtain a third bit sequence.
When E1<1/4*E0 (β=1/4) or min(N0, E0)−E1>N0/2 (δ=1/2), a (min(N0, E0)−E1)th bit to a (min(N0, E0)−1)th bit in the first circular buffer are used as RV1.
When E1≥1/4*E0 and min(N0, E0)−E1≤N0/2, the zeroth bit to a (min(N0, E0)−E1−1)th bit of the third bit sequence are used as punctured bits, a (min(N0, E0)−E1)th bit to a (min(N0, E0)−1)th bit are used as RV1, and a (min(N0, E0))th bit to an (N0−1)th bit are used as shortened bits. When N0≤E0, a quantity of shortened bits is 0.
Implementation c:
When the rate matching manner for initial transmission is shortening, sub-block interleaving is performed on the first N0 bits of the second bit sequence to obtain a third bit sequence, and sub-block interleaving is performed on the first N0/2 bits of the second bit sequence to obtain a fourth bit sequence.
When E1<1/4*E0 (β=1/4), an (E0−E1)th bit to an (E0−1)th bit in the first circular buffer are used as RV1.
When E1≥1/4*E0 and E1<1/2*E0 (δ=1/2), the zeroth bit to an (N0/2−E1−1)th bit of the fourth bit sequence are used as punctured bits, an (N0/2−E1)th bit to an (N0/2−1)th bit are used as RV1, and an (N0/2)th bit to an (N0−1)th bit of the second bit sequence are used as shortened bits. It is noted that a length of the fourth bit sequence herein is N0/2. In this manner, the rate matching manner for retransmission includes both puncturing and shortening. In this design, performance stability at different code lengths or different bit rates can be effectively improved.
When E1≥1/2*E0 (δ=1/2) and E1<E0, the zeroth bit to an (E0−E1−1)th bit of the third bit sequence are used as punctured bits, an (E0−E1)th bit to an (E0−1)th bit are used as RV1, and an (E0)th bit to an (N0−1)th bit are used as shortened bits.
When the rate matching manner for initial transmission is repetition, sub-block interleaving is performed on the first N0 bits of the second bit sequence to obtain a third bit sequence, and sub-block interleaving is performed on the first N0/2 bits of the second bit sequence to obtain a fourth bit sequence.
When E1<1/4*E0 (β=1/4), an (N0−E1)th bit to an (N0−1)th bit in the first circular buffer are used as RV1.
When E1≥1/4*E0 and E1<1/2*N0 (δ=1/2), the zeroth bit to an (N0/2−E1−1)th bit of the fourth bit sequence are used as punctured bits, an (N0/2−E1)th bit to an (N0/2−1)th bit are used as RV1, and an (N0/2)th bit to an (N0−1)th bit of the second bit sequence are used as shortened bits. It is noted that a length of the fourth bit sequence herein is N0/2. In this manner, the rate matching manner for retransmission includes both puncturing and shortening. In this design, performance stability at different code lengths or different bit rates can be effectively improved.
When E1≥1/2*E0 and E1<E0, the zeroth bit to an (N0−E1−1)th bit of the third bit sequence are used as punctured bits, and an (N0−E1)th bit to an (N0−1)th bit are used as RV1.
Similar to the implementation a, the rate matching manner for initial transmission may not be distinguished as repetition or shortening. Sub-block interleaving is performed on the first N0 bits of the second bit sequence to obtain a third bit sequence, and sub-block interleaving is performed on the first N0/2 bits of the second bit sequence to obtain a fourth bit sequence.
When E1<1/4*E0 (β=1/4), a (min(E0, N0)−E1)th bit to a (min(E0, N0)−1)th bit in the first circular buffer are used as RV1.
When E1≥1/4*E0 and E1<1/2*min(E0, N0) (δ=1/2), the zeroth bit to an (N0/2−E1−1)th bit of the fourth bit sequence are used as punctured bits, an (N0/2−E1)th bit to an (N0/2−1)th bit are used as RV1, and an (N0/2)th bit to an (N0−1)th bit of the second bit sequence are used as shortened bits. It is noted that a length of the fourth bit sequence herein is N0/2. In this manner, the rate matching manner for retransmission includes both puncturing and shortening. In this design, performance stability at different code lengths or different bit rates can be effectively improved.
When E1≥1/2*min(E0, N0) and E1<E0, the zeroth bit to a (min(E0, N0)−E1−1)th bit of the third bit sequence are used as punctured bits, a (min(E0, N0)−E1)th bit to a (min(E0, N0)−1)th bit are used as RV1, and a (min(E0, N0))th bit to an (N0−1)th bit are used as shortened bits. When N0≤E0, a quantity of shortened bits is 0.
In some embodiments, after locations of punctured bits in rate matching bits are determined, some bit locations may be pre-frozen. However, different from a manner of determining pre-frozen bit locations in an existing NR protocol, this application proposes a new method for determining pre-frozen bit locations. The method is as follows:
1. if a quantity Pi of punctured bits in an ith sub-block is equal to or exceeds a first preset value, determining, as pre-frozen polarized sub-channels, other polarized sub-channels corresponding to the sub-block, where the first preset value may be a constant, for example, 1, 10, or 16, or even may be a sub-block length or the like;
2. if a quantity Pi of punctured bits in an ith sub-block exceeds a preset proportion of a total quantity of polarized sub-channels corresponding to the sub-block, determining, as pre-frozen polarized sub-channels, other polarized sub-channels corresponding to the sub-block, where the preset proportion may be 1/16, 1/8, 1/4, 1/2, or the like; or
3. if a quantity Pi of punctured bits in an ith sub-block is equal to or exceeds a second preset value, determining, as pre-frozen polarized sub-channels, other polarized sub-channels corresponding to the sub-block, and determining, as pre-frozen polarized sub-channels, all polarized sub-channels corresponding to an (i+1)th sub-block to an (i+g)th sub-block, where the second preset value may be a constant, for example, 1, 10, or 16, or even may be a sub-block length; and g may be a constant, for example, 2, 3, or 4. In this manner, performance at different bit rates or different code lengths can be effectively balanced. It is noted that i, i+1, and i+g herein each indicate a sub-block sequence obtained after sub-block interleaving.
Certainly, if all polarized sub-channels corresponding to a sub-block are punctured, no pre-frozen polarized sub-channel exists in the sub-block.
In an embodiment shown in
Operation 330a: Obtain a sub-channel set Q1, where Q1 includes K elements, and the elements are sequence numbers of K sub-channels used to place K to-be-coded bits in initial transmission. This may also be obtained in the operation 310.
Operation 330b: Add N0 to the sequence numbers of all the sub-channels in Q1 to obtain a sub-channel set Q2, where Q2(i)=Q1(i)+N0, and i=0, 1, . . . , K−1. Without loss of generality, in this application, an example in which sequence numbers of sub-channels are numbered starting from 0 is still used for description. If sequence numbers of sub-channels are numbered starting from 1, it is only necessary to add 1 correspondingly. Details are not described.
Operation 330c: Determine a sub-channel set Q3 of K1 to-be-coded bits at a mother code length N1 based on a reliability sorting sequence of a length N1=2*N0 and the rate matching manner for retransmission. An element in Q3 meets: Q3(i)<N0 or Q3(i)∈Q2, where i=0, 1, . . . , K1−1. Herein, K1=K+K_adjust, where K_adjust is a quantity of added to-be-coded bits, and a value of K_adjust is 0 or CBcrc1. CBcrc1 may be 0 or may not be 0. The reason why CBcrc1 is not 0 is considering that some CRC may need to be performed again during retransmission to improve retransmission reliability. A value of CBcrc1 may be determined in any one of the following manners:
Manner 1: CBcrc1 is set to 0.
Manner 2: CBcrc1 is determined based on a condition. When N0=4096, CBcrc1 is set to a first preset value, for example, 6, 8, 16, or 24; otherwise, CBcrc1 is set to 0.
Manner 3: CBcrc1 is determined based on a condition. When N0=4096 and E1>Alpha*E0, CBcrc1 is set to a first preset value, where the first preset value may be set to, for example, 6, 8, 16, or 24; otherwise, CBcrc1 is set to 0, where a value of Alpha may be any value in an interval [1/2, 1], for example, 1/2, 3/4, 7/8, or 1.
For CBcrc1, a same manner as CRC for initial transmission may be used, or a shorter CRC polynomial may be used. For example, 24-bit CRC is used for initial transmission, and 8-bit CRC is used for retransmission (CBcrc1=8).
Operation 330d: Determine an extended to-be-coded bit set Qext, where an element in Qext is an element less than N0 in Q3;
When a value determining manner of CBcrc1 is the foregoing manner 2 and the value of CBcrc1 is not 0, the following operation 330e0 (not shown in the figure) needs to be further performed. It should be noted that, certainly, the operation 330e0 may also be performed when CBcrc1 is 0, but a result is not affected. Therefore, it is usually recommended that the operation 330e0 should not be performed when CBcrc1 is 0.
The operation 330e0 is as follows:
When |Qchk|=0 (|Qext|=CBcrc1), the value of CBcrc1 is adjusted to 0; otherwise, the value of CBcrc1 is not adjusted.
In some embodiments, when |Qchk|≠0, the value of CBcrc1 may be further determined and adjusted. An example is as follows:
Operation 330e: Determine a copy bit set Qchk=Q2\(Q3\Qext), where “\” represents a difference operation of sets, that is, A\B represents all elements that belong to A and do not belong to B.
Operation 330f: Select bit values on some or all sub-channels in Qchk and copy the bit values to corresponding sub-channels in Qext one by one.
Operation 330g: Perform retransmission coding on the K to-be-coded bits based on the foregoing determined locations and values by using a polar code of a mother code length N1, to obtain a second bit sequence obtained after polar coding; and then obtain RV1 from the first N0 bits of the second bit sequence based on the rate matching manner for retransmission. A specific manner of obtaining RV1 from the first N0 bits may be consistent with the manner of obtaining RV0 from the first bit sequence.
To better describe the foregoing steps, the following provides a specific example.
Assuming that N0=64 and N1=128, a reliability sorting sequence in the 3GPP 5G NR standard may be directly used:
N0=64: S0=[0, 1, 2, 4, 8, 16, 32, 3, 5, 9, 6, 17, 10, 18, 12, 33, 20, 34, 24, 36, 7, 11, 40, 19, 13, 48, 14, 21, 35, 26, 37, 25, 22, 38, 41, 28, 42, 49, 44, 50, 15, 52, 23, 56, 27, 39, 29, 43, 30, 45, 51, 46, 53, 54, 57, 58, 60, 31, 47, 55, 59, 61, 62, 63]; and
N1=128: S1=[0, 1, 2, 4, 8, 16, 32, 3, 5, 64, 9, 6, 17, 10, 18, 12, 33, 65, 20, 34, 24, 36, 7, 66, 11, 40, 68, 19, 13, 48, 14, 72, 21, 35, 26, 80, 37, 25, 22, 38, 96, 67, 41, 28, 69, 42, 49, 74, 70, 44, 81, 50, 73, 15, 52, 23, 76, 82, 56, 27, 97, 39, 84, 29, 43, 98, 88, 30, 71, 45, 100, 51, 46, 75, 104, 53, 77, 54, 83, 57, 112, 78, 85, 58, 99, 86, 60, 89, 101, 31, 90, 102, 105, 92, 47, 106, 55, 113, 79, 108, 59, 114, 87, 116, 61, 91, 120, 62, 103, 93, 107, 94, 109, 115, 110, 117, 118, 121, 122, 63, 124, 95, 111, 119, 123, 125, 126, 127].
It is assumed that E0=60 and K=50, and therefore R=5/6; and R_threshold=7/16, and therefore RV1 needs to be constructed in an IR manner, and a shortening rate matching manner is used for initial transmission.
Q1=[6, 7, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59]; and
correspondingly,
Q2=[70, 71, 74, 75, 76, 77, 78, 79, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123].
It is assumed that E1 is exactly equal to E0 and is also equal to 60, and a shortening rate matching manner is also used in sub-channels 64 to 127, and therefore all shortened sub-channels are QRM=[60, 61, 62, 63, 124, 125, 126, 127].
When K_adjust is 0:
Q3=[31, 46, 47, 51, 53, 54, 55, 57, 58, 59, 75, 77, 78, 79, 83, 85, 86, 87, 89, 90, 91, 92, 93, 94, 95, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123];
Qext=[31, 46, 47, 51, 53, 54, 55, 57, 58, 59]; and
Qchk=[70, 71, 74, 76, 81, 82, 84, 88, 97, 98].
If CBcrc1=0, bits on sub-channels in Qchk may be copied to Qext. Sequential copying may be performed in the foregoing sequence, or a bit on a sub-channel with a larger sequence number in Qchk may be copied to a sub-channel with a smaller sequence number in Qext on a premise of considering a decoding sequence, that is, a bit on a sub-channel 98 is copied to a sub-channel 31, a bit on a sub-channel 97 is copied to a sub-channel 46, . . . , and a bit on a sub-channel 70 is copied to a sub-channel 59.
If CBcrc1=8, eight sub-channels other than sub-channels 31 and 46 in Qext may be used to carry added CRC bits. It is only necessary to select values on sub-channels 70 and 71 from Qchk and respectively copy the values to the sub-channels 46 and 31. The eight CRC bits are used to perform CRC on the two bits. It can be learned that in this case, it is clear that the eight CRC bits are redundant. Therefore, in an actual application, there is another possibility, that is, no CRC bit needs to be added when a quantity of to-be-coded bits falls within a first interval, and a CRC bit needs to be added when a quantity of to-be-coded bits falls within a second interval; or a relatively small quantity of CRC bits are added when a quantity of to-be-coded bits falls within a third interval, and a relatively large quantity of CRC bits are added when a quantity of to-be-coded bits falls within a fourth interval. For specific interval division, whether a CRC bit is to be added, and a quantity of added CRC bits, it is only necessary that the transmit end and the receive end perform uniformity.
When K_adjust is 8, Q3 may be as follows:
Q3=[29, 30, 31, 43, 45, 46, 47, 51, 53, 54, 55, 57, 58, 59, 71, 75, 77, 78, 79, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123]; and correspondingly, Q2, Qext, and Qchk are as follows:
Q2=[70, 71, 74, 75, 76, 77, 78, 79, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123];
Qext=[29, 30, 31, 43, 45, 46, 47, 51, 53, 54, 55, 57, 58, 59]; and
Qchk=[70, 74, 76, 81, 82, 97].
Eight sub-channels 47, 51, 53, 54, 55, 57, 58, and 59 in Qext may be used to carry added CRC bits, and bits on six sub-channels in Qchk are copied to six sub-channels 29, 30, 31, 43, 45, and 46. A bit on a sub-channel 70 is copied to the sub-channel 46, a bit on a sub-channel 74 is copied to the sub-channel 45, . . . , and a bit on a sub-channel 97 is copied to the sub-channel 29.
It can be learned that, even for same CBcrc1, different values of K_adjust affect a final result. Therefore, the transmit end and the receive end need to perform uniformity.
Operation 340: Cascade RV0 and RV1 and input a cascaded version to a second circular buffer.
Operation 350: Perform further retransmission.
If RV1 sent in first-time retransmission is correctly decoded, operations 340 and 350 do not need to be performed, and therefore are represented by using dashed lines. If RV1 still cannot be correctly decoded in first-time retransmission, further retransmission is required. As described above, in this case, CC retransmission is used. In this case, the transmit end may directly read a corresponding version from the second circular buffer for sending. For example, bits in xth-time transmission may be Ex (a quantity of bits transmitted by using an air interface) bits that are read starting from the first bit located behind the last bit in previous-time transmission, or may be Ex bits that are read starting from the first bit located behind the last bit of a version RV (RV0 or RV1) used for previous-time transmission, where x is greater than 1.
Regardless of initial transmission or retransmission, to overcome channel impact, a channel interleaving operation may be further performed on sending bits obtained after rate matching. The to-be-sent bits may be input to a channel interleaver, and then interleaved bits may be sent. Usually, In some embodiments, the interleaver may be a row-column interleaver, where writing is performed by row and reading is performed by column, or writing is performed by column and reading is performed by row. In order that the sending bits are more evenly distributed in the interleaver to ensure random performance, a quantity of rows of the row-column interleaver may be 14. In this case, a quantity of columns in xth-time transmission is [Ex/14], where x is an integer greater than or equal to 0. It indicates initial transmission when x=0, and it indicates a specific time of retransmission when x is another value.
Although RV1 is determined by using a plurality of separate steps as shown in
The foregoing description of the embodiment in
As shown in
For the sending apparatus 600, based on a same concept as the retransmission method shown in
In some embodiments, when the retransmission method in the foregoing embodiment is partially or completely implemented by software, as shown in
In some embodiments, the memory 701 may be a physically independent unit, or may be integrated with the processor 702.
In some embodiments, when the retransmission method in the foregoing embodiment is partially or completely implemented by software, a sending apparatus 700 may alternatively include only a processor 702. A memory 701 configured to store a program is located outside the sending apparatus 700, and the processor 702 is connected to the memory 701 by using a circuit/wire, to read and execute the program stored in the memory 701.
Based on the retransmission method shown in
an obtaining unit 801, configured to obtain a to-be-transmitted transport block;
a coding unit 802, configured to perform coding or retransmission coding on each segment of the transport block; and
a determining unit 803, configured to determine a version RV0 and a version RV1 according to the retransmission method in the embodiment shown in
Corresponding to a transmit end, an apparatus of a receive end may be similarly designed.
As shown in
In some embodiments, when the retransmission method in the foregoing embodiment is partially or completely implemented by software, as shown in
In some embodiments, the memory 1001 may be a physically independent unit, or may be integrated with the processor 1002.
In some embodiments, when the retransmission method in the foregoing embodiment is partially or completely implemented by software, a receiving apparatus 1000 may alternatively include only a processor 1002. A memory 1001 configured to store a program is located outside the receiving apparatus 1000, and the processor 1002 is connected to the memory 1001 by using a circuit/wire, to read and execute the program stored in the memory 1001.
The processor 702 and/or the processor 1002 each may be a central processing unit (CPU), a network processor (NP), or a combination of a CPU and an NP.
The processor 702 and/or the processor 1002 each may further include a hardware chip. The hardware chip may be an application-specific integrated circuit (ASIC), a programmable logic device (PLD), or a combination thereof. The PLD may be a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof.
The memory in the foregoing embodiment may include a volatile memory, such as a random access memory (RAM); the memory may include a nonvolatile memory, such as a flash memory, a hard disk drive (HDD), or a solid-state drive (SSD); or the memory may include a combination of the foregoing types of memories.
Based on the foregoing retransmission method, as shown in
an obtaining unit 1101, configured to obtain a received signal;
a determining unit 1102, configured to determine a version RV0 and a version RV1 according to the retransmission method in the embodiment shown in
a decoding unit 1103, configured to decode each segment of a received transport block.
An embodiment further provides a computer storage medium, storing computer program instructions. When the computer program instructions are executed by a computer, the foregoing retransmission method is executed.
An embodiment further provides a computer program product that includes instructions. When the computer program product is run on a computer, the foregoing retransmission method is executed.
Persons skilled in the art should understand that the embodiments may be provided as a method, a system, or a computer program product. Therefore, this application may use a form of a hardware-only embodiment, a software-only embodiment, or an embodiment with a combination of software and hardware. In addition, this application may use a form of a computer program product that is implemented on one or more computer-usable storage media (including but not limited to a disk memory, a CD-ROM, an optical memory, and the like) that include computer-usable program code.
This application is described with reference to the flowcharts and/or block diagrams of the method, the device (system), and the computer program product according to the embodiments. It should be understood that computer program instructions may be used to implement each process and/or each block in the flowcharts and/or the block diagrams and a combination of a process and/or a block in the flowcharts and/or the block diagrams. The computer program instructions may be provided for a general-purpose computer, a dedicated computer, an embedded processor, or a processor of another programmable data processing device to generate a machine, so that the instructions executed by the computer or the processor of the another programmable data processing device generate an apparatus for implementing a specific function in one or more procedures in the flowcharts and/or in one or more blocks in the block diagrams.
The computer program instructions may alternatively be stored in a computer-readable memory that can indicate a computer or another programmable data processing device to work in a specific manner, so that the instructions stored in the computer-readable memory generate an artifact that includes an instruction apparatus. The instruction apparatus implements a specific function in one or more procedures in the flowcharts and/or in one or more blocks in the block diagrams.
The computer program instructions may alternatively be loaded onto a computer or another programmable data processing device, so that a series of operations and steps are performed on the computer or the another programmable device, so that computer-implemented processing is generated. Therefore, the instructions executed on the computer or the another programmable device provide steps for implementing a specific function in one or more procedures in the flowcharts and/or in one or more blocks in the block diagrams.
In addition to the embodiments, persons skilled in the art can make other changes and modifications to these embodiments once learning of basic creative concepts. Therefore, the following claims are intended to be construed as to cover the embodiments and all changes and modifications falling within the scope.
Clearly, persons skilled in the art can make various modifications and variations to embodiments without departing from the spirit and scope of embodiments. In this case, this application is intended to cover these modifications and variations provided that they fall within the scope of protection defined by the following claims and their equivalent technologies.
Number | Date | Country | Kind |
---|---|---|---|
202010890818.0 | Aug 2020 | CN | national |
This application is a continuation of International Patent Application No. PCT/CN2021/110001, filed on Aug. 2, 2021, which claims priority to Chinese Patent Application No. 202010890818.0, filed on Aug. 29, 2020, the disclosures of the aforementioned applications are hereby incorporated by reference in their entireties.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/CN2021/110001 | Aug 2021 | US |
Child | 18174132 | US |