Polar code (polar Code) is a coding technology that has been getting increasing attention in recent years. In the technology, a composite channel is constructed to change a characteristic of an original channel, so as to make a capacity of the composite channel more approach a maximum capacity or minimum capacity. Therefore, the technology is referred to as “polar code”. By virtue of this characteristic, based on a proper coding design, polar code can be suitable for a randomly distributed original channel, and implement many different channels that all achieve very good performance and approach a channel capacity. In addition, by using interference cancellation decoding, polar code can significantly reduce receiver complexity and greatly facilitates receiver implementation.
In an existing LTE standard, convolutional codes and turbo codes are mainly used in channel coding. Bit rates of the convolutional codes and turbo codes are fixed at ⅓. That is, a ratio of a quantity of input bits to a quantity of output bits in channel coding is equal to 1:3. In actual transmission, the quantity of input bits depends on a size of a to-be-transmitted data block, and varies with an actual need. The quantity of output bits is related to a size of a physical source block, and varies with a scheduling result. Therefore, a ratio of input bits to output bits in a system is variable. In the LTE standard, a change of the ratio is implemented by puncturing a proper quantity of output bits after channel coding. That is, a quantity of output bits is reduced to implement bit rate matching.
When a to-be-transmitted transport block is relatively large, that is, a quantity of input bits that can be supported by a channel code block is exceeded, the transport block needs to be divided into multiple code blocks (data blocks) for performing channel coding separately. A general block division method is: According to a maximum quantity L of input bits that is supported by a channel code block, L or less bits are intercepted continuously from a transport block, as a code block (data block), till a quantity of remaining bits is less than L. In a specific block division method, proper tuning also needs to be considered. For example, one or more CRC check bits are padded to each code block (data block), and one or more padding bits are padded for matching a resource block size.
Because a polar code has a different structure from a convolutional code and a turbo code and its bit rate is related to a quantity of input bits, a fixed bit rate is unsuitable. Both a quantity of valid input bits and a quantity of valid output bits of the polar code are related to an encoder structure, and are associated with each other. Therefore, it is unsuitable to implement rate matching by puncturing only output bits.
In addition, the polar code has a different characteristic from the convolutional code and the turbo code. Transmission quality of input bits of the polar code is obviously different, and output bits of the polar code have different functions. Therefore, if an existing method is used to divide a transport block, a coding capability of the polar code cannot be fully used.