Communication method and communication device

CN119452585APending Publication Date: 2025-02-14HUAWEI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202280097468.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2022-07-01
Publication Date
2025-02-14

AI Technical Summary

Technical Problem

The implementation complexity of Polar codes in communication systems is high, which affects communication efficiency.

Method used

By determining the number of code blocks at the sender and receiver based on the number of bits of the information to be encoded and the target code rate, using Polar code encoding and decoding, the complexity of Polar code implementation is reduced, and at least two circular buffers are used in the rate matching process. to simplify processing.

Benefits of technology

It effectively reduces the implementation complexity of Polar codes, improves communication efficiency, avoids jitter in coding performance, and improves system performance and power consumption efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119452585A_ABST
    Figure CN119452585A_ABST
Patent Text Reader

Abstract

The invention provides a communication method and a communication device, which are used for reducing the implementation complexity of a Polar code so as to improve the communication efficiency. In the method, a sending end obtains information to be coded, the information to be coded comprises k bits, and k is a positive integer; the sending end determines that the number of code blocks is C, wherein C is a positive integer; the sending end performs polarization coding on the to-be-coded information based on C to obtain C coded code blocks; and the sending end sends C coded code blocks. In some implementations, the transmitting end determines the number of code blocks to be C based on k and a target code rate. In some implementations, the transmitting end obtains C encoded code blocks based on a code block coupling manner. In some implementations, the transmitting end transmits C encoded code blocks based on a first cyclic cache and a second cyclic cache.
Need to check novelty before this filing date? Find Prior Art

Description

Communication method and communication device Technical Field

[0001] The present application relates to the field of communication technology, and in particular to a communication method and a communication device. Background Art

[0002] In a communication system, the information transmission process at the transmitter includes channel coding, modulation, resource mapping, and antenna mapping. Polar codes are a channel coding scheme that has been rigorously proven to achieve Shannon channel capacity. The 5G standard has confirmed the use of Polar codes as the channel coding scheme for control channels.

[0003] However, how to reduce the implementation complexity of Polar codes is a technical problem that needs to be solved urgently.

[0004] Summary of the Invention

[0005] The present application provides a communication method and a communication device for reducing the implementation complexity of Polar codes to improve communication efficiency.

[0006] In a first aspect, the present application provides a communication method, which is executed by a transmitter, or by some components of the transmitter (such as a processor, chip, or chip system), or can also be implemented by a logic module or software that can implement all or part of the functions of the transmitter. In the first aspect and its possible implementation, the communication method is described as being executed by the transmitter. In this method, the transmitter obtains information to be encoded, where the information to be encoded includes k bits, where k is a positive integer; the transmitter determines the number of code blocks to be C, where C is a positive integer; the transmitter performs polarization encoding on the information to be encoded based on C to obtain C encoded code blocks; and the transmitter transmits the C encoded code blocks.

[0007] Based on the above technical solution, when the transmitter determines the number of code blocks to be sent, C, during information transmission, the transmitter performs polar coding on the information to be coded based on the number of code blocks C, thereby obtaining and transmitting C encoded code blocks encoded with Polar codes. Therefore, implementing Polar code encoding based on the number of code blocks C by the transmitter can reduce the implementation complexity of Polar codes and improve communication efficiency.

[0008] It should be understood that after obtaining the C coded code blocks, the transmitting end can also perform at least one operation such as modulation, resource mapping and antenna mapping on the C coded code blocks, and then obtain and send the first information for carrying the C coded code blocks (or obtain and send the first information including the C coded code blocks), so that the subsequent receiving end can obtain the C coded code blocks based on the received first information.

[0009] In a possible implementation manner of the first aspect, the transmitting end determining the number of code blocks as C includes: the transmitting end determining the number of code blocks as C based on k and a target code rate.

[0010] Based on the above technical solution, when determining the number of code blocks, the transmitter can determine the number of code blocks to be C based on k and the target bit rate. In other words, the transmitter determines the number of code blocks for Polar coding to be C based on the number of bits of information to be encoded, k, and the target bit rate for Polar coding. Compared to the implementation process of determining the number of code blocks based on k, which may cause jitter in coding performance, the above technical solution adds the target bit rate as a factor in determining the number of code blocks, which can avoid jitter in coding performance and improve the coding performance of Polar coding.

[0011] It should be understood that the number of bits k of the information to be encoded and the target bit rate satisfy the following equation: k / E = R, where E is the target code length and R is the target bit rate. In other words, the values ​​of any two of the three parameters, the number of bits to be encoded, the target bit rate, and the target code length, can determine the value of the other. Therefore, in this implementation, the number of code blocks, C, is determined based on k and the target bit rate. This can also be expressed as the number of code blocks, C, being determined based on any two of k, the target bit rate, and the target code length.

[0012] Optionally, the sending end determines the target bit rate based on a preconfigured manner.

[0013] Optionally, the transmitting end determines the target bit rate based on instructions (or configurations) of other devices.

[0014] In a possible implementation manner of the first aspect, the target bit rate is one of at least two bit rates.

[0015] Based on the above technical solution, the target code rate is one of at least two code rates, so that the transmitter can use one of the at least two code rates as one of the bases for determining the number of code blocks.

[0016] In a possible implementation manner of the first aspect, the target code rate is 1 / 8, 1 / 4 or 1 / 2.

[0017] Based on the above technical solution, as one of the bases for the transmitter to determine the number of code blocks, the target code rate is 1 / 8, 1 / 4, or 1 / 2 (that is, when the target code rate is one of at least two code rates, the at least two code rates correspond to three code rates), so that the transmitter performs the Polar code encoding process based on the target code rate of 1 / 8, 1 / 4, or 1 / 2.

[0018] Optionally, the at least two code rates correspond to three code rates, that is, when the transmitting end is based on one of the three code rates, compared with the implementation method in which the transmitting end performs Polar coding based on one of more than three code rates, the implementation complexity can be reduced, and the implementation method can be applicable to the encoding of low-power Polar codes to reduce system power consumption.

[0019] In a possible implementation manner of the first aspect, determining the number of code blocks as C based on k and the target coding rate includes:

[0020] When the target code rate is 1 / 8 and k is less than the first threshold, C is determined to be 1; or,

[0021] When the target code rate is 1 / 8 and k is greater than or equal to the first threshold and k is less than the second threshold, C is determined to be 2; or,

[0022] When the target bit rate is 1 / 8 and k is greater than or equal to the second threshold, determining C to be 3; or,

[0023] When the target code rate is 1 / 4 and k is less than a third threshold, C is determined to be 1; or,

[0024] When the target code rate is 1 / 4 and k is greater than or equal to the third threshold and k is less than the fourth threshold, C is determined to be 2; or,

[0025] When the target code rate is 1 / 4 and k is greater than or equal to the fourth threshold, determining C to be 3; or,

[0026] When the target code rate is 1 / 2 and k is less than the fifth threshold, C is determined to be 1; or,

[0027] When the target code rate is 1 / 2 and k is greater than or equal to the fifth threshold, C is determined to be 2.

[0028] Optionally, in the above implementation, when k is equal to a certain threshold (including any threshold from the first threshold to the fifth threshold), the transmitting end may determine that C is another value.

[0029] For example, when the target code rate is 1 / 8 and k is equal to the first threshold, C is determined to be 1.

[0030] For another example, when the target bit rate is 1 / 8 and k is equal to the second threshold, C is determined to be 2.

[0031] For another example, when the target bit rate is 1 / 4 and k is equal to the third threshold, C is determined to be 1.

[0032] For another example, when the target bit rate is 1 / 4 and k is equal to the fourth threshold, C is determined to be 2.

[0033] For another example, when the target bit rate is 1 / 2 and k is equal to the fifth threshold, C is determined to be 1.

[0034] Optionally, the first threshold is greater than or equal to 180 and the first threshold is less than or equal to 205.

[0035] Optionally, the second threshold is greater than or equal to 310 and the second threshold is less than or equal to 355.

[0036] Optionally, the third threshold is greater than or equal to 175 and the third threshold is less than or equal to 205.

[0037] Optionally, the fourth threshold is greater than or equal to 310 and the fourth threshold is less than or equal to 335.

[0038] Optionally, the fifth threshold is greater than or equal to 290 and the fifth threshold is less than or equal to 310.

[0039] In a possible implementation of the first aspect, the transmitting end performing polar coding on the information to be coded based on C to obtain C coded code blocks includes: performing polar coding, by the transmitting end, on the information to be coded based on C to obtain C initial code blocks; and determining, by the transmitting end, C coded code blocks based on the C initial code blocks, where an i-th coded code block among the C coded code blocks is determined based on an i-th initial code block among the C initial code blocks, and i traverses from 1 to C.

[0040] Based on the above technical solution, in the process of obtaining C coded code blocks, the transmitting end performs polar coding on the information to be coded based on the number C of code blocks to obtain C initial code blocks. The transmitting end then determines C coded code blocks based on the C initial code blocks. The i-th coded code block among the C coded code blocks is determined based on the i-th initial code block among the C initial code blocks, so that the C coded code blocks actually transmitted by the transmitting end correspond to the C initial code blocks corresponding to the information to be coded, thereby reducing processing complexity.

[0041] In a possible implementation of the first aspect, determining an i-th coded code block among the C coded code blocks based on the i-th initial code block among the C initial code blocks includes: in at least one coded code block among the C coded code blocks, the i-th coded code block is the i-th initial code block among the C initial code blocks; in the remaining coded code blocks among the C coded code blocks other than the at least one coded code block, x bits of the i-th coded code block are a coupling result of x bits in the i-th initial code block among the C initial code blocks and x bits in the j-th initial code block, and the remaining Nx bits in the i-th coded code block are the remaining Nx bits in the i-th initial code block among the C initial code blocks, the number of code blocks in the remaining coded code blocks is a positive integer, x is less than or equal to N, i is not equal to j, i and j are both less than or equal to C, and i and j are both positive integers.

[0042] Based on the above technical solution, among the C encoded code blocks, the i-th encoded code block in at least one encoded code block is identical to the i-th initial code block in the C initial code blocks. Furthermore, among the remaining encoded code blocks other than the at least one encoded code block, the x bits in the i-th encoded code block are the result of coupling the i-th initial code block and the j-th initial code block. Therefore, while the x bits in the i-th encoded code block are used to transmit the x bits of information in the i-th initial code block, the x bits in the i-th encoded code block, as the result of the coupling, can also be used to verify the i-th initial code block and the j-th initial code block, thereby improving the security of information transmission.

[0043] In addition, since the x bits in the i-th encoded code block can be used as a coupling result to verify the i-th initial code block and the j-th initial code block, the transmitter does not need to carry a cyclic redundancy code (CRC) check code of the code block (CB) in each of the C encoded code blocks, thereby reducing overhead while achieving code block verification to improve performance.

[0044] Optionally, determining the i-th coded code block among the C coded code blocks based on the i-th initial code block among the C initial code blocks includes: x bits of the i-th coded code block among the C coded code blocks are the result of coupling x bits in the i-th initial code block among the C initial code blocks and x bits in the j-th initial code block, and the remaining Nx bits of the i-th coded code block are the remaining Nx bits in the i-th initial code block among the C initial code blocks, the number of code blocks in the remaining coded code blocks is a positive integer, x is less than or equal to N, i is not equal to j, i and j are both less than or equal to C, and i and j are both positive integers. In other words, any code block among the C coded code blocks is the result of coupling at least two code blocks among the C code blocks.

[0045] In a possible implementation manner of the first aspect, x is equal to N / 2.

[0046] Based on the above technical solution, the number of bits corresponding to any one of the C initial code blocks and the C encoded code blocks is N, and in some or all of the code blocks in the C encoded code blocks, the x bits of the i-th encoded code block are the coupling result. To this end, in this implementation, when x is equal to N / 2, the x bits in the i-th initial code block and the x bits in the j-th initial code block participating in the coupling are both half the number of bits corresponding to any one of the code blocks. That is, the use of a half-coupling method allows the information in the cache to be used in a ping-pong manner (for example, the x bits in the j-th initial code block in the C initial code blocks can be used as the x bits in the j-th initial code block in the C encoded code blocks, and the x bits in the j-th initial code block in the C initial code blocks can also be used to determine the x bits in the i-th initial code block in the C encoded code blocks), which can reduce processing complexity and improve system performance.

[0047] Optionally, x may also be other values, such as N / 3, N / 4, N / 8, etc.

[0048] In a possible implementation manner of the first aspect, the coupling result is an exclusive-OR result.

[0049] Optionally, the coupling result is an XOR result, or other implementations.

[0050] In a possible implementation manner of the first aspect, i=j-1, or i=j+1.

[0051] Based on the above technical solution, i=j-1, or i=j+1, that is, the i-th initial code block and the j-th initial code block participating in the coupling are adjacent code blocks among the C initial code blocks, so as to reduce processing complexity and improve system performance.

[0052] In a possible implementation of the first aspect, the transmitting end sends C encoded code blocks, including: the transmitting end storing a first part of the encoded information of any code block among the C encoded code blocks in a first circular buffer, and storing a second part of the encoded information of any code block among the C encoded code blocks in a second circular buffer; the transmitting end reads bit information of the first circular buffer and bit information of the second circular buffer as a target bit sequence based on a target code length corresponding to any code block among the C encoded code blocks; and the transmitting end sends the target bit sequence.

[0053] Based on the above technical solution, the transmitter needs to perform a rate matching process when sending C encoded code blocks, that is, the transmitter stores information based on at least two circular buffers (including a first circular buffer and a second circular buffer), and reads the information stored in the at least two circular buffers based on the target code length to obtain and send the target bit sequence, so as to simplify the rate matching process, reduce complexity and reduce performance loss.

[0054] Optionally, compared to the method of performing sub-block interleaving of the encoded code blocks through only one circular cache to perform rate matching, the above technical solution uses at least two circular caches (including a first circular cache and a second circular cache) to store information without performing the sub-block interleaving process, which can reduce complexity while maintaining high performance.

[0055] In a possible implementation of the first aspect, when a target code length corresponding to any code block among the C encoded code blocks is less than or equal to a bit length corresponding to the any code block, the target bit sequence includes a first sequence and a second sequence; wherein the first sequence includes data after puncturing the data in the first circular buffer and a sequence length of the first sequence is less than or equal to a sequence length of the first portion, and the second sequence includes data after puncturing the data in the second circular buffer and a sequence length of the second sequence is less than or equal to a sequence length of the second portion; or, when a target code length corresponding to any code block among the C encoded code blocks is greater than a bit length corresponding to the any code block, the target bit sequence includes one sequence; wherein the one sequence includes data after repeated processing of the data in the first circular buffer and data after repeated processing of the data in the second circular buffer, and the sequence length of the one sequence is greater than the bit length corresponding to the any code block.

[0056] Based on the above technical solution, the transmitter performs puncturing or repetition processing based on the target code length corresponding to any code block among the C encoded code blocks and the bit length corresponding to any code block to achieve the rate matching process and obtain the rate matching gain, that is, the information sent by the transmitter can match the resources that carry the information.

[0057] Optionally, the above technical solution describes a process for achieving rate matching through puncturing or repetition. This process can also be achieved through shortening. For example, shortening can be used to achieve rate matching in high-bitrate scenarios. Considering that the application scenario of this embodiment is primarily low-bitrate, shortening in low-bitrate scenarios may affect performance (for example, shortening may require multiple locations of high-reliability bits in the Polar code, resulting in poor performance). Therefore, the above technical solution uses puncturing or repetition to achieve rate matching.

[0058] In a possible implementation of the first aspect, when a target code length corresponding to any one of the C encoded code blocks is an even number, the number of bits corresponding to any one of the C encoded code blocks in the first circular buffer is the same as the number of bits corresponding to any one of the C code blocks in the second circular buffer; or, when a target code length corresponding to any one of the C encoded code blocks is an odd number, the number of bits corresponding to any one of the C encoded code blocks in the second circular buffer is one more than the number of bits corresponding to any one of the C encoded code blocks in the first circular buffer.

[0059] Based on the above technical solution, when the target code length corresponding to any one of the C encoded code blocks is an even number, the number of bits corresponding to any one of the C encoded code blocks in the first circular buffer is the same as the number of bits corresponding to any one of the C code blocks in the second circular buffer, thereby reducing processing complexity. When the target code length corresponding to any one of the C encoded code blocks is an odd number, the number of bits corresponding to any one of the C encoded code blocks in the second circular buffer is one more than the number of bits corresponding to any one of the C encoded code blocks in the first circular buffer.

[0060] Optionally, when the value of the target code length corresponding to any code block among the C encoded code blocks is an odd number, the number of bits corresponding to any code block among the C encoded code blocks in the second circular buffer is 1 less than the number of bits corresponding to any code block among the C encoded code blocks in the first circular buffer.

[0061] In a possible implementation of the first aspect, the number of bits corresponding to the first part is half of the number of bits corresponding to the encoded information of any code block in the C code blocks; and / or the number of bits corresponding to the second part is half of the number of bits corresponding to the encoded information of any code block in the C code blocks.

[0062] Based on the above technical solution, the number of bits corresponding to the first part (and / or the second part) is half the number of bits corresponding to the encoded information of any code block in the C code blocks. That is, the transmitting end stores information based on the first circular buffer and the second circular buffer, and reads the information stored in the first circular buffer and the second circular buffer respectively based on the target code length to obtain the target bit sequence, thereby reducing the implementation complexity.

[0063] The second aspect of the present application provides a communication method, which is executed by a receiving end, or the method is executed by some components in the receiving end (such as a processor, chip or chip system, etc.), or the method can also be implemented by a logic module or software that can realize all or part of the functions of the receiving end. In the second aspect and its possible implementation, the communication method is described as being executed by the receiving end. In this method, the receiving end receives first information, and the first information is obtained based on k bits of information, where k is a positive integer; the receiving end determines that the number of code blocks corresponding to the first information is C, where C is a positive integer; the receiving end determines C encoded code blocks corresponding to the first information based on C; and the receiving end determines k bits of information based on the C encoded code blocks.

[0064] Based on the above technical solution, after the receiving end determines that the number of code blocks corresponding to the first information is C, the receiving end determines, based on C, the C encoded code blocks corresponding to the first information, which have been encoded using a Polar code. Furthermore, based on these C encoded code blocks, the receiving end determines the k bits of information corresponding to the first information. Therefore, the receiving end's implementation of Polar code decoding for the first information based on the number of code blocks C can reduce the implementation complexity of Polar codes and improve communication efficiency.

[0065] In a possible implementation manner of the second aspect, the receiving end determining that the number of code blocks corresponding to the first information is C includes: the receiving end determining that the number of code blocks is C based on k and a target code rate.

[0066] Based on the above technical solution, when determining the number of code blocks, the receiving end can determine the number of code blocks to be C based on k and the target bit rate. In other words, the receiving end determines the number of code blocks to be used in Polar coding to be C based on the number of bits k of the information to be encoded and the target bit rate of Polar coding. Compared to the implementation process of determining the number of code blocks based on k, which may cause jitter in coding performance, the above technical solution adds the target bit rate as one of the criteria for determining the number of code blocks, which can avoid such jitter and improve the coding performance of Polar coding.

[0067] It should be understood that the number of bits k of the information to be encoded and the target bit rate satisfy the following equation: k / E = R, where E is the target code length and R is the target bit rate. In other words, the values ​​of any two of the three parameters, the number of bits to be encoded, the target bit rate, and the target code length, can determine the value of the other. Therefore, in this implementation, the number of code blocks, C, is determined based on k and the target bit rate. This can also be expressed as the number of code blocks, C, being determined based on any two of k, the target bit rate, and the target code length.

[0068] Optionally, the receiving end determines the target bit rate based on a preconfigured manner.

[0069] Optionally, the receiving end determines the target bit rate based on an instruction (or configuration) of another device (eg, the transmitting end).

[0070] In a possible implementation manner of the second aspect, the target bit rate is one of at least two bit rates.

[0071] Based on the above technical solution, the target code rate is one of at least two code rates, so that the transmitter can use one of the at least two code rates as one of the bases for determining the number of code blocks.

[0072] In a possible implementation manner of the second aspect, the target code rate is 1 / 8, 1 / 4 or 1 / 2.

[0073] Based on the above technical solution, as one of the bases for the transmitter to determine the number of code blocks, the target code rate is 1 / 8, 1 / 4, or 1 / 2 (that is, when the target code rate is one of at least two code rates, the at least two code rates correspond to three code rates), so that the transmitter performs the Polar code encoding process based on the target code rate of 1 / 8, 1 / 4, or 1 / 2.

[0074] Optionally, the at least two code rates correspond to three code rates, that is, when the transmitting end is based on one of the three code rates, compared with the implementation method in which the transmitting end performs Polar coding based on one of more than three code rates, the implementation complexity can be reduced, and the implementation method can be applicable to the encoding of low-power Polar codes to reduce system power consumption.

[0075] In a possible implementation of the second aspect, determining the number of code blocks as C based on k and the target coding rate includes:

[0076] When the target code rate is 1 / 8 and k is less than the first threshold, C is determined to be 1; or,

[0077] When the target code rate is 1 / 8 and k is greater than or equal to the first threshold and k is less than the second threshold, C is determined to be 2; or,

[0078] When the target bit rate is 1 / 8 and k is greater than or equal to the second threshold, determining C to be 3; or,

[0079] When the target code rate is 1 / 4 and k is less than a third threshold, C is determined to be 1; or,

[0080] When the target code rate is 1 / 4 and k is greater than or equal to the third threshold and k is less than the fourth threshold, C is determined to be 2; or,

[0081] When the target code rate is 1 / 4 and k is greater than or equal to the fourth threshold, determining C to be 3; or,

[0082] When the target code rate is 1 / 2 and k is less than the fifth threshold, C is determined to be 1; or,

[0083] When the target code rate is 1 / 2 and k is greater than or equal to the fifth threshold, C is determined to be 2.

[0084] Optionally, in the above implementation, when k is equal to a certain threshold (including any threshold from the first threshold to the fifth threshold), the transmitting end may determine that C is another value.

[0085] For example, when the target code rate is 1 / 8 and k is equal to the first threshold, C is determined to be 1.

[0086] For another example, when the target bit rate is 1 / 8 and k is equal to the second threshold, C is determined to be 2.

[0087] For another example, when the target bit rate is 1 / 4 and k is equal to the third threshold, C is determined to be 1.

[0088] For another example, when the target bit rate is 1 / 4 and k is equal to the fourth threshold, C is determined to be 2.

[0089] For another example, when the target bit rate is 1 / 2 and k is equal to the fifth threshold, C is determined to be 1.

[0090] Optionally, the first threshold is greater than or equal to 180 and the first threshold is less than or equal to 205.

[0091] Optionally, the second threshold is greater than or equal to 310 and the second threshold is less than or equal to 355.

[0092] Optionally, the third threshold is greater than or equal to 175 and the third threshold is less than or equal to 205.

[0093] Optionally, the fourth threshold is greater than or equal to 310 and the fourth threshold is less than or equal to 335.

[0094] Optionally, the fifth threshold is greater than or equal to 290 and the fifth threshold is less than or equal to 310.

[0095] In a possible implementation of the second aspect, the receiving end determines k bits of information based on C encoded code blocks, including: the receiving end determines C initial code blocks based on the C encoded code blocks, wherein the i-th initial code block among the C initial code blocks is determined according to the i-th encoded code block among the C encoded code blocks, and i traverses from 1 to C; and the receiving end decodes based on the C initial code blocks to obtain k bits of information.

[0096] Based on the above technical solution, in the process of determining k bits of information based on C encoded code blocks, the receiving end determines C initial code blocks based on the C encoded code blocks. The i-th initial code block among the C initial code blocks is determined based on the i-th encoded code block among the C encoded code blocks. This allows the receiving end to correspond to the C initial code blocks corresponding to the k bits of information based on the C encoded code blocks actually received, thereby reducing processing complexity.

[0097] In a possible implementation of the second aspect, determining the i-th initial code block among the C initial code blocks based on the i-th coded code block among the C coded code blocks includes: in at least one initial code block among the C initial code blocks, the i-th initial code block is the i-th coded code block among the C coded code blocks; in the remaining initial code blocks other than the at least one initial code block among the C initial code blocks, a coupling result of x bits in the i-th initial code block and x bits in the j-th initial code block is x bits of the i-th coded code block among the C coded code blocks, and the remaining Nx bits in the i-th initial code block are the remaining Nx bits in the i-th coded code block among the C coded code blocks, where the number of code blocks in the remaining coded code blocks is a positive integer, x is less than or equal to N, i is not equal to j, i and j are both less than or equal to C, and i and j are both positive integers.

[0098] Based on the above technical solution, among the C initial code blocks, the i-th initial code block in at least one initial code block is identical to the i-th coded code block in the C coded code blocks. Furthermore, in the initial code blocks other than the at least one initial code block, the coupling result of the i-th initial code block and the j-th initial code block is x bits in the i-th coded code block. This allows the x bits in the i-th coded code block to be used to transmit the x bits of information in the i-th initial code block. Furthermore, the x bits in the i-th coded code block, as the coupling result, can also be used to verify the i-th initial code block against the j-th initial code block, thereby improving information transmission security.

[0099] In addition, since the x bits in the i-th encoded code block can be used as a coupling result to verify the i-th initial code block and the j-th initial code block, the transmitter does not need to carry a cyclic redundancy code (CRC) check code of the code block (CB) in each of the C encoded code blocks, thereby reducing overhead while achieving code block verification to improve performance.

[0100] Optionally, determining the i-th initial code block among the C initial code blocks based on the i-th coded code block among the C coded code blocks includes: in the C initial code blocks, a coupling result of x bits in the i-th initial code block and x bits in the j-th initial code block equals x bits of the i-th coded code block among the C coded code blocks, and the remaining Nx bits in the i-th initial code block equal the remaining Nx bits in the i-th coded code block among the C coded code blocks, where the number of code blocks in the remaining coded code blocks is a positive integer, x is less than or equal to N, i is not equal to j, i and j are both less than or equal to C, and i and j are both positive integers. In other words, any code block among the C coded code blocks is a coupling result of at least two code blocks among the C code blocks.

[0101] In a possible implementation manner of the second aspect, x is equal to N / 2.

[0102] Based on the above technical solution, the number of bits corresponding to any one of the C initial code blocks and the C encoded code blocks is N, and in some or all of the code blocks in the C encoded code blocks, the x bits of the i-th encoded code block are the coupling result. To this end, in this implementation, when x is equal to N / 2, the x bits in the i-th initial code block and the x bits in the j-th initial code block participating in the coupling are both half the number of bits corresponding to any one of the code blocks. That is, the use of a half-coupling method allows the information in the cache to be used in a ping-pong manner (for example, the x bits in the j-th initial code block in the C initial code blocks can be used as the x bits in the j-th initial code block in the C encoded code blocks, and the x bits in the j-th initial code block in the C initial code blocks can also be used to determine the x bits in the i-th initial code block in the C encoded code blocks), which can reduce processing complexity and improve system performance.

[0103] Optionally, x may also be other values, such as N / 3, N / 4, N / 8, etc.

[0104] In a possible implementation manner of the second aspect, the coupling result is an exclusive-OR result.

[0105] Optionally, the coupling result is an XOR result, or other implementations.

[0106] In a possible implementation manner of the second aspect, i=j-1, or i=j+1.

[0107] Based on the above technical solution, i=j-1, or i=j+1, that is, the i-th initial code block and the j-th initial code block participating in the coupling are adjacent code blocks among the C initial code blocks, so as to reduce processing complexity and improve system performance.

[0108] In a possible implementation of the second aspect, the receiving end determines, based on C, the C encoded code blocks corresponding to the first information, including: the receiving end determining a target bit sequence corresponding to the first information; the receiving end determining, based on a target code length corresponding to any code block among the C encoded code blocks, bit information of the target bit sequence in a first loop cache and bit information of the target bit sequence in a second loop cache; the receiving end determines, based on the bit information of the target bit sequence in the first loop cache, a first part of the encoded information of any code block among the C encoded code blocks, and determines, based on the bit information of the target bit sequence in the second loop cache, the C encoded code blocks; and the receiving end determines any code block among the C encoded code blocks based on the first part and the second part.

[0109] Based on the above technical solution, in the process of determining the C encoded code blocks corresponding to the first information based on C, the receiving end determines the information stored in at least two circular buffers (including the first circular buffer and the second circular buffer) of the target bit sequence corresponding to the first information, and the receiving end restores any code block among the C encoded code blocks based on the target code length and the information stored in the at least two circular buffers, so as to simplify the rate matching process, reduce complexity and reduce performance loss.

[0110] In a possible implementation of the second aspect, when a target code length corresponding to any code block among the C encoded code blocks is less than or equal to a bit length corresponding to the any code block, the target bit sequence includes a first sequence and a second sequence; wherein the first sequence includes data after puncturing the data in the first circular buffer and a sequence length of the first sequence is less than or equal to a sequence length of the first part, and the second sequence includes data after puncturing the data in the second circular buffer and a sequence length of the second sequence is less than or equal to a sequence length of the second part; or, when the target code length corresponding to any code block among the C encoded code blocks is greater than a bit length corresponding to the any code block, the target bit sequence includes one sequence; wherein the one sequence includes data after repeated processing of the data in the first circular buffer and data after repeated processing of the data in the second circular buffer, and the sequence length of the one sequence is greater than the bit length corresponding to the any code block.

[0111] Based on the above technical solution, the receiving end performs puncturing or repetition processing based on the target code length corresponding to any code block in the C encoded code blocks and the bit length corresponding to any code block to restore the C encoded code blocks corresponding to the target bit information.

[0112] In a possible implementation of the second aspect, when a target code length corresponding to any one of the C encoded code blocks is an even number, the number of bits corresponding to any one of the C encoded code blocks in the first circular buffer is the same as the number of bits corresponding to any one of the C code blocks in the second circular buffer; or, when a target code length corresponding to any one of the C encoded code blocks is an odd number, the number of bits corresponding to any one of the C encoded code blocks in the second circular buffer is one more than the number of bits corresponding to any one of the C encoded code blocks in the first circular buffer.

[0113] Based on the above technical solution, when the target code length corresponding to any one of the C encoded code blocks is an even number, the number of bits corresponding to any one of the C encoded code blocks in the first circular buffer is the same as the number of bits corresponding to any one of the C code blocks in the second circular buffer, thereby reducing processing complexity. When the target code length corresponding to any one of the C encoded code blocks is an odd number, the number of bits corresponding to any one of the C encoded code blocks in the second circular buffer is one more than the number of bits corresponding to any one of the C encoded code blocks in the first circular buffer.

[0114] Optionally, when the value of the target code length corresponding to any code block among the C encoded code blocks is an odd number, the number of bits corresponding to any code block among the C encoded code blocks in the second circular buffer is 1 less than the number of bits corresponding to any code block among the C encoded code blocks in the first circular buffer.

[0115] In a possible implementation of the second aspect, the number of bits corresponding to the first part is half of the number of bits corresponding to the encoded information of any code block in the C code blocks; and / or the number of bits corresponding to the second part is half of the number of bits corresponding to the encoded information of any code block in the C code blocks.

[0116] Based on the above technical solution, the number of bits corresponding to the first part (and / or the second part) is half the number of bits corresponding to the encoded information of any code block in the C code blocks. That is, the transmitting end stores information based on the first circular buffer and the second circular buffer, and reads the information stored in the first circular buffer and the second circular buffer respectively based on the target code length to obtain the target bit sequence, thereby reducing the implementation complexity.

[0117] In a third aspect, the present application provides a communication device that can implement the method in the first aspect or any possible implementation of the first aspect. The device includes corresponding units or modules for executing the above-mentioned method. The units or modules included in the device can be implemented by software and / or hardware. For example, the device can be a receiving end, or the device can be a component in the receiving end (such as a processor, chip or chip system, etc.), or the device can also be a logical module or software that can implement all or part of the functions of the receiving end.

[0118] The device includes a transceiver unit and a processing unit; the processing unit is used to obtain information to be encoded, where the information to be encoded includes k bits, where k is a positive integer; the processing unit is also used to determine the number of code blocks as C, where C is a positive integer; the processing unit is also used to perform polarization encoding on the information to be encoded based on C to obtain C encoded code blocks; and the transceiver unit is used to send the C encoded code blocks.

[0119] In a possible implementation manner of the third aspect, the processing unit is specifically configured to determine the number of code blocks as C based on k and a target code rate.

[0120] In a possible implementation manner of the third aspect, the target bit rate is one of at least two bit rates.

[0121] In a possible implementation of the third aspect, the target code rate is 1 / 8, 1 / 4 or 1 / 2.

[0122] In a possible implementation of the third aspect, the processing unit is specifically configured to:

[0123] When the target code rate is 1 / 8 and k is less than the first threshold, C is determined to be 1; or,

[0124] When the target code rate is 1 / 8 and k is greater than or equal to the first threshold and k is less than the second threshold, C is determined to be 2; or,

[0125] When the target bit rate is 1 / 8 and k is greater than or equal to the second threshold, determining C to be 3; or,

[0126] When the target code rate is 1 / 4 and k is less than a third threshold, C is determined to be 1; or,

[0127] When the target code rate is 1 / 4 and k is greater than or equal to the third threshold and k is less than the fourth threshold, C is determined to be 2; or,

[0128] When the target code rate is 1 / 4 and k is greater than or equal to the fourth threshold, determining C to be 3; or,

[0129] When the target code rate is 1 / 2 and k is less than the fifth threshold, C is determined to be 1; or,

[0130] When the target code rate is 1 / 2 and k is greater than or equal to the fifth threshold, C is determined to be 2.

[0131] In a possible implementation of the third aspect,

[0132] The first threshold is greater than or equal to 180 and the first threshold is less than or equal to 205; or,

[0133] The second threshold is greater than or equal to 310 and the second threshold is less than or equal to 355; or,

[0134] The third threshold is greater than or equal to 175 and the third threshold is less than or equal to 205; or,

[0135] The fourth threshold is greater than or equal to 310 and the fourth threshold is less than or equal to 335; or,

[0136] The fifth threshold is greater than or equal to 290 and the fifth threshold is less than or equal to 310.

[0137] In a possible implementation manner of the third aspect, the processing unit is specifically configured to: perform polar coding on the information to be encoded based on C to obtain C initial code blocks; and determine C encoded code blocks based on the C initial code blocks, wherein an i-th encoded code block among the C encoded code blocks is determined according to an i-th initial code block among the C initial code blocks, where i traverses from 1 to C.

[0138] In a possible implementation of the third aspect, determining the i-th coded code block among the C coded code blocks based on the i-th initial code block among the C initial code blocks includes: in at least one coded code block among the C coded code blocks, the i-th coded code block is the i-th initial code block among the C initial code blocks; in the remaining coded code blocks among the C coded code blocks other than the at least one coded code block, x bits of the i-th coded code block are a coupling result of x bits in the i-th initial code block among the C initial code blocks and x bits in the j-th initial code block, and the remaining Nx bits in the i-th coded code block are the remaining Nx bits in the i-th initial code block among the C initial code blocks, the number of code blocks in the remaining coded code blocks is a positive integer, x is less than or equal to N, i is not equal to j, i and j are both less than or equal to C, and i and j are both positive integers.

[0139] In a possible implementation of the third aspect, x is equal to N / 2.

[0140] In a possible implementation manner of the third aspect, the coupling result is an exclusive-OR result.

[0141] In a possible implementation manner of the third aspect, i=j-1, or i=j+1.

[0142] In a possible implementation of the third aspect, the transceiver unit is specifically configured to: store a first portion of the encoded information of any one of the C encoded code blocks in a first circular buffer, and store a second portion of the encoded information of any one of the C encoded code blocks in a second circular buffer; read bit information of the first circular buffer and bit information of the second circular buffer as a target bit sequence based on a target code length corresponding to any one of the C encoded code blocks; and send the target bit sequence.

[0143] In a possible implementation of the third aspect, when a target code length corresponding to any code block among the C encoded code blocks is less than or equal to a bit length corresponding to the any code block, the target bit sequence includes a first sequence and a second sequence; wherein the first sequence includes data after puncturing the data in the first circular buffer and a sequence length of the first sequence is less than or equal to a sequence length of the first part, and the second sequence includes data after puncturing the data in the second circular buffer and a sequence length of the second sequence is less than or equal to a sequence length of the second part; or, when a target code length corresponding to any code block among the C encoded code blocks is greater than a bit length corresponding to the any code block, the target bit sequence includes one sequence; wherein the one sequence includes data after repeated processing of the data in the first circular buffer and data after repeated processing of the data in the second circular buffer, and the sequence length of the one sequence is greater than the bit length corresponding to the any code block.

[0144] In a possible implementation of the third aspect, when a target code length corresponding to any one of the C encoded code blocks is an even number, the number of bits corresponding to any one of the C encoded code blocks in the first circular buffer is the same as the number of bits corresponding to any one of the C code blocks in the second circular buffer; or, when a target code length corresponding to any one of the C encoded code blocks is an odd number, the number of bits corresponding to any one of the C encoded code blocks in the second circular buffer is one more than the number of bits corresponding to any one of the C encoded code blocks in the first circular buffer.

[0145] In a possible implementation of the third aspect, the number of bits corresponding to the first part is half of the number of bits corresponding to the encoded information of any code block in the C code blocks; and / or the number of bits corresponding to the second part is half of the number of bits corresponding to the encoded information of any code block in the C code blocks.

[0146] In the third aspect of the embodiment of the present application, the component modules of the communication device can also be used to execute the steps performed in various possible implementation methods of the first aspect. For details, please refer to the first aspect and will not be repeated here.

[0147] In a fourth aspect, the present application provides a communication device that can implement the method in the second aspect or any possible implementation of the second aspect. The device includes corresponding units or modules for executing the above-mentioned method. The units or modules included in the device can be implemented by software and / or hardware. For example, the device can be a transmitting end, or the device can be a component in the transmitting end (such as a processor, chip or chip system, etc.), or the device can also be a logical module or software that can implement all or part of the functions of the transmitting end.

[0148] The device includes a transceiver unit and a processing unit; the transceiver unit is used to receive first information, which is obtained based on k bits of information, where k is a positive integer; the processing unit is used to determine that the number of code blocks corresponding to the first information is C, where C is a positive integer; the processing unit is also used to determine the C encoded code blocks corresponding to the first information based on C; the processing unit is also used to determine k bits of information based on the C encoded code blocks.

[0149] In a possible implementation manner of the fourth aspect, the processing unit is specifically configured to: determine the number of code blocks as C based on k and a target code rate.

[0150] In a possible implementation manner of the fourth aspect, the target bit rate is one of at least two bit rates.

[0151] In a possible implementation of the fourth aspect, the target code rate is 1 / 8, 1 / 4 or 1 / 2.

[0152] In a possible implementation manner of the fourth aspect, determining the number of code blocks as C based on k and the target coding rate includes:

[0153] When the target code rate is 1 / 8 and k is less than the first threshold, C is determined to be 1; or,

[0154] When the target code rate is 1 / 8 and k is greater than or equal to the first threshold and k is less than the second threshold, C is determined to be 2; or,

[0155] When the target bit rate is 1 / 8 and k is greater than or equal to the second threshold, determining C to be 3; or,

[0156] When the target code rate is 1 / 4 and k is less than a third threshold, C is determined to be 1; or,

[0157] When the target code rate is 1 / 4 and k is greater than or equal to the third threshold and k is less than the fourth threshold, C is determined to be 2; or,

[0158] When the target code rate is 1 / 4 and k is greater than or equal to the fourth threshold, determining C to be 3; or,

[0159] When the target code rate is 1 / 2 and k is less than the fifth threshold, C is determined to be 1; or,

[0160] When the target code rate is 1 / 2 and k is greater than or equal to the fifth threshold, C is determined to be 2.

[0161] In a possible implementation of the fourth aspect,

[0162] The first threshold is greater than or equal to 180 and the first threshold is less than or equal to 205; or,

[0163] The second threshold is greater than or equal to 310 and the second threshold is less than or equal to 355; or,

[0164] The third threshold is greater than or equal to 175 and the third threshold is less than or equal to 205; or,

[0165] The fourth threshold is greater than or equal to 310 and the fourth threshold is less than or equal to 335; or,

[0166] The fifth threshold is greater than or equal to 290 and the fifth threshold is less than or equal to 310.

[0167] In a possible implementation of the fourth aspect, the processing unit is specifically used to: determine C initial code blocks based on C encoded code blocks, wherein the i-th initial code block among the C initial code blocks is determined according to the i-th encoded code block among the C encoded code blocks, and i traverses from 1 to C; and decode based on the C initial code blocks to obtain k bits of information.

[0168] In a possible implementation of the fourth aspect, determining the i-th initial code block among the C initial code blocks based on the i-th coded code block among the C coded code blocks includes: in at least one initial code block among the C initial code blocks, the i-th initial code block is the i-th coded code block among the C coded code blocks; in the remaining initial code blocks other than the at least one initial code block among the C initial code blocks, a coupling result of x bits in the i-th initial code block and x bits in the j-th initial code block is x bits of the i-th coded code block among the C coded code blocks, and the remaining Nx bits in the i-th initial code block are the remaining Nx bits in the i-th coded code block among the C coded code blocks, where the number of code blocks in the remaining coded code blocks is a positive integer, x is less than or equal to N, i is not equal to j, i and j are both less than or equal to C, and i and j are both positive integers.

[0169] In a possible implementation of the fourth aspect, x is equal to N / 2.

[0170] In a possible implementation manner of the fourth aspect, the coupling result is an exclusive-OR result.

[0171] In a possible implementation manner of the fourth aspect, i=j-1, or i=j+1.

[0172] In a possible implementation of the fourth aspect, the processing unit is specifically used to: determine a target bit sequence corresponding to the first information; determine bit information of the target bit sequence in a first loop cache and bit information of the target bit sequence in a second loop cache based on a target code length corresponding to any code block among the C encoded code blocks; determine a first part of the encoded information of any code block among the C encoded code blocks based on the bit information of the target bit sequence in the first loop cache, and determine the second part of the encoded information of any code block among the C encoded code blocks based on the bit information of the target bit sequence in the second loop cache; and determine any code block among the C encoded code blocks based on the first part and the second part.

[0173] In a possible implementation of the fourth aspect, when the target code length corresponding to any code block among the C encoded code blocks is less than or equal to the bit length corresponding to the any code block, the target bit sequence includes a first sequence and a second sequence; wherein the first sequence includes data after puncturing the data in the first circular buffer and the sequence length of the first sequence is less than or equal to the sequence length of the first part, and the second sequence includes data after puncturing the data in the second circular buffer and the sequence length of the second sequence is less than or equal to the sequence length of the second part; or, when the target code length corresponding to any code block among the C encoded code blocks is greater than the bit length corresponding to the any code block, the target bit sequence includes one sequence; wherein the one sequence includes data after repeated processing of the data in the first circular buffer and data after repeated processing of the data in the second circular buffer, and the sequence length of the one sequence is greater than the bit length corresponding to the any code block.

[0174] In a possible implementation of the fourth aspect, when a target code length corresponding to any one of the C encoded code blocks is an even number, the number of bits corresponding to any one of the C encoded code blocks in the first circular buffer is the same as the number of bits corresponding to any one of the C code blocks in the second circular buffer; or, when a target code length corresponding to any one of the C encoded code blocks is an odd number, the number of bits corresponding to any one of the C encoded code blocks in the second circular buffer is one more than the number of bits corresponding to any one of the C encoded code blocks in the first circular buffer.

[0175] In a possible implementation of the fourth aspect, the number of bits corresponding to the first part is half of the number of bits corresponding to the encoded information of any code block in the C code blocks; and / or the number of bits corresponding to the second part is half of the number of bits corresponding to the encoded information of any code block in the C code blocks.

[0176] In the fourth aspect of the embodiment of the present application, the component modules of the communication device can also be used to execute the steps performed in various possible implementation methods of the second aspect. For details, please refer to the second aspect and will not be repeated here.

[0177] A fifth aspect of the embodiments of the present application provides a communication device, including at least one processor, wherein the at least one processor is coupled to a memory;

[0178] The memory is used to store programs or instructions;

[0179] The at least one processor is used to execute the program or instruction so that the device implements the method described in the first aspect or any possible implementation of the first aspect, or so that the device implements the method described in the second aspect or any possible implementation of the second aspect.

[0180] A sixth aspect of the embodiments of the present application provides a communication device, including at least one logic circuit and an input and output interface;

[0181] The input and output interface is used to output C encoded code blocks;

[0182] The logic circuit is used to execute the method described in the first aspect or any possible implementation of the first aspect.

[0183] A seventh aspect of the embodiments of the present application provides a communication device, including at least one logic circuit and an input and output interface;

[0184] The input and output interface is used to input first information;

[0185] The logic circuit is used to execute the method described in the second aspect or any possible implementation of the second aspect.

[0186] In an eighth aspect, an embodiment of the present application provides a computer-readable storage medium storing one or more computer-executable instructions. When the computer-executable instructions are executed by a processor, the processor executes the method described in the first aspect or any possible implementation of the first aspect, or the processor executes the method described in the second aspect or any possible implementation of the second aspect.

[0187] A ninth aspect of an embodiment of the present application provides a computer program product (or computer program) storing one or more computers. When the computer program product is executed by the processor, the processor executes the method of the first aspect or any possible implementation of the first aspect, or the processor executes the method of the second aspect or any possible implementation of the second aspect.

[0188] The tenth aspect of an embodiment of the present application provides a chip system, which includes at least one processor for supporting a communication device to implement the functions involved in the above-mentioned first aspect or any possible implementation of the first aspect, or for supporting a communication device to implement the functions involved in the above-mentioned second aspect or any possible implementation of the second aspect.

[0189] In one possible design, the chip system may further include a memory for storing program instructions and data necessary for the communication device. The chip system may be composed of a chip or may include a chip and other discrete components. Optionally, the chip system may further include an interface circuit for providing program instructions and / or data to the at least one processor.

[0190] In the eleventh aspect of an embodiment of the present application, a communication system is provided, which includes at least one transmitting end and at least one receiving end, wherein the at least one transmitting end is used to execute the method in the aforementioned first aspect and any possible implementation thereof, and the at least one receiving end is used to execute the method in the aforementioned second aspect and any possible implementation thereof.

[0191] Exemplarily, the communication system includes the communication device of the third aspect and the communication device of the fourth aspect, and / or, the communication system includes the communication device of the fifth aspect, and / or, the communication system includes the communication device of the sixth aspect and the communication device of the seventh aspect.

[0192] Among them, the technical effects brought about by any design method in the third aspect to the eleventh aspect can refer to the technical effects brought about by the different design methods in the above-mentioned first aspect or second aspect, and will not be repeated here.

[0193] It can be seen from the above technical solutions that the embodiments of the present application have the following advantages:

[0194] In some embodiments, the implementation of Polar code encoding based on the number of code blocks C at the transmitter can reduce the implementation complexity of Polar code and thus improve communication efficiency.

[0195] In some embodiments, when determining the number of code blocks, the transmitter may determine the number of code blocks to be C based on k and the target bit rate. In other words, the transmitter determines the number of code blocks to be used in Polar coding to be C based on the number of bits k of the information to be encoded and the target bit rate of Polar coding. Compared to the implementation process of determining the number of code blocks based on k, which may cause jitter in coding performance, the above technical solution adds the target bit rate as one of the criteria for determining the number of code blocks, which can avoid such jitter and improve the coding performance of Polar coding.

[0196] In some embodiments, during the process of obtaining C coded code blocks, the transmitting end performs polar coding on the information to be coded based on the number of code blocks C to obtain C initial code blocks, and then determines C coded code blocks based on the C initial code blocks. The i-th coded code block among the C coded code blocks is determined based on the i-th initial code block among the C initial code blocks, so that the C coded code blocks actually transmitted by the transmitting end correspond to the C initial code blocks corresponding to the information to be coded, thereby reducing processing complexity.

[0197] In some embodiments, the transmitting end needs to perform a rate matching process when sending C encoded code blocks, that is, the transmitting end stores information based on at least two circular buffers (including a first circular buffer and a second circular buffer), and reads the information stored in at least two circular buffers based on the target code length to obtain and send the target bit sequence, so as to simplify the rate matching process, reduce complexity and reduce performance loss. BRIEF DESCRIPTION OF THE DRAWINGS

[0198] FIG1 is a schematic diagram of a communication system according to an embodiment of the present application;

[0199] FIG2 is a schematic diagram of Polar code encoding;

[0200] FIG3 is a schematic diagram of a communication method provided by the present application;

[0201] FIG4 is another schematic diagram of the communication method provided by the present application;

[0202] FIG5a is another schematic diagram of the communication method provided by the present application;

[0203] FIG5 b is another schematic diagram of the communication method provided by the present application;

[0204] FIG6a is another schematic diagram of the communication method provided by the present application;

[0205] FIG6 b is another schematic diagram of the communication method provided by the present application;

[0206] FIG6c is another schematic diagram of the communication method provided by the present application;

[0207] FIG7 is another schematic diagram of the communication method provided by the present application;

[0208] FIG8 is a schematic diagram of a communication device provided by the present application;

[0209] FIG9 is another schematic diagram of a communication device provided by the present application;

[0210] FIG10 is another schematic diagram of the communication device provided by the present application;

[0211] FIG11 is another schematic diagram of the communication device provided in this application. DETAILED DESCRIPTION

[0212] The following will describe the technical solutions in the embodiments of this application in conjunction with the accompanying drawings. Obviously, the described embodiments are only part of the embodiments of this application, not all of the embodiments. Based on the embodiments in this application, all other embodiments obtained by ordinary technicians in this field without making creative efforts are within the scope of protection of this application.

[0213] First, some of the terms used in the embodiments of the present application are explained to facilitate understanding by those skilled in the art.

[0214] (1) Terminal device: It can be a wireless terminal device that can receive network device scheduling and instruction information. The wireless terminal device can be a device that provides voice and / or data connectivity to the user, or a handheld device with wireless connection function, or other processing device connected to a wireless modem.

[0215] Terminal devices can communicate with one or more core networks or the Internet via a radio access network (RAN). Terminal devices can be mobile terminal devices, such as mobile phones (also known as "cellular" phones, mobile phones), computers, and data cards. For example, they can be portable, pocket-sized, handheld, computer-built-in, or vehicle-mounted mobile devices that exchange voice and / or data with the radio access network. Examples include personal communication service (PCS) phones, cordless phones, Session Initiation Protocol (SIP) phones, wireless local loop (WLL) stations, personal digital assistants (PDAs), tablet computers, and computers with wireless transceiver capabilities. A wireless terminal device may also be referred to as a system, a subscriber unit, a subscriber station, a mobile station, a mobile station (MS), a remote station, an access point (AP), a remote terminal, an access terminal, a user terminal, a user agent, a subscriber station (SS), a customer premises equipment (CPE), a terminal, a user equipment (UE), a mobile terminal (MT), an unmanned aerial vehicle (UAV), etc. A terminal device may also be a wearable device or a next-generation communication system, for example, a terminal device in a 5G communication system or a terminal device in a future-evolved public land mobile network (PLMN).

[0216] (2) Network equipment: It can be a device in a wireless network, for example, a network device can be a radio access network (RAN) node (or device) that connects a terminal device to a wireless network, which can also be called a base station. Currently, some examples of RAN equipment include: a new generation Node B (gNodeB) in a 5G communication system, a transmission reception point (TRP), an evolved Node B (eNB), a radio network controller (RNC), a Node B (NB), a base station controller (BSC), a base transceiver station (BTS), a home base station (e.g., home evolved Node B, or home Node B, HNB), a satellite, a drone, a base band unit (BBU), or a wireless fidelity (Wi-Fi) access point (AP). In addition, in a network structure, the network device may include a centralized unit (CU) node, or a distributed unit (DU) node, or a RAN device including a CU node and a DU node.

[0217] Among them, the network device can send configuration information to the terminal device (for example, carried in a scheduling message and / or an indication message), and the terminal device further performs network configuration according to the configuration information, so that the network configurations between the network device and the terminal device are aligned; or, through the network configuration preset in the network device and the network configuration preset in the terminal device, the network configurations between the network device and the terminal device are aligned. Specifically, "alignment" means that when there are interactive messages between the network device and the terminal device, the two have a consistent understanding of the carrier frequency for sending and receiving interactive messages, the determination of the interactive message type, the meaning of the field information carried in the interactive message, or other configurations of the interactive message.

[0218] In addition, in other possible cases, the network device may be another device that provides wireless communication functions for the terminal device. The embodiments of this application do not limit the specific technology and specific device form used by the network device. For the convenience of description, the embodiments of this application are not limited.

[0219] The network device may further include a core network device, which may include, for example, an access and mobility management function (AMF), a user plane function (UPF), or a session management function (SMF).

[0220] In the embodiments of the present application, the apparatus for implementing the function of the network device may be the network device, or may be a device capable of supporting the network device in implementing the function, such as a chip system, which may be installed in the network device. In the technical solutions provided in the embodiments of the present application, the technical solutions provided in the embodiments of the present application are described by taking the network device as an example.

[0221] (3) Configuration and pre-configuration: In this application, configuration and pre-configuration will be used at the same time. Configuration refers to the network equipment such as base stations or servers sending some parameter configuration information or parameter values ​​to the terminal through messages or signaling, so that the terminal can determine the communication parameters or resources during transmission based on these values ​​or information. Pre-configuration is similar to configuration. It can be a way for network equipment such as base stations or servers to send parameter information or values ​​to the terminal through a communication link or carrier; it can also be a way to define the corresponding parameters or parameter values ​​(for example, clearly specifying the parameter values ​​in the standard), or by writing the relevant parameters or values ​​into the terminal device in advance. This application does not limit this. Furthermore, these values ​​and parameters can be changed or updated.

[0222] (4) In this application, “used for indication” can include direct indication and indirect indication. When describing that a certain indication information is used to indicate A, it can be understood that the indication information carries A, directly indicates A, or indirectly indicates A.

[0223] In this application, the information indicated by the indication information is referred to as the information to be indicated. In the specific implementation process, there are many ways to indicate the information to be indicated, such as but not limited to, the information to be indicated can be directly indicated, such as the information to be indicated itself or the index of the information to be indicated. The information to be indicated can also be indirectly indicated by indicating other information, where there is an association between the other information and the information to be indicated. It is also possible to indicate only a part of the information to be indicated, while the other parts of the information to be indicated are known or agreed in advance. For example, the indication of specific information can also be achieved with the help of the arrangement order of each information agreed in advance (such as specified in the protocol), thereby reducing the indication overhead to a certain extent.

[0224] The information to be indicated can be sent as a whole, or divided into multiple sub-information and sent separately, and the sending period and / or sending timing of these sub-information can be the same or different. The specific sending method is not limited in this application. The sending period and / or sending timing of these sub-information can be predefined, for example, predefined according to a protocol, or configured by the transmitting device by sending configuration information to the receiving device. The configuration information can include, for example, but not limited to, one or a combination of at least two of radio resource control signaling, media access control (MAC) layer signaling, and physical layer signaling. The radio resource control signaling includes, for example, radio resource control (RRC) signaling; the MAC layer signaling includes, for example, a MAC control element (CE); and the physical layer signaling includes, for example, downlink control information (DCI).

[0225] (5) The terms "system" and "network" in the embodiments of the present application can be used interchangeably. "At least one" means one or more, and "more" means two or more. "And / or" describes the association relationship of associated objects, indicating that three relationships can exist. For example, A and / or B can mean: A exists alone, A and B exist at the same time, and B exists alone, where A and B can be singular or plural. The character " / " generally indicates that the previous and next associated objects are in an "or" relationship. "At least one of the following" or similar expressions refers to any combination of these items, including any combination of single or plural items. For example, "at least one of A, B and C" includes A, B, C, AB, AC, BC or ABC. In addition, unless otherwise specified, the ordinal numbers such as "first" and "second" mentioned in the embodiments of the present application are used to distinguish multiple objects, and are not used to limit the order, timing, priority or importance of multiple objects.

[0226] The present application can be applied to a long term evolution (LTE) system, a new radio (NR) system, or other communication systems, wherein the communication system includes a network device and a terminal device, the network device serves as a configuration information sending entity, and the terminal device serves as a configuration information receiving entity. Specifically, in the communication system, there is an entity that sends configuration information to another entity, and sends data to another entity, or receives data sent by another entity; another entity receives the configuration information, and sends data to the configuration information sending entity according to the configuration information, or receives data sent by the configuration information sending entity. Among them, the present application can be applied to a terminal device in a connected state or an active state (ACTIVE), and can also be applied to a terminal device in a non-connected state (INACTIVE) or an idle state (IDLE).

[0227] Please refer to FIG1 , which is a schematic diagram of a communication system in this application.

[0228] Figure 1 exemplarily illustrates a network device and six terminal devices: terminal device 1, terminal device 2, terminal device 3, terminal device 4, terminal device 5, and terminal device 6. In the example shown in Figure 1 , terminal device 1 is a smart teacup, terminal device 2 is a smart air conditioner, terminal device 3 is a smart gas pump, terminal device 4 is a vehicle, terminal device 5 is a mobile phone, and terminal device 6 is a printer. The transmitting end can be either a network device or a terminal device, and the receiving end can be either a network device or a terminal device.

[0229] As shown in Figure 1, during the communication process, the sending end (or called the sending end, the transmitting end, the transmitting end device) can be a network device, and the receiving end (or called the receiving end, the receiving end, the receiving end device) can be a terminal device (for example, terminal device 1-terminal device 6 in Figure 1); or, the sending end can be a terminal device, and the receiving end can be a network device; or, both the sending end and the receiving end can be network devices; or, both the sending end and the receiving end can be terminal devices.

[0230] During wireless communications, the transmitter performs information transmission processes including channel coding, modulation, resource mapping, and antenna mapping. Polar codes are a channel coding scheme that has been rigorously proven to achieve Shannon channel capacity. The 5G standard specifies Polar codes as the channel coding scheme for control channels.

[0231] However, reducing the implementation complexity of Polar codes is a technical problem that needs to be solved urgently. To solve this technical problem, the following describes various embodiments provided by this application in conjunction with the accompanying drawings.

[0232] Please refer to FIG2 , which is a schematic diagram of the communication method provided in this application. The method includes the following steps.

[0233] S201. The sending end obtains information to be encoded.

[0234] In this embodiment, the transmitting end obtains information to be encoded in step S201. The information to be encoded includes k bits, where k is a positive integer.

[0235] S202. The transmitting end determines the number of code blocks to be C.

[0236] In this embodiment, the transmitting end determines in step S202 that the number of code blocks in the Polar code encoding process is C, where C is a positive integer.

[0237] In one possible implementation, to reduce device power consumption, information can be transmitted using a fixed code length or a fixed code rate. A fixed code rate can be defined as fixing the transmission code rate to 2-3 values, while a fixed code length can mean that all bits of the information to be encoded are encoded according to the fixed code length and transmitted regardless of the number of bits. For example, using a fixed code length as an example, if the number of bits corresponding to the information to be encoded exceeds the fixed code length, the information is divided into multiple code blocks for transmission. If the number of bits corresponding to the information to be encoded is less than the fixed code length, only one code block is required for transmission. This means that the information is padded with some redundant information (or useless information) and then encoded to the fixed code length for transmission. However, in this implementation, the choice of a fixed code length (denoted as N) becomes a key consideration. If N is set to a large value, in some cases, a large number of padding bits must be inserted, which wastes communication efficiency. If N is set to a small value, performance may be poor (for example, a shorter code length results in a smaller distance between codewords, leading to poor performance). Excessive segmentation can also impact overall performance.

[0238] To this end, in step S202, the transmitting end may improve the implementation of the above-mentioned fixed code length or fixed code rate for information transmission. In one possible implementation, in step S202, the transmitting end determines the number of code blocks as C, including: the transmitting end determines the number of code blocks as C based on k and the target code rate.

[0239] Specifically, when determining the number of code blocks, the transmitter can determine the number of code blocks to be C based on k and the target bit rate. In other words, the transmitter determines the number of code blocks for Polar coding to be C based on the number of bits k of the information to be encoded and the target bit rate of Polar coding. Compared to the implementation process of determining the number of code blocks based on k, which may cause jitter in coding performance, the above technical solution adds the target bit rate as one of the criteria for determining the number of code blocks, which can avoid such jitter and improve the coding performance of Polar coding.

[0240] It should be understood that the number of bits k of the information to be encoded and the target bit rate satisfy the following equation: k / E = R, where E is the target code length and R is the target bit rate. In other words, the values ​​of any two of the three parameters, the number of bits to be encoded, the target bit rate, and the target code length, can determine the value of the other. Therefore, in this implementation, the number of code blocks, C, is determined based on k and the target bit rate. This can also be expressed as the number of code blocks, C, being determined based on any two of k, the target bit rate, and the target code length.

[0241] Optionally, the sending end determines the target bit rate based on a preconfigured manner.

[0242] Optionally, the transmitting end determines the target bit rate based on instructions (or configurations) of other devices.

[0243] In one possible implementation, the target code rate is one of at least two code rates. Specifically, the target code rate is one of at least two code rates, so that the transmitter can use one of the at least two code rates as one of the bases for determining the number of code blocks.

[0244] In one possible implementation, the target code rate is 1 / 8, 1 / 4, or 1 / 2. Specifically, as one of the bases for the transmitter to determine the number of code blocks, the target code rate is 1 / 8, 1 / 4, or 1 / 2 (i.e., when the target code rate is one of at least two code rates, the at least two code rates correspond to three code rates), so that the transmitter performs the Polar code encoding process based on the target code rate of 1 / 8, 1 / 4, or 1 / 2.

[0245] Optionally, the at least two code rates correspond to three code rates, that is, when the transmitting end is based on one of the three code rates, compared with the implementation method in which the transmitting end performs Polar coding based on one of more than three code rates, the implementation complexity can be reduced, and the implementation method can be applicable to the encoding of low-power Polar codes to reduce system power consumption.

[0246] In one possible implementation, the process of determining the number of code blocks C can be further refined by introducing some thresholds. Specifically, the process of determining the number of code blocks C by the transmitter based on k and the target bit rate can include:

[0247] When the target code rate is 1 / 8 and k is less than a first threshold, C is determined to be 1 (in other words, the first threshold is the upper limit of the block size of the information to be encoded into one code block when the target code rate is 1 / 8); or

[0248] When the target bit rate is 1 / 8 and k is greater than or equal to the first threshold and k is less than the second threshold, C is determined to be 2 (in other words, the first threshold is the lower limit of the number of code blocks of the information to be encoded being divided into two code blocks when the target bit rate is 1 / 8, and the second threshold is the upper limit of the number of code blocks of the information to be encoded being divided into two code blocks when the target bit rate is 1 / 8); or

[0249] When the target code rate is 1 / 8 and k is greater than or equal to the second threshold, C is determined to be 3 (in other words, the third threshold is the lower limit of the block size of the information to be encoded into three code blocks when the target code rate is 1 / 8); or

[0250] When the target code rate is 1 / 4 and k is less than a third threshold, C is determined to be 1 (in other words, the third threshold is the upper limit of the block size of the information to be encoded into one code block when the target code rate is 1 / 4); or

[0251] When the target bit rate is 1 / 4 and k is greater than or equal to the third threshold and k is less than the fourth threshold, C is determined to be 2 (in other words, the third threshold is the lower limit of the number of code blocks of the information to be encoded being divided into two code blocks when the target bit rate is 1 / 4, and the fourth threshold is the upper limit of the number of code blocks of the information to be encoded being divided into two code blocks when the target bit rate is 1 / 4); or

[0252] When the target code rate is 1 / 4 and k is greater than or equal to the fourth threshold, C is determined to be 3 (in other words, the fourth threshold is the lower limit of the block size of the information to be encoded into three code blocks when the target code rate is 1 / 4); or

[0253] When the target code rate is 1 / 2 and k is less than the fifth threshold, C is determined to be 1 (in other words, the fifth threshold is the upper limit of the block size of the information to be encoded into one code block when the target code rate is 1 / 2); or

[0254] When the target code rate is 1 / 2 and k is greater than or equal to the fifth threshold, C is determined to be 2 (in other words, the fifth threshold is the lower limit of the information to be encoded being divided into two code blocks when the target code rate is 1 / 2).

[0255] Accordingly, the information length in each code block satisfies:

[0256]

[0257] Among them, K i represents the information length in the i-th (i is less than or equal to C) code block, It represents the rounding down of K / C, where K represents the information length (i.e., the number of bits of information to be encoded), C represents the number of code blocks, and Mod(K,C) represents the remainder of K over C. In other words, when K / C cannot be divided evenly, the number after K / C is the amount of unallocated information after rounding down K / C and multiplying it by C, and is allocated to the first remainder Ki, with one more information allocated to each.

[0258] It should be understood that this implementation can also be implemented in the manner of the following Table 1, where R represents the target bit rate, k represents the number of bits k corresponding to the information to be encoded, and C represents the number of determined code blocks.

[0259]

[0260] Table 1

[0261] Optionally, the above implementation is merely an example, and when k is equal to a certain threshold (including any threshold from the first threshold to the fifth threshold), the transmitting end may determine that C is another value.

[0262] For example, when the target code rate is 1 / 8 and k is equal to the first threshold, C is determined to be 1.

[0263] For another example, when the target bit rate is 1 / 8 and k is equal to the second threshold, C is determined to be 2.

[0264] For another example, when the target bit rate is 1 / 4 and k is equal to the third threshold, C is determined to be 1.

[0265] For another example, when the target bit rate is 1 / 4 and k is equal to the fourth threshold, C is determined to be 2.

[0266] For another example, when the target bit rate is 1 / 2 and k is equal to the fifth threshold, C is determined to be 1.

[0267] For example, Figure 3 shows the fine-grained simulation results for different numbers of blocks at three target bit rates (1 / 8, 1 / 4, and 1 / 2). The horizontal axis represents the number of bits K corresponding to the different information to be encoded, and the vertical axis represents the ratio of the required energy per symbol to the noise power spectral density (EsN0) when bler = 0.01. Lower vertical axis values ​​indicate better performance. As shown in Figure 3, the line with a plus sign indicates only one segment; the line with a circle indicates that when the number of E exceeds N, the number of segments is divided into two segments, and a maximum of two segments; the line with an asterisk indicates that when the number of E exceeds N, the number of segments is divided into two segments, and when the number of E exceeds 2*N, the number of segments is divided into three segments, and a maximum of three segments; the line with a rectangular box indicates that when the number of E exceeds N, the number of segments is divided into two segments, when the number of E exceeds 2*N, the number of segments is divided into three segments, and a maximum of four segments when the number of E exceeds 3*N.

[0268] As shown in the simulation results of FIG. 3 , it can be seen that the first threshold is greater than or equal to 180 and the first threshold is less than or equal to 205.

[0269] Similarly, the second threshold is greater than or equal to 310 and the second threshold is less than or equal to 355.

[0270] Similarly, the third threshold is greater than or equal to 175 and the third threshold is less than or equal to 205.

[0271] Similarly, the fourth threshold is greater than or equal to 310 and the fourth threshold is less than or equal to 335.

[0272] Similarly, the fifth threshold is greater than or equal to 290 and the fifth threshold is less than or equal to 310.

[0273] Optionally, in addition to the implementation shown in FIG3 , other simulation methods may be used for implementation, that is, the ordinate may be implemented using other performance indicators. For example, the ordinate may be the BLER under the same EsN0. A larger BLER under the same EsN0 indicates worse performance, and a smaller BLER under the same EsN0 indicates better performance.

[0274] S203: The transmitter performs polar coding on the information to be coded based on C to obtain C coded code blocks.

[0275] In this embodiment, the transmitting end performs polar coding on the information to be encoded obtained in step S201 based on the number C of code blocks determined in step S202 to obtain C encoded code blocks.

[0276] In one possible implementation, a schematic diagram of 8x8 Polar code encoding (i.e., an 8x8 encoding matrix) performed by the transmitter is shown in Figure 4. The bits contained in the information to be encoded are divided into two categories: fixed bits and information bits, according to their respective reliability rankings. Fixed bits are denoted as "frozen" in Figure 4, and information bits are denoted as "data" in Figure 4. The bits to be encoded are sorted according to their respective reliability levels. Generally, bits with higher reliability are set as information bits (i.e., data), and bits with lower reliability are set as fixed bits (i.e., frozen). The value of the fixed bit is usually set to 0 and is known to both the transmitter and receiver in actual transmission. In the example shown in Figure 4, u7, u6, u5, and u3 are the four bits with the highest reliability and are set as information bits; u4, u2, u1, and u0 are the four bits with the lowest reliability and are set as fixed bits.

[0277] In contrast, the method used by the subsequent receiver to decode Polar codes is primarily serial cancellation decoding. This algorithm involves decoding the code bit by bit at the receiver based on the inherent sequential nature of the polar code design. Currently, the main serial cancellation decoding algorithms include successive cancellation (SC) decoding, successive cancellation list (SCL) decoding, and cyclic redundancy code-aided successive cancellation list (CA-SCL) decoding. It is generally believed that SC decoding has poor decoding performance, while SCL decoding offers significant improvements. CA-SCL decoding, combined with CRC checking, can improve the performance of Polar codes compared to low-density parity check codes (LDPC) and turbo codes. Therefore, SCL and CA-SCL decoding are currently the primary methods used in practical systems.

[0278] As shown in Figure 4, the mother code length of Polar codes is an integer power of 2. When the code length N required for actual communication is not the mother code length, further code length matching is required through methods such as puncturing and retransmission. As the name suggests, puncturing and retransmission refer to removing or retransmitting several positions in the encoded mother code length sequence to adapt it to the required code length. The basic decoding method for Polar codes is SC decoding, and SCL decoding is an enhanced implementation based on SC decoding. For example, SCL retains multiple possible decoding results during the SC decoding process and selects the best one from these possible results as the final decoding result after decoding. Alternatively, if the path metric is used as the final path selection criterion, this is a basic implementation of SCL decoding. A further enhanced implementation of SCL decoding is CA-SCL. Compared to SCL, CA-SCL improves on SCL by calculating the CRC value of each decoding result and selecting a list with the correct CRC result as the final decoding result. For shorter code lengths, standard SCL offers a 0.5-1dB performance gain over SC, while CA-SCL offers an additional 0.5dB gain. Therefore, CA-SCL decoding is an important decoding method for polar codes. However, CA-SCL decoding requires adding a CRC to each code block, resulting in high overhead and impacting the performance of polar codes.

[0279] To this end, in step S203, the transmitting end may further improve the encoding process. In one possible implementation, in step S203, the transmitting end performs polar coding on the information to be coded based on C to obtain C coded code blocks, including: the transmitting end performs polar coding on the information to be coded based on C to obtain C initial code blocks; the transmitting end determines C coded code blocks based on the C initial code blocks, where the i-th coded code block among the C coded code blocks is determined based on the i-th initial code block among the C initial code blocks, and i traverses from 1 to C.

[0280] Specifically, in the process of obtaining C coded code blocks, the transmitting end performs polar coding on the information to be coded based on the number C of code blocks to obtain C initial code blocks, and then determines C coded code blocks based on the C initial code blocks. The i-th coded code block among the C coded code blocks is determined based on the i-th initial code block among the C initial code blocks, so that the C coded code blocks actually transmitted by the transmitting end correspond to the C initial code blocks corresponding to the information to be coded, thereby reducing processing complexity.

[0281] Optionally, determining the i-th coded code block among the C coded code blocks based on the i-th initial code block among the C initial code blocks includes: in at least one coded code block among the C coded code blocks (i.e., a code block not participating in coupling), the i-th coded code block is the i-th initial code block among the C initial code blocks; and in the remaining coded code blocks among the C coded code blocks (i.e., the code blocks participating in coupling) other than the at least one coded code block, x bits of the i-th coded code block are a coupling result of x bits in the i-th initial code block among the C initial code blocks and x bits in the j-th initial code block, and the remaining Nx bits in the i-th coded code block are the remaining Nx bits in the i-th initial code block among the C initial code blocks, where the number of code blocks in the remaining coded code blocks is a positive integer, x is less than or equal to N, i is not equal to j, i and j are both less than or equal to C, and i and j are both positive integers.

[0282] Specifically, among the C encoded code blocks, the i-th encoded code block in at least one encoded code block is identical to the i-th initial code block in the C initial code blocks. Furthermore, among the remaining encoded code blocks except the at least one encoded code block, the x bits in the i-th encoded code block are the result of coupling the i-th initial code block and the j-th initial code block. Therefore, while the x bits in the i-th encoded code block are used to transmit the x bits of information in the i-th initial code block, the x bits in the i-th encoded code block, as the result of coupling, can also be used to verify the i-th initial code block and the j-th initial code block, thereby improving information transmission security.

[0283] In addition, since the x bits in the i-th encoded code block can be used as a coupling result to verify the i-th initial code block and the j-th initial code block, the transmitter does not need to carry a cyclic redundancy code (CRC) check code of the code block (CB) in each of the C encoded code blocks, thereby reducing overhead while achieving code block verification to improve performance.

[0284] For example, taking a code block that does not participate in coupling as a code block, and the code block being the first code block among C initial code blocks, the bit information contained in the i-th code block among the C initial code blocks can be recorded as

[0285] If i=1, the bit information contained in the i-th code block among the C encoded code blocks satisfies:

[0286]

[0287] If i>1, then the x bits of information contained in the i-th code block among the C coded code blocks satisfy:

[0288]

[0289] Moreover, the remaining Nx bits of information contained in the i-th code block among the C coded code blocks satisfy:

[0290]

[0291] Optionally, determining the i-th coded code block among the C coded code blocks based on the i-th initial code block among the C initial code blocks includes: among the C coded code blocks, x bits of the i-th coded code block are the result of coupling x bits in the i-th initial code block among the C initial code blocks and x bits in the j-th initial code block, and the remaining Nx bits of the i-th coded code block are the remaining Nx bits in the i-th initial code block among the C initial code blocks, the number of code blocks in the remaining coded code blocks is a positive integer, x is less than or equal to N, i is not equal to j, i and j are both less than or equal to C, and i and j are both positive integers. In other words, any code block among the C coded code blocks is the result of coupling at least two code blocks among the C code blocks, that is, all C initial code blocks participate in the coupling.

[0292] Optionally, in the above implementation, x is equal to N / 2. Specifically, the number of bits corresponding to any one of the C initial code blocks and the C encoded code blocks is N, and in some or all of the code blocks in the C encoded code blocks, the x bits of the i-th encoded code block are the coupling result. To this end, in this implementation, when x is equal to N / 2, the x bits in the i-th initial code block and the x bits in the j-th initial code block participating in the coupling are both half the number of bits corresponding to any one of the code blocks. That is, the use of a half-coupling approach allows the information in the cache to be used in a ping-pong manner (for example, the x bits in the j-th initial code block in the C initial code blocks can be used as the x bits in the j-th initial code block in the C encoded code blocks, and the x bits in the j-th initial code block in the C initial code blocks can also be used to determine the x bits in the i-th initial code block in the C encoded code blocks), which can reduce processing complexity and improve system performance.

[0293] Optionally, in the above implementation process, x can also be other values, such as N (that is, all bit information in the i-th initial code block and the j-th initial code block are coupled to obtain the i-th encoded code block), N / 3, N / 4, N / 8, etc.

[0294] Optionally, in the above implementation process, the coupling result is an XOR result, or the coupling result is an XOR result, or other implementations.

[0295] Optionally, in the above implementation, i = j-1, or i = j + 1. Specifically, i = j-1, or i = j + 1, that is, the i-th initial code block and the j-th initial code block participating in the coupling are adjacent code blocks among the C initial code blocks, so as to reduce processing complexity and improve system performance.

[0296] The following will take the value of 3 of the number C of encoded code blocks as an example, and provide an exemplary description in combination with the implementation examples of FIG. 5 a and FIG. 5 b .

[0297] As shown in Figure 5a, the C initial code blocks include code block 1, code block 2, and code block 3. Among the C initial code blocks and the C encoded code blocks, code block 1 includes two parts: "1-Pre" and "1-Post", code block 2 includes two parts: "2-Pre" and "2-Post", and code block 3 includes two parts: "3-Pre" and "3-Post". The number of bits contained in any code block is N, the number of bits contained in the "Pre" part (i.e., "1-Pre", "2-Pre", or "3-Pre") of any code block is the "x" mentioned above, and the number of bits contained in the "Post" part (i.e., "1-Post", "2-Post", or "3-Post") of any code block is the "Nx" mentioned above.

[0298] Exemplarily, taking the case where the number of code blocks not participating in coupling is 1 (i.e., code block 1) and the number of code blocks participating in coupling is 2 (i.e., code block 2 and code block 3), the first encoded code block does not need to be obtained based on coupling, the first half of the second encoded code block is obtained based on coupling and the second half does not need to be obtained based on coupling, and the first half of the third encoded code block is obtained based on coupling and the second half does not need to be obtained based on coupling, specifically including the following implementation.

[0299] For code block 1, which is not coupled in FIG5a , the "1-Pre" portion of code block 1 in the C encoded code blocks is the same as the "1-Pre" portion of code block 1 in the C initial code blocks, and the "1-Post" portion of code block 1 in the C encoded code blocks is the same as the "1-Post" portion of code block 1 in the C initial code blocks. Alternatively, as shown in FIG5a , the "1-Pre" portion of code block 1 in the C encoded code blocks may be the result of coupling the "1-Pre" portion of code block 1 in the C initial code blocks with 0.

[0300] For code block 2 participating in the coupling in Figure 5a, the "2-Pre" part of code block 2 among the C encoded code blocks is the coupling result of the "1-Post" part of code block 1 among the C initial code blocks and the "2-Pre" part of code block 2 among the C initial code blocks, and the "2-Post" part of code block 2 among the C encoded code blocks is the same as the "2-Post" part of code block 2 among the C initial code blocks.

[0301] For the code block 3 participating in the coupling in Figure 5a, the "3-Pre" part of code block 3 in the C encoded code blocks is the coupling result of the "2-Post" part of code block 2 in the C initial code blocks and the "3-Pre" part of code block 3 in the C initial code blocks, and the "3-Post" part of code block 3 in the C encoded code blocks is the same as the "3-Post" part of code block 3 in the C initial code blocks.

[0302] Figure 5b is a schematic diagram of the simulation results. The horizontal axis represents different values ​​of K, and the vertical axis represents the required EsN0 when bler = 0.01. Lower vertical axis values ​​indicate better performance. Segmentation is implemented using the method described in Example 1. The circled line represents the performance of coupling after segmentation, and the line with an asterisk represents the performance of inserting an additional CB-CRC after segmentation. As shown in the implementation process shown in Figure 5b, the performance after coupling is significantly better than that after adding an additional CB-CRC.

[0303] S204. The transmitting end sends C encoded code blocks, and correspondingly, the receiving end receives the first information.

[0304] In this embodiment, after the transmitting end obtains C encoded code blocks in step S203, the transmitting end transmits the C encoded code blocks in step S204, where the C encoded code blocks are used to carry the k bits. Correspondingly, the receiving end receives first information in step S204, where the first information is used to carry the k bits.

[0305] It should be understood that after obtaining the C coded code blocks, the transmitting end can also perform at least one operation such as modulation, resource mapping and antenna mapping on the C coded code blocks, and then obtain and send the first information for carrying the C coded code blocks (or obtain and send the first information including the C coded code blocks), so that the subsequent receiving end can obtain the C coded code blocks based on the received first information.

[0306] In a possible implementation, after the transmitting end obtains C encoded code blocks in step S203, the transmitting end may perform a rate matching process before executing the transmitting process in step S204.

[0307] Exemplarily, the transmitter can implement a rate matching process based on the example implementation shown in Figures 6a and 6b. The transmitter determines the size of the code blocks in the C coded code blocks (i.e., the number of bits N corresponding to the code blocks) and the size of each code block actually transmitted (i.e., the target code length E, where E = k / R, k is the number of bits in the information to be encoded, and R is the target code rate, as described in step S201). If N is less than E, a repetition process is performed, i.e., the transmitter needs to add some redundant (or useless) bits to any code block in the C coded code blocks. If N is not less than E, a puncture process or shortening process is performed based on the code rate of the CB. During the puncture process or shortening process, the transmitter determines the positions of the puncture and shortening based on the difference in the number of mother codes and CBs, as well as the sequence of sub-block interleaving, and pre-freezes the bits where no information can be placed. In the puncture mode, in addition to the punctured positions, an additional formula is used to determine that more bits are pre-frozen, so no information can be placed.

[0308] Optionally, after determining the mother code length and pre-frozen positions, all positions to be encoded are set as frozen bits. A sequence is then constructed to determine the information bit positions. This involves reading a 1024-bit sequence from back to front. If its value is greater than or equal to the mother code, or equal to the pre-frozen sequence number, no information bit can be placed. Otherwise, the corresponding value position is set as the information bit. The number of information bits set equals the number of information bits allocated to the CB, and the information bit allocation process is exited. Polar code encoding is then performed. Furthermore, after encoding is complete, the transmitter needs to perform sub-block interleaving. This is done by dividing the mother code into 32 equal parts and interleaving them according to a 32-bit sequence (as shown in Figure 6a). After outputting to the circular buffer, transmission is performed based on whether the block is Puncture, Shorten, or Repetition (as shown in Figure 6b).

[0309] The sequence construction and rate matching processes shown in Figures 6a and 6b are relatively complex. Using current construction algorithms and hardware architectures to complete sequence construction, encoding, and rate matching can easily result in high power consumption (e.g., approximately 1-2 mW for an area of ​​approximately 10,000 square microns). The embodiments described below can reduce power consumption (e.g., reducing the area to approximately 2,000 square microns to approximately 0.1-0.2 mW).

[0310] To reduce power consumption, the implementation process can be improved in step S204. In one possible implementation, in step S204, the transmitting end sending C encoded code blocks includes: the transmitting end storing a first portion of the encoded information of any code block in the C encoded code blocks in a first circular buffer, and storing a second portion of the encoded information of any code block in the C encoded code blocks in a second circular buffer; the transmitting end reading the bit information in the first circular buffer and the bit information in the second circular buffer as a target bit sequence based on a target code length corresponding to any code block in the C encoded code blocks; and the transmitting end sending the target bit sequence.

[0311] Specifically, the transmitter needs to perform a rate matching process when sending C encoded code blocks, that is, the transmitter stores information based on at least two circular buffers (including a first circular buffer and a second circular buffer), and reads the information stored in the at least two circular buffers based on the target code length to obtain and send the target bit sequence, so as to simplify the rate matching process, reduce complexity and reduce performance loss.

[0312] Optionally, compared to the method of performing sub-block interleaving of the encoded code blocks through only one circular cache to perform rate matching, the above technical solution uses at least two circular caches (including a first circular cache and a second circular cache) to store information without performing the sub-block interleaving process, which can reduce complexity while maintaining high performance.

[0313] Optionally, in the above implementation, when the target code length corresponding to any code block among the C encoded code blocks is less than or equal to the bit length corresponding to the any code block, the target bit sequence includes a first sequence and a second sequence; wherein the first sequence includes data after puncturing the data in the first circular buffer and the sequence length of the first sequence is less than or equal to the sequence length of the first part, and the second sequence includes data after puncturing the data in the second circular buffer and the sequence length of the second sequence is less than or equal to the sequence length of the second part; or, when the target code length corresponding to any code block among the C encoded code blocks is greater than the bit length corresponding to the any code block, the target bit sequence includes one sequence; wherein the one sequence includes data after repeated processing of the data in the first circular buffer and data after repeated processing of the data in the second circular buffer, and the sequence length of the one sequence is greater than the bit length corresponding to the any code block. Specifically, the transmitter performs puncturing or repetition processing based on the target code length corresponding to any code block among the C encoded code blocks and the bit length corresponding to any code block to achieve a rate matching process and obtain a rate matching gain, so that the information sent by the transmitter can match the resources that carry the information.

[0314] Optionally, the above technical solution describes a process for achieving rate matching through a puncturing process or a repeated process, wherein the implementation process can also be achieved through a shortened process. For example, in a high bit rate scenario, a shortened process can be used to achieve rate matching. Considering that the application scenario of this embodiment is mainly low bit rate, the shortened process in a low bit rate scenario may affect performance (for example, in the shortened process, it may be necessary to locate the position of high-reliability bits in the Polar code multiple times, resulting in poor performance). Therefore, the above technical solution uses a puncturing process or a repeated process to achieve rate matching.

[0315] Optionally, in the above implementation, when the target code length corresponding to any one of the C encoded code blocks is an even number, the number of bits corresponding to any one of the C encoded code blocks in the first circular buffer is the same as the number of bits corresponding to any one of the C code blocks in the second circular buffer; or, when the target code length corresponding to any one of the C encoded code blocks is an odd number, the number of bits corresponding to any one of the C encoded code blocks in the second circular buffer is one more than the number of bits corresponding to any one of the C encoded code blocks in the first circular buffer. Specifically, when the target code length corresponding to any one of the C encoded code blocks is an even number, the number of bits corresponding to any one of the C encoded code blocks in the first circular buffer is the same as the number of bits corresponding to any one of the C code blocks in the second circular buffer, thereby reducing processing complexity. When the target code length corresponding to any one of the C encoded code blocks is an odd number, the number of bits corresponding to any one of the C encoded code blocks in the second circular buffer is one more than the number of bits corresponding to any one of the C encoded code blocks in the first circular buffer.

[0316] Optionally, when the value of the target code length corresponding to any code block among the C encoded code blocks is an odd number, the number of bits corresponding to any code block among the C encoded code blocks in the second circular buffer is 1 less than the number of bits corresponding to any code block among the C encoded code blocks in the first circular buffer.

[0317] In one possible implementation, the number of bits corresponding to the first part is half the number of bits corresponding to the encoded information of any code block among the C code blocks; and / or the number of bits corresponding to the second part is half the number of bits corresponding to the encoded information of any code block among the C code blocks. Specifically, the number of bits corresponding to the first part (and / or the second part) is half the number of bits corresponding to the encoded information of any code block among the C code blocks. That is, the transmitting end stores information based on the first circular buffer and the second circular buffer, and reads the information stored in the first circular buffer and the second circular buffer respectively based on the target code length to obtain the target bit sequence, thereby reducing implementation complexity.

[0318] For example, in step S204, taking the code block length of any code block of the C coded code blocks as N, the first part of the code block can be represented as {d0, d1, d2…d N / 2-1}, and the second part of any code block can be expressed as {d N / 2 ,d N / 2+1 ,d N / 2+2 …d N-1 In step S204, the sending end sends the first part (ie {d0, d1, d2…d N / 2-1}) into the first loop buffer, and the second part (i.e. {dN / 2 , d N / 2+1 , d N / 2+2 … d N-1 ) is placed into the second circular buffer, and the following operations are performed.

[0319] If the target code length (E i ) corresponding to any of these code blocks satisfies E i <= N, then first send the data in the first circular buffer Then send the data in the second buffer

[0320] If the target code length (E i ) corresponding to any of these code blocks satisfies E i > N, then start from the beginning and send all the data in the first circular buffer, and then continue to send Then start from the beginning and send all the data in the second circular buffer, and then continue to send

[0321] Exemplarily, this implementation process is shown in FIG. 6c.

[0322] An implementation example is the puncturing process in FIG. 6c, where Ei represents the actual transmission length of each segment. When Ei < N, it is the puncturing mode. Then Ei / 2 of the data is placed in the first circular buffer (denoted as the first buffer in FIG. 6c) for transmission, and at the same time, Ei / 2 of the data is placed in the second circular buffer (denoted as the second buffer in FIG. 6c) for transmission. The total size of the first buffer is N / 2, so N / 2 - Ei / 2 of the data is punctured, starting from N / 2 - Ei / 2, that is, (N - Ei) / 2. It ends at N / 2 - 1. For the second buffer, the same N / 2 - Ei / 2 of the data is punctured, so it starts to be transmitted from N / 2 + N / 2 - Ei / 2, that is, N / 2 + (N - Ei) / 2.

[0323] Another implementation example is the repetition process in FIG. 6c. Among them, Ei / 2 - N / 2 of the data in the first circular buffer (denoted as the first buffer in FIG. 6c) and the second circular buffer (denoted as the second buffer in FIG. 6c) are repeated. Therefore, the first buffer starts to be transmitted from 0 to N / 2 - 1 and then returns to the 0 position, and then is transmitted to the position of (Ei - N) / 2 to end (optionally, the data at the position of (Ei - N) / 2 is not available). Similarly, for the second buffer, it starts to be transmitted from N / 2 to N - 1, and then returns to the N / 2 position and then repeats to be transmitted to the position of N / 2 + (Ei - N) / 2 to end (optionally, the data at the position of N / 2 + (Ei - N) / 2 is not available).

[0324] Optionally, if the target code length (E i ) corresponding to any of these code blocks cannot be divided by 2, then the number of data to be transmitted in the subsequent circular buffer is increased by 1.

[0325] S205. The receiving end determines that the number of code blocks corresponding to the first information is C.

[0326] In this embodiment, after the receiving end receives the first information in step S204, the receiving end determines that the number of code blocks corresponding to the first information is C in step S205.

[0327] In one possible implementation, in step S205, the receiving end determines that the number of code blocks corresponding to the first information is C, including: the receiving end determining the number of code blocks as C based on k and the target code rate. Specifically, in the process of determining the number of code blocks, the receiving end may determine the number of code blocks as C based on k and the target code rate. In other words, the receiving end determines the number of code blocks for Polar coding as C based on the number of bits k of the information to be encoded and the target code rate of Polar coding. Compared to the implementation process of determining the number of code blocks based on k, which may cause jitter in coding performance, in the above technical solution, adding the target code rate as one of the bases for determining the number of code blocks can avoid jitter in coding performance and improve the coding performance of Polar coding.

[0328] It should be understood that the number of bits k of the information to be encoded and the target bit rate satisfy the following equation: k / E = R, where E is the target code length and R is the target bit rate. In other words, the values ​​of any two of the three parameters, the number of bits to be encoded, the target bit rate, and the target code length, can determine the value of the other. Therefore, in this implementation, the number of code blocks, C, is determined based on k and the target bit rate. This can also be expressed as the number of code blocks, C, being determined based on any two of k, the target bit rate, and the target code length.

[0329] Optionally, the receiving end determines the target bit rate based on a preconfigured manner.

[0330] Optionally, the receiving end determines the target bit rate based on an instruction (or configuration) of another device (eg, the transmitting end).

[0331] It should be noted that the process of determining C by the receiving end based on the target bit rate (and target code length or k) can refer to the process of determining C by the sending end based on the target bit rate (and target code length or k) in step S202, and achieve the corresponding technical effects, which will not be repeated here.

[0332] S206. The receiving end determines, based on C, C encoded code blocks corresponding to the first information.

[0333] In this embodiment, after the receiving end determines that the number of code blocks is C in step S205, the receiving end determines C encoded code blocks corresponding to the first information based on the number C of code blocks in step S206.

[0334] In a possible implementation, the receiving end determines, based on C, the C encoded code blocks corresponding to the first information, including: the receiving end determining a target bit sequence corresponding to the first information; the receiving end determining, based on a target code length corresponding to any code block among the C encoded code blocks, bit information of the target bit sequence in a first loop cache and bit information of the target bit sequence in a second loop cache; the receiving end determines, based on the bit information of the target bit sequence in the first loop cache, a first part of the encoded information of any code block among the C encoded code blocks, and determines, based on the bit information of the target bit sequence in the second loop cache, a second part of the encoded information of any code block among the C encoded code blocks; and the receiving end determines any code block among the C encoded code blocks based on the first part and the second part. Specifically, in the process of determining the C encoded code blocks corresponding to the first information based on C, the receiving end determines the information stored in at least two circular buffers (including the first circular buffer and the second circular buffer) of the target bit sequence corresponding to the first information, and the receiving end restores any code block among the C encoded code blocks based on the target code length and the information stored in the at least two circular buffers, so as to simplify the rate matching process, reduce complexity and reduce performance loss.

[0335] In one possible implementation, when the target code length corresponding to any one of the C coded code blocks is less than or equal to the bit length corresponding to the code block, the target bit sequence includes a first sequence and a second sequence; wherein the first sequence includes data after puncturing the data in the first circular buffer and the sequence length of the first sequence is less than or equal to the sequence length of the first portion, and the second sequence includes data after puncturing the data in the second circular buffer and the sequence length of the second sequence is less than or equal to the sequence length of the second portion; or, when the target code length corresponding to any one of the C coded code blocks is greater than the bit length corresponding to the code block, the target bit sequence includes a single sequence; wherein the single sequence includes data after repeated processing of the data in the first circular buffer and data after repeated processing of the data in the second circular buffer, and the sequence length of the single sequence is greater than the bit length corresponding to the code block. Specifically, the receiving end performs puncturing or repeated processing based on the target code length corresponding to any one of the C coded code blocks and the bit length corresponding to the code block to restore the C coded code blocks corresponding to the target bit information.

[0336] In one possible implementation, when the target code length corresponding to any one of the C encoded code blocks is an even number, the number of bits corresponding to any one of the C encoded code blocks in the first circular buffer is the same as the number of bits corresponding to any one of the C code blocks in the second circular buffer. Alternatively, when the target code length corresponding to any one of the C encoded code blocks is an odd number, the number of bits corresponding to any one of the C encoded code blocks in the second circular buffer is one more than the number of bits corresponding to any one of the C encoded code blocks in the first circular buffer. Specifically, when the target code length corresponding to any one of the C encoded code blocks is an even number, the number of bits corresponding to any one of the C encoded code blocks in the first circular buffer is the same as the number of bits corresponding to any one of the C code blocks in the second circular buffer, thereby reducing processing complexity. When the target code length corresponding to any one of the C encoded code blocks is an odd number, the number of bits corresponding to any one of the C encoded code blocks in the second circular buffer is one more than the number of bits corresponding to any one of the C encoded code blocks in the first circular buffer.

[0337] Optionally, when the value of the target code length corresponding to any code block among the C encoded code blocks is an odd number, the number of bits corresponding to any code block among the C encoded code blocks in the second circular buffer is 1 less than the number of bits corresponding to any code block among the C encoded code blocks in the first circular buffer.

[0338] In one possible implementation, the number of bits corresponding to the first part is half the number of bits corresponding to the encoded information of any code block among the C code blocks; and / or the number of bits corresponding to the second part is half the number of bits corresponding to the encoded information of any code block among the C code blocks. Specifically, the number of bits corresponding to the first part (and / or the second part) is half the number of bits corresponding to the encoded information of any code block among the C code blocks. That is, the transmitting end stores information based on the first circular buffer and the second circular buffer, and reads the information stored in the first circular buffer and the second circular buffer respectively based on the target code length to obtain the target bit sequence, thereby reducing implementation complexity.

[0339] It should be noted that the process in which the receiving end determines the target bit sequence corresponding to the first information based on C in step S206 and determines the C encoded code blocks is the inverse process of the sending end sending the target bit sequence corresponding to the C encoded code blocks in step S204. The implementation process and corresponding beneficial effects can be referred to the previous description and will not be repeated here.

[0340] S207. The receiving end determines k bits of information based on the C encoded code blocks.

[0341] In this embodiment, after the receiving end obtains C encoded code blocks in step S206, the receiving end determines k bits of information based on the C encoded code blocks in step S207.

[0342] In one possible implementation, the receiving end determines k bits of information based on C encoded code blocks, including: the receiving end determines C initial code blocks based on the C encoded code blocks, wherein the i-th initial code block among the C initial code blocks is determined based on the i-th encoded code block among the C encoded code blocks, and i traverses from 1 to C; the receiving end decodes based on the C initial code blocks to obtain k bits of information. Specifically, in the process of determining k bits of information based on the C encoded code blocks, the receiving end determines C initial code blocks based on the C encoded code blocks. The i-th initial code block among the C initial code blocks is determined based on the i-th encoded code block among the C encoded code blocks, so that the receiving end corresponds to the C initial code blocks corresponding to the k bits of information based on the C encoded code blocks actually received, thereby reducing processing complexity.

[0343] In a possible implementation, determining the i-th initial code block among the C initial code blocks based on the i-th coded code block among the C coded code blocks includes: in at least one initial code block among the C initial code blocks, the i-th initial code block is the i-th coded code block among the C coded code blocks; in the remaining initial code blocks other than the at least one initial code block among the C initial code blocks, a coupling result of x bits in the i-th initial code block and x bits in the j-th initial code block is x bits of the i-th coded code block among the C coded code blocks, and the remaining Nx bits in the i-th initial code block are the remaining Nx bits in the i-th coded code block among the C coded code blocks, where the number of code blocks in the remaining coded code blocks is a positive integer, x is less than or equal to N, i is not equal to j, i and j are both less than or equal to C, and i and j are both positive integers. Specifically, among the C initial code blocks, the i-th initial code block in at least one initial code block is identical to the i-th coded code block in the C coded code blocks. Furthermore, among the initial code blocks other than the at least one initial code block, the coupling result of the i-th initial code block and the j-th initial code block is x bits in the i-th coded code block. Therefore, while the x bits in the i-th coded code block are used to transmit the x bits of information in the i-th initial code block, the x bits in the i-th coded code block, as the coupling result, can also be used to verify the i-th initial code block and the j-th initial code block, thereby improving information transmission security.

[0344] In addition, since the x bits in the i-th encoded code block can be used as a coupling result to verify the i-th initial code block and the j-th initial code block, the transmitter does not need to carry a cyclic redundancy code (CRC) check code of the code block (CB) in each of the C encoded code blocks, thereby reducing overhead while achieving code block verification to improve performance.

[0345] Optionally, determining the i-th initial code block among the C initial code blocks based on the i-th coded code block among the C coded code blocks includes: in the C initial code blocks, a coupling result of x bits in the i-th initial code block and x bits in the j-th initial code block equals x bits of the i-th coded code block among the C coded code blocks, and the remaining Nx bits in the i-th initial code block equal the remaining Nx bits in the i-th coded code block among the C coded code blocks, where the number of code blocks in the remaining coded code blocks is a positive integer, x is less than or equal to N, i is not equal to j, i and j are both less than or equal to C, and i and j are both positive integers. In other words, any code block among the C coded code blocks is a coupling result of at least two code blocks among the C code blocks.

[0346] In one possible implementation, x is equal to N / 2.

[0347] Based on the above technical solution, the number of bits corresponding to any one of the C initial code blocks and the C encoded code blocks is N, and in some or all of the code blocks in the C encoded code blocks, the x bits of the i-th encoded code block are the coupling result. To this end, in this implementation, when x is equal to N / 2, the x bits in the i-th initial code block and the x bits in the j-th initial code block participating in the coupling are both half the number of bits corresponding to any one of the code blocks. That is, the use of a half-coupling method allows the information in the cache to be used in a ping-pong manner (for example, the x bits in the j-th initial code block in the C initial code blocks can be used as the x bits in the j-th initial code block in the C encoded code blocks, and the x bits in the j-th initial code block in the C initial code blocks can also be used to determine the x bits in the i-th initial code block in the C encoded code blocks), which can reduce processing complexity and improve system performance.

[0348] Optionally, x may also be other values, such as N / 3, N / 4, N / 8, etc.

[0349] Optionally, in the above implementation, the coupling result is an XOR result.

[0350] Optionally, the coupling result is an XOR result, or other implementations.

[0351] Optionally, in the above implementation, i = j-1, or i = j + 1. Specifically, i = j-1, or i = j + 1, that is, the i-th initial code block and the j-th initial code block participating in the coupling are adjacent code blocks among the C initial code blocks, so as to reduce processing complexity and improve system performance.

[0352] It should be noted that the process in which the receiving end determines k bits of information based on the C coded code blocks in step S207 is the inverse process in which the transmitting end performs polar coding on the information to be coded based on C to obtain C coded code blocks in step S203. The implementation process and corresponding beneficial effects thereof can be referred to the previous description and are not further described here.

[0353] In summary, the embodiments of the present application have the following advantages:

[0354] In some embodiments, the implementation of Polar code encoding based on the number of code blocks C at the transmitter can reduce the implementation complexity of Polar code and thus improve communication efficiency.

[0355] In some embodiments, when determining the number of code blocks, the transmitter may determine the number of code blocks to be C based on k and the target bit rate. In other words, the transmitter determines the number of code blocks to be used in Polar coding to be C based on the number of bits k of the information to be encoded and the target bit rate of Polar coding. Compared to the implementation process of determining the number of code blocks based on k, which may cause jitter in coding performance, the above technical solution adds the target bit rate as one of the criteria for determining the number of code blocks, which can avoid such jitter and improve the coding performance of Polar coding.

[0356] In some embodiments, during the process of obtaining C coded code blocks, the transmitting end performs polar coding on the information to be coded based on the number of code blocks C to obtain C initial code blocks, and then determines C coded code blocks based on the C initial code blocks. The i-th coded code block among the C coded code blocks is determined based on the i-th initial code block among the C initial code blocks, so that the C coded code blocks actually transmitted by the transmitting end correspond to the C initial code blocks corresponding to the information to be coded, thereby reducing processing complexity.

[0357] In some embodiments, the transmitting end needs to perform a rate matching process when sending C encoded code blocks, that is, the transmitting end stores information based on at least two circular buffers (including a first circular buffer and a second circular buffer), and reads the information stored in at least two circular buffers based on the target code length to obtain and send the target bit sequence, so as to simplify the rate matching process, reduce complexity and reduce performance loss.

[0358] Exemplarily, the aforementioned embodiment can be applied to the scenario shown in FIG7 . For example, the encoding process involved in the transmitting end of the present application can execute the "source" module, "source coding" module, "channel coding" module, and "modulation" module as shown in FIG7 to realize the transmission of C encoded code blocks; the decoding process involved in the receiving end of the present application can execute the "demodulation" module, "channel decoding" module, "source decoding" module, and "destination" module as shown in FIG7 to realize the determination of k bits of information. The present application mainly relates to source coding and channel coding, channel decoding and source recovery.

[0359] Optionally, the "Source Coding" module takes source data as input and outputs source-encoded data. Source coding compresses sparse source data to improve communication efficiency. The "Channel Coding" module takes source-encoded compressed data as input and outputs the channel-encoded result, aiming to improve channel transmission accuracy.

[0360] Optionally, the input to the "Channel Decoding" module is the LLRs generated by the demodulation module, and the decoding result is the result of source encoding. If the result cannot be restored to the source encoding result, the decoding fails. The result of the "Source Decoding" module is the source data, which can be restored losslessly or losslessly.

[0361] Referring to Figure 8, an embodiment of the present application provides a schematic diagram of a communication device 800. The communication device 800 can implement the functions of the transmitter (or receiver) in the above-described method embodiment, and thus can also achieve the beneficial effects of the above-described method embodiment. In the embodiment of the present application, the communication device 800 can be a transmitter (or receiver), or it can be an integrated circuit or component within the transmitter (or receiver), such as a chip.

[0362] When the communication device 800 is a transmitting end, the device includes a transceiver unit 802 and a processing unit 801; the processing unit 801 is used to obtain information to be encoded, where the information to be encoded includes k bits, where k is a positive integer; the processing unit 801 is also used to determine the number of code blocks as C, where C is a positive integer; the processing unit 801 is also used to perform polarization encoding on the information to be encoded based on C to obtain C encoded code blocks; and the transceiver unit 802 is used to send the C encoded code blocks.

[0363] In a possible implementation, the processing unit 801 is specifically configured to determine the number of code blocks as C based on k and a target code rate.

[0364] In a possible implementation, the target bit rate is one of at least two bit rates.

[0365] In a possible implementation, the target code rate is 1 / 8, 1 / 4 or 1 / 2.

[0366] In a possible implementation, the processing unit 801 is specifically configured to:

[0367] When the target code rate is 1 / 8 and k is less than the first threshold, C is determined to be 1; or,

[0368] When the target code rate is 1 / 8 and k is greater than or equal to the first threshold and k is less than the second threshold, C is determined to be 2; or,

[0369] When the target bit rate is 1 / 8 and k is greater than or equal to the second threshold, determining C to be 3; or,

[0370] When the target code rate is 1 / 4 and k is less than a third threshold, C is determined to be 1; or,

[0371] When the target code rate is 1 / 4 and k is greater than or equal to the third threshold and k is less than the fourth threshold, C is determined to be 2; or,

[0372] When the target code rate is 1 / 4 and k is greater than or equal to the fourth threshold, determining C to be 3; or,

[0373] When the target code rate is 1 / 2 and k is less than the fifth threshold, C is determined to be 1; or,

[0374] When the target code rate is 1 / 2 and k is greater than or equal to the fifth threshold, C is determined to be 2.

[0375] In one possible implementation,

[0376] The first threshold is greater than or equal to 180 and the first threshold is less than or equal to 205; or,

[0377] The second threshold is greater than or equal to 310 and the second threshold is less than or equal to 355; or,

[0378] The third threshold is greater than or equal to 175 and the third threshold is less than or equal to 205; or,

[0379] The fourth threshold is greater than or equal to 310 and the fourth threshold is less than or equal to 335; or,

[0380] The fifth threshold is greater than or equal to 290 and the fifth threshold is less than or equal to 310.

[0381] In a possible implementation, the processing unit 801 is specifically configured to: perform polar coding on the information to be encoded based on C to obtain C initial code blocks; and determine C encoded code blocks based on the C initial code blocks, where an i-th encoded code block among the C encoded code blocks is determined according to an i-th initial code block among the C initial code blocks, where i traverses from 1 to C.

[0382] In a possible implementation, determining an i-th coded code block among the C coded code blocks based on the i-th initial code block among the C initial code blocks includes: in at least one coded code block among the C coded code blocks, the i-th coded code block is the i-th initial code block among the C initial code blocks; in the remaining coded code blocks among the C coded code blocks except the at least one coded code block, x bits of the i-th coded code block are a coupling result of x bits in the i-th initial code block among the C initial code blocks and x bits in the j-th initial code block, and the remaining Nx bits in the i-th coded code block are the remaining Nx bits in the i-th initial code block among the C initial code blocks, where the number of code blocks in the remaining coded code blocks is a positive integer, x is less than or equal to N, i is not equal to j, i and j are both less than or equal to C, and i and j are both positive integers.

[0383] In one possible implementation, x is equal to N / 2.

[0384] In a possible implementation, the coupling result is an exclusive-OR result.

[0385] In one possible implementation, i=j-1, or i=j+1.

[0386] In one possible implementation, the transceiver unit 802 is specifically configured to: store a first portion of the encoded information of any one of the C encoded code blocks in a first circular buffer, and store a second portion of the encoded information of any one of the C encoded code blocks in a second circular buffer; read bit information of the first circular buffer and bit information of the second circular buffer as a target bit sequence based on a target code length corresponding to any one of the C encoded code blocks; and send the target bit sequence.

[0387] In one possible implementation, when the target code length corresponding to any code block among the C encoded code blocks is less than or equal to the bit length corresponding to the any code block, the target bit sequence includes a first sequence and a second sequence; wherein the first sequence includes data after puncturing the data in the first circular buffer and the sequence length of the first sequence is less than or equal to the sequence length of the first part, and the second sequence includes data after puncturing the data in the second circular buffer and the sequence length of the second sequence is less than or equal to the sequence length of the second part; or, when the target code length corresponding to any code block among the C encoded code blocks is greater than the bit length corresponding to the any code block, the target bit sequence includes one sequence; wherein the one sequence includes data after repeated processing of the data in the first circular buffer and data after repeated processing of the data in the second circular buffer, and the sequence length of the one sequence is greater than the bit length corresponding to the any code block.

[0388] In a possible implementation, when the value of the target code length corresponding to any code block among the C encoded code blocks is an even number, the number of bits corresponding to any code block among the C encoded code blocks in the first circular buffer is the same as the number of bits corresponding to any code block among the C code blocks in the second circular buffer; or, when the value of the target code length corresponding to any code block among the C encoded code blocks is an odd number, the number of bits corresponding to any code block among the C encoded code blocks in the second circular buffer is one more than the number of bits corresponding to any code block among the C encoded code blocks in the first circular buffer.

[0389] Optionally, when the value of the target code length corresponding to any code block among the C encoded code blocks is an odd number, the number of bits corresponding to any code block among the C encoded code blocks in the second circular buffer is 1 less than the number of bits corresponding to any code block among the C encoded code blocks in the first circular buffer.

[0390] In one possible implementation, the number of bits corresponding to the first part is half of the number of bits corresponding to the encoded information of any code block among the C code blocks; and / or, the number of bits corresponding to the second part is half of the number of bits corresponding to the encoded information of any code block among the C code blocks.

[0391] When the communication device 800 is a receiving end, the device includes a transceiver unit 802 and a processing unit 801; the transceiver unit 802 is used to receive first information, where the first information is obtained based on k bits of information, where k is a positive integer; the processing unit 801 is used to determine that the number of code blocks corresponding to the first information is C, where C is a positive integer; the processing unit 801 is also used to determine, based on C, C encoded code blocks corresponding to the first information; the processing unit 801 is also used to determine k bits of information based on the C encoded code blocks.

[0392] In a possible implementation, the processing unit 801 is specifically configured to determine the number of code blocks as C based on k and a target code rate.

[0393] In a possible implementation, the target bit rate is one of at least two bit rates.

[0394] In a possible implementation, the target code rate is 1 / 8, 1 / 4 or 1 / 2.

[0395] In one possible implementation, determining the number of code blocks as C based on k and a target code rate includes:

[0396] When the target code rate is 1 / 8 and k is less than the first threshold, C is determined to be 1; or,

[0397] When the target code rate is 1 / 8 and k is greater than or equal to the first threshold and k is less than the second threshold, C is determined to be 2; or,

[0398] When the target bit rate is 1 / 8 and k is greater than or equal to the second threshold, determining C to be 3; or,

[0399] When the target code rate is 1 / 4 and k is less than a third threshold, C is determined to be 1; or,

[0400] When the target code rate is 1 / 4 and k is greater than or equal to the third threshold and k is less than the fourth threshold, C is determined to be 2; or,

[0401] When the target code rate is 1 / 4 and k is greater than or equal to the fourth threshold, determining C to be 3; or,

[0402] When the target code rate is 1 / 2 and k is less than the fifth threshold, C is determined to be 1; or,

[0403] When the target code rate is 1 / 2 and k is greater than or equal to the fifth threshold, C is determined to be 2.

[0404] In one possible implementation,

[0405] The first threshold is greater than or equal to 180 and the first threshold is less than or equal to 205; or,

[0406] The second threshold is greater than or equal to 310 and the second threshold is less than or equal to 355; or,

[0407] The third threshold is greater than or equal to 175 and the third threshold is less than or equal to 205; or,

[0408] The fourth threshold is greater than or equal to 310 and the fourth threshold is less than or equal to 335; or,

[0409] The fifth threshold is greater than or equal to 290 and the fifth threshold is less than or equal to 310.

[0410] In one possible implementation, the processing unit 801 is specifically configured to: determine C initial code blocks based on C encoded code blocks, wherein the i-th initial code block among the C initial code blocks is determined according to the i-th encoded code block among the C encoded code blocks, where i traverses from 1 to C; and perform decoding based on the C initial code blocks to obtain k bits of information.

[0411] In a possible implementation, determining the i-th initial code block among the C initial code blocks based on the i-th coded code block among the C coded code blocks includes: in at least one initial code block among the C initial code blocks, the i-th initial code block is the i-th coded code block among the C coded code blocks; in the remaining initial code blocks other than the at least one initial code block among the C initial code blocks, a coupling result of x bits in the i-th initial code block and x bits in the j-th initial code block is x bits of the i-th coded code block among the C coded code blocks, and the remaining Nx bits in the i-th initial code block are the remaining Nx bits in the i-th coded code block among the C coded code blocks, where the number of code blocks in the remaining coded code blocks is a positive integer, x is less than or equal to N, i is not equal to j, i and j are both less than or equal to C, and i and j are both positive integers.

[0412] In one possible implementation, x is equal to N / 2.

[0413] In a possible implementation, the coupling result is an exclusive-OR result.

[0414] In one possible implementation, i=j-1, or i=j+1.

[0415] In one possible implementation, the processing unit 801 is specifically configured to: determine a target bit sequence corresponding to the first information; determine bit information of the target bit sequence in a first loop cache and bit information of the target bit sequence in a second loop cache based on a target code length corresponding to any code block among the C encoded code blocks; determine a first part of the encoded information of any code block among the C encoded code blocks based on the bit information of the target bit sequence in the first loop cache, and determine a second part of the encoded information of any code block among the C encoded code blocks based on the bit information of the target bit sequence in the second loop cache; and determine any code block among the C encoded code blocks based on the first part and the second part.

[0416] In one possible implementation, when the target code length corresponding to any code block among the C encoded code blocks is less than or equal to the bit length corresponding to the any code block, the target bit sequence includes a first sequence and a second sequence; wherein the first sequence includes data after puncturing the data in the first circular buffer and the sequence length of the first sequence is less than or equal to the sequence length of the first part, and the second sequence includes data after puncturing the data in the second circular buffer and the sequence length of the second sequence is less than or equal to the sequence length of the second part; or, when the target code length corresponding to any code block among the C encoded code blocks is greater than the bit length corresponding to the any code block, the target bit sequence includes one sequence; wherein the one sequence includes data after repeated processing of the data in the first circular buffer and data after repeated processing of the data in the second circular buffer, and the sequence length of the one sequence is greater than the bit length corresponding to the any code block.

[0417] In a possible implementation, when the value of the target code length corresponding to any code block among the C encoded code blocks is an even number, the number of bits corresponding to any code block among the C encoded code blocks in the first circular buffer is the same as the number of bits corresponding to any code block among the C code blocks in the second circular buffer; or, when the value of the target code length corresponding to any code block among the C encoded code blocks is an odd number, the number of bits corresponding to any code block among the C encoded code blocks in the second circular buffer is one more than the number of bits corresponding to any code block among the C encoded code blocks in the first circular buffer.

[0418] In one possible implementation, the number of bits corresponding to the first part is half of the number of bits corresponding to the encoded information of any code block among the C code blocks; and / or, the number of bits corresponding to the second part is half of the number of bits corresponding to the encoded information of any code block among the C code blocks.

[0419] It should be noted that, for details on the information execution process of the units of the above-mentioned communication device 800, please refer to the description in the method embodiment shown above in this application, and no further details will be given here.

[0420] Please refer to Figure 9, which is another schematic structural diagram of a communication device 900 provided in this application. The communication device 900 includes a logic circuit 901 and an input / output interface 902. The communication device 900 may be a chip or an integrated circuit.

[0421] The transceiver unit 802 shown in FIG8 may be a communication interface, which may be the input / output interface 902 in FIG9 , which may include an input interface and an output interface. Alternatively, the communication interface may be a transceiver circuit, which may include an input interface circuit and an output interface circuit. Furthermore, the processing unit 801 shown in FIG8 may be the logic circuit 901 in FIG9 .

[0422] Exemplarily, when the communication device 900 is the aforementioned chip or integrated circuit of the transmitting end, the logic circuit 901 is used to obtain information to be encoded, where the information to be encoded includes k bits, where k is a positive integer; the logic circuit 901 is further used to determine the number of code blocks as C, where C is a positive integer; the logic circuit 901 is further used to perform polar coding on the information to be encoded based on C to obtain C encoded code blocks; and the input / output interface 902 is used to send the C encoded code blocks.

[0423] Exemplarily, when the communication device 900 is the chip or integrated circuit of the aforementioned receiving end, the input-output interface 902 is used to receive first information, where the first information is obtained based on k bits of information, where k is a positive integer; the logic circuit 901 is used to determine that the number of code blocks corresponding to the first information is C, where C is a positive integer; the logic circuit 901 is also used to determine the C encoded code blocks corresponding to the first information based on C; the logic circuit 901 is also used to determine k bits of information based on the C encoded code blocks.

[0424] In one possible implementation, the logic circuit 901 can also execute other steps executed by the aforementioned processing unit 801 and achieve corresponding beneficial effects, and the input and output interface 902 can also execute other steps executed by the aforementioned transceiver unit 802 and achieve corresponding beneficial effects, which will not be repeated here.

[0425] In a possible implementation, the logic circuit 901 may be a processing device, and the functions of the processing device may be partially or entirely implemented by software.

[0426] Optionally, the processing device may include a memory and a processor, wherein the memory is used to store a computer program, and the processor reads and executes the computer program stored in the memory to perform corresponding processing and / or steps in any one of the method embodiments.

[0427] Alternatively, the processing device may include only a processor. A memory for storing the computer program is located outside the processing device, and the processor is connected to the memory via circuits / wires to read and execute the computer program stored in the memory. The memory and processor may be integrated or physically separate.

[0428] Optionally, the processing device may be one or more chips, or one or more integrated circuits. For example, the processing device may be one or more field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), system-on-chips (SoCs), central processor units (CPUs), network processors (NPs), digital signal processors (DSPs), microcontroller units (MCUs), programmable logic devices (PLDs), or other integrated chips, or any combination of the above chips or processors.

[0429] Please refer to Figure 10, which shows the communication device 1000 involved in the above embodiments provided in the embodiments of the present application. The communication device 1000 can specifically be the first communication device as the transmitting end or the second communication device as the receiving end in the above embodiments. The example shown in Figure 10 is that the transmitting end or the receiving end is implemented by a terminal device (or a component in the terminal device). Among them, a possible logical structure diagram of the communication device 1000 is shown. The communication device 1000 may include but is not limited to at least one processor 1001 and a communication port 1002. Further optionally, the device may also include at least one of a memory 1003 and a bus 1004. In the embodiment of the present application, the at least one processor 1001 is used to control the actions of the communication device 1000.

[0430] In addition, the processor 1001 can be a central processing unit, a general-purpose processor, a digital signal processor, an application-specific integrated circuit, a field programmable gate array or other programmable logic device, a transistor logic device, a hardware component, or any combination thereof. It can implement or execute the various exemplary logic blocks, modules, and circuits described in conjunction with the disclosure of this application. The processor can also be a combination that implements computing functions, such as a combination of one or more microprocessors, a combination of a digital signal processor and a microprocessor, and so on. Those skilled in the art will clearly understand that for the convenience and brevity of description, the specific working processes of the systems, devices, and units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.

[0431] It should be noted that the communication device 1000 shown in Figure 10 can be specifically used to implement the steps implemented by the sending end or the receiving end in the aforementioned method embodiment, and to achieve the corresponding technical effects of the sending end or the receiving end. The specific implementation methods of the communication device shown in Figure 10 can refer to the description in the aforementioned method embodiment, and will not be repeated here one by one.

[0432] Please refer to Figure 11, which is a structural diagram of the communication device 1100 involved in the above-mentioned embodiments provided in an embodiment of the present application. The communication device 1100 can specifically be the first communication device as the transmitting end or the second communication device as the receiving end in the above-mentioned embodiments. The example shown in Figure 11 is that the transmitting end or the receiving end is implemented through a network device (or a component in the network device), wherein the structure of the communication device can refer to the structure shown in Figure 11.

[0433] The communication device 1100 includes at least one processor 1111 and at least one network interface 1114. Further optionally, the communication device also includes at least one memory 1112, at least one transceiver 1113 and one or more antennas 1115. The processor 1111, the memory 1112, the transceiver 1113 and the network interface 1114 are connected, for example, via a bus. In an embodiment of the present application, the connection may include various interfaces, transmission lines or buses, etc., which are not limited in this embodiment. The antenna 1115 is connected to the transceiver 1113. The network interface 1114 is used to enable the communication device to communicate with other communication devices through a communication link. For example, the network interface 1114 may include a network interface between the communication device and the core network device, such as an S1 interface, and the network interface may include a network interface between the communication device and other communication devices (such as other network devices or core network devices), such as an X2 or Xn interface.

[0434] Processor 1111 is primarily used to process communication protocols and communication data, control the entire communication device, execute software programs, and process software program data, for example, to support the communication device in performing the actions described in the embodiments. The communication device may include a baseband processor and a central processing unit. The baseband processor is primarily used to process communication protocols and communication data, while the central processing unit is primarily used to control the entire terminal device, execute software programs, and process software program data. Processor 1111 in Figure 11 may integrate the functions of both a baseband processor and a central processing unit. Those skilled in the art will appreciate that the baseband processor and the central processing unit may also be independent processors interconnected via a bus or other technology. Those skilled in the art will appreciate that a terminal device may include multiple baseband processors to accommodate different network standards, multiple central processing units to enhance its processing capabilities, and various components of the terminal device may be connected via various buses. The baseband processor may also be referred to as a baseband processing circuit or a baseband processing chip. The central processing unit may also be referred to as a central processing circuit or a central processing chip. The functionality for processing communication protocols and communication data may be built into the processor or stored in memory as a software program, which is executed by the processor to implement the baseband processing functionality.

[0435] The memory is primarily used to store software programs and data. Memory 1112 can exist independently and be connected to processor 1111. Alternatively, memory 1112 can be integrated with processor 1111, for example, within a single chip. Memory 1112 can store program code for executing the technical solutions of the embodiments of the present application, and execution is controlled by processor 1111. The various computer program codes executed can also be considered drivers for processor 1111.

[0436] Figure 11 shows only one memory and one processor. In an actual terminal device, there may be multiple processors and multiple memories. The memory may also be referred to as a storage medium or a storage device. The memory may be a storage element on the same chip as the processor, i.e., an on-chip storage element, or an independent storage element, which is not limited in the present embodiment.

[0437] The transceiver 1113 can be used to support the reception or transmission of radio frequency signals between the communication device and the terminal. The transceiver 1113 can be connected to the antenna 1115. The transceiver 1113 includes a transmitter Tx and a receiver Rx. Specifically, one or more antennas 1115 can receive radio frequency signals. The receiver Rx of the transceiver 1113 is used to receive the radio frequency signals from the antennas, convert the radio frequency signals into digital baseband signals or digital intermediate frequency signals, and provide the digital baseband signals or digital intermediate frequency signals to the processor 1111 so that the processor 1111 can further process the digital baseband signals or digital intermediate frequency signals, such as demodulation and decoding. In addition, the transmitter Tx in the transceiver 1113 is also used to receive modulated digital baseband signals or digital intermediate frequency signals from the processor 1111, convert the modulated digital baseband signals or digital intermediate frequency signals into radio frequency signals, and transmit the radio frequency signals through one or more antennas 1115. Specifically, the receiver Rx can selectively perform one or more stages of down-mixing and analog-to-digital conversion on the RF signal to obtain a digital baseband signal or a digital intermediate frequency signal. The order of the down-mixing and analog-to-digital conversion processes is adjustable. The transmitter Tx can selectively perform one or more stages of up-mixing and digital-to-analog conversion on the modulated digital baseband signal or digital intermediate frequency signal to obtain a RF signal. The order of the up-mixing and digital-to-analog conversion processes is adjustable. The digital baseband signal and the digital intermediate frequency signal may be collectively referred to as digital signals.

[0438] The transceiver 1113 may also be referred to as a transceiver unit, a transceiver, a transceiver device, etc. Optionally, a device in the transceiver unit that implements a receiving function may be referred to as a receiving unit, and a device in the transceiver unit that implements a transmitting function may be referred to as a transmitting unit. That is, the transceiver unit includes a receiving unit and a transmitting unit. The receiving unit may also be referred to as a receiver, an input port, a receiving circuit, etc., and the transmitting unit may be referred to as a transmitter, a transmitter, or a transmitting circuit, etc.

[0439] It should be noted that the communication device 1100 shown in Figure 11 can be specifically used to implement the steps implemented by the sending end or the receiving end in the aforementioned method embodiment, and to achieve the corresponding technical effects of the sending end or the receiving end. The specific implementation methods of the communication device 1100 shown in Figure 11 can refer to the description in the aforementioned method embodiment, and will not be repeated here.

[0440] An embodiment of the present application further provides a computer-readable storage medium storing one or more computer-executable instructions. When the computer-executable instructions are executed by a processor, the processor executes the method as a possible implementation method of the terminal device in the aforementioned embodiment, that is, the sending end in the aforementioned method embodiment.

[0441] An embodiment of the present application further provides a computer-readable storage medium storing one or more computer-executable instructions. When the computer-executable instructions are executed by a processor, the processor executes the method as a possible implementation method of the network device in the aforementioned embodiment, that is, the receiving end in the aforementioned method embodiment.

[0442] An embodiment of the present application also provides a computer program product (or computer program) storing one or more computers. When the computer program product is executed by the processor, the processor executes the method of the possible implementation method of the above-mentioned terminal device, that is, the sending end in the above-mentioned method embodiment.

[0443] An embodiment of the present application further provides a computer program product storing one or more computers. When the computer program product is executed by the processor, the processor executes the method of the possible implementation of the above-mentioned network device, that is, the receiving end in the above-mentioned method embodiment.

[0444] An embodiment of the present application also provides a chip system, which includes at least one processor for supporting a first communication device to implement the functions involved in the possible implementation of the first communication device. Optionally, the chip system also includes an interface circuit, which provides program instructions and / or data to the at least one processor. In one possible design, the chip system may also include a memory for storing the necessary program instructions and data for the first communication device. The chip system may be composed of a chip, or may include a chip and other discrete devices, wherein the first communication device may specifically be the transmitting end in the aforementioned method embodiment.

[0445] An embodiment of the present application also provides a chip system, which includes at least one processor for supporting a second communication device to implement the functions involved in the possible implementation of the above-mentioned second communication device. Optionally, the chip system also includes an interface circuit, which provides program instructions and / or data to the at least one processor. In one possible design, the chip system may also include a memory for storing the necessary program instructions and data for the second communication device. The chip system can be composed of chips, or it can include chips and other discrete devices, wherein the second communication device can specifically be the receiving end in the aforementioned method embodiment.

[0446] An embodiment of the present application also provides a communication system, wherein the network system architecture includes the terminal device and network device in any of the above embodiments, that is, the transmitting end and the receiving end in the above method embodiments.

[0447] In the several embodiments provided in this application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are merely schematic. For example, the division of the units is merely a logical function division. In actual implementation, there may be other division methods, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interfaces, devices or units, which can be electrical, mechanical or other forms.

[0448] The units described as separate components may or may not be physically separate, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed across multiple network units. Some or all of these units may be selected to achieve the purpose of this embodiment according to actual needs.

[0449] In addition, the functional units in the various embodiments of the present application can be integrated into a processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The above-mentioned integrated unit can be implemented in the form of hardware or in the form of a software functional unit. If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application is essentially or the part that contributes to the prior art or all or part of the technical solution can be embodied in the form of a software product, which is stored in a storage medium and includes several instructions for causing a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the method described in the various embodiments of the present application. The aforementioned storage medium includes various media that can store program code, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk.

Claims

1. A communication method, characterized in that: include: Obtaining information to be encoded, where the information to be encoded includes k bits, where k is a positive integer; Determine the number of code blocks as C, where C is a positive integer; Perform polar coding on the information to be encoded based on C to obtain C encoded code blocks; The C encoded code blocks are sent.

2. The method according to claim 1, characterized in that Determining the number of code blocks as C includes: The number of code blocks is determined to be C based on k and a target code rate.

3. The method according to claim 2, characterized in that The target bit rate is one of at least two bit rates.

4. The method according to claim 2 or 3, characterized in that The target bit rate is 1 / 8, 1 / 4 or 1 / 2.

5. The method according to claim 4, characterized in that Determining the number of code blocks as C based on k and a target code rate includes: When the target bit rate is 1 / 8 and k is less than a first threshold, determining that C is 1; or, When the target bit rate is 1 / 8 and k is greater than or equal to a first threshold and k is less than a second threshold, determining C to be 2; or, When the target bit rate is 1 / 8 and k is greater than or equal to the second threshold, determining C to be 3; or, When the target bit rate is 1 / 4 and k is less than a third threshold, determining that C is 1; or, When the target bit rate is 1 / 4 and k is greater than or equal to a third threshold and k is less than a fourth threshold, determining that C is 2; or, When the target bit rate is 1 / 4 and k is greater than or equal to the fourth threshold, determining that C is 3; or, When the target code rate is 1 / 2 and k is less than a fifth threshold, determining that C is 1; or, When the target code rate is 1 / 2 and k is greater than or equal to the fifth threshold, C is determined to be 2.

6. The method according to claim 5, characterized in that The first threshold is greater than or equal to 180 and the first threshold is less than or equal to 205; or, The second threshold is greater than or equal to 310 and the second threshold is less than or equal to 355; or, The third threshold is greater than or equal to 175 and the third threshold is less than or equal to 205; or, The fourth threshold is greater than or equal to 310 and the fourth threshold is less than or equal to 335; or, The fifth threshold is greater than or equal to 290 and the fifth threshold is less than or equal to 310.

7. The method according to any one of claims 1 to 6, characterized in that The performing polar coding on the information to be encoded based on the C to obtain C encoded code blocks includes: Perform polar coding on the information to be encoded based on C to obtain C initial code blocks; The C encoded code blocks are determined based on the C initial code blocks, wherein an i-th encoded code block among the C encoded code blocks is determined according to an i-th initial code block among the C initial code blocks, and i traverses from 1 to C.

8. The method according to claim 7, characterized in that The i-th coded code block among the C coded code blocks is determined according to the i-th initial code block among the C initial code blocks, including: In at least one of the C encoded code blocks, an i-th encoded code block is an i-th initial code block among the C initial code blocks; In the remaining encoded code blocks of the C encoded code blocks except the at least one encoded code block, x bits of the i-th encoded code block are a coupling result of x bits in the i-th initial code block and x bits in the j-th initial code block among the C initial code blocks, and the remaining Nx bits in the i-th encoded code block are the remaining Nx bits in the i-th initial code block among the C initial code blocks; the number of code blocks of the remaining encoded code blocks is a positive integer, x is less than or equal to N, i is not equal to j, i and j are both less than or equal to C, and i and j are both positive integers.

9. The method according to claim 8, characterized in that Said x is equal to N / 2.

10. The method according to claim 8 or 9, characterized in that The coupling result is an exclusive OR result.

11. The method according to any one of claims 8 to 10, characterized in that i=j-1, or, i=j+1.

12. The method according to any one of claims 1 to 11, characterized in that The sending of the C encoded code blocks comprises: storing a first portion of the encoded information of any one of the C encoded code blocks in a first circular buffer, and storing a second portion of the encoded information of any one of the C encoded code blocks in a second circular buffer; Reading bit information of the first circular buffer and bit information of the second circular buffer as a target bit sequence based on a target code length corresponding to any code block among the C encoded code blocks; The target bit sequence is sent.

13. The method according to claim 12, characterized in that When a target code length corresponding to any code block among the C encoded code blocks is less than or equal to a bit length corresponding to the any code block, the target bit sequence includes a first sequence and a second sequence; wherein the first sequence includes data obtained by puncturing data in the first circular buffer and a sequence length of the first sequence is less than or equal to a sequence length of the first part, and the second sequence includes data obtained by puncturing data in the second circular buffer and a sequence length of the second sequence is less than or equal to a sequence length of the second part; or, When a target code length corresponding to any code block among the C encoded code blocks is greater than a bit length corresponding to the any code block, the target bit sequence includes one sequence; wherein the one sequence includes data obtained by repeatedly processing the data in the first circular buffer and data obtained by repeatedly processing the data in the second circular buffer, and the sequence length of the one sequence is greater than the bit length corresponding to the any code block.

14. The method according to claim 13, characterized in that When a target code length corresponding to any code block among the C encoded code blocks is an even number, the number of bits corresponding to any code block among the C encoded code blocks in the first circular buffer is the same as the number of bits corresponding to any code block among the C code blocks in the second circular buffer; or, When a target code length corresponding to any one of the C encoded code blocks is an odd number, the number of bits corresponding to any one of the C encoded code blocks in the second circular buffer is one more than the number of bits corresponding to any one of the C encoded code blocks in the first circular buffer.

15. The method according to any one of claims 12 to 14, characterized in that The number of bits corresponding to the first part is half the number of bits corresponding to the encoded information of any code block among the C code blocks; and / or, The number of bits corresponding to the second part is half the number of bits corresponding to the encoded information of any code block in the C code blocks.

16. A communication method, characterized in that: include: receiving first information, where the first information is obtained based on k bits of information, where k is a positive integer; Determine that the number of code blocks corresponding to the first information is C, where C is a positive integer; Determine, based on the C, C encoded code blocks corresponding to the first information; The k bits of information are determined based on the C encoded code blocks.

17. The method according to claim 16, characterized in that Determining the number of code blocks corresponding to the first information as C includes: The number of code blocks is determined to be C based on k and a target code rate.

18. The method according to claim 16 or 17, characterized in that The determining the k bits of information based on the C encoded code blocks includes: Determine C initial code blocks based on the C encoded code blocks, wherein an i-th initial code block among the C initial code blocks is determined according to an i-th encoded code block among the C encoded code blocks, where i traverses from 1 to C; The k bits of information are obtained by decoding based on the C initial code blocks.

19. The method according to any one of claims 16 to 18, characterized in that Determining, based on the C, the C encoded code blocks corresponding to the first information includes: determining a target bit sequence corresponding to the first information; Determining bit information of the target bit sequence in the first loop buffer and bit information of the target bit sequence in the second loop buffer based on a target code length corresponding to any code block among the C encoded code blocks; determining a first portion of coded information of any one of the C coded code blocks based on bit information of the target bit sequence in a first circular buffer, and determining a second portion of coded information of any one of the C coded code blocks based on bit information of the target bit sequence in a second circular buffer; Any one of the C encoded code blocks is determined based on the first part and the second part.

20. A communication device, characterized in that: including a processing unit and a transceiver unit; The processing unit is used to obtain information to be encoded, where the information to be encoded includes k bits, where k is a positive integer; The processing unit is further configured to determine the number of code blocks as C, where C is a positive integer; The processing unit is further configured to perform polar coding on the information to be encoded based on C to obtain C encoded code blocks; The transceiver unit is used to send the C encoded code blocks.

21. The device according to claim 20, characterized in that The processing unit is specifically configured to determine the number of code blocks as C based on k and a target code rate.

22. The device according to claim 21, characterized in that The target bit rate is one of at least two bit rates.

23. The device according to claim 21 or 22, characterized in that The target bit rate is 1 / 8, 1 / 4 or 1 / 2.

24. The device according to claim 23, characterized in that The processing unit is specifically configured to: When the target bit rate is 1 / 8 and k is less than a first threshold, determining that C is 1; or, When the target bit rate is 1 / 8 and k is greater than or equal to a first threshold and k is less than a second threshold, determining C to be 2; or, When the target bit rate is 1 / 8 and k is greater than or equal to the second threshold, determining that C is 3; or, When the target bit rate is 1 / 4 and k is less than a third threshold, determining that C is 1; or, When the target bit rate is 1 / 4 and k is greater than or equal to a third threshold and k is less than a fourth threshold, determining that C is 2; or, When the target bit rate is 1 / 4 and k is greater than or equal to the fourth threshold, determining that C is 3; or, When the target bit rate is 1 / 2 and k is less than a fifth threshold, determining that C is 1; or, When the target code rate is 1 / 2 and k is greater than or equal to the fifth threshold, C is determined to be 2.

25. The device according to claim 24, characterized in that The first threshold is greater than or equal to 180 and the first threshold is less than or equal to 205; or, The second threshold is greater than or equal to 310 and the second threshold is less than or equal to 355; or, The third threshold is greater than or equal to 175 and the third threshold is less than or equal to 205; or, The fourth threshold is greater than or equal to 310 and the fourth threshold is less than or equal to 335; or, The fifth threshold is greater than or equal to 290 and the fifth threshold is less than or equal to 310.

26. The device according to any one of claims 20 to 25, characterized in that The processing unit is specifically configured to: Perform polar coding on the information to be encoded based on C to obtain C initial code blocks; The C encoded code blocks are determined based on the C initial code blocks, wherein an i-th encoded code block among the C encoded code blocks is determined according to an i-th initial code block among the C initial code blocks, and i traverses from 1 to C.

27. The device according to claim 26, characterized in that The i-th coded code block among the C coded code blocks is determined according to the i-th initial code block among the C initial code blocks, including: In at least one of the C encoded code blocks, an i-th encoded code block is an i-th initial code block among the C initial code blocks; In the remaining encoded code blocks of the C encoded code blocks except the at least one encoded code block, the x bits of the i-th encoded code block are a coupling result of the x bits in the i-th initial code block and the x bits in the j-th initial code block in the C initial code blocks, and the remaining Nx bits in the i-th encoded code block are the remaining Nx bits in the i-th initial code block in the C initial code blocks, the number of code blocks of the remaining encoded code blocks is a positive integer, x is less than or equal to N, i is not equal to j, i and j are both less than or equal to C, and i and j are both positive integers.

28. The device according to claim 27, characterized in that Said x is equal to N / 2.

29. The device according to claim 27 or 28, characterized in that The coupling result is an exclusive OR result.

30. The device according to any one of claims 27 to 29, characterized in that i=j-1, or, i=j+1.

31. The device according to any one of claims 20 to 30, characterized in that The transceiver unit is specifically used for: storing a first portion of the encoded information of any one of the C encoded code blocks in a first circular buffer, and storing a second portion of the encoded information of any one of the C encoded code blocks in a second circular buffer; Reading bit information of the first circular buffer and bit information of the second circular buffer as a target bit sequence based on a target code length corresponding to any code block among the C encoded code blocks; The target bit sequence is sent.

32. The device according to claim 31, characterized in that When a target code length corresponding to any code block among the C encoded code blocks is less than or equal to a bit length corresponding to the any code block, the target bit sequence includes a first sequence and a second sequence; wherein the first sequence includes data obtained by puncturing data in the first circular buffer and a sequence length of the first sequence is less than or equal to a sequence length of the first part, and the second sequence includes data obtained by puncturing data in the second circular buffer and a sequence length of the second sequence is less than or equal to a sequence length of the second part; or, When a target code length corresponding to any code block among the C encoded code blocks is greater than a bit length corresponding to the any code block, the target bit sequence includes one sequence; wherein the one sequence includes data obtained by repeatedly processing the data in the first circular buffer and data obtained by repeatedly processing the data in the second circular buffer, and the sequence length of the one sequence is greater than the bit length corresponding to the any code block.

33. The device according to claim 32, characterized in that When a target code length corresponding to any code block among the C encoded code blocks is an even number, the number of bits corresponding to any code block among the C encoded code blocks in the first circular buffer is the same as the number of bits corresponding to any code block among the C code blocks in the second circular buffer; or, When a target code length corresponding to any one of the C encoded code blocks is an odd number, the number of bits corresponding to any one of the C encoded code blocks in the second circular buffer is one more than the number of bits corresponding to any one of the C encoded code blocks in the first circular buffer.

34. The device according to any one of claims 31 to 33, characterized in that The number of bits corresponding to the first part is half the number of bits corresponding to the encoded information of any code block among the C code blocks; and / or, The number of bits corresponding to the second part is half the number of bits corresponding to the encoded information of any code block in the C code blocks.

35. A communication device, characterized in that: including a transceiver unit and a processing unit; The transceiver unit is configured to receive first information, where the first information is obtained based on k bits of information, where k is a positive integer; The processing unit is configured to determine that the number of code blocks corresponding to the first information is C, where C is a positive integer; The processing unit is further configured to determine, based on the C, C encoded code blocks corresponding to the first information; The processing unit is further configured to determine the k bits of information based on the C encoded code blocks.

36. The device according to claim 35, characterized in that The processing unit is specifically configured to: The number of code blocks is determined to be C based on k and a target code rate.

37. The device according to claim 35 or 36, characterized in that The processing unit is specifically configured to: Determine C initial code blocks based on the C encoded code blocks, wherein an i-th initial code block among the C initial code blocks is determined according to an i-th encoded code block among the C encoded code blocks, where i traverses from 1 to C; The k bits of information are obtained by decoding based on the C initial code blocks.

38. The device according to any one of claims 35 to 37, characterized in that The processing unit is specifically configured to: determining a target bit sequence corresponding to the first information; Determining bit information of the target bit sequence in the first loop buffer and bit information of the target bit sequence in the second loop buffer based on a target code length corresponding to any code block among the C encoded code blocks; determining a first portion of coded information of any one of the C coded code blocks based on bit information of the target bit sequence in a first circular buffer, and determining a second portion of coded information of any one of the C coded code blocks based on bit information of the target bit sequence in a second circular buffer; Any one of the C encoded code blocks is determined based on the first part and the second part.

39. A communication device, characterized in that: comprising at least one processor coupled to a memory; The memory is used to store programs and / or instructions; The at least one processor is configured to cause the communication device to execute the method according to any one of claims 1 to 15 based on the program and / or instructions, or to cause the communication device to execute the method according to any one of claims 16 to 19.

40. A communication system, characterized in that: The communication system includes at least one transmitting end and at least one receiving end; The at least one transmitting end is used to implement the method according to any one of claims 1 to 15, and the at least one receiving end is used to implement the method according to any one of claims 16 to 19.

41. A computer-readable storage medium, characterized in that The medium stores instructions, and when the instructions are executed by a computer, the method according to any one of claims 1 to 19 is implemented.

42. A computer program product, characterized in that The method comprises instructions which, when executed on a computer, cause the computer to perform the method according to any one of claims 1 to 19.