Data transmission method, sending device, receiving device, and communications system
10917114 ยท 2021-02-09
Assignee
Inventors
- Liang Ma (Shanghai, CN)
- Chen Zheng (Shanghai, CN)
- Jie Xiong (Shanghai, CN)
- Xin Zeng (Shenzhen, CN)
- Xiaojian Liu (Shenzhen, CN)
- Yuejun Wei (Shanghai, CN)
Cpc classification
H03M13/1111
ELECTRICITY
H03M13/116
ELECTRICITY
H03M13/118
ELECTRICITY
H03M13/6393
ELECTRICITY
H03M13/6306
ELECTRICITY
H04L1/0013
ELECTRICITY
International classification
H03M13/00
ELECTRICITY
H04L1/00
ELECTRICITY
Abstract
This application discloses a data transmission method, a sending device, a receiving device, and a communications system. The sending device is configured to send a first transport block. The sending device obtains a coded bit segment from a first encoded code block. The first encoded code block is obtained after LDPC encoding is performed on a first code block in the first transport block based on a processing capability of the receiving device. The sending device sends the coded bit segment to the receiving device. Because the processing capability of the receiving device is considered, storage overheads of the sending device or the receiving device can be reduced, encoding or decoding complexity can be reduced, and a decoding success rate can be improved.
Claims
1. A data transmission method, comprising: encoding, by a sending device, a first code block by using a low density parity check (LDPC) matrix, to obtain a second encoded code block; obtaining, by the sending device, a first encoded code block to be saved in a circular buffer in the sending device based on the second encoded code block, wherein the first encoded code block comprises multiple redundancy versions for transmission, and a size of the first encoded code block is determined based on a processing capability of a receiving device, and the first encoded code block does not include coded bits in the second encoded code block which correspond to a column of built-in puncture bits in the LDPC matrix; obtaining, by the sending device, a coded bit segment as a redundancy version from the first encoded code block; and sending, by the sending device, the coded bit segment to the receiving device.
2. The method according to claim 1, wherein the LDPC matrix is a complete matrix.
3. The method according to claim 1, wherein the LDPC matrix is a parity check matrix which is determined according to the size of the first encoded code block, and the size of the parity check matrix is less than a size of a complete matrix.
4. The method according to claim 1, wherein: the processing capability of the receiving device comprises a maximum transport block size N.sub.IR that can be supported by a soft buffer of the receiving device, and the size of the first encoded code block is
5. The method according to claim 1, wherein the obtaining, by the sending device, the coded bit segment from the first encoded code block, comprises: obtaining, by the sending device, a to-be-sent redundancy version RV.sub.j; determining, by the sending device, a first start position S.sub.i of a coded bit segment in the first encoded code block based on the redundancy version RV.sub.j; and obtaining, by the sending device as the coded bit segment, a coded bit segment having a length of n.sub.i from the first start position S.sub.i in the first encoded code block, wherein: i is an integer greater than or equal to 0, when i is 0, it indicates initial transmission, and when i is greater than 0, it indicates the i.sup.th retransmission; and j is an integer, and 0j<j.sub.max, wherein j.sub.max is a maximum quantity of redundancy versions between the sending device and the receiving device.
6. The method according to claim 5, wherein a start position of RV.sub.0 is a position of bit p in the first encoded code block, and p is an integer greater than or equal to 0.
7. The method according to claim 6, wherein p=z.Math.l, z is a lifting factor of the parity check matrix or z is a lifting factor of the complete matrix, corresponding to the first encoded code block, and l is a positive integer.
8. The method according to claim 1, wherein the sending, by the sending device, the coded bit segment to the receiving device, comprises: interleaving, by the sending device, the coded bit segment; mapping, by the sending device, the interleaved coded bit segment to modulation symbols; and sending, by the sending device, the modulation symbols.
9. A device using a low-density parity-check (LDPC) code, comprising: a transceiver; one or more memories configured to store program instructions; and one or more processors coupled to the one or more memories and configured to execute the program instructions; wherein, when executed by the one or more processors, the program instructions cause the one or more processors to: encode a first code block by using a low density parity check (LDPC) matrix, to obtain a second encoded code block; based on the second encoded code block, obtain a first encoded code block to be saved in a circular buffer, wherein the first encoded code block comprises multiple redundancy versions for transmission, and a size of the first encoded code block is determined based on a processing capability of a receiving device, and the first encoded code block does not include coded bits in the second encoded code block which correspond to a column of built-in puncture bits in the LDPC matrix; obtain a coded bit segment as a redundancy version from the first encoded code block; and send the coded bit segment to the receiving device.
10. The device according to claim 9, wherein the LDPC matrix is a complete matrix.
11. The device according to claim 9, wherein the LDPC matrix is a parity check matrix which is determined according to the size of the first encoded code block, and the size of the parity check matrix is less than a size of a complete matrix.
12. The device according to claim 9, wherein: the processing capability of the receiving device comprises a maximum transport block size N.sub.IR that can be supported by a soft buffer of the receiving device, and the size of the first encoded code block is
13. The device according to claim 9, wherein the program instructions further cause the one or more processors to: obtain a to-be-sent redundancy version RV.sub.j; determine a first start position S.sub.i of a coded bit segment in the first encoded code block based on the redundancy version RV.sub.j; and obtain, as the coded bit segment, a coded bit segment having a length of n.sub.i from the first start position S.sub.i in the first encoded code block, wherein: i is an integer greater than or equal to 0, when i is 0, it indicates initial transmission, and when i is greater than 0, it indicates the i.sup.th retransmission; and j is an integer, and 0j<j.sub.max, wherein j.sub.max is a maximum quantity of redundancy versions between the sending device and the receiving device.
14. The device according to claim 13, wherein a start position of RV.sub.0 is a position of bit p in the first encoded code block, and p is an integer greater than or equal to 0.
15. The device according to claim 9, wherein p=z.Math.l, z is a lifting factor of the parity check matrix or z is a lifting factor of the complete matrix, corresponding to the first encoded code block, and l is a positive integer.
16. The device according to claim 9, wherein the program instructions further cause the device to: interleave the coded bit segment; map the interleaved coded bit segment to modulation symbols; and send the modulation symbols.
Description
BRIEF DESCRIPTION OF DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
DESCRIPTION OF EMBODIMENTS
(9) The following clearly describes the technical solutions in the embodiments of the present invention with reference to the accompanying drawings in the embodiments of the present invention. Apparently, the described embodiments are merely some rather than all of the embodiments of the present invention. All other embodiments obtained by a person of ordinary skill in the art based on the embodiments of the present invention without creative efforts shall fall within the protection scope of the present invention.
(10) As shown in
(11) The encoded code block is saved in a circular buffer of the sending device 30 after subblock interleaving is performed on the encoded code block. The sending device 30 selects a segment of coded bits from the circular buffer and sends the segment of coded bits, that is, obtains a coded bit segment, interleaves the coded bit segment, maps the interleaved coded bit segment to modulation symbols, and sends the modulation symbols. When performing retransmission, the sending device 30 selects another coded bit segment from the circular buffer and sends the another coded bit segment. If all data in the circular buffer has been transmitted, the sending device 30 returns to a front end of the circular buffer to send coded bits again.
(12) After demodulating and de-interleaving the received modulation symbols, the receiving device 31 saves soft values of the received coded bit segment at a corresponding position in a soft buffer. If retransmission occurs, the receiving device 31 combines soft values of a coded bit segment that is retransmitted each time with the soft values in the soft buffer, and saves the combined soft values in the soft buffer. The combination herein is: If positions of coded bits received in two transmission are the same, soft values of the coded bits received in the two transmission are combined. The receiving device 31 decodes all the soft values in the soft buffer, to obtain code blocks of the information data.
(13) It should be noted that, in the embodiments of the present invention, the sending device 30 may be a network device in the communications system, for example, a base station, and the receiving device 31 may be correspondingly a terminal. For ease of understanding, the following describes some terms used in this application.
(14) In this application, terms network and system are often used interchangeably. However, a person skilled in the art can understand meanings of the network and the system. The terminal is a device having a communication function, and may include a handheld device having a wireless communication function, an in-vehicle device, a wearable device, a computing device, another processing device that is connected to a wireless modem, or the like. The terminal may have different names in different networks, such as user equipment, a mobile station, a subscriber unit, a station, a cellular phone, a personal digital assistant, a wireless modem, a wireless communications device, a handheld device, a laptop computer, a cordless phone, and a wireless local loop. For ease of description, the terminal is used for short in this application. The base station (BS) may also be referred to as a base station device, and is a device that is deployed on a radio access network and is configured to provide a wireless communication function. The base station may have different names in different wireless access systems. For example, a base station in a Universal Mobile Telecommunications System (UMTS) network is referred to as a NodeB, a base station in an LTE network is referred to as an evolved NodeB (eNB, or eNodeB), and a base station in a 5.sup.th Generation network may have another name. The present invention is not limited thereto.
(15)
(16) 401. The sending device 30 obtains a coded bit segment from a first encoded code block.
(17) The sending device 30 may be configured to send a data transport block, for example, a first transport block. The first transport block may be segmented into at least one code block. The first encoded code block may be obtained after the sending device 30 processes a code block, for example, a first code block, in the first transport block based on a processing capability of the receiving device 31. For example, the sending device 30 determines a size of the first encoded code block based on the processing capability of the receiving device 31, and the sending device 30 encodes the first code block by using an LDPC complete matrix, to obtain a second encoded code block, and then performs matching on the second encoded code block based on the size of the first encoded code block, to obtain the first encoded code block. For another example, the sending device 30 determines a size of the first encoded code block based on the processing capability of the receiving device 31, and the sending device 30 determines an LDPC parity check matrix based on the size of the first encoded code block, and performs LDPC encoding on the first code block by using the parity check matrix, to obtain the first encoded code block.
(18) Further, if the LDPC complete matrix includes a column of built-in puncture bits, coded bits that correspond to the column of built-in puncture bits and that are in the second encoded code block are deleted, in other words, coded bits obtained by encoding the first code block by using the column of built-in puncture bits are deleted; then the first encoded code block is obtained by performing matching based on the size of the first encoded code block. In other words, the first encoded code block does not include the coded bits corresponding to the column of built-in puncture bits. Alternatively, if the LDPC parity check matrix includes a column of built-in puncture bits, coded bits corresponding to the column of built-in puncture bits need to be deleted from an encoded code block obtained by encoding the first code block by using the LDPC parity check matrix, to obtain the first encoded code block. In other words, the first encoded code block does not include the coded bits corresponding to the column of built-in puncture bits. It can be learned that a size of the code block obtained by performing encoding by using the LDPC parity check matrix is greater than the size of the first encoded code block, so that the size of the code block is equal to the size of the first encoded code block after the coded bits corresponding to the column of built-in puncture bits are deleted.
(19) The column of built-in puncture bits is generally a column with a heavy column weight in the LDPC complete matrix or the LDPC parity check matrix.
(20) 402. The sending device 30 sends the coded bit segment obtained in step 401 to the receiving device 31.
(21) The processing capability of the receiving device 31 may be based on a size of a register, a capability of a decoder, and the like. The processing capability of the receiving device 31 may include, but is not limited to, at least one of the following: a maximum transport block size N.sub.IR that can be supported by a soft buffer of the receiving device 31, a minimum code rate R.sub.t for decoding supported by the decoder, and a maximum encoded code block size N.sub.CB,t supported by the receiving device 31. Different values of these processing capabilities may be expressed by using different levels of the receiving device 31. For example, the processing capability of the receiving device 31 is the maximum transport block size N.sub.IR that can be supported by the soft buffer of the receiving device 31. When a level of the receiving device 31 is 1, the maximum transport block size N.sub.IR that can be supported by the soft buffer of the receiving device 31 is 250,000 bits. When the level is 2, the maximum transport block size N.sub.IR that can be supported by the soft buffer is 1,000,000 bits. It should be noted that the foregoing example is merely used for ease of description, and the present invention is not limited thereto. If N.sub.CB represents the size of the first encoded code block, the size N.sub.CB of the first encoded code block may be determined by using any one of the following formulas:
(22)
where
(23) K.sub.w is a size of a circular buffer of the sending device 30, C is a quantity of code blocks included in the first transport block, K.sub.IR,send is a size of the first transport block, is rounding down, and min() is used to get a minimum value of an element in brackets.
(24) It can be learned that the size of the first encoded code block is less than or equal to the size of the circular buffer of the sending device 30, the first encoded code block obtained by encoding the first code block by using the LDPC parity check matrix is saved in the circular buffer, a part that is of the circular buffer and that saves the first encoded code block may also be referred to as a virtual buffer, and the size of the first encoded code block may also be a size of the virtual buffer of the sending device 30.
(25) If the processing capability of the receiving device 31 is limited, the sending device 30 determines a size of an encoded code block for initial transmission or retransmission based on the processing capability of the receiving device 31, and selects a to-be-sent coded bit segment. Therefore, storage overheads of the receiving device 31 can be reduced, and decoding complexity of the receiving device 31 can be reduced.
(26) For an encoder of the sending device 30, an output code rate of the encoder depends on the size of the first encoded code block and a size of the first code block. For example, for N.sub.CB=min (K.sub.W,N.sub.CB,t), N.sub.CB is limited by the maximum encoded code block size N.sub.CB,t supported by the receiving device 31. Therefore, the output code rate of the encoder is determined based on the size of the first code block. A larger size of the first code block leads to a higher output code rate of the encoder. A smaller size of the first code block leads to a lower output code rate of the encoder.
(27) The sending device 30 interleaves the obtained coded bit segment, maps the interleaved coded bit segment to modulation symbols, and sends the modulation symbols to the receiving device 31. Further, the sending device 30 may further puncture the obtained coded bit segment, to increase the code rate.
(28) In an embodiment of the present invention, a sending device 30 may first determine a to-be-sent redundancy version RV.sub.j, then determine a first start position S.sub.i of a to-be-obtained coded bit segment in a first encoded code block based on the redundancy version RV.sub.j, and obtain the coded bit segment starting from the first start position S.sub.i in the first encoded code block, where i is an integer greater than or equal to 0, when i is 0, it indicates initial transmission, and when i is greater than 0, it indicates the i.sup.th retransmission; and 0j<j.sub.max, where j.sub.max is a maximum quantity of redundancy versions between the sending device 30 and a receiving device 31. It should be noted that the first encoded code block herein may be an encoded code block obtained by processing a first code block based on the method of the embodiment shown in
(29) When a communications system supports retransmission, the sending device 30 and the receiving device 31 negotiate use of redundancy versions, and use of a redundancy version when retransmission is performed each time. Each redundancy version may be used to indicate a start position of the coded bit segment in the first encoded code block, and the sending device 30 obtains the coded bit segment from the start position. A decoding success rate of the receiving device 31 can be improved by sending different coded bit segments in an encoded code block each time. To enable the obtained coded bit segment that is sent each time to be close or equal in length, start positions corresponding to the j.sub.max redundancy versions may be distributed at different positions in the first encoded code block, and are commonly distributed at an equal interval. For initial transmission of the first encoded code block, the sending device 30 usually uses a redundancy version RV.sub.0. A start position S.sub.0 of RV.sub.0 may be a position of bit p in the first encoded code block. Herein, p is an integer greater than or equal to 0.
(30) A schematic diagram of a first encoded code block shown in
(31) In another embodiment of the present invention, a sending device 30 may alternatively determine a start position S.sub.i of an obtained coded bit segment for currently transmission and that is in a first encoded code block based on a start position corresponding to an obtained coded bit segment and a length of the obtained coded bit segment for previous transmission. If i=0, in other words, the sending device 30 initially transmits the first encoded code block, S.sub.0 may be a position of bit p in the first encoded code block. Herein, p is an integer greater than or equal to 0. If i>0, in other words, the sending device 30 needs to retransmit the first encoded code block, then S.sub.i=(S.sub.i-1+n.sub.i-1)% N.sub.CB; or if each coded bit segment for initial transmission or retransmission in the first encoded code block is equal in length, S.sub.i=(p+i*n.sub.0)% N.sub.CB, where n.sub.0 is a length of an obtained coded bit segment that is sent during initial transmission. It should be noted that the first encoded code block herein may be an encoded code block obtained by processing a first code block based on the method of the embodiment shown in
(32) In the foregoing embodiments, because a size of the LDPC parity check matrix of the first encoded code block is determined based on an lifting factor z, the start n.sub.0S.sub.0=p of the initially transmitted coded bit segment may be determined based on the lifting factor of the LDPC parity check matrix of the first encoded code block. For example, p=z.Math.l, where l is a positive integer, and may be usually set to 1, 2, or 3. An encoded code block shown in
(33) Because the coded bit segment for initial transmission or retransmission may be flexibly selected, a decoding success rate may be further improved.
(34) Optionally, based on the method of each of the foregoing embodiments, in the communications system in which LDPC encoding is performed, the first encoded code block may be obtained in a plurality of manners.
(35) In an embodiment of the present invention, after determining a size N.sub.CB of a first encoded code block, a sending device 30 may process a first code block based on the size of the first encoded code block, to obtain the first encoded code block. In this manner, rate matching is not coupled to channel coding.
(36) For example, the sending device 30 may encode the first code block by using a complete matrix of LDPC code, to obtain a second encoded code block, and then perform matching based on the size of the first encoded code block, to obtain the first encoded code block. For example, N.sub.CB bits between coded bit 0 and coded bit (N.sub.CB1) in the second encoded code block may be used as the first encoded code block.
(37) For another example, the sending device 30 may alternatively determine a parity check matrix of LDPC code based on the size of the first encoded code block, for example, may determine an LDPC parity check matrix in which a quantity of columns is less than or equal to N.sub.CB, and encode the first code block by using the parity check matrix, to obtain the first encoded code block.
(38) It should be noted that the foregoing example is merely used for ease of description. This embodiment of the present invention is not limited thereto.
(39) In another embodiment of the present invention, channel coding and rate matching may be alternatively coupled together. After a length n.sub.i of a to-be-sent coded bit segment and a start position S.sub.i of the coded bit segment in a first encoded code block are determined during rate matching, LDPC encoding is performed on a code block during channel coding based on the length n.sub.i of the coded bit segment and the start position S.sub.i of the coded bit segment in the first encoded code block, to obtain the first encoded code block, so as to obtain the to-be-sent coded bit segment.
(40) If the length n.sub.i of the to-be-sent coded bit segment is greater than or equal to N.sub.CB, in this case, a size of the first encoded code block is less than or equal to the length of the to-be-sent coded bit segment. Therefore, a first code block may be encoded by selecting column 0 to column (N.sub.CB1) in a parity check matrix obtained after a base matrix is lifted based on a lifting factor z, to obtain the first encoded code block. For the to-be-sent coded bit segment, n.sub.i coded bits may be obtained starting from the start position S.sub.i in the first encoded code block. If bit (N.sub.CB1) is obtained, obtaining continues starting from a position of bit 0, until a quantity of obtained bits is equal to the length n.sub.i of the coded bit segment. For example, the size N.sub.CB of the first encoded code block is 200, the length n.sub.i of the to-be-sent coded bit segment is 400, and the start position S.sub.i is 100. In this case, the coded bit segment is a coded bit segment that includes coded bit 100 to coded bit 199, coded bit 0 to coded bit 199, and coded bit 0 to coded bit 99. It should be noted that the example is merely used for description herein. The present invention is not limited thereto.
(41) If the length n.sub.i of the to-be-sent coded bit segment is less than N.sub.CB, and S.sub.i+n.sub.i1<N.sub.CB, coded bit S.sub.i to coded bit (S.sub.i+n.sub.i1) in the first encoded code block are coded bits corresponding to column S.sub.i to column (S.sub.i+n.sub.i1) in a parity check matrix obtained after a base matrix is lifted based on an lifting factor z. In a possible implementation, a parity check matrix including column S.sub.i to column (S.sub.i+n.sub.i1) in the parity check matrix obtained after the base matrix is lifted based on the lifting factor z may be selected to encode a first code block, to obtain an encoded code block, and the coded bit S.sub.i to the coded bit (S.sub.i+n.sub.i1) are coded bits corresponding to column S.sub.i to column (S.sub.i, +n.sub.i1) in the parity check matrix obtained after the base matrix is lifted based on the lifting factor z. In another possible implementation, alternatively, a matrix portion corresponding to column S.sub.i to column (S.sub.i+n.sub.i1) in the parity check matrix obtained by lifting the base matrix based on the lifting factor z may be selected to encode a first code block, to obtain n.sub.i coded bits. The n.sub.i bits may also be referred to as coded bits corresponding to column S.sub.i to column (S.sub.i+n.sub.i1) in the parity check matrix obtained by lifting the base matrix based on the lifting factor z.
(42) If the length n.sub.i of the to-be-sent coded bit segment is less than N.sub.CB, and S.sub.i+n.sub.i1>N.sub.CB, coded bit S.sub.i to coded bit (N.sub.CB1) in the first encoded code block are coded bits corresponding to column S.sub.i to column (N.sub.CB1) in a parity check matrix obtained after a base matrix is lifted based on a lifting factor z, and coded bit 0 to coded bit (n.sub.i(N.sub.CB1S.sub.i)) in the first encoded code block are coded bits corresponding to column 0 to column (n.sub.i(N.sub.CB1S.sub.i)) in the parity check matrix obtained after the base matrix is lifted based on the lifting factor z. For an implementation thereof, refer to the foregoing embodiment.
(43) In the foregoing embodiment, because a quantity of coded bits is equal to a quantity of bits that are actually to be sent, invalid encoding operations of the sending device 30 can be reduced.
(44)
(45) 601. The receiving device 31 receives a coded bit segment.
(46) The coded bit segment received by the receiving device 31 is obtained by the sending device 30 from a first encoded code block, and the first encoded code block is obtained after the sending device 30 processes a first code block based on a processing capability of the receiving device 31. Therefore, the coded bit segment received by the receiving device 31 does not go beyond the processing capability of the receiving device 31.
(47) For the processing capability of the receiving device 31 and a size of the first encoded code block, specifically refer to the foregoing embodiment. Details are not described herein again.
(48) 602. The receiving device 31 combines soft channel bits of the coded bit segment received in step 601 with soft channel bits in a soft buffer of the receiving device 31, and save the combined soft channel bits in the soft buffer of the receiving device 31.
(49) The soft buffer of the receiving device 31 is configured to save soft channel bits (soft channel bit) of coded bits. For example, a coded bit sent by the sending device 30 is 1, and after the coded bit is transmitted through a channel, a soft channel bit that corresponds to the coded bit and that is obtained by the receiving device 31 is 1.45. If a position of the coded bit in the first encoded code block is bit 5, soft channel bit 5 in the soft buffer of the receiving device 31 is 1.45. It should be noted that the example is merely used for description herein. This embodiment of the present invention is not limited thereto.
(50) It can be learned that a position of each soft channel bit in the soft buffer of the receiving device 31 is in a one-to-one correspondence with a position of each coded bit of the first encoded code block.
(51) In an embodiment of the present invention, a receiving device 31 obtains a to-be-sent redundancy version RV.sub.j, and determines, based on the redundancy version RV.sub.j, a first start position S.sub.i in a soft buffer for soft channel bits of a coded bit segment. The receiving device 31 combines the soft channel bits of the coded bit segment with soft channel bits starting from the first start position S.sub.i in the soft buffer, and saves the combined soft channel bits in the soft buffer starting from the first start position S.sub.i, where a quantity of the soft channel bits is n.sub.i. Herein, i is an integer greater than or equal to 0, when i is 0, it indicates initial transmission, and when i is greater than 0, it indicates the i.sup.th retransmission; and j is an integer, and 0j<j.sub.max, where j.sub.max is a maximum quantity of redundancy versions between a sending device 30 and the receiving device 31, start positions corresponding to the j.sub.max redundancy versions are distributed in the soft buffer at an equal interval, a start position of RV.sub.0 is a position of soft channel bit p in the soft buffer, and p is an integer greater than or equal to 0.
(52) In another embodiment of the present invention, a receiving device 31 determines a first start position S.sub.i of received soft channel bits in a soft buffer, combines the received soft channel bits with soft channel bits in the soft buffer starting from the first start position S.sub.i, and saves the combined soft channel bits in the soft buffer starting from the first start position S.sub.i, where a quantity of the soft channel bits is n.sub.i; i is an integer greater than or equal to 0; if i=0, it indicates initial transmission, and S.sub.0 is a position of soft channel bit p in the soft buffer; or if i>0, it indicates the i.sup.th retransmission, and S.sub.i=(S.sub.i-1+n.sub.i-1)% N.sub.CB, where S.sub.i-1 is a start position of previously received soft channel bits, and n.sub.i-1 is a quantity of the previously received soft channel bits; or
(53) S.sub.i=+i*n.sub.0)% N.sub.CB, where n.sub.0 is a quantity of soft channel bits received during initial transmission, and n.sub.i=n.sub.0.
(54) For that the receiving device 31 determines the start position of the soft channel bits of the received coded bit segment, refer to the descriptions of the foregoing embodiment. Details are not described herein again.
(55) If the coded bit segment obtained by the sending device 30 includes n coded bits, the receiving device 31 may obtain n corresponding soft channel bits. If the receiving device 31 receives coded bits at a same position twice, the receiving device 31 combines the received soft channel bits in two receptions. For example, if a soft channel bit received for a first time is 1.45, and a soft channel bit received for a second time is 0.5, 1.95 is obtained after the two soft channel bits are combined. It should be noted that the example is merely used for description herein. The present invention is not limited thereto.
(56) 603. The receiving device 31 decodes the soft channel bits in the soft buffer, to obtain a first code block.
(57) Because the soft buffer saves the soft channel bits that are combined once or repeatedly, when performing decoding each time, the receiving device 31 needs to determine a code rate of the soft channel bits saved in the soft buffer for decoding, and determines an LDPC parity check matrix based on the code rate for decoding. The LDPC parity check matrix herein is a first parity check matrix. The parity check matrix does not need to be completely the same as a parity check matrix used when the sending device 30 encodes the first code block. However, when there are a few soft channel bits, a size of the parity check matrix is correspondingly relatively small, so that decoding complexity of the receiving device 31 can be reduced.
(58) The receiving device 31 decodes the soft channel bits in the soft buffer by using the first parity check matrix, to obtain the first code block. If the decoding succeeds, the receiving device 31 obtains the first code block, and sends an acknowledgement (ACK) to the sending device 30. After receiving the ACK, the sending device 30 may not retransmit the first encoded code block, and continue to process a next code block. If the decoding fails, the receiving device 31 sends a negative acknowledgement (NACK) to the sending device 30. After receiving the NACK, the sending device 30 performs retransmission if a maximum quantity of retransmission times is not exceeded, selects a coded bit segment from the first encoded code block, and sends the coded bit segment to the receiving device 31.
(59) Based on the method provided in this embodiment of the present invention, the sending device 30 determines a size of an encoded code block based on the processing capability of the receiving device 31 for initial transmission or retransmission of the encoded code block, and selects a to-be-sent coded bit segment. Therefore, storage overheads of the receiving device 31 can be reduced, and decoding complexity of the receiving device 31 can be reduced.
(60)
(61) In an example, the rate matcher 302 may include a memory 3021 and a processor 3022. The memory 3021 is configured to store a necessary instruction and necessary data. For example, the memory 3021 stores the first encoded code block in the foregoing embodiment. The processor 3022 is configured to perform a necessary action based on the instruction stored in the memory 3021, for example, configured to: control the sending device to perform an action shown in
(62) It should be noted that the sending device 30 may include one or more memories and one or more processors, to implement a function of each part of the sending device in
(63)
(64) In an example, the rate dematcher 312 may include a memory 3121 and a processor 3122. The memory 3121 is configured to store a necessary instruction and necessary data. For example, the memory 3121 stores the soft channel bits in the foregoing embodiment. The processor 3122 is configured to perform a necessary action based on the instruction stored in the memory 3121, for example, configured to: control the receiving device to perform an action shown in
(65) It should be noted that the receiving device 31 may include one or more memories and one or more processors, to implement a function of each part of the receiving device in
(66) A person skilled in the art may further understand that various illustrative logical blocks (illustrative logical block) and steps (step) that are listed in the embodiments of the present invention may be implemented by using electronic hardware, computer software, or a combination thereof. Whether the functions are implemented by using hardware or software depends on particular applications and a design requirement of the entire system. A person skilled in the art may use various methods to implement the described functions for each particular application, but it should not be considered that the implementation goes beyond the scope of the embodiments of the present invention.
(67) The various illustrative logical units and circuits described in the embodiments of the present invention may implement or operate the described functions by using a general purpose processor, a digital signal processor, an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA) or another programmable logical apparatus, a discrete gate or transistor logic, a discrete hardware component, or a design of any combination thereof. The general purpose processor may be a microprocessor. Optionally, the general purpose processor may also be any conventional processor, controller, microcontroller, or state machine. The processor may also be implemented by a combination of computing apparatuses, such as a digital signal processor and a microprocessor, a plurality of microprocessors, one or more microprocessors with a digital signal processor core, or any other similar configuration.
(68) Steps of the methods or algorithms described in the embodiments of the present invention may be directly embedded into hardware, a software unit executed by a processor, or a combination thereof. The software unit may be stored in a RAM memory, a flash memory, a ROM memory, an EPROM memory, an EEPROM memory, a register, a hard disk, a removable magnetic disk, a CD-ROM, or a storage medium of any other form in the art. For example, the storage medium may be connected to a processor so that the processor may read information from the storage medium and write information to the storage medium. Optionally, the storage medium may further be integrated into a processor. The processor and the storage medium may be arranged in an ASIC, and the ASIC may be disposed in UE. Optionally, the processor and the storage medium may be disposed in different components of the UE.
(69) With descriptions of the foregoing embodiments, a person skilled in the art may clearly understand that the present invention may be implemented by hardware, firmware, or a combination thereof. When the present invention is implemented by software, the foregoing functions may be stored in a computer readable medium or transmitted as one or more instructions or code in the computer readable medium. The computer readable medium includes a computer storage medium and a communications medium, where the communications medium includes any medium that enables a computer program to be transmitted from one place to another. The storage medium may be any available medium accessible to a computer. The following provides an example but does not impose a limitation: The computer readable medium may include a RAM, a ROM, an EEPROM, a CD-ROM, or another optical disc storage or a disk storage medium, or another magnetic storage device, or any other medium that can carry or store expected program code in a form of an instruction or a data structure and can be accessed by a computer. In addition, any connection may be appropriately defined 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, an optical fiber cable, a twisted pair, a digital subscriber line (DSL), or wireless technologies such as infrared ray, radio, and microwave, the coaxial cable, optical fiber cable, twisted pair, DSL, or wireless technologies such as infrared ray, radio, and microwave are included in a definition of a medium to which they belong. For example, a disk (Disk) and disc (disc) used by the present invention includes a compact disc (CD), a laser disc, an optical disc, a digital versatile disc (DVD), a floppy disk, and a Blu-ray disc, where the disk generally copies data by a magnetic means, and the disc copies data optically by a laser. The foregoing combination should also be included in the protection scope of the computer readable medium.
(70) In summary, what is described above is merely example embodiments of the technical solutions of the present invention, but is not intended to limit the protection scope of the present invention. Any modification, equivalent replacement, improvement, or the like made without departing from the principle of the present invention shall fall within the protection scope of the present invention.