Rate matching method and apparatuses

The method dynamically adjusts buffer size and writing methods based on bit sequence length and rate matching schemes, addressing inefficiencies in existing rate matching techniques and enhancing data transmission reliability and efficiency.

WO2025118454A1PCT designated stage expired Publication Date: 2025-06-12HUAWEI TECH CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/087064
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-12-05
Filing Date
2024-04-10
Publication Date
2025-06-12

AI Technical Summary

Technical Problem

Existing rate matching techniques in wireless communication systems face challenges in dynamically adapting to varying code lengths and rates, leading to inefficiencies in buffer utilization and data transmission reliability.

Method used

A method and apparatus for rate matching that dynamically adjusts the buffer size based on the length information of the bit sequence and the rate matching scheme, allowing for efficient writing and reading of code bits by determining the appropriate writing method, such as skipping or repeating code bits.

Benefits of technology

This approach enhances the reliability and efficiency of rate matching and data communication by ensuring stable performance across a wide range of code lengths and rates, while also improving resource utilization and overall throughput.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024087064_12062025_PF_FP_ABST
    Figure CN2024087064_12062025_PF_FP_ABST
Patent Text Reader

Abstract

The present disclosure provides a method and related products. The method includes: obtaining a first bit sequence; obtaining, according to length information of the first bit sequence, a size of a buffer; writing the first bit sequence into the buffer according to at least one writing method, where the at least one writing method is determined according to a rate matching scheme and the size of the buffer. In this way, dynamic adaptation of the buffer size is achieved to accommodate bit sequences of different lengths, and efficient use of the buffer can be realized by tailoring its size to the specific requirements of the input data. In addition, the writing process can be adapted based on the buffer size and the rate matching scheme, which can improve reliability and efficiency of rate matching and allow for stable performance under a wide range of code lengths and rates.
Need to check novelty before this filing date? Find Prior Art

Description

RATE MATCHING METHOD AND APPARATUSES

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims priority to U.S. Provisional Application No. 63 / 606,215, filed on December 5, 2023. The disclosure of the above patent application is incorporated herein by reference in its entirety.TECHNICAL FIELD

[0003] The present disclosure relates to the field of wireless communication technologies, and in particular, to a method and an apparatus for rate matching, a device, a system and a storage medium.BACKGROUND

[0004] Generally, source bits to be transmitted would be encoded into code bits in a communication system, to provide error correction capability against adversary channel conditions such as noise and interference. Rate matching would be performed after channel encoding, by either puncturing / shortening or repeating some code bits. The purpose of this operation is to obtain a code bit sequence of desired length for transmission over limited channel resources. Channel interleaving would be applied after channel encoding and rate matching by permuting the code bits. The purpose is to provide stable or superior performance under high-order modulation or in a fading channel. In practice, implementations of rate matching schemes, especially for polar, LDPC, and turbo codes, may involve code bit interleaving before bit selection.

[0005] This background information is provided to reveal information believed by the applicant to be of possible relevance to the present disclosure. No admission is necessarily intended, nor should be construed, that any of the preceding information constitutes prior art against the present disclosure.SUMMARY

[0006] In a first aspect, an embodiment of the present disclosure provides a method, including:

[0007] obtaining a first bit sequence;

[0008] obtaining, according to length information of the first bit sequence, a size of a buffer;

[0009] writing the first bit sequence into the buffer according to at least one writing method, where the at least one writing method is determined according to a rate matching scheme and the size of the buffer.

[0010] A transmitting device may obtain a first bit sequence, and may obtain a size of a buffer according to length information of the first bit sequence, and the transmitting device may write the first bit sequence into the buffer according to at least one writing method, where the at least one writing method is determined according to a rate matching scheme and the size of the buffer. In this way, dynamic adaptation of the buffer size is achieved to accommodate bit sequences of different lengths, and efficient use of the buffer can be realized by tailoring its size to the specific requirements of the input data. In addition, the writing process can be adapted based on the buffer size and the rate matching scheme, which can improve reliability and efficiency of rate matching and thus data communication, and allow for stable performance under a wide range of code lengths and rates.

[0011] In a possible implementation of the first aspect, the obtaining the first bit sequence includes:

[0012] encoding information bits by using an encoding method to obtain the first bit sequence.

[0013] By encoding the information bits using an appropriate method, the first bit sequence can be prepared to withstand the effects of channel impairments and noise, ensuring reliable and accurate transmission or storage of the data.

[0014] In a possible implementation of the first aspect, the obtaining, according to the length information of the first bit sequence, the size of the buffer includes:

[0015] obtaining, according to a mother code length of the first bit sequence, the size of the buffer.

[0016] By adjusting the buffer size according to the mother code length of the input bit sequence, resource allocation can be improved and efficient utilization of memory space can be ensured.

[0017] In a possible implementation of the first aspect, the size of the buffer is a multiple of a mother code length of the first bit sequence, where the multiple is greater than 1. Using a buffer with a size which is a multiple of the mother code length makes it possible to write several bit sequences or a long bit sequence into the buffer, which may allow for higher coding gain and flexible implementation of bit selection for transmission and retransmissions.

[0018] In a possible implementation of the first aspect, the size of the buffer is smaller than a mother code length of the first bit sequence. The memory resource can be conserved and resource allocation can be improved.

[0019] In a possible implementation of the first aspect, the size of the buffer is obtained according to a first ratio  by which the size of the buffer is shorter than a mother code length of the first bit sequence. The use of a ratio provides flexibility in adjusting the buffer size based on varying communication needs. Different ratios can be applied to accommodate different scenarios and enhance data transmission efficiency accordingly.

[0020] In a possible implementation of the first aspect, the size of the buffer is obtained according to a multiple of a first length shorter than a mother code length of the first bit sequence, where the multiple is an integer larger than 1.

[0021] In a possible implementation of the first aspect, the first length is obtained according to the mother code length and a first ratio by which the first length is shorter than the mother code length.

[0022] In a possible implementation of the first aspect, the first ratio is based on the rate matching scheme. By determining the first ratio based on the rate matching scheme, the buffer size can be adapted to match the data rate requirement, and efficiency of the buffer resource allocation can be improved.

[0023] In a possible implementation of the first aspect, the first ratio is based on at least one of a shortening-related ratio or a puncturing-related ratio.

[0024] In a possible implementation of the first aspect, the size of the buffer is larger than a mother code length of the first bit sequence. A larger buffer size provides greater flexibility in how code bits are stored and retrieved during the rate matching process, especially for a rate matching scheme involving repetition or redundancy. In this way, more code bits can be organized within the buffer without causing overflow or data loss.

[0025] In a possible implementation of the first aspect, the size of the buffer is obtained according to a second ratio by which the size of the buffer is longer than a mother code length of the first bit sequence.

[0026] In a possible implementation of the first aspect, the size of the buffer is obtained according to a multiple of a second length longer than a mother code length of the first bit sequence, where the multiple is an integer larger than 1.

[0027] In a possible implementation of the first aspect, the second length is obtained according to the mother code length and a second ratio by which the second length is longer than the mother code length.

[0028] In a possible implementation of the first aspect, the second ratio is based on the rate matching scheme. By determining the second ratio based on the rate matching scheme, the buffer size can be adapted to match the data rate requirement, and efficiency of the buffer resource allocation can be improved.

[0029] In a possible implementation of the first aspect, the second ratio is based on a repetition-related ratio.

[0030] In a possible implementation of the first aspect, the size of the buffer is obtained according to a third ratio  by which the size of the buffer is differentiated from a mother code length of the first bit sequence, where the third ratio is based on two or more of: a shortening-related ratio, a puncturing-related ratio, or a repetition-related ratio. In this way, the buffer size can be enabled to be tailored to the specific needs of the data being processed. By aligning the buffer size with the specific requirements of the rate matching scheme, the buffer size can be dynamically changed to adapt to different code lengths and rates, memory utilization can be improved, and, and the overall throughput of the data transmission process can be increased.

[0031] In a possible implementation of the first aspect, the shortening-related ratio is obtained based on a ratio of a number of shortened bits to the mother code length, where the number of shortened bits is an integer greater than 1, or based on a ratio of a number of bits of a subset of shortened bits to the mother code length, where the number of bits of the subset of shortened bits is an integer greater than 1. By considering the number of shortened bits or the size of a subset of shortened bits relative to the mother code length, the system can efficiently manage resources within the buffer. This approach allows for a more precise allocation of buffer space based on the specific requirements of the shortened data bits, improving resource utilization and reducing waste.

[0032] In a possible implementation of the first aspect, the puncturing-related ratio is obtained based on a ratio of a number of punctured bits to the mother code length, where the number of punctured bits is an integer greater than 1, or based on a ratio of a number of bits of a subset of punctured bits to the mother code length, where the number of bits of the subset of punctured bits is an integer greater than 1. By using a puncturing-related ratio based on the number of punctured bits or a subset of punctured bits, the system can adjust the buffer size to accommodate the punctured data, leading to improved resource utilization and overall throughput.

[0033] In a possible implementation of the first aspect, the repetition-related ratio is obtained based on a ratio of a number of repeated bits to the mother code length, where the number of repeated bits is an integer greater than 1, or based on a ratio of a number of bits of a subset of repeated bits to the mother code length, where the number of bits of the subset of repeated bits is an integer greater than 1. By using a repetition-related ratio based on the number of repeated bits or a subset of repeated bits, the buffer size can be adjusted based on the specific requirements of the repeated data bits, which allows for repeatedly writing some or all bits that need to be repeated into the buffer, and then, when reading out from the buffer, there will be no need to distinguish between these repeated bits, which have been written into the buffer, and other code bits, thereby improving overall throughput of the system.

[0034] In a possible implementation of the first aspect, the size of the buffer equals to a difference between the mother code length and a shortened length.

[0035] In a possible implementation of the first aspect, the size of the buffer equals to a multiple of a difference between the mother code length and a shortened length.

[0036] In a possible implementation of the first aspect, the size of the buffer equals to a sum of a first difference and a repetition length, where the first difference is a difference between the mother code length and a shortened length.

[0037] In a possible implementation of the first aspect, the size of the buffer equals to a multiple of a sum of a first difference and a repetition length, where the first difference is a difference between the mother code length and a shortened length.

[0038] In a possible implementation of the first aspect, the obtaining, according to the length information of the first bit sequence, the size of the buffer includes:

[0039] determining, according to a rate matching output length, the size of the buffer.

[0040] By adjusting the size of the buffer according to the rate matching output length, the size of the buffer can be adaptively changed with the rate matching output length, efficiency of resource utilization can be improved, and overall performance can be enhanced.

[0041] In a possible implementation of the first aspect, the size of the buffer is equal to a rate matching output length.

[0042] In a possible implementation of the first aspect, the size of the buffer is obtained according to a multiple of a rate matching output length, where the multiple is an integer larger than 1.

[0043] In a possible implementation of the first aspect, the size of the buffer is obtained according to a rate matching output length and a third length which is related to the rate matching scheme. In this way, the resource utilization can be more efficient, which reduces resource waste and enhances overall system performance.

[0044] In a possible implementation of the first aspect, the size of the buffer is obtained according to a multiple of a fourth length, where the fourth length is obtained according to the rate matching length and a third length which is related to the rate matching scheme.

[0045] In a possible implementation of the first aspect, the third length is based on at least one of: a punctured length, a shortened length, or a repetition length.

[0046] In a possible implementation of the first aspect, the fourth length equals to a sum of the rate matching output length and a punctured length.

[0047] In a possible implementation of the first aspect, the fourth length equals to a multiple of a sum of the rate  matching output length and a punctured length.

[0048] In a possible implementation of the first aspect, the fourth length equals to a sum of the rate matching output length, a punctured length and a repetition length.

[0049] In a possible implementation of the first aspect, the fourth length equals to a multiple of a sum of the rate matching output length, a punctured length and a repetition length.

[0050] In a possible implementation of the first aspect, the multiple is a power of 2. In this way, the system can ensure better compatibility with underlying hardware components, improving system integration and performance.

[0051] In a possible implementation of the first aspect, the rate matching output length is based on a length of a specific redundancy version. In this way, the size of the buffer can be dynamically changed to adapt to different redundancy versions, memory resource utilization can be further improved. The system can write code bits of redundancy versions into the buffer based on the specific communication requirements of redundancy versions, which can facilitate transmission of redundancy versions, improve overall performance of the system.

[0052] In a possible implementation of the first aspect, the writing the first bit sequence into the buffer according to at least one writing method includes:

[0053] determining, for each code bit of the first bit sequence and according to one or more of the at least one writing method, whether to skip the respective code bit or repeat the respective code bit to obtain a second bit sequence;

[0054] writing the second bit sequence into the buffer.

[0055] By selectively choosing to skip or repeat code bits, the system can adjust the second bit sequence to meet specific requirements flexibly, which can improve storage efficiency and reading efficiency of the code bits and enhance system performance.

[0056] In a possible implementation of the first aspect, the rate matching scheme includes shortening, and the at least one writing method includes: skipping each shortened code bit. In this way, the shorten bit positions may be not written into the buffer, and when reading out from the buffer, there is no need to distinguish between shortened bits (which should not be transmitted) and other code bits. By excluding unnecessary known bits from the buffer operations, the system can maintain data integrity while ensuring efficient data storage and transmission.

[0057] In a possible implementation of the first aspect, the rate matching scheme includes shortening, and the at least one writing method includes: skipping one or more of shorten code bits, where the one or more of shorten code bits belong to a preset transmission or a preset redundancy version.

[0058] In a possible implementation of the first aspect, the rate matching scheme includes puncturing, and the at least one writing method includes: skipping each punctured code bit. In this way, the punctured bit positions may be not written into the buffer, and when reading out from the buffer, there is no need to distinguish between punctured bits (which should not be transmitted) and other code bits, which maintains data integrity while ensuring efficient data storage and transmission.

[0059] In a possible implementation of the first aspect, the rate matching scheme includes puncturing, and the at least one writing method includes: skipping one or more of punctured code bits, where the one or more of punctured code bits belong to a preset transmission or a preset redundancy version.

[0060] In a possible implementation of the first aspect, when low-density parity check (LDPC) coding is used, the at least one writing method includes skipping one or more of punctured code bits, where the one or more of punctured code bits include one or more systematic bits, or one or more parity bits. In this way, one or more systematic bits or parity bits may be skipped to accommodate different scenarios or meet different communication requirements, system performance can be improved.

[0061] In a possible implementation of the first aspect, the one or more parity bits include one or more parity bits for high-rate LDPC code with a highest column degree in a base graph. By selectively skipping one or more parity bits for high-rate LDPC code with a highest column degree in a base graph, the system can adjust the second bit sequence to adapt to different code rates while ensuring acceptable or high error correction capabilities of the LDPC code to meet the specific requirements of the communication system.

[0062] In a possible implementation of the first aspect, the one or more parity bits include one or more core parity bits for LDPC code.

[0063] In a possible implementation of the first aspect, the one or more preset parity bits include one or more core parity bits corresponding to one or more columns with a highest degree in a base graph. In this way, resource utilization can be more efficient, and system performance can be improved.

[0064] In a possible implementation of the first aspect, when polar coding is used, the at least one writing method includes skipping one or more of punctured code bits, where the one or more of punctured code bits include first one or more code bits in each length-power-of-2 block in the first bit sequence; where the number of the one or more code bits is determined according to a rate matching output sequence length. By skipping these specific punctured code bits, the system can achieve a desired rate matching output sequence length while maintaining the overall error correction capabilities of the polar code. This approach allows for efficient utilization of resources and enhanced  overall throughput and system performance in polar coding schemes.

[0065] In a possible implementation of the first aspect, the rate matching scheme includes repetition, and the at least one writing method includes: repeating one or more code bits. By repeating the one or more code bits when writing the bit sequence into the buffer, efficiency in reading out code bits from the buffer can be improved.

[0066] In a possible implementation of the first aspect, when LDPC coding is used, the one or more repeated code bits include one or more of parity bits.

[0067] In a possible implementation of the first aspect, the one or more parity bits include one or more extended parity bits corresponding to one or more degree-1 columns in a base graph.

[0068] In a possible implementation of the first aspect, the one or more parity bits include one or more core parity bits for LDPC code.

[0069] In a possible implementation of the first aspect, the one or more core parity bits include one or more core bits corresponding to one or more columns with a lowest degree in a base graph. By incorporating repeated code bits that may include parity bits, and specifically core parity bits for LDPC code, the system can ensure that error correction capabilities are maintained and the rate matching process can be improved to be more efficient.

[0070] In a possible implementation of the first aspect, when polar coding is used, the one or more repeated code bits include first or last one or more code bits in each length-power-of-2 block in the first bit sequence. In this way, the reliability of these specific code bits can be increased, and since each block may have repeated bits, the reliability of all the blocks can be enhanced.

[0071] In a possible implementation of the first aspect, a number of code bits of the one or more repeated code bits is pre-defined. By pre-defining the number of repeated code bits, the level of redundancy in the bit sequence can be controlled, which can make the system keep a balance between the amount of redundancy added and the overall efficiency of the encoding process.

[0072] In a possible implementation of the first aspect, the one or more repeated code bits are bit-by-bit repeated or block-by-block repeated.

[0073] In a possible implementation of the first aspect, the encoding method includes a polar coding method or a LDPC coding method.

[0074] In a second aspect, an embodiment of the present disclosure provides an apparatus including various modules configured to execute the method according to the first aspect or any possible implementation of the first aspect.

[0075] In a third aspect, an embodiment of the present disclosure provides an apparatus including processing circuitry for executing the method according to the first aspect or any possible implementation of the first aspect.

[0076] In a fourth aspect, an embodiment of the present disclosure provides an encoder including the apparatus according to the second aspect, or the apparatus according to the third aspect.

[0077] In a fifth aspect, an embodiment of the present disclosure provides an electronic device including an encoder for executing the method according to the first aspect or any possible implementation of the first aspect.

[0078] In a sixth aspect, an embodiment of the present disclosure provides a computer-readable medium storing computer execution instructions which, when executed by a processor, cause the processor to execute the method according to the first aspect or any possible implementation of the first aspect.

[0079] In a seventh aspect, an embodiment of the present disclosure provides a computer program product including computer execution instructions which, when executed by a processor, cause the processor to execute the method according to the first aspect or any possible implementation of the first aspect.

[0080] The present disclosure provides a method and related products, where a first bit sequence may be obtained, a size of a buffer may be obtained according to length information of the first bit sequence, and the first bit sequence may be written into the buffer according to at least one writing method, where the at least one writing method may be determined according to a rate matching scheme and the size of the buffer. In this way, dynamic adaptation of the buffer size is achieved to accommodate bit sequences of various lengths, efficient use of the buffer can be realized by tailoring its size to the specific requirements of the input data. In addition, the writing process can be adapted based on the buffer size and the rate matching scheme, which can improve reliability and efficiency of rate matching and data communication, and allow for stable performance under a wide range of code lengths and rates.BRIEF DESCRIPTION OF DRAWINGS

[0081] Reference will now be made, by way of example, to the accompanying drawings which show example embodiments of the present disclosure.

[0082] FIG. 1 is a schematic illustration of a communication system according to one or more embodiments of the present disclosure.

[0083] FIG. 2 is another schematic illustration of a communication system according to one or more embodiments of the present disclosure.

[0084] FIG. 3 is a schematic illustration of a basic component structure of a communication system according to one or more embodiments of the present disclosure.

[0085] FIG. 4 illustrates a block diagram of a device in a communication system according to one or more embodiments of the present disclosure.

[0086] FIG. 5 is a schematic diagram of an example of a polar code according to one or more embodiments of the present disclosure.

[0087] FIG. 6 is a schematic diagram showing a sub-block interleaver pattern table reproduced from a 3GPP standard specification, with directions for puncturing and shortening marked.

[0088] FIG. 7 is a schematic diagram of an example of polar code rate matching according to one or more embodiments of the present disclosure.

[0089] FIG. 8 is a schematic diagram of an example of polar HARQ according one or more example embodiments of the present disclosure.

[0090] FIG. 9 is a schematic diagram of an example of an encoding process according one or more example embodiments of the present disclosure.

[0091] FIG. 10 is a schematic diagram of an example of an encoding process according one or more example embodiments of the present disclosure.

[0092] FIG. 11 is a schematic diagram of an example of a polar transform matrix according one or more example embodiments of the present disclosure.

[0093] FIG. 12 is a schematic diagram illustrating a workflow of determining a circular buffer size and writing into it according one or more example embodiments of the present disclosure.

[0094] FIG. 13 shows a schematic flowchart of a method according to one or more example embodiments of the present disclosure.

[0095] FIG. 14 is a schematic diagram illustrating a method for changing a size of a circular buffer for polar codes according to one or more example embodiments of the present disclosure.

[0096] FIG. 15 is a schematic diagram illustrating another method for changing a size of a circular buffer for polar codes according to one or more example embodiments of the present disclosure.

[0097] FIG. 16 shows a schematic structural diagram of an apparatus according to one or more example embodiments of the present disclosure.DESCRIPTION OF EMBODIMENTS

[0098] In the following description, reference is made to the accompanying figures, which form part of the present disclosure, and which show, by way of illustration, specific aspects of embodiments of the present disclosure or specific aspects in which embodiments of the present disclosure may be used. It is understood that embodiments of the present disclosure may be used in other aspects and include structural or logical changes not depicted in the figures. The following detailed description, therefore, is not to be taken in a limiting sense, and the scope of the present disclosure is defined by the appended claims.

[0099] In wireless communications, channel quality is constantly changing due to the fading effects at both fast and slow scale. Accordingly, channel coding has always been designed to adapt to the channel states. Modulation coding scheme (MCS) adaptation is a powerful method to combat varying channel states, in which the modulation order and code length and coding rate can be changed in real time. Therefore, it requires that a channel coding scheme can flexibly change the code length and code rate in a fine-grained way, and at the same time achieve good error correction performance in all possible configurations. This fine-grained flexibility of channel codes is one of the most challenging problem for engineers in this domain.

[0100] At the same time, the complexity of both encoding and decoding algorithms need to be sufficiently low. In hardware, complexity can be evaluated through measuring chip area and energy efficiency. They are related to algorithmic complexity, but are more closely related to hardware cost and battery life. Therefore, there exists a desire to reduce implementation complexity when designing coding schemes.

[0101] Future communication systems, such as so-called sixth-generation (6G) systems, may aim to support several challenging scenarios, including for example immersive communication, massive communication, and hyper reliable and low-latency communication. The KPIs that are related to channel coding include coding gain, reliability, throughput, latency and their tradeoffs. For example, the throughput target of 6G may reach above 1 Tbps, and the energy efficiency target may decrease to 1 pJ / bit. Meanwhile, a coding scheme supporting flexible rate matching and IR-HARQ schemes is also beneficial. Accordingly, it is desirable yet challenging to design a code ensemble to fulfill all these KPIs and capabilities.

[0102] Referring to FIG. 1, as an illustrative example without limitation, a simplified schematic illustration of a communication system is provided. The communication system 100 comprises a radio access network 120. The radio access network 120 may be a next generation (e.g. sixth generation (6G) or later) radio access network, or a  legacy (e.g. 5G, 4G, 3G or 2G) radio access network. One or more communication electronic devices (ED) 110a, 110b, 110c, 110d, 110e, 110f, 110g, 110h, 110i, 110j (generically referred to as 110) may be interconnected to one another or connected to one or more network nodes (170a, 170b, generically referred to as 170) in the radio access network 120. A core network 130 may be a part of the communication system and may be dependent or independent of the radio access technology used in the communication system 100. Also the communication system 100 comprises a public switched telephone network (PSTN) 140, the internet 150, and other networks 160.

[0103] FIG. 2 illustrates an example communication system 100. In general, the communication system 100 enables multiple wireless or wired elements to communicate data and other content. The purpose of the communication system 100 may be to provide content, such as voice, data, video, and / or text, via broadcast, multicast, groupcast, unicast, etc. The communication system 100 may operate by sharing resources, such as carrier spectrum bandwidth, between its constituent elements. The communication system 100 may include a terrestrial communication system and / or a non-terrestrial communication system. The communication system 100 may provide a wide range of communication services and applications (such as earth monitoring, remote sensing, passive sensing and positioning, navigation and tracking, autonomous delivery and mobility, etc. ) . The communication system 100 may provide a high degree of availability and robustness through a joint operation of a terrestrial communication system and a non-terrestrial communication system. For example, integrating a non-terrestrial communication system (or components thereof) into a terrestrial communication system can result in what may be considered a heterogeneous network comprising multiple layers. Compared to conventional communication networks, the heterogeneous network may achieve better overall performance through efficient multi-link joint operation, more flexible functionality sharing, and faster physical layer link switching between terrestrial networks and non-terrestrial networks.

[0104] The terrestrial communication system and the non-terrestrial communication system could be considered sub-systems of the communication system. In the example shown in FIG. 2, the communication system 100 includes electronic devices (ED) 110a, 110b, 110c, 110d (generically referred to as ED 110) , radio access networks (RANs) 120a, 120b, a non-terrestrial communication network 120c, a core network 130, a public switched telephone network (PSTN) 140, the Internet 150, and other networks 160. The RANs 120a, 120b include respective base stations (BSs) 170a, 170b, which may be generically referred to as terrestrial transmit and receive points (T-TRPs) 170a, 170b. The non-terrestrial communication network 120c includes an access node 172, which may be generically referred to as a non-terrestrial transmit and receive point (NT-TRP) 172.

[0105] Any ED 110 may be alternatively or additionally configured to interface, access, or communicate with any T-TRP 170a, 170b and NT-TRP 172, the Internet 150, the core network 130, the PSTN 140, the other networks 160, or any combination of the preceding. In some examples, ED 110a may communicate an uplink and / or downlink transmission over a terrestrial air interface 190a with T-TRP 170a. In some examples, the EDs 110a, 110b, 110c, and 110d may also communicate directly with one another via one or more sidelink air interfaces 190b. In some examples, ED 110d may communicate an uplink and / or downlink transmission over a non-terrestrial air interface 190c with NT-TRP 172.

[0106] The air interfaces 190a and 190b may use similar communication technology, such as any suitable radio access technology. For example, the communication system 100 may implement one or more channel access methods, such as code division multiple access (CDMA) , space division multiple access (SDMA) , time division multiple access (TDMA) , frequency division multiple access (FDMA) , orthogonal FDMA (OFDMA) , or single-carrier FDMA (SC-FDMA, also known as discrete Fourier transform spread OFDMA, DFT-s-OFDMA) in the air interfaces 190a and 190b. The air interfaces 190a and 190b may utilize other higher dimension signal spaces, which may involve a combination of orthogonal and / or non-orthogonal dimensions.

[0107] The non-terrestrial air interface 190c can enable communication between the ED 110d and one or multiple NT-TRPs 172 via a wireless link or simply a link. For some examples, the link is a dedicated connection for unicast transmission, a connection for broadcast transmission, or a connection between a group of EDs 110 and one or multiple NT-TRPs 172 for multicast transmission.

[0108] The RANs 120a and 120b are in communication with the core network 130 to provide the EDs 110a 110b, and 110c with various services such as voice, data, and other services. The RANs 120a and 120b and / or the core network 130 may be in direct or indirect communication with one or more other RANs (not shown) , which may or may not be directly served by core network 130, and may or may not employ the same radio access technology as RAN 120a, RAN 120b or both. The core network 130 may also serve as a gateway access between (i) the RANs 120a and 120b or EDs 110a 110b, and 110c or both, and (ii) other networks (such as the PSTN 140, the Internet 150, and the other networks 160) . In addition, some or all of the EDs 110a 110b, and 110c may include functionality for communicating with different wireless networks over different wireless links using different wireless technologies and / or protocols. Instead of wireless communication (or in addition thereto) , the EDs 110a 110b, and 110c may communicate via wired communication channels to a service provider or switch (not shown) , and to the Internet 150. PSTN 140 may include circuit switched telephone networks for providing plain old telephone service (POTS) .  Internet 150 may include a network of computers and subnets (intranets) or both, and incorporate protocols, such as Internet Protocol (IP) , Transmission Control Protocol (TCP) , User Datagram Protocol (UDP) . EDs 110a 110b, and 110c may be multimode devices capable of operation according to multiple radio access technologies, and incorporate multiple transceivers necessary to support such.

[0109] FIG. 3 illustrates another example of an ED 110 and a base station 170a, 170b and / or 170c. The ED 110 is used to connect persons, objects, machines, etc. The ED 110 may be widely used in various scenarios including, for example, cellular communications, device-to-device (D2D) , vehicle to everything (V2X) , peer-to-peer (P2P) , machine-to-machine (M2M) , machine-type communications (MTC) , internet of things (IoT) , virtual reality (VR) , augmented reality (AR) , mixed reality (MR) , metaverse, digital twin, industrial control, self-driving, remote medical, smart grid, smart furniture, smart office, smart wearable, smart transportation, smart city, drones, robots, remote sensing, passive sensing, positioning, navigation and tracking, autonomous delivery and mobility, etc.

[0110] Each ED 110 represents any suitable end user device for wireless operation and may include such devices (or may be referred to) as a user equipment / device (UE) , a wireless transmit / receive unit (WTRU) , a mobile station, a fixed or mobile subscriber unit, a cellular telephone, a station (STA) , a machine type communication (MTC) device, a personal digital assistant (PDA) , a smartphone, a laptop, a computer, a tablet, a wireless sensor, a consumer electronics device, a smart book, a vehicle, a car, a truck, a bus, a train, or an IoT device, wearable devices (such as a watch, a pair of glasses, head mounted equipment, etc. ) , an industrial device, or an apparatus in (e.g. communication module, modem, or chip) or comprising the forgoing devices, among other possibilities. Future generation EDs 110 may be referred to using other terms. The base station 170a and 170b is a T-TRP and will hereafter be referred to as T-TRP 170. Also shown in FIG. 3, a NT-TRP will hereafter be referred to as NT-TRP 172. Each ED 110 connected to T-TRP 170 and / or NT-TRP 172 can be dynamically or semi-statically turned-on (i.e., established, activated, or enabled) , turned-off (i.e., released, deactivated, or disabled) and / or configured in response to one of more of: connection availability and connection necessity.

[0111] The ED 110 includes a transmitter 201 and a receiver 203 coupled to one or more antennas 204. Only one antenna 204 is illustrated to avoid congestion in the drawing. One, some, or all of the antennas 204 may alternatively be panels. The transmitter 201 and the receiver 203 may be integrated, e.g. as a transceiver. The transceiver is configured to modulate data or other content for transmission by at least one antenna 204 or network interface controller (NIC) . The transceiver is also configured to demodulate data or other content received by the at least one antenna 204. Each transceiver includes any suitable structure for generating signals for wireless or wired  transmission and / or processing signals received wirelessly or by wire. Each antenna 204 includes any suitable structure for transmitting and / or receiving wireless or wired signals.

[0112] The ED 110 includes at least one memory 208. The memory 208 stores instructions and data used, generated, or collected by the ED 110. For example, the memory 208 could store software instructions or modules configured to implement some or all of the functionality and / or embodiments described herein and that are executed by one or more processing unit (s) (e.g., a processor 210) . Each memory 208 includes any suitable volatile and / or non-volatile storage and retrieval device (s) . Any suitable type of memory may be used, such as random access memory (RAM) , read only memory (ROM) , hard disk, optical disc, subscriber identity module (SIM) card, memory stick, secure digital (SD) memory card, on-processor cache, and the like.

[0113] The ED 110 may further include one or more input / output devices (not shown) or interfaces (such as a wired interface to the Internet 150 in FIG. 1) . The input / output devices or interfaces permit interaction with a user or other devices in the network. Each input / output device or interface includes any suitable structure for providing information to or receiving information from a user, and / or for network interface communications. Suitable structures include, for example, a speaker, microphone, keypad, keyboard, display, touch screen, etc.

[0114] The ED 110 includes the processor 210 for performing operations including those operations related to preparing a transmission for uplink transmission to the NT-TRP 172 and / or the T-TRP 170; those operations related to processing downlink transmissions received from the NT-TRP 172 and / or the T-TRP 170; and those operations related to processing sidelink transmission to and from another ED 110. Processing operations related to preparing a transmission for uplink transmission may include operations such as encoding, modulating, transmit beamforming, and generating symbols for transmission. Processing operations related to processing downlink transmissions may include operations such as receive beamforming, demodulating and decoding received symbols. Depending upon the embodiment, a downlink transmission may be received by the receiver 203, possibly using receive beamforming, and the processor 210 may extract signaling from the downlink transmission (e.g. by detecting and / or decoding the signaling) . An example of signaling may be a reference signal transmitted by the NT-TRP 172 and / or by the T-TRP 170. In some embodiments, the processor 210 implements the transmit beamforming and / or the receive beamforming based on the indication of beam direction, e.g. beam angle information (BAI) , received from the T-TRP 170. In some embodiments, the processor 210 may perform operations relating to network access (e.g. initial access) and / or downlink synchronization, such as operations relating to detecting a synchronization sequence, decoding and obtaining the system information, etc. In some embodiments, the processor 210 may perform channel estimation,  e.g. using a reference signal received from the NT-TRP 172 and / or from the T-TRP 170.

[0115] Although not illustrated, the processor 210 may form part of the transmitter 201 and / or part of the receiver 203. Although not illustrated, the memory 208 may form part of the processor 210.

[0116] The processor 210, the processing components of the transmitter 201, and the processing components of the receiver 203 may each be implemented by the same or different one or more processors that are configured to execute instructions stored in a memory (e.g. in the memory 208) . Alternatively, some or all of the processor 210, the processing components of the transmitter 201, and the processing components of the receiver 203 may each be implemented using dedicated circuitry, such as a programmed field-programmable gate array (FPGA) , an application-specific integrated circuit (ASIC) , or a hardware accelerator such as a graphics processing unit (GPU) or an artificial intelligence (AI) accelerator.

[0117] The T-TRP 170 may be known by other names in some implementations, such as a base station, a base transceiver station (BTS) , a radio base station, a network node, a network device, a device on the network side, a transmit / receive node, a Node B, an evolved NodeB (eNodeB or eNB) , a Home eNodeB, a next Generation NodeB (gNB) , a transmission point (TP) , a site controller, an access point (AP) , a wireless router, a relay station, a terrestrial node, a terrestrial network device, a terrestrial base station, a base band unit (BBU) , a remote radio unit (RRU) , an active antenna unit (AAU) , a remote radio head (RRH) , a central unit (CU) , a distributed unit (DU) , a positioning node, among other possibilities. The T-TRP 170 may be a macro BS, a pico BS, a relay node, a donor node, or the like, or combinations thereof. The T-TRP 170 may refer to the forgoing devices or refer to apparatus (e.g. a communication module, a modem, or a chip) in the forgoing devices.

[0118] In some embodiments, the parts of the T-TRP 170 may be distributed. For example, some of the modules of the T-TRP 170 may be located remote from the equipment that houses the antennas 256 for the T-TRP 170, and may be coupled to the equipment that houses the antennas 256 over a communication link (not shown) sometimes known as front haul, such as common public radio interface (CPRI) . Therefore, in some embodiments, the term T-TRP 170 may also refer to modules on the network side that perform processing operations, such as determining the location of the ED 110, resource allocation (scheduling) , message generation, and encoding / decoding, and that are not necessarily part of the equipment that houses the antennas 256 of the T-TRP 170. The modules may also be coupled to other T-TRPs. In some embodiments, the T-TRP 170 may actually be a plurality of T-TRPs that are operating together to serve the ED 110, e.g. through the use of coordinated multipoint transmissions.

[0119] The T-TRP 170 includes at least one transmitter 252 and at least one receiver 254 coupled to one or more  antennas 256. Only one antenna 256 is illustrated to avoid congestion in the drawing. One, some, or all of the antennas 256 may alternatively be panels. The transmitter 252 and the receiver 254 may be integrated as a transceiver. The T-TRP 170 further includes a processor 260 for performing operations including those related to: preparing a transmission for downlink transmission to the ED 110, processing an uplink transmission received from the ED 110, preparing a transmission for backhaul transmission to the NT-TRP 172, and processing a transmission received over backhaul from the NT-TRP 172. Processing operations related to preparing a transmission for downlink or backhaul transmission may include operations such as encoding, modulating, precoding (e.g. multiple input multiple output (MIMO) precoding) , transmit beamforming, and generating symbols for transmission. Processing operations related to processing received transmissions in the uplink or over backhaul may include operations such as receive beamforming, demodulating received symbols, and decoding received symbols. The processor 260 may also perform operations relating to network access (e.g. initial access) and / or downlink synchronization, such as generating the content of synchronization signal blocks (SSBs) , generating the system information, etc. In some embodiments, the processor 260 also generates an indication of beam direction, e.g. BAI, which may be scheduled for transmission by a scheduler 253. The processor 260 performs other network-side processing operations described herein, such as determining the location of the ED 110, determining where to deploy the NT-TRP 172, etc. In some embodiments, the processor 260 may generate signaling, e.g. to configure one or more parameters of the ED 110 and / or one or more parameters of the NT-TRP 172. Any signaling generated by the processor 260 is sent by the transmitter 252. Note that “signaling” , as used herein, may alternatively be called control signaling. Signaling may be transmitted in a physical layer control channel, e.g. a physical downlink control channel (PDCCH) , in which case the signaling may be known as dynamic signaling. Signaling transmitted in a downlink physical layer control channel may be known as Downlink Control Information (DCI) . Signaling transmitted in an uplink physical layer control channel may be known as Uplink Control Information (UCI) . Signaling transmitted in a sidelink physical layer control channel may be known as Sidelink Control Information (SCI) . Signaling may be included in a higher-layer (e.g., higher than physical layer) packet transmitted in a physical layer data channel, e.g. in a physical downlink shared channel (PDSCH) , in which case the signaling may be known as higher-layer signaling, static signaling, or semi-static signaling. Higher-layer signaling may also refer to Radio Resource Control (RRC) protocol signaling or Media Access Control -Control Element (MAC-CE) signaling.

[0120] The scheduler 253 may be coupled to the processor 260. The scheduler 253 may be included within or operated separately from the T-TRP 170. The scheduler 253 may schedule uplink, downlink, sidelink, and / or  backhaul transmissions, including issuing scheduling grants and / or configuring scheduling-free (e.g., “configured grant” ) resources. The T-TRP 170 further includes a memory 258 for storing information and data. The memory 258 stores instructions and data used, generated, or collected by the T-TRP 170. For example, the memory 258 could store software instructions or modules configured to implement some or all of the functionality and / or embodiments described herein and that are executed by the processor 260.

[0121] Although not illustrated, the processor 260 may form part of the transmitter 252 and / or part of the receiver 254. Also, although not illustrated, the processor 260 may implement the scheduler 253. Although not illustrated, the memory 258 may form part of the processor 260.

[0122] The processor 260, the scheduler 253, the processing components of the transmitter 252, and the processing components of the receiver 254 may each be implemented by the same or different one or more processors that are configured to execute instructions stored in a memory, e.g. in the memory 258. Alternatively, some or all of the processor 260, the scheduler 253, the processing components of the transmitter 252, and the processing components of the receiver 254 may be implemented using dedicated circuitry, such as a programmed FPGA, a hardware accelerator (e.g., a GPU or AI accelerator) , or an ASIC.

[0123] Although the NT-TRP 172 is illustrated as a drone only as an example, the NT-TRP 172 may be implemented in any suitable non-terrestrial form, such as satellites and high altitude platforms, including international mobile telecommunication base stations and unmanned aerial vehicles, for example. Also, the NT-TRP 172 may be known by other names in some implementations, such as a non-terrestrial node, a non-terrestrial network device, or a non-terrestrial base station. The NT-TRP 172 includes a transmitter 272 and a receiver 274 coupled to one or more antennas 280. Only one antenna 280 is illustrated to avoid congestion in the drawing. One, some, or all of the antennas may alternatively be panels. The transmitter 272 and the receiver 274 may be integrated as a transceiver. The NT-TRP 172 further includes a processor 276 for performing operations including those related to: preparing a transmission for downlink transmission to the ED 110, processing an uplink transmission received from the ED 110, preparing a transmission for backhaul transmission to T-TRP 170, and processing a transmission received over backhaul from the T-TRP 170. Processing operations related to preparing a transmission for downlink or backhaul transmission may include operations such as encoding, modulating, precoding (e.g. MIMO precoding) , transmit beamforming, and generating symbols for transmission. Processing operations related to processing received transmissions in the uplink or over backhaul may include operations such as receive beamforming, demodulating received symbols, and decoding received symbols. In some embodiments, the processor 276  implements the transmit beamforming and / or receive beamforming based on beam direction information (e.g. BAI) received from the T-TRP 170. In some embodiments, the processor 276 may generate signaling, e.g. to configure one or more parameters of the ED 110. In some embodiments, the NT-TRP 172 implements physical layer processing, but does not implement higher layer functions such as functions at the medium access control (MAC) or radio link control (RLC) layer. As this is only an example, more generally, the NT-TRP 172 may implement higher layer functions in addition to physical layer processing.

[0124] The NT-TRP 172 further includes a memory 278 for storing information and data. Although not illustrated, the processor 276 may form part of the transmitter 272 and / or part of the receiver 274. Although not illustrated, the memory 278 may form part of the processor 276.

[0125] The processor 276, the processing components of the transmitter 272, and the processing components of the receiver 274 may each be implemented by the same or different one or more processors that are configured to execute instructions stored in a memory, e.g. in the memory 278. Alternatively, some or all of the processor 276, the processing components of the transmitter 272, and the processing components of the receiver 274 may be implemented using dedicated circuitry, such as a programmed FPGA, a hardware accelerator (e.g., a GPU or AI accelerator) , or an ASIC. In some embodiments, the NT-TRP 172 may actually be a plurality of NT-TRPs that are operating together to serve the ED 110, e.g. through coordinated multipoint transmissions.

[0126] The T-TRP 170, the NT-TRP 172, and / or the ED 110 may include other components, but these have been omitted for the sake of clarity.

[0127] One or more steps of the embodiment methods provided herein may be performed by corresponding units or modules, according to FIG. 4. FIG. 4 illustrates units or modules in a device, such as in the ED 110, in the T-TRP 170, or in the NT-TRP 172. For example, a signal may be transmitted or output by a transmitting unit or by a transmitting module. A signal may be received or input by a receiving unit or by a receiving module. A signal may be processed by a processing unit or a processing module. Other steps may be performed by an artificial intelligence (AI) or machine learning (ML) module. The respective units or modules may be implemented using hardware, one or more components or devices that execute software, or a combination thereof. For instance, one or more of the units or modules may be a circuit such as an integrated circuit. Examples of an integrated circuit includes a programmed FPGA, a GPU, or an ASIC. For instance, one or more of the units or modules may be logical such as a logical function performed by a circuit, by a portion of an integrated circuit, or by software instructions executed by a processor. It will be appreciated that where the modules are implemented using software for execution by a  processor for example, the modules may be retrieved by a processor, in whole or part as needed, individually or together for processing, in single or multiple instances, and that the modules themselves may include instructions for further deployment and instantiation.

[0128] While not shown, the transmitting module and the receiving module may be part of, or combined into, a transceiver module. A transceiver module may also be known as an interface module, or simply an interface, for inputting and outputting operations.

[0129] Additional details regarding the EDs 110, the T-TRP 170, and the NT-TRP 172 are known to those of skill in the art. As such, these details are omitted here.

[0130] The channel coding module in communications systems encode K source bits into N code bits to provide error correction capability against adversary channel conditions such as noise and interference. The code rate is R=K / N. In practice, the code rate R is selected according to channel quality.

[0131] Polar codes are capacity-achieving codes and thus a great breakthrough in coding theory. As code length approaches infinity, the synthesized channels (also known as subchannels, which are created by or associated with the polar code) become either noiseless or pure noise. The noiseless subchannels are utilized to transport information, and their proportion is proven to achieve the channel capacity defined by Shannon. The above-mentioned channel polarization phenomenon occurs under successive cancellation (SC) or SC-based decoding, which has a relatively low complexity.

[0132] Rate matching is performed after channel encoding, by either puncturing / shortening or repeating some code bits. The purpose of this operation is to obtain a code bit sequence of desired length for transmission over limited channel resources.

[0133] Channel interleaving is applied after channel encoding and rate matching by permuting the code bits. The purpose is to provide stable or superior performance under high-order modulation or in a fading channel.

[0134] Hybrid automatic repeat request (HARQ) is a mechanism to provide reliable wireless transmission. It combines forward error correction (FEC) and automatic repeat request (ARQ) . In HARQ, the initial transmission is a FEC code word with means (such as CRC bits) to support error detection at the receiver. If a decoding error is detected, the receiver will send back a negative acknowledgment (NACK) signaling to inform the transmitter of the error, and request a retransmission. The retransmitted bits can be directly selected from the initially transmitted bits, or incrementally generated code bits which form a longer code word with the initially transmitted bits. The former approach is called chase-combining HARQ (CC-HARQ) and the latter approach is called incremental-redundancy  HARQ (IR-HARQ) . Typically, IR-HARQ outperforms CC-HARQ with the additional coding gain from incremental redundancy.

[0135] Polar codes belong to the class of linear block codes. For a polar code of length N, its generator matrix is GN, and its encoding process is where is the binary information vector,  is the binary code vector. The N×N binary matrix where is the polarization kernel matrix, n=log2 N, and is Kronecker product.

[0136] Typically, there are K information bits to be encoded into N code bits. Accordingly, the inequality K<N is given to obtain a code rate R=K / N<1. That implies only part of is used to carry information bits, and the rest are typically called frozen bits. Denote by I the information bit set (or information set) , and F the frozen bit set (or frozen set) , respectively. Sometimes, there is an additional PC bit set, denoted by P. The frozen bits are known (usually all zeros, but may also be other known values or sequences) before decoding, so they do not carry any payload information. The PC bits are parity-check bits generated from a subset of information bits. Therefore, the PC bits are known once the associated information bits are decoded. The decoding of polar codes attempts to recover all information bits.

[0137] The transmitted code length M may not always be the power of 2, i.e., M<N. In practice, puncturing and shortening are used to reduce transmitted code bits from N to M. For convenience, the present disclosure hereinafter refers to N as the mother code length, and M as the code length. In particular, punctured bits are non-transmitted bits unknown to the decoder, but shortened bits are non-transmitted bits known to the decoder (usually all zeros) .

[0138] An example of a polar code with N=8, K=4 is shown in a trellis graph as shown in FIG. 5. Each “butterfly” in the graph represents a polarization, i.e.,  In this example, the information set is I={u4,u6, u7, u8} , and the frozen set is F= {u1, u2, u3, u5} .

[0139] Successive cancellation (SC) is the basic decoding algorithm for polar codes, where all the frozen bits and information bits are decoded sequentially, i.e., bit by bit. The preceding bits are typically always decoded first.

[0140] Successive cancellation list (SCL) is an enhanced decoding algorithm for polar codes, where multiple (e.g., a number L) SC decoding instances are executed. Each instance is called a “decoding path” . When decoding each binary bit, both “0” and “1” branches are extended to each path, creating 2L paths. Then, all 2L paths are compared, where the most likely L paths are kept, and the least likely L paths are discarded (or pruned) . These path extension and pruning operations are performed during decoding of every information bit, until all information bits  are decoded. At last, the most likely path is selected as the decoding output.

[0141] CRC-aided successive cancellation list (CA-SCL) works almost the same as SCL, except that in the last step, the most likely path that passes CRC check is selected as the decoding output.

[0142] Parity-check successive cancellation list (PC-SCL) works almost the same as SCL, except that when decoding parity-check (PC) bits, the parity check value of associated preceding bits is used as the bit decision result. PC bits may be considered a type of bit in addition to frozen bits and information bits.

[0143] Low Density Parity Check (LDPC) code is a channel coding scheme capable of achieving performance that approaches the Shannon limit, and furthermore features good overall performance and low complexity.

[0144] The LDPC code is encoded through a parity-check matrix. One class of LDPC code has a particular structure known as quasi-cyclic (QC) . In a QC-LDPC code, a shifting value of each block is designed to avoid a bad structure such as a short circle, and improve a code distance. Decoding algorithms for LDPC codes include Min-Sum (MS) and Belief Propagation (BP) . In terms of decoding performance, the BP decoding algorithm is better, but it has a large amount of information storage and a complex computation overhead, which is not convenient to hardware implementation. Therefore, Offset-MS and Normalized-MS decoding algorithms are used in realistic communication systems. An example LDPC code implementation extends the “1” in the basic graph (BG) by a square matrix, which is a cyclic shifted version of an identity matrix. The BG of QC-LDPC code can be defined by BG=(X, Y, F) , where X corresponds to a variable, Y corresponds to a check equation, and F is its edge connections. The Tanner graph is obtained after QC lifting with an expansion factor Zc. That is, a bipartite graph G= (V, C, E) , where V is a variable node, C is a check node, E is a connected edge, and a corresponding parity matrix column quantity N=|V|=Zc |X|. The quantity of rows of the check matrix M=|C|=Zc |Y|, and a quantity of non-zero elements of the check matrix is |E|=Z|F|.

[0145] In an example, LDPC payloads include information block lengths ranging from 1 to 8448. The LDPC code implementation includes two parity-check matrices: BG1 and BG2. The same base graph, lifted by different lifting sizes, can adapt to a wide set of different code rates and lengths. This flexible implementation can be achieved, for example, by storing the Lifting Size and Shifting Value lists in the look-up tables, and then performing rate matching and IR-HARQ based on the tables.

[0146] In an example rate matching scheme for LDPC codes, a codeword before rate matching (referred as a mother codeword) includes three disjoint portions or parts, i.e., systematic bits, core parity check bits and extended parity check bits. Four different redundancy versions (RVs) including RV0, RV1, RV2 and RV3 are generated from  the mother codeword after rate matching. In an initial transmission, RV0 is normally selected; in RV0, most of the systematic bits are included in the set of coded bits. Depending on the effective code rate, part of the core parity bits or all of the core parity check bits and extended parity bits are included in RV0. As a result, RV0 has the highest self-decodable ability among all RVs (i.e., RV0 can be self-decodable at highest code rate) . In a retransmission, the transmitter may select RV1, RV2 or RV3. In this particular example, only RV3 is self-decodable, while RV1 and RV2 are not self-decodable at high code rate. At some code rates, RV1 and RV2 may only include parity check bits, resulting in unsuccessful decoding at the receiver.

[0147] Rate-compatible polar coding is a desirable technology for wireless applications. In one example of polar code rate matching, a combination of puncturing, shortening and repetition is used together with a fixed reliability sequence to balance performance and complexity. In particular, subblock-wise interlacing and interleaving is used for both puncturing and shortening. The puncturing and shortening patterns are symmetric.

[0148] With mother code length N, and code length M, the specific rate matching scheme used is

[0149] Repetition, when M>N;

[0150] Puncturing, when K / M≤7 / 16;

[0151] Shortening, when K / M>7 / 16;

[0152] A subblock-wise interleaving is performed before puncturing and shortening. The interleaver partitions the length-N mother code into 32 subblocks of size N / 32 and interlaces them. An example interleaver scheme is shown in FIG. 6. FIG. 6 shows a sub-block interleaver pattern table reproduced from a 3GPP standard specification.

[0153] Since puncturing is performed from the 1st code bit, and shortening is performed from the last code bit, the rate matching module is efficiently implemented through a cyclic buffer. All mother code bits are placed in the cyclic buffer, and puncturing is done by selecting the bits in clockwise order, and shortening is done by selecting bits in counter-clockwise order. The cyclic buffer is illustrated in FIG. 7.

[0154] Another polar code rate matching example involves an incremental freezing HARQ method, where transmissions of multiple short code words are supported. As more short codes are transmitted, the overall code length increases, and the overall code rate decreases.

[0155] In the first transmission, an (M1, K) polar code is constructed, encoded and transmitted. The code rate is R1=K / M1. Usually, the code rate is determined such that R1<C1, where C1 is the channel capacity of the first transmission. But in the case of faded channel or inaccurate channel estimation, there may be inequality R1>C1, and decoding will fail and a second transmission is required.

[0156] In the second transmission, K2 least reliable information bits are selected from the K information bits in the first transmission. In practice, K2 is chosen according to the estimated channel capacity of the second transmission. An (M2, K2) polar code is constructed accordingly and encoded and transmitted. However, if R2>C2, and decoding will fail again and a third transmission is required.

[0157] The third and fourth transmissions are constructed similarly, and so on.

[0158] At the receiver side, the decoder should always decode the last received code word, because it has the lowest code rate and thus the best chance of successful decoding. After the last transmission is correctly decoded, the corresponding information bits in all previous transmissions become known, and can be decoded as frozen bits with known values. This process is repeated as more code words are decoded, until all K bits in the first transmission is decoded. The term “incremental freezing” refers to the operations to additionally freeze some information bits in the previous transmissions once a later transmitted code word is decoded.

[0159] An example is illustrated in FIG. 8, where M1=M2=M3=M4=16, and K1=12, K2=6, K3=4, K4=3.

[0160] Parity-check (PC) polar codes may be used to improve minimum distance of polar codes. PC polar codes may also be used to support IR-HARQ. In the latter case, the PC bits are used to couple multiple retransmissions into a longer polar code with extra coding gain.

[0161] The PC functions used for IR-HARQ may be considered a special case, where some information bits are copied from the initial transmitted code block to a retransmitted code block. This one-to-one parity checking between the two shorter code blocks effectively couples the two code blocks into a longer code block.

[0162] For example, the initial transmission is a (M1=8, K=5) polar code, where {u0, u1, u2, u3, u4} is the information set, and {u5, u6, u7} is the frozen set. Its encoding process is illustrated in FIG. 9.

[0163] In the first retransmission, four additional code bits are transmitted. These four bits are coupled with the initially transmitted 8 bits to form a (M2=12, K=5) polar code. The coupling is achieved by copying the value of u4 to u8 during encoding, thus generating a PC function u4 + u8 = 0 (or equivalently u8 = u4) . As said, the largest index in this PC function corresponds to the PC bit (here u8) . During decoding, u4 decoded as an information bit, while u8 is decoded as a PC bit using u8 = u4. With {u0, u1, u2, u3, u8} as the information set, {u4} as the PC set, and {u5, u6, u7, u9, u10, u11} as the frozen set, the encoding process is illustrated in FIG. 10.

[0164] In the second retransmission, the remaining four bits c12, c13, c14, c15 are transmitted to form a (M3=16, K=5) polar code. But this time no new PC bits are generated.

[0165] From the polar transform matrix point of view, the three transmissions with effective code lengths M1=8,  M2=12, M3=16, are illustrated in FIG. 11.

[0166] Rate-compatible LDPC coding is also another desirable technology for wireless applications. LDPC rate matching may involve a combination of puncturing, shortening, and repetition used together with quasi-cyclic lifting based on a base graph (BG) and a set of shifting values. In particular examples, the lifting size Zc is grouped into eight sets according to where aj∈ {2, 3, 5, 7, 9, 11, 13, 15} and max (kj) ∈ {7, 7, 6, 5, 5, 5, 4, 4} . The lifting sizes derived from the same aj belong to the same set, and share the same shifting value. The shifting values for all the non-zero positions in the BG and for all groups of lifting sizes are stored in a single table. During the construction of a parity-check matrix, the lifting size Zc, is determined first, then the set index j of the lifting size is obtained, and finally the shifting value is obtained from the table.

[0167] In general, a practical rate matching scheme may need to specify the following parameters:

[0168] ● A conceptual circular buffer is defined, which can be a block of consecutive memory units. The code word, obtained after encoding, is written into the circular buffer according to certain method. Usually the writing order is specified by a rate matching interleaver.

[0169] ● To transmit code bits, the bits stored in the circular buffer are read out according to certain order. Typically, the read-out order is sequential by ascending bit index.

[0170] The circular buffer may be “circular” in concept rather than in actual physical implementation. A circular concept may be easier to understand and efficient to describe in design specifications and in standard specifications. In general however, a specification may not need to mention a circular buffer; it may equivalently define a vector or array of code bits, and during bit selection, the indices in the vector to be read out is obtained by modular arithmetic (e.g., a modulo-based operation) with the length of the vector, such that after reading out the last bit in the vector, the reader will go back to the beginning. Accordingly, an implementation of a circular buffer need not physically resemble a circular buffer, such as the example circular buffers illustrated in the embodiments of the present disclosure. References to, and illustrative representations of, circular buffers herein are non-limiting in terms of physical shape and may, therefore, encompass various implementations.

[0171] The main reasons for changing the circular buffer size are as follows: 1. since punctured bits and shortened bits would not be transmitted, the circular buffer can be reduced; 2. since some repetition bits may be sent repeatedly every turn, the circular buffer size can be increased.

[0172] Some embodiments of the present disclosure include methods to set up a circular buffer for rate matching, and methods to write code bits into it. Some embodiments of the present disclosure may include the following  objectives:

[0173] ● To obtain a stable performance under a wide range of code lengths and rates;

[0174] ● To support multiple transmissions and retransmissions, e.g., with multiple redundancy versions.

[0175] zh

[0176] The proposed methods may include one or more of the following features: :

[0177] ● Change the size of circular buffer to be different from the mother code length;

[0178] ○ The circular buffer size can be smaller than the mother code length;

[0179] ○ The circular buffer size can be larger than the mother code length;

[0180] ● Change the way that code bits are written into the circular buffer;

[0181] ○ Skip certain bits when writing into the circular buffer;

[0182] ○ Repeatedly write certain bits when writing into the circular buffer.

[0183] Some embodiments of the present disclosure include one or more of the following features, which can be separately adopted, or work together as a complete solution.

[0184] Some embodiments of the present disclosure include methods to set up a circular buffer for rate matching, and methods to write code bits into it. Some embodiments include two aspects or parts. The first part relates to determining the circular buffer length. The second part relates to methods to perform bit skip / repeating.

[0185] FIG. 12 is schematic diagram illustrating a workflow of determining a circular buffer size and writing into it according to one or more example embodiments of the present disclosure. As shown in FIG. 12, a bit sequence may be encoded to obtain a (mother) codeword, and code bits may be written into the circular buffer, and then read out from the circular buffer for transmission. In addition, FIG, 12 shows step ① relating to determining the circular buffer length M, and step ② relating to methods to perform bit skipping / repeating.

[0186] Some embodiments of the present disclosure include methods to determine the size of circular buffer, denoted by M.

[0187] ● The circular buffer size M is determined with respect to the mother code length N.

[0188] ● The circular buffer size M can be a multiple of the mother code length N.

[0189] ● The circular buffer size M is determined with respect to the mother code length N, where it can be smaller than the mother code length N, i.e., M<N.

[0190] ● The circular buffer size M is determined with respect to the mother code length N, where it can be a fixed ratio η shorter than the mother code length N, i.e., M= (1-η) ×N.

[0191] ● According to the above, the circular buffer size M can be a multiple of the length that is shorter than the mother code length N.

[0192] ● The circular buffer size M is determined with respect to the mother code length N, where it can be larger than the mother code length N, i.e., M>N.

[0193] ● The circular buffer size M is determined with respect to the mother code length N, where it can be a fixed ratio η longer than the mother code length N, i.e., M= (1+ηT) ×N.

[0194] ● According to the above, the circular buffer size M can be a multiple of the length that is longer than the mother code length N.

[0195] ● The circular buffer size M is determined with respect to the mother code length N, together with multiple parameters:

[0196] ● According to the above, the circular buffer size M can be a multiple of the length that is derived from the mother code length N.

[0197] ● In the above methods, the parameters can be further adjusted by modifying the ratio η.

[0198] ● The circular buffer size M is determined with respect to the rate matching output sequence length, denoted by E.

[0199] ● The circular buffer size M is larger than the rate matching output sequence length, denoted by E.

[0200] ● In the above methods, the rate matching output sequence length E can be the length of a specific redundancy version.

[0201] FIG. 13 shows a schematic flowchart of a method according to one or more example embodiments of the present disclosure. The method may be implemented in a rate matching process, by an apparatus, such as a rate matching apparatus or other devices, such as a chip which has similar function. Optionally, the apparatus may be integrated into an encoder for encoding code bits to be transmitted by a transmitting device, such as a network device, a user equipment, an electronic device, which is not limited herein. As shown in FIG. 13, the method can include the following steps.

[0202] S1301, obtain a first bit sequence.

[0203] In the embodiment, a transmitting device may obtain a first bit sequence. The first bit sequence may be obtained based on original data. In a possible implementation, the transmitting device may encode information bits by using an encoding method to obtain the first bit sequence. A communication system may encode source bits into code bits to provide error correction capability against adversary channel conditions such as noise and interference.  The encoding method may include an LDPC coding method, a polar coding method, a reed-solomon (RS) coding method, a turbo coding method, or a block coding (e.g., Bose-Chaudhuri-Hocquenghem (BCH) coding, Hamming coding) method, which is not limited here. By encoding the information bits using an appropriate method, the first bit sequence can be prepared to withstand the effects of channel impairments and noise, ensuring reliable and accurate transmission or storage of the data.

[0204] In a possible implementation, the encoding method may include a polar coding method or a LDPC coding method.

[0205] S1302, obtain a size of a buffer according to length information of the first bit sequence.

[0206] In the embodiment, the transmitting device may obtain a size of a buffer according to length information of the first bit sequence. In a possible implementation, the length information may include a mother code length or a rate matching output sequence length. In this way, the buffer size can be dynamically adjusted to adapt to different code lengths or rates.

[0207] In a possible implementation, the transmitting device may obtain the size of the buffer according to a mother code length of the first bit sequence. By adjusting the buffer size according to the mother code length of the input bit sequence, resource allocation can be improved and efficient utilization of memory space can be ensured.

[0208] Some embodiments of the present disclosure include methods to determine the size of circular buffer, denoted by M.

[0209] ● The circular buffer size M is determined with respect to the mother code length N.

[0210] ● The circular buffer size M can be a multiple of the mother code length N.

[0211] ● The circular buffer size M is determined with respect to the mother code length N, where it can be smaller than the mother code length N, i.e., M<N.

[0212] ● The circular buffer size M is determined with respect to the mother code length N, where it can be a fixed ratio η shorter than the mother code length N, i.e., M= (1-η) ×N.

[0213] ● According to the above, the circular buffer size M can be a multiple of the length that is shorter than the mother code length N.

[0214] ● The circular buffer size M is determined with respect to the mother code length N, where it can be larger than the mother code length N, i.e., M>N.

[0215] ● The circular buffer size M is determined with respect to the mother code length N, where it can be a fixed ratio η longer than the mother code length N, i.e., M= (1+ηT) ×N.

[0216] ● According to the above, the circular buffer size M can be a multiple of the length that is longer than the mother code length N.

[0217] ● The circular buffer size M is determined with respect to the mother code length N, together with multiple parameters:

[0218] ● According to the above, the circular buffer size M can be a multiple of the length that is derived from the mother code length N.

[0219] ● In the above methods, the parameters can be further adjusted by modifying the ratio η.

[0220] ● The circular buffer size M is determined with respect to the rate matching output sequence length, denoted by E.

[0221] ● The circular buffer size M is larger than the rate matching output sequence length, denoted by E.

[0222] ● In the above methods, the rate matching output sequence length E can be the length of a specific redundancy version.

[0223] In a possible implementation, the size of the buffer may be a multiple of a mother code length of the first bit sequence, where the multiple is greater than 1. Using a buffer with a size which is a multiple of the mother code length makes it possible to write several bit sequences or a long bit sequence into the buffer, which may allow for higher coding gain and flexible implementation of bit selection for transmission and retransmissions. In a possible implementation, when repetition is applied on the bit sequence, the buffer size can be increased. By using a multiple of the mother code length as the buffer size, the system can effectively handle the increased amount of data resulting from repetition or redundancy without encountering buffer overflow issues. This approach ensures that the buffer has enough capacity to accommodate several bit sequences, a long bit sequence, or the additional redundant bits or repeated sequences that are introduced during the encoding process. The multiple can be an integer greater than 1. An integer multiple may ensure that the buffer size is a whole number multiple of the mother code length. This can help optimize memory usage and data handling efficiency. Setting the buffer size as a multiple of the mother code length provides a balance between buffer capacity and data handling efficiency. Using a buffer size that is a multiple of a mother code length can improve buffer utilization, simplify buffer management, and allow for higher coding gain.

[0224] In a possible implementation, the size of the buffer may be smaller than a mother code length of the first bit sequence. In a possible implementation, when shortening or puncturing is applied on the bit sequence, the buffer size can be reduced. When shortening or puncturing is applied, the rate matching output sequence may have a shorter  length than the original mother code length. As a result, the buffer size can be adjusted to accommodate the reduced amount of data, optimizing the storage space without unnecessary overhead. The memory resource can be conserved and resource allocation can be improved.

[0225] In a possible implementation, the size of the buffer may be obtained according to a first ratio by which the size of the buffer may be shorter than a mother code length of the first bit sequence. The use of a ratio provides flexibility in adjusting the buffer size based on varying communication needs. For example, a circular buffer size M may be determined with respect to a mother code length N, where the circular buffer size M can be a fixed ratio ηshorter than the mother code length N, i.e., M= (1-η) ×N. Different ratios can be applied to accommodate different scenarios and optimize data transmission efficiency accordingly.

[0226] In a possible implementation, the size of the buffer may be obtained according to a multiple of a first length shorter than a mother code length of the first bit sequence, where the multiple may be an integer larger than 1. In a possible implementation, the first length may be obtained according to the mother code length and a first ratio by which the first length may be shorter than the mother code length.

[0227] For example, a circular buffer size M can be a multiple of a first length (1-η) ×N that is shorter than the mother code length N, where η is a ratio between 0 and 1, i.e. M=l× (1-η) ×N, where l is a positive integer.

[0228] In a possible implementation, the first ratio may be based on the rate matching scheme, For example, the first ratio may be based on puncturing and / or shortening. By determining the first ratio based on the rate matching scheme, the buffer size can be adapted to match the data rate requirement, and efficiency of the buffer resource allocation can be improved.

[0229] In a possible implementation, the first ratio may be based on at least one of a shortening-related ratio or a puncturing-related ratio. For example, a circular buffer size M is determined with respect to a mother code length N, where it can be a fixed ratio η shorter than the mother code length N, i.e., M= (1-η) ×N. In a case that the rate matching scheme includes shortening, the fixed ratio can be a shortening ratio, and S is the number of shortened bits. In a case that the rate matching scheme includes puncturing, the fixed ratio can be a puncturing ratio, and P is the number of punctured bits. In a case that the rate matching scheme includes shortening and puncturing, the fixed ratio can be the sum of puncturing ratio and shortening ratio, and P is the number of punctured bits and S is the number of shortened bits.

[0230] In a possible implementation, the size of the buffer may be larger than a mother code length of the first bit sequence. A larger buffer size provides greater flexibility in how code bits are stored and retrieved during the rate  matching process, especially for a rate matching scheme involving repetition or redundancy. In this way, more code bits can be organized within the buffer without causing overflow or data loss.

[0231] In a possible implementation, the size of the buffer may be obtained according to a second ratio by which the size of the buffer is longer than a mother code length of the first bit sequence. For example, a circular buffer size M may be determined with respect to a mother code length N, i.e., M= (1+η) ×N, where η is a second ratio greater than 1. The incorporation of repetition bits in determining the buffer size ratio enables buffer capacity to be adaptively changed to meet specific requirements of the system. By adjusting the second ratio, the buffer size can be tailored to accommodate different code lengths and rates while balancing resource utilization.

[0232] In a possible implementation, the size of the buffer may be obtained according to a multiple of a second length longer than a mother code length of the first bit sequence, where the multiple may be an integer larger than 1. In a possible implementation, the second length may be obtained according to the mother code length and a second ratio by which the second length is longer than the mother code length. For example, a circular buffer size M can be a multiple of the length that is longer than the mother code length N, i.e. M=l× (1+η) ×N, where η is a ratio larger than 1, l is a positive integer, and l can be a power of 2.

[0233] In a possible implementation, the second ratio may be based on the rate matching scheme. For example, the second ratio may be determined based on repetition. By determining the second ratio based on the rate matching scheme, the buffer size can be adapted to match the data rate requirement, and efficiency of the buffer resource allocation can be improved.

[0234] In a possible implementation, the second ratio may be based on a repetition-related ratio. For example, in a case that the rate matching scheme includes repetition, a circular buffer size M may be determined with respect to the mother code length N, where it can be a fixed ratio ηT longer than the mother code length N, i.e., M=(1+ηT) ×N. The fixed ratio can be a repetition ratio, and T is the number of repeated bits or repetition bits.

[0235] In a possible implementation, the size of the buffer may be obtained according to a third ratio by which the size of the buffer is differentiated from a mother code length of the first bit sequence, where the third ratio is based on two or more of: a shortening-related ratio, a puncturing-related ratio, or a repetition-related ratio. In this way, the buffer size can be enabled to be tailored to the specific needs of the data being processed. By aligning the buffer size with the specific requirements of the rate matching scheme, the buffer size can be dynamically changed to adapt to different code lengths and rates, memory utilization can be improved, and the overall throughput of the  data transmission process can be increased.

[0236] For example, a buffer size M is determined with respect to a mother code length N, together with multiple parameters.

[0237] In a case that the rate matching scheme includes shortening and puncturing, the buffer size M may be determined with respect to the mother code length N together with the shortening ratio and the puncturing ratio. For example, the buffer size M= (1-ηS-ηP) ×N, where is the shortening ratio, and S is the number of shortened bits, and is the puncturing ratio, and P is the number of puncturing bits.

[0238] In a case that the rate matching scheme includes shortening and repetition, the buffer size M may be determined with respect to the mother code length N together with the shortening ratio and the repetition ratio. For example, the buffer size M= (1-ηS+ηT) ×N, where is the shortening ratio, and S is the number of shortened bits, and can be a repetition ratio, and T is the number of repeated bits or repetition bits.

[0239] In a case that the rate matching scheme includes puncturing and repetition, the buffer size M may be determined with respect to the mother code length N together with the puncturing ratio and the repetition ratio. For example, the buffer size M= (1-ηP+ηT) ×N, where is the puncturing ratio, and P is the number of puncturing bits, and can be a repetition ratio, and T is the number of repeated bits or repetition bits.

[0240] In a case that the rate matching scheme includes shortening, puncturing and repetition, the buffer size M may be determined with respect to the mother code length N together with the shortening ratio, the puncturing ratio and the repetition ratio. For example, the buffer size M= (1-ηS-ηP+ηT) ×N, where is the shortening ratio, and S is the number of shortened bits, and is the puncturing ratio, and P is the number of puncturing bits, and can be a repetition ratio, and T is the number of repeated bits or repetition bits.

[0241] In a possible implementation, the shortening-related ratio may be obtained based on a ratio of a number of shortened bits to the mother code length, where the number of shortened bits is an integer greater than 1, or based on a ratio of a number of bits of a subset of shortened bits to the mother code length, where the number of bits of the subset of shortened bits is an integer greater than 1. For example, a shortening-related ratio where S is the number of shortened bits, or a shortening-related ratio where S′ is the number of a subset of shortened bits. By considering the number of shortened bits or the size of a subset of shortened bits relative to the mother code length, the system can efficiently manage resources within the buffer. This approach allows for a more precise allocation of buffer space based on the specific requirements of the shortened data bits, and can accommodate various  transmission and retransmission scenarios, improve resource utilization and reduce waste.

[0242] In a possible implementation, the puncturing-related ratio may be obtained based on a ratio of a number of punctured bits to the mother code length, where the number of punctured bits is an integer greater than 1, or based on a ratio of a number of bits of a subset of punctured bits to the mother code length, where the number of bits of the subset of punctured bits is an integer greater than 1. For example, some punctured bits (e.g., the systematic bits corresponding to the highest degrees in the base graph or parity-check matrix of LDPC codes) may not be transmitted in any case, thus these punctured bits can be counted in the ratio and skipped when writing into the buffer. Punctured bits other than the above mentioned punctured bit, such as the punctured parity bits, may be transmitted in future retransmissions, thus may not be counted in the ratio, and may be written into the buffer. For example, a puncturing-related ratio where P is the number of puncturing bits, or a shortening-related ratio where P′ is the number of a subset of punctured bits. By using a puncturing-related ratio based on the number of punctured bits or a subset of punctured bits, the system can dynamically change the buffer size based on the specific requirements of the punctured bits, and thus, can accommodate various transmission and retransmission scenarios, improve resource utilization and reduce waste.

[0243] In a possible implementation, the repetition-related ratio may be obtained based on a ratio of a number of repeated bits to the mother code length, where the number of repeated bits is an integer greater than 1, or based on a ratio of a number of bits of a subset of repeated bits to the mother code length, where the number of bits of the subset of repeated bits is an integer greater than 1. For example, some redundancy versions may be just a little longer than the mother code length, e.g., E< (1+ β) ×N, where E is a rate matching output length of an RV, N is a mother code length and β is a small number (e.g., 1 / 16, 1 / 8, 1 / 4) . Repetition will be applied by transmitting the mother code and then repeating the β×N bits. In such cases, the repetition ratio may be counted and the corresponding repeated bits may be written twice in the buffer. For example, a repetition-related ratio where T is the number of repeated bits or repetition bits, or a repetition-related ratio where T’ is the number of a subset of repeated bits or repetition bits. By using a repetition-related ratio based on the number of repeated bits or a subset of repeated bits, the system can adaptively adjust the buffer size based on the specific requirements of repeated bits to accommodating various transmission and retransmission scenarios. This can allow some or all repeated bits, i.e., the bits that need to be repeated, to be written into the buffer repeatedly, and when reading from the buffer, there will be no need to distinguish between these repeated bits which have been repeatedly written into the buffer, and other code  bits which need not to be repeated, thereby improving efficiency in reading out code bits from the buffer, and enhancing overall throughput of the system.

[0244] In a possible implementation, the size of the buffer may equal to a difference between the mother code length and a shortened length.

[0245] In a possible implementation, the size of the buffer may equal to a multiple of a difference between the mother code length and a shortened length.

[0246] In a possible implementation, the size of the buffer may equal to a sum of a first difference and a repetition length, where the first difference is a difference between the mother code length and a shortened length.

[0247] In a possible implementation, the size of the buffer may equal to a multiple of a sum of a first difference and a repetition length, where the first difference is a difference between the mother code length and a shortened length.

[0248] In some embodiments of the present disclosure relating to methods to determine the size of circular buffer, denoted by M;

[0249] ● The circular buffer size M is determined with respect to the mother code length N.

[0250] ○ The mother code length N can be the length of all code bits after encoding.

[0251] ○ For systematic codes, such as LDPC codes, the mother code includes all the systematic bits and parity bits. These bits may yield a systematic code of the minimum code rate supported.

[0252] ○ For non-systematic codes, such as polar codes, the mother code includes all the code bits. These bits may yield a non-systematic code of the minimum code rate supported. For polar codes, a mother code length N=2n is a power of 2.

[0253] ○ The mother code length may not include the repeated bits, or repetition bits.

[0254] ● The circular buffer size M can be a multiple of the mother code length N.

[0255] ○ M=l×N, where l is a positive integer, and l can be a power of 2.

[0256] ● The circular buffer size M is determined with respect to the mother code length N, where it can be smaller than the mother code length N, i.e., M<N.

[0257] ● The circular buffer size M is determined with respect to the mother code length N, where it can be a fixed ratio η shorter than the mother code length N, i.e., M= (1-η) ×N.

[0258] ○ The fixed ratio can be a shortening ratio, and S is the number of shortened bits;

[0259] ○ The fixed ratio can be a puncturing ratio, and P is the number of punctured bits;

[0260] ○ The fixed ratio can be the sum of puncturing ratio and shortening ratio, and P is the number of punctured and S is the number of shortened bits;

[0261] ● According to the above, the circular buffer size M can be a multiple of the length that is shorter than the mother code length N.

[0262] ○ M=l× (1-η) ×N, where l is a positive integer, and l can be a power of 2.

[0263] ● The circular buffer size M is determined with respect to the mother code length N, where it can be larger than the mother code length N, i.e., M>N.

[0264] ● The circular buffer size M is determined with respect to the mother code length N, where it can be a fixed ratio η longer than the mother code length N, i.e., M= (1+ηT) ×N.

[0265] ○ The fixed ratio can be a repetition ratio, and T is the number of repeated bits or repetition bits;

[0266] ● According to the above, the circular buffer size M can be a multiple of the length that is longer than the mother code length N.

[0267] ○ M=l× (1+η) ×N, where l is a positive integer, and l can be a power of 2.

[0268] ● The circular buffer size M is determined with respect to the mother code length N, together with multiple parameters:

[0269] ○ M= (1-ηS+ηT) ×N, where is the shortening ratio, and S is the number of shortened bits, and can be a repetition ratio, and T is the number of repeated bits or repetition bits.

[0270] ○ M= (1-ηP+ηT) ×N, where is the puncturing ratio, and P is the number of puncturing bits, and can be a repetition ratio, and T is the number of repeated bits or repetition bits.

[0271] ○ M= (1-ηS-ηP+ηT) ×N, where is the shortening ratio, and S is the number of shortened bits, and is the puncturing ratio, and P is the number of puncturing bits, and can be a repetition ratio, and T is the number of repeated bits or repetition bits.

[0272] ● According to the above, the circular buffer size M can be a multiple of the length that is derived from the mother code length N.

[0273] ○ M=l× (1-ηS+ηT) ×N, where l is a positive integer, and l can be a power of 2.

[0274] ○ M=l× (1-ηP+ηT) ×N, where l is a positive integer, and l can be a power of 2.

[0275] ○ M=l× (1-ηS-ηP+ηT) ×N, where l is a positive integer, and l can be a power of 2.

[0276] ● In the above methods, the parameters can be further modified or adjusted.

[0277] ○ The shortening ratio can be also a partial shortening ratio and S’ is the number of a subset of shortened bits;

[0278] ○ The puncturing ratio can be also a partial puncturing ratio and P’ is the number of a subset of punctured bits;

[0279] ○ The shortening ratio can be also a partial shortening ratio and T’ is the number of a subset of repeated bits or repetition bits.

[0280] In a possible implementation, the transmitting device may determine the size of the buffer according to a rate matching output length. Tailoring the buffer size to match the rate matching output length helps improve resource utilization. It ensures that the buffer has sufficient capacity to accommodate the data being processed without wasting resources on excessive buffering. By adjusting the size of the buffer according to the rate matching output length, efficiency of resource utilization can be improved, and latency management can be enhanced.

[0281] In a possible implementation, the size of the buffer may be equal to a rate matching output length. When the buffer size is set equal to the rate matching output length, it ensures that there is enough space in the buffer to hold the entire rate matched output. This eliminates the need for additional buffering, which can reduce the processing time and help improve the overall performance of the system. Moreover, setting the buffer size equal to the rate matching output length can help reduce the risk of buffer overflow or underflow, which can cause data loss or corruption.

[0282] In a possible implementation, the size of the buffer may be obtained according to a multiple of a rate matching output length, where the multiple is an integer larger than 1. Using a buffer with a size which is a multiple of the rate matching output length makes it possible to write several bit sequences or a long bit sequence into the buffer, which may allow for higher coding gain. In a possible implementation, when repetition is applied on the bit sequence, the buffer size can be increased. An integer multiple may ensure that the buffer size is a whole number multiple of the mother code length.

[0283] In a possible implementation, the size of the buffer may be obtained according to a rate matching output length and a third length which is related to the rate matching scheme. The rate matching scheme may include at least one of: puncturing, shortening or repetition. For example, when puncturing is utilized as part of the rate matching scheme, the buffer size can be adjusted to account for the potential reduction in data size after puncturing. By considering the impact of puncturing (or other rate matching techniques) on the data length, the buffer can be  sized appropriately to accommodate the code bits without unnecessary waste or inefficiency. In this way, the resource utilization can be more efficient, which reduces resource waste and enhances overall system performance.

[0284] In a possible implementation, the size of the buffer may be obtained according to a multiple of a fourth length, where the fourth length may be obtained according to the rate matching length and a third length which is related to the rate matching scheme.

[0285] In a possible implementation, the third length is based on at least one of: a punctured length, a shortened length, or a repetition length. That is to say, the size of the buffer may be obtained according to a rate matching output length and at least one of: a punctured length, a shortened length, or a repetition length. For example, the third length may be a sum of at least one of: a punctured length, a shortened length, or a repetition length.

[0286] In a possible implementation, the fourth length may equal to a sum of the rate matching output length and a punctured length.

[0287] In a possible implementation, the fourth length may equal to a multiple of a sum of the rate matching output length and a punctured length.

[0288] In a possible implementation, the fourth length may equal to a multiple of a sum of the rate matching output length, a punctured length and a repetition length.

[0289] In a possible implementation, the fourth length may equal to a sum of the rate matching output length, a punctured length and a repetition length.

[0290] In a possible implementation, the multiple may be a power of 2. Many hardware components, such as memory modules or data buses, are designed to handle data in powers of 2 sizes. By aligning the buffer size with these hardware specifications, it can help improve data processing efficiency and reduce processing time. In this way, the system can ensure better compatibility with underlying hardware components, improving system integration and performance.

[0291] In a possible implementation, the rate matching output length may be based on a length of a specific redundancy version. For example, the rate matching output length for different redundancy versions may be different. In some cases, the first version may have the most information bits among all the redundancy versions and have the highest code rate, and other redundancy versions may have less information bits and lower code rates. While in some cases, a specific redundancy version may have a longer length due to increased error correction capabilities. The rate matching output length can be adjusted based on different redundancy versions. For example, the rate matching output length may be the rate matching output length of the first redundancy version for transmission of the first  redundancy version, or the rate matching output length of other redundancy versions for transmission of other redundancy versions. This can ensure efficient processing of the data while maintaining the desired level of error correction and detection. In this way, error detection and correction can be improved. The system can allocate redundancy bits based on the specific communication requirements, which can enhance the overall quality of the transmitted data, reduce errors and ensure reliable delivery.

[0292] For example, the method to determine the size of circular buffer, denoted by M, according to one or more embodiment of the present disclosure can be as follows:

[0293] ● The circular buffer size M is determined with respect to the rate matching output sequence length, denoted by E.

[0294] ○ The circular buffer size M is equal to the rate matching output sequence length E, i.e., M=E.

[0295] ○ The circular buffer size M can be multiples of the rate matching output sequence length E0 for the initial transmission, i.e., M=l×E0, and l can be a power of 2.

[0296] ○ The circular buffer size M is larger than the rate matching output sequence length, denoted by E.

[0297] ○ The circular buffer size M is the sum of the rate matching output sequence length E and the punctured length P, i.e., M=E+P.

[0298] ○ The circular buffer size M is the sum of the rate matching output sequence length E and the shortened length S, i.e., M=E+S.

[0299] ○ The circular buffer size M is the sum of the rate matching output sequence length E and the repetition length T, i.e., M=E+T.

[0300] ○ The circular buffer size M is the sum of the rate matching output sequence length E, the punctured length P and the shortened length S, i.e., M=E+P+S.

[0301] ○ The circular buffer size M is the sum of the rate matching output sequence length E, the punctured length P and the repetition length T, i.e., M=E+P+T.

[0302] ○ The circular buffer size M is the sum of the rate matching output sequence length E, the shortened length S and the repetition length T, i.e., M=E+S+T.

[0303] ○ The circular buffer size M is the sum of the rate matching output sequence length E, the punctured length P and the shortened length S, and the repetition length T, i.e., M=E+P+S+T.

[0304] ○ The circular buffer size M can be multiples of the above length, i.e., M=l× (E+P) , or M=l× (E+S) , or M=l× (E+P+S) , or M=l× (E+P+T) , or M=l× (E+S+T) , or M=l× (E+P+ S+T) , where l can be a power of 2.

[0305] ○ In the above methods, the rate matching output sequence length E can be for initial transmission, i.e., E=E0.

[0306] ● In the above methods, the rate matching output sequence length E can be the length of a specific redundancy version.

[0307] ○ The specific redundancy version can be any redundancy version with rvid=i. Its length is denoted by Ei, i.e., E=Ei.

[0308] ○ The specific redundancy version can be the first redundancy version with rvid=0. Its length is denoted by E0, i.e., E=E0.

[0309] S1303, write the first bit sequence into the buffer according to at least one writing method, where the at least one writing method is determined according to a rate matching scheme and the size of the buffer.

[0310] In the embodiment, the transmitting device writes the first bit sequence into the buffer according to at least one writing method, and the at least one writing method is determined according to a rate matching scheme and the size of the buffer. The transmitting device can determine whether to include a code bit of the first bit sequence into an output sequence or how many times a code bit of the first bit sequence include in an output sequence during the writing process rather than the reading out process.

[0311] Some embodiments of the present disclosure include methods to selectively write code bits into the circular buffer:

[0312] ● The code bits are written into a circular buffer of certain size, which can be determined according to methods described elsewhere herein.

[0313] ● Skip certain bits when writing into the circular buffer. These bits can be related to rate matching, e.g., punctured bits and / or shortened bits;

[0314] ● Repeatedly write certain bits when writing into the circular buffer. These bits can be certain parity bits.

[0315] In a possible implementation, the transmitting device may determine whether to skip the respective code bit or repeat the respective code bit for each code bit of the first bit sequence and according to one or more of the at least one writing method, to obtain a second bit sequence, and may write the second bit sequence into the buffer. By selectively choosing to skip or repeat code bits, the system can adjust the second bit sequence to meet specific requirements flexibly, which can improve storage efficiency and reading efficiency of code bits and enhance system  performance.

[0316] In a possible implementation, the rate matching scheme may include shortening, and the at least one writing method may include: skipping each shortened code bit. When the rate matching scheme includes shortening, the transmitting device may skip each shortened code bit in the first bit sequence when writing the first bit sequence into the buffer. In this way, the shorten bit positions may be not written into the buffer, and when reading out from the circular buffer, there is no need to distinguish between shortened bits (which should not be transmitted) and other code bits. By excluding unnecessary known bits from the buffer operations, the system can maintain data integrity while ensuring efficient data storage and transmission.

[0317] In a possible implementation, the rate matching scheme may include shortening, and the at least one writing method may include: skipping one or more of shorten code bits, where the one or more of shorten code bits belong to a preset transmission or a preset redundancy version. When the rate matching scheme includes shortening, the transmitting device may skip one or more of shortened code bits in the first bit sequence when writing the first bit sequence into the buffer, and the skipped one or more of shorten code bits may belong to a preset transmission or a preset redundancy version. The preset transmission may include first transmission or retransmissions. The preset redundancy version may include at least one of: RV0, RV1, RV2, RV3 and so on. That is to say, the skipped bits can be a subset of shortened bits. For an example, the shortened bits belonging to certain transmissions or redundancy versions may be skipped. For another example, the shortened bits belonging to the first transmission or the first redundancy version (e.g., RV0) may be skipped. In still another example, the shortened bits belonging to the remaining transmissions or redundancy versions (e.g., RV1, RV2, RV3) may be skipped.

[0318] In a possible implementation, the rate matching scheme may include puncturing, and the at least one writing method may include: skipping each punctured code bit. When the rate matching scheme includes puncturing, the transmitting device may skip each punctured code bit in the first bit sequence when writing the first bit sequence into the buffer. That is to say, the skipped bits can be all punctured bits. In this way, the punctured bit positions may be not written into the buffer, and when reading out from the circular buffer, there is no need to distinguish between punctured bits (which should not be transmitted) and other code bits, which maintains data integrity while ensuring efficient data storage and transmission.

[0319] In a possible implementation, the rate matching scheme may include puncturing, and the at least one writing method may include: skipping one or more of punctured code bits, where the one or more of punctured code bits belong to a preset transmission or a preset redundancy version. When the rate matching scheme includes  puncturing, the transmitting device may skip one or more of punctured code bits in the first bit sequence when writing the first bit sequence into the buffer, and the skipped one or more of punctured code bits belong to a preset transmission or a preset redundancy version. The preset transmission may include first transmission or retransmissions. The preset redundancy version may include at least one of: RV0, RV1, RV2, RV3 and so on. That is to say, the skipped bits can be a subset of punctured bits. In an example, the punctured bits belonging to certain transmissions or redundancy versions may be skipped. In another example, the punctured bits belonging to certain transmissions or redundancy versions may be skipped. In still another example, the punctured bits belonging to the remaining transmissions or redundancy versions (e.g., RV1, RV2, RV3) may be skipped.

[0320] In a possible implementation, when low-density parity check (LDPC) coding is used, the at least one writing method may include skipping one or more of punctured code bits, where the one or more of punctured code bits may include one or more systematic bits, or one or more parity bits. The punctured code bits that are skipped may include one or more systematic bits or one or more parity bits. Systematic bits are the original data bits that are transmitted along with parity bits, while parity bits are calculated based on the original data bits and used for error detection and correction. By selectively omitting either the systematic bits or the parity bits, the system can tailor the rate matching process to the specific requirements of the LDPC coding scheme being used. This approach is particularly useful when dealing with high-rate LDPC codes with complex parity configurations. In such scenarios, the number and position of punctured bits can be highly variable, making the rate matching process more challenging. By skipping one or more of the punctured bits, the system can simplify the rate matching process and improve the overall system performance. In this way, the overall performance and throughput of the system can be improved, particularly in scenarios involving high-rate LDPC codes with complex parity configurations.

[0321] In a possible implementation, the one or more parity bits may include one or more parity bits for high-rate LDPC code with a highest column degree in a base graph. By selectively skipping one or more parity bits for high-rate LDPC code with a highest column degree in a base graph, the system can adjust the second bit sequence to adapt to different code rates while maintaining acceptable or high error correction capabilities of the LDPC code to meet the specific requirements of the communication system.

[0322] In a possible implementation, the one or more parity bits may include one or more core parity bits for LDPC code. In a possible implementation, the one or more preset parity bits may include one or more core parity bits corresponding to one or more columns with a highest degree in a base graph. The parity bits can be the core parity bits for the LDPC codes, or the core parity bits corresponding to the first (or last) a few columns in the based  graph. These core parity bits may correspond to the highest degree in the base graph. In this way, resource utilization can be more efficient while error correction capability of the system can be ensured, and overall system performance can be improved.

[0323] In a possible implementation, when polar coding is used, the at least one writing method may include skipping one or more of punctured code bits, where the one or more of punctured code bits may include first one or more code bits in each length-power-of-2 block in the first bit sequence; where the number of the one or more code bits may be determined according to a rate matching output sequence length. When polar coding is used, the punctured code bits that are skipped can be the first one or more code bits in each length-power-of-2 block in the first bit sequence. A length-power-of-2 block refers to a block of bits with a size that is a power of 2 (e.g., 2, 4, 8, etc. ) . The number of code bits that are skipped in each length-power-of-2 block can be determined based on the desired rate matching output sequence length. By skipping these specific punctured code bits, the system can achieve a desired rate matching output sequence length while maintaining the overall error correction capabilities of the polar code. This approach allows for efficient utilization of resources and enhanced overall throughput and system performance in polar coding schemes.

[0324] In a possible implementation, the rate matching scheme may include repetition, and the at least one writing method may include: repeating one or more code bits. When the rate matching scheme includes repetition, the transmitting device may repeat one or more of code bits of the first bit sequence. By repeating the one or more code bits when writing the bit sequence into the buffer, efficiency in reading out code bits from the buffer can be improved.

[0325] In a possible implementation, when LDPC coding is used, the one or more repeated code bits may include one or more of parity bits.

[0326] In a possible implementation, the one or more parity bits include one or more extended parity bits corresponding to one or more degree-1 columns in a base graph. The inclusion of repeated parity bits, particularly extended parity bits corresponding to degree-1 columns in a base graph, can enhance the error correction capability of the system.

[0327] In a possible implementation, the one or more parity bits may include one or more core parity bits for LDPC code. In a possible implementation, the one or more core parity bits may include one or more core bits corresponding to one or more columns with a lowest degree in a base graph. By incorporating repeated code bits that may include parity bits, and specifically core parity bits for LDPC code, the system can ensure that error correction  capabilities are maintained and the rate matching process can be improved to be more efficient.

[0328] In a possible implementation, when polar coding is used, the one or more repeated code bits may include first or last one or more code bits in each length-power-of-2 block in the first bit sequence. In this way, the reliability of these specific code bits can be increased, and since each block may have repeated bits, the reliability of all the blocks can be enhanced.

[0329] In a possible implementation, the number of code bits of the one or more repeated code bits may be pre-defined. For example, the number of the repeated bits may be a pre-defined length. For another example, the number of the repeated bits may be pre-defined by a portion of the block. For example, for each length-power-of-2 blocks in the codeword, if the length of each block is B, the number of the repeated bits may be determined by α×B, where α is pre-defined and can be one divided by another power-of-2 integer, e.g., α can be 1 / 256, 1 / 128, 1 / 64, 1 / 32, 1 / 16, 1 / 8, 1 / 4, 1 / 2. This method can be used for polar coding. By pre-defining the number of repeated code bits, the level of redundancy in the bit sequence can be controlled, which can make the system keep a balance between the amount of redundancy added and the overall efficiency of the encoding process.

[0330] In a possible implementation, the one or more repeated code bits may be bit-by-bit repeated or block-by-block repeated. The bit-by-bit repetition may involve duplicating individual code bit (s) . For example, when a block of code bits are repeated bit-by-bit, a first bit of the block is followed by its repetition and then the second bit and the repetition of the next repeated bit, and so on. In such a repeating pattern, each code bit and its repetition are consecutive or adjacent to each other. In this way, a critical bit can be given a higher level of redundancy, enhancing its reliability and improving the code’s overall error correction capabilities. The block-by-block repetition may involve duplicating an entire block of code bits. For example, when a block of code bits are repeated block-by-block, the block of code bits is followed by the repetition of the entire block. Such a repeating pattern includes two identical blocks of code bits. Block-by-block repetition can improve computational efficiency.

[0331] In some embodiments of the present disclosure relating to methods to selectively write code bits into the circular buffer;

[0332] ● The code bits are written into a circular buffer of certain size, which can be determined in the first part of the disclosure.

[0333] ○ The code bits can be sequentially read out for writing into the circular buffer.

[0334] ○ Upon every code bit, a set of criteria or rules are examined to determine how to process the bit;

[0335] ○ The way to process the bit may include whether to write this bit into the circular buffer (whether  to skip it) , or how to write the bit into the circular buffer (whether to repeat it and how to repeat it) .

[0336] ○ Skip certain bits when writing into the circular buffer;

[0337] ○ The skipped bits can be all shortened bits;

[0338] ■ The skipped bits can be a subset of shortened bits;

[0339] ■ The shortened bits belonging to certain transmissions or redundancy versions are skipped;

[0340] ■ The shortened bits belonging to the first transmission or the first redundancy version (e.g., RV0) are skipped;

[0341] ○ The shortened bits belonging to the remaining transmissions or redundancy versions (e.g., RV1, RV2, RV3) are skipped;

[0342] ○ The skipped bits can be all punctured bits;

[0343] ■ The skipped bits can be a subset of the punctured bits;

[0344] ■ The punctured bits belonging to certain transmissions or redundancy versions are skipped;

[0345] ■ The punctured bits belonging to the first transmission or the first redundancy version (e.g., RV0) are skipped;

[0346] ■ The punctured bits belonging to the remaining transmissions or redundancy versions (e.g., RV1, RV2, RV3) are skipped;

[0347] ■ The punctured bits belonging to the systematic bits are skipped;

[0348] ■ The punctured bits belonging to some parity bits are skipped. The parity bits can be parity bits for the high-rate LDPC codes, whose column degree in the base graph is the highest.

[0349] ■ The punctured bits belonging to some parity bits are skipped. The parity bits can be the core parity bits for the LDPC codes, or the core parity bits corresponding to the first (or last) a few columns in the based graph. These core parity bits may correspond to the highest degree in the base graph.

[0350] ■ The punctured bits can be the first a few bits in each length-power-of-2 blocks in the codeword, where the number of punctured bits can depend on the rate matching output sequence length E. This method can be used for polar coding.

[0351] ○ The skipped bits can be both punctured and shortened bits;

[0352] ○ The skipped bits can be a subset of punctured and shortened bits;

[0353] ■ The punctured bits and shortened bits in the first transmission or redundancy version are skipped;

[0354] ■ The punctured bits in the first transmission or redundancy version (e.g., RV0) and all shortened bits are skipped;

[0355] ● Repeatedly write certain bits when writing into the circular buffer.

[0356] ○ The repeated bits can be the first few bits in each length-power-of-2 blocks in the codeword. For example, if the code length is 4096, and it is divided into four length-1024 blocks, and each block has indices [0, 1, …, 1023] , [1024, 1025, …, 2047] , [2048, 2049, …, 3071] , [3072, 3073, …, 4095] , respectively. The repeated bits may be [0, 1, …, 127] , [1024, 1025, …, 1151] , [2048, 2049, …, 2175] , [3072, 3073, …, 3199] . This method can be used for polar coding.

[0357] ○ The repeated bits can be the first a few bits in each length-power-of-2 blocks in the codeword, and the length of the repeated bits is a pre-defined portion of the block. For example, if the block length is B, then the number of repeated bits may be α×B, where α can be one divided by another power-of-2 integer, e.g., α can be 1 / 256, 1 / 128, 1 / 64, 1 / 32, 1 / 16, 1 / 8, 1 / 4, 1 / 2. This method can be used for polar coding.

[0358] ○ The repeated bits can be the last few bits in each length-power-of-2 blocks in the codeword. For example, if the code length is 4096, and it is divided into four length-1024 blocks, and each block has indices [0, 1, …, 1023] , [1024, 1025, …, 2047] , [2048, 2049, …, 3071] , [3072, 3073, …, 4095] , respectively. The repeated bits may be [1023, 1022, …, 896] , [2047, 2046, …, 1920] , [3071, 3070, …, 2944] , [4095, 4094, …, 3968] . This method can be used for polar coding.

[0359] ○ The repeated bits can be the last a few bits in each length-power-of-2 blocks in the codeword, and the length of the repeated bits is a pre-defined portion of the block. For example, if the block length is B, then the number of repeated bits may be α×B, where α can be one divided by another power-of-2 integer, e.g., α can be 1 / 256, 1 / 128, 1 / 64, 1 / 32, 1 / 16, 1 / 8, 1 / 4, 1 / 2. This method can be used for polar coding.

[0360] ○ The repeated bits can be the some of the parity bits. The parity bits can be the extended parity bits (or raptor-like parity bits) corresponding to the degree-1 columns in the based graph. This method can be used for LDPC coding.

[0361] ○ The repeated bits can be the some of the parity bits. The parity bits can be the core parity bits for the LDPC codes, or the core parity bits corresponding to the first (or last) a few columns in the based graph. These core parity bits may correspond to the lowest degree in the base graph. This method can be used for LDPC coding.

[0362] ○ The repeated bits can be bit-by-bit repetition. For example, for code bits with indices [0, 1, …, 127] , the repeating pattern may be [0, 0, 1, 1, …, 127, 127] .

[0363] ○ The repeated bits can be block-by-block repetition. For example, for code bits with indices [0, 1, …, 127] , the repeating pattern may be [0, 1, …, 127, 0, 1, …, 127] .

[0364] Examples in FIG. 14 and FIG. 15 further illustrate the idea of changing the size of circular buffer for polar codes.

[0365] In FIG. 14, the mother code is shortened, where the shortened bit positions are from the four quarter blocks. One way of writing into circular buffer is to write the shortened bits into the buffer (may be interleaved to the end so that they will not be transmitted this time) . However, this is problematic when future transmissions will transmit the untransmitted bits, which will waste channel resource because shortened bits are known bits. To avoid this issue, some embodiments include methods of writing into a size-reduced circular buffer. In these methods, the shortened bit positions are not written into the circular buffer; rather, these bit positions are skipped. When reading out from the circular buffer, there is no need to distinguish between shortened bits (which should not be transmitted) and other code bits.

[0366] This may be achieved through the following pseudo codes:

[0367] Determine the circular buffer size as M=N-S, where N is the mother code length, and S is the shortened bit length. The bit sequence stored in the circular buffer is denoted by y0, y1, y2, . . ., yM-1. An indicator function that returns whether the n-th bit is a shortened bit is defined as Is_shorten (n) .

[0368] In FIG. 15, the mother code is partially repeated, where the repetition bit positions are from the four quarter blocks. One way of writing into circular buffer is to write the repetition bits into the buffer only once. However, during a transmission, the transmitter needs to know which bits are repeated. To simplify the process, some embodiments include methods of writing into a size-increased circular buffer, in which repetition bits are  written multiple times into the circular buffer. For example, if a bit is to be repeated once, the bit value is written twice into the circular buffer. When reading out from the circular buffer, there is no need to distinguish between repeated bits (which should be transmitted more than once) and other code bits.

[0369] This may be achieved through the following pseudo codes:

[0370] Determine the circular buffer size as M=N+T, where N is the mother code length, and T is the repetition bit length. The bit sequence stored in the circular buffer is denoted by y0, y1, y2, . . ., yM-1. An indicator function that returns whether the n-th bit is a shortened bit is defined as Is_repetition (n) .

[0371] The above descriptions mainly determine the following rate matching parameters:

[0372] ● Size of circular buffer;

[0373] ● Number of bits to be skipped;

[0374] ● Number of bits to be repeated;

[0375] ● Methods to skip bits when writing to circular buffer;

[0376] ● Methods to repeat bits when writing to circular buffer;

[0377] These parameters can either be pre-defined in standard specifications, or signaled using Radio Resource Control (RRC) messages or UCI control information.

[0378] In the present disclosure, the transmitting device may obtain a first bit sequence, and may obtain a size  of a buffer according to length information of the first bit sequence, and the transmitting device may write the first bit sequence into the buffer according to at least one writing method, where the at least one writing method is determined according to a rate matching scheme and the size of the buffer. In this way, dynamic adaptation of the buffer size is achieved to accommodate varying input data lengths, efficient use of the buffer can be realized by tailoring its size to the specific requirements of the input data. In addition, the writing process can be adapted based on the buffer size and the rate matching scheme, which improves reliability and efficiency of data transmission.

[0379] FIG. 16 shows a schematic structural diagram of an apparatus according to one or more example embodiments of the present disclosure. The apparatus may be a rate matching apparatus or other devices, such as a chip which has similar function, or installed in or applied to a chip, such as an encoder, in the transmitting device or any other equipment, module, circuit or unit that can implement the steps in above method embodiments. As shown in FIG. 16, the apparatus 1600 may include:

[0380] an obtaining module 1610, configured to obtain a first bit sequence; and

[0381] a processing module 1620, configured to obtain a size of a buffer according to length information of the first bit sequence, and write the first bit sequence into the buffer according to at least one writing method, where the at least one writing method is determined according to a rate matching scheme and the size of the buffer.

[0382] In a possible implementation, the obtaining module 1610 is configured to:

[0383] encode information bits by using an encoding method to obtain the first bit sequence.

[0384] In a possible implementation, the processing module 1620 is configured to:

[0385] obtain the size of the buffer according to a mother code length of the first bit sequence.

[0386] In a possible implementation, the size of the buffer is a multiple of a mother code length of the first bit sequence, where the multiple is greater than 1.

[0387] In a possible implementation, the size of the buffer is smaller than a mother code length of the first bit sequence.

[0388] In a possible implementation, the size of the buffer is obtained according to a first ratio by which the size of the buffer is shorter than a mother code length of the first bit sequence.

[0389] In a possible implementation, the size of the buffer is obtained according to a multiple of a first length shorter than a mother code length of the first bit sequence, where the multiple is an integer larger than 1.

[0390] In a possible implementation, the first length is obtained according to the mother code length and a first ratio by which the first length is shorter than the mother code length.

[0391] In a possible implementation, the first ratio is based on the rate matching scheme.

[0392] In a possible implementation, the first ratio is based on at least one of a shortening-related ratio or a puncturing-related ratio.

[0393] In a possible implementation, the size of the buffer is larger than a mother code length of the first bit sequence.

[0394] In a possible implementation, the size of the buffer is obtained according to a second ratio by which the size of the buffer is longer than a mother code length of the first bit sequence.

[0395] In a possible implementation, the size of the buffer is obtained according to a multiple of a second length longer than a mother code length of the first bit sequence, where the multiple is an integer larger than 1.

[0396] In a possible implementation, the second length is obtained according to the mother code length and a second ratio by which the second length is longer than the mother code length.

[0397] In a possible implementation, the second ratio is based on the rate matching scheme.

[0398] In a possible implementation, the second ratio is based on a repetition-related ratio.

[0399] In a possible implementation, the size of the buffer is obtained according to a third ratio by which the size of the buffer is differentiated from a mother code length of the first bit sequence, where the third ratio is based on two or more of: a shortening-related ratio, a puncturing-related ratio, or a repetition-related ration.

[0400] In a possible implementation, the shortening-related ratio is obtained based on a ratio of a number of shortened bits to the mother code length, where the number of shortened bits is an integer greater than 1, or based on a ratio of a number of bits of a subset of shortened bits to the mother code length, where the number of bits of the subset of shortened bits is an integer greater than 1.

[0401] In a possible implementation, the puncturing-related ratio is obtained based on a ratio of a number of punctured bits to the mother code length, where the number of punctured bits is an integer greater than 1, or based on a ratio of a number of bits of a subset of punctured bits to the mother code length, where the number of bits of the subset of punctured bits is an integer greater than 1.

[0402] In a possible implementation, the repetition-related ratio is obtained based on a ratio of a number of repeated bits to the mother code length, where the number of repeated bits is an integer greater than 1, or based on a ratio of a number of bits of a subset of repeated bits to the mother code length, where the number of bits of the subset of repeated bits is an integer greater than 1.

[0403] In a possible implementation, the size of the buffer equals to a difference between the mother code length  and a shortened length.

[0404] In a possible implementation, the size of the buffer equals to a multiple of a difference between the mother code length and a shortened length.

[0405] In a possible implementation, the size of the buffer equals to a sum of a first difference and a repetition length, where the first difference is a difference between the mother code length and a shortened length.

[0406] In a possible implementation, the size of the buffer equals to a multiple of a sum of a first difference and a repetition length, where the first difference is a difference between the mother code length and a shortened length.

[0407] In a possible implementation, the processing module 1620 is configured to:

[0408] determine the size of the buffer according to a rate matching output length.

[0409] In a possible implementation, the size of the buffer is equal to a rate matching output length.

[0410] In a possible implementation, the size of the buffer is obtained according to a multiple of a rate matching output length, where the multiple is an integer larger than 1.

[0411] In a possible implementation, the size of the buffer is obtained according to a rate matching output length and a third length which is related to the rate matching scheme.

[0412] In a possible implementation, the size of the buffer is obtained according to a multiple of a fourth length, where the fourth length is obtained according to the rate matching length and a third length which is related to the rate matching scheme.

[0413] In a possible implementation, the third length is based on at least one of: a punctured length, a shortened length, or a repetition length.

[0414] In a possible implementation, the fourth length equals to a sum of the rate matching output length and a punctured length.

[0415] In a possible implementation, the fourth length equals to a multiple of a sum of the rate matching output length and a punctured length.

[0416] In a possible implementation, the fourth length equals to a sum of the rate matching output length, a punctured length and a repetition length.

[0417] In a possible implementation, the fourth length equals to a multiple of a sum of the rate matching output length, a punctured length and a repetition length.

[0418] In a possible implementation, the multiple is a power of 2.

[0419] In a possible implementation, the rate matching output length is based on a length of a specific redundancy  version.

[0420] In a possible implementation, the processing module 1620 is configured to:

[0421] determine, for each code bit of the first bit sequence and according to one or more of the at least one writing method, whether to skip the respective code bit or repeat the respective code bit to obtain a second bit sequence;

[0422] write the second bit sequence into the buffer.

[0423] In a possible implementation, the rate matching scheme includes shortening, and the at least one writing method includes: skipping each shortened code bit.

[0424] In a possible implementation, the rate matching scheme includes shortening, and the at least one writing method includes: skipping one or more of shorten code bits, where the one or more of shorten code bits belong to a preset transmission or a preset redundancy version.

[0425] In a possible implementation, the rate matching scheme includes puncturing, and the at least one writing method includes: skipping each punctured code bit.

[0426] In a possible implementation, the rate matching scheme includes puncturing, and the at least one writing method includes: skipping one or more of punctured code bits, where the one or more of punctured code bits belong to a preset transmission or a preset redundancy version.

[0427] In a possible implementation, when low-density parity check (LDPC) coding is used, the at least one writing method includes skipping one or more of punctured code bits, where the one or more of punctured code bits include one or more systematic bits, or one or more parity bits.

[0428] In a possible implementation, the one or more parity bits include one or more parity bits for high-rate LDPC code with a highest column degree in a base graph.

[0429] In a possible implementation, the one or more parity bits include one or more core parity bits for LDPC code.

[0430] In a possible implementation, the one or more preset parity bits include one or more core parity bits corresponding to one or more columns with a highest degree in a base graph.

[0431] In a possible implementation, when polar coding is used, the at least one writing method includes skipping one or more of punctured code bits, where the one or more of punctured code bits include first one or more code bits in each length-power-of-2 block in the first bit sequence; where the number of the one or more code bits is determined according to a rate matching output sequence length.

[0432] In a possible implementation, the rate matching scheme includes repetition, and the at least one writing method includes: repeating one or more code bits.

[0433] In a possible implementation, when LDPC coding is used, the one or more repeated code bits include one or more of parity bits.

[0434] In a possible implementation, the one or more parity bits include one or more extended parity bits corresponding to one or more degree-1 columns in a base graph.

[0435] In a possible implementation, the one or more parity bits include one or more core parity bits for LDPC code.

[0436] In a possible implementation, the one or more core parity bits include one or more core bits corresponding to one or more columns with a lowest degree in a base graph.

[0437] In a possible implementation, when polar coding is used, the one or more repeated code bits include first or last one or more code bits in each length-power-of-2 block in the first bit sequence.

[0438] In a possible implementation, a number of code bits of the one or more repeated code bits is pre-defined.

[0439] In a possible implementation, the one or more repeated code bits are bit-by-bit repeated or block-by-block repeated.

[0440] In a possible implementation, the encoding method includes a polar coding method or a LDPC coding method.

[0441] It should be understood by a person skilled in the art that, the relevant description of the above modules in the possible implementations of the present disclosure may be understood with reference to the relevant description of the interleaving method in the possible implementations of the present disclosure. The technical effect achieved by the above apparatus is similar as that achieved by the above possible method implementations, which is not repeated herein.

[0442] An embodiment of the present disclosure provides an apparatus including processing circuitry for executing any of the above methods. It should be understood that the apparatus can execute the steps in the above method embodiments, which will not be repeated here.

[0443] An embodiment of the present disclosure provides an encoder including the apparatus described above with reference to FIG. 16 or the apparatus including processing circuitry for executing any of the above methods as described above.

[0444] An embodiment of the present disclosure provides an electronic device including an encoder for executing  any of the above methods

[0445] An embodiment of the present disclosure provides a wireless communication apparatus which includes a processor and a memory. The memory is storing instructions that cause the processor to perform any of the above methods.

[0446] An embodiment of the present disclosure provides a wireless communication system, including a transmitting device and a receiving device. The transmitting device is configured to execute the steps in any of the above methods.

[0447] An embodiment of the present disclosure provides a computer-readable medium storing computer execution instructions which, when executed by a processor, cause the processor to execute any of the above methods.

[0448] An embodiment of the present disclosure provides a computer program product including computer execution instructions which, when executed by a processor, cause the processor to execute any of the above methods.

[0449] The present disclosure encompasses various embodiments, including not only method embodiments, but also other embodiments such as apparatus embodiments and embodiments related to non-transitory computer readable storage media. Embodiments may incorporate, individually or in combinations, the features disclosed herein.

[0450] Although this disclosure refers to illustrative embodiments, this is not intended to be construed in a limiting sense. Various modifications and combinations of the illustrative embodiments, as well as other embodiments of the disclosure, will be apparent to persons skilled in the art upon reference to the description.

[0451] Features disclosed herein in the context of any particular embodiments may also or instead be implemented in other embodiments. Method embodiments, for example, may also or instead be implemented in apparatus, system, and / or computer program product embodiments. In addition, although embodiments are described primarily in the context of methods and apparatus, other implementations are also contemplated, as instructions stored on one or more non-transitory computer-readable media, for example. Such media could store programming or instructions to perform any of various methods consistent with the present disclosure.

[0452] Although the present disclosure describes methods and processes with steps in a certain order, one or more steps of the methods and processes may be omitted or altered as appropriate. One or more steps may take place in an order other than that in which they are described, as appropriate.

[0453] Note that the expression “at least one of A or B” , as used herein, is interchangeable with the expression “A and / or B” . It refers to a list in which you may select A or B or both A and B. Similarly, “at least one of A, B, or  C” , as used herein, is interchangeable with “A and / or B and / or C” or “A, B, and / or C” . It refers to a list in which you may select: A or B or C, or both A and B, or both A and C, or both B and C, or all of A, B and C. The same principle applies for longer lists having a same format.

[0454] Although the present disclosure is described, at least in part, in terms of methods, a person of ordinary skill in the art will understand that the present disclosure is also directed to the various components for performing at least some of the aspects and features of the described methods, be it by way of hardware components, software or any combination of the two. Accordingly, the technical solution of the present disclosure may be embodied in the form of a software product. A suitable software product may be stored in a pre-recorded storage device or other similar non-volatile or non-transitory computer readable medium, including DVDs, CD-ROMs, USB flash disk, a removable hard disk, or other storage media, for example. The software product includes instructions tangibly stored thereon that enable a processing device (e.g., a personal computer, a server, or a network device) to execute examples of the methods disclosed herein. The machine-executable instructions may be in the form of code sequences, configuration information, or other data, which, when executed, cause a machine (e.g., a processor or other processing device) to perform steps in a method according to examples of the present disclosure.

[0455] The present disclosure may be embodied in other specific forms without departing from the subject matter of the claims. The described example embodiments are to be considered in all respects as being only illustrative and not restrictive. Selected features from one or more of the above-described embodiments may be combined to create alternative embodiments not explicitly described, features suitable for such combinations being understood within the scope of this disclosure.

[0456] All values and sub-ranges within disclosed ranges are also disclosed. Also, although the systems, devices and processes disclosed and shown herein may include a specific number of elements / components, the systems, devices and assemblies could be modified to include additional or fewer of such elements / components. For example, although any of the elements / components disclosed may be referenced as being singular, the embodiments disclosed herein could be modified to include a plurality of such elements / components. The subject matter described herein intends to cover and embrace all suitable changes in technology.

[0457] Although embodiments have been described above with reference to the accompanying drawings, those of skill in the art will appreciate that variations and modifications may be made without departing from the scope thereof as defined by the appended claims.

[0458] Acronyms, Abbreviations, and Initialisms

Claims

1.A method, comprising:obtaining a first bit sequence;obtaining, according to length information of the first bit sequence, a size of a buffer;writing the first bit sequence into the buffer according to at least one writing method, wherein the at least one writing method is determined according to a rate matching scheme and the size of the buffer.2.The method according to claim 1, wherein the obtaining the first bit sequence comprises:encoding information bits by using an encoding method to obtain the first bit sequence.3.The method according to claim 1 or 2, wherein the obtaining, according to the length information of the first bit sequence, the size of the buffer comprises:obtaining, according to a mother code length of the first bit sequence, the size of the buffer.4.The method according to any one of claims 1 to 3, wherein the size of the buffer is a multiple of a mother code length of the first bit sequence, wherein the multiple is greater than 1.5.The method according to any one of claims 1 to 3, wherein the size of the buffer is smaller than a mother code length of the first bit sequence.6.The method according to any one of claims 1 to 3 or 5, wherein the size of the buffer is obtained according to a first ratio by which the size of the buffer is shorter than a mother code length of the first bit sequence.7.The method according to any one of claims 1 to 3, wherein the size of the buffer is obtained according to a multiple of a first length shorter than a mother code length of the first bit sequence, wherein the multiple is an integer larger than 1.8.The method according to claim 7, wherein the first length is obtained according to the mother code length and a first ratio by which the first length is shorter than the mother code length.9.The method according to claim 6 or 8, wherein the first ratio is based on the rate matching scheme.10.The method according to any one of claims 6, 8 or 9, wherein the first ratio is based on at least one of a shortening-related ratio or a puncturing-related ratio.11.The method according to any one of claims 1 to 3, wherein the size of the buffer is larger than a mother code length of the first bit sequence.12.The method according to any one of claims 1 to 3 or 11, wherein the size of the buffer is obtained according to a second ratio by which the size of the buffer is longer than a mother code length of the first bit sequence.13.The method according to any one of claims 1 to 3, wherein the size of the buffer is obtained according to a multiple of a second length longer than a mother code length of the first bit sequence, wherein the multiple is an integer larger than 1.14.The method according to claim 13, wherein the second length is obtained according to the mother code length and a second ratio by which the second length is longer than the mother code length.15.The method according to claim 12 or 14, wherein the second ratio is based on the rate matching scheme.16.The method according to any one of claims 12, 14 or 15, wherein the second ratio is based on a repetition-related ratio.17.The method according to any one of claims 1 to 3, wherein the size of the buffer is obtained according to a third ratio by which the size of the buffer is differentiated from a mother code length of the first bit sequence, wherein the third ratio is based on two or more of: a shortening-related ratio, a puncturing-related ratio, or a repetition-related ration.18.The method according to claim 10 or 17, wherein the shortening-related ratio is obtained based on a ratio of a number of shortened bits to the mother code length, wherein the number of shortened bits is an integer greater than 1, or based on a ratio of a number of bits of a subset of shortened bits to the mother code length, wherein the number of bits of the subset of shortened bits is an integer greater than 1.19.The method according to claim 10 or 17, wherein the puncturing-related ratio is obtained based on a ratio of a number of punctured bits to the mother code length, wherein the number of punctured bits is an integer greater than 1, or based on a ratio of a number of bits of a subset of punctured bits to the mother code length, wherein the number of bits of the subset of punctured bits is an integer greater than 1.20.The method according to claim 16 or 17, wherein the repetition-related ratio is obtained based on a ratio of a number of repeated bits to the mother code length, wherein the number of repeated bits is an integer greater than 1, or based on a ratio of a number of bits of a subset of repeated bits to the mother code length, wherein the number of bits of the subset of repeated bits is an integer greater than 1.21.The method according to any one of claims 1 to 3, wherein the size of the buffer equals to a difference between the mother code length and a shortened length; orthe size of the buffer equals to a multiple of a difference between the mother code length and a shortened length.22.The method according to any one of claims 1 to 3, wherein the size of the buffer equals to a sum of a first difference and a repetition length; orthe size of the buffer equals to a multiple of a sum of a first difference and a repetition length;wherein the first difference is a difference between the mother code length and a shortened length.23.The method according to claim 1 or 2, wherein the obtaining, according to the length information of the first bit sequence, the size of the buffer comprises:determining, according to a rate matching output length, the size of the buffer.24.The method according to any one of claims 1, 2 or 23, wherein the size of the buffer is equal to a rate matching output length.25.The method according to any one of claims 1, 2 or 23, wherein the size of the buffer is obtained according to a multiple of a rate matching output length, wherein the multiple is an integer larger than 1.26.The method according to any one of claims 1, 2 or 23, wherein the size of the buffer is obtained according to a rate matching output length and a third length which is related to the rate matching scheme.27.The method according to any one of claims 1, 2 or 23, wherein the size of the buffer is obtained according to a multiple of a fourth length, wherein the fourth length is obtained according to the rate matching length and a third length which is related to the rate matching scheme.28.The method according to claim 26 or 27, wherein the third length is based on at least one of: a punctured length, a shortened length, or a repetition length.29.The method according to claim 27, wherein the fourth length equals to a sum of the rate matching output length and a punctured length; orthe fourth length equals to a multiple of a sum of the rate matching output length and a punctured length.30.The method according to claim 27, wherein the fourth length equals to a sum of the rate matching output length, a punctured length and a repetition length;the fourth length equals to a multiple of a sum of the rate matching output length, a punctured length and a repetition length.31.The method according to claim 4, 7, 13 or 27, wherein the multiple is a power of 2.32.The method according to any one of claims 23 to 28, wherein the rate matching output length is based on a length of a specific redundancy version.33.The method according to any one of claims 1 to 32, wherein the writing the first bit sequence into the buffer  according to at least one writing method comprises:determining, for each code bit of the first bit sequence and according to one or more of the at least one writing method, whether to skip the respective code bit or repeat the respective code bit to obtain a second bit sequence;writing the second bit sequence into the buffer.34.The method according to claim 33, wherein the rate matching scheme comprises shortening, and the at least one writing method comprises: skipping each shortened code bit.35.The method according to claim 33, wherein the rate matching scheme comprises shortening, and the at least one writing method comprises: skipping one or more of shorten code bits, wherein the one or more of shorten code bits belong to a preset transmission or a preset redundancy version.36.The method according to any one of claims 33 to 35, wherein the rate matching scheme comprises puncturing, and the at least one writing method comprises: skipping each punctured code bit.37.The method according to any one of claims 33 to 35, wherein the rate matching scheme comprises puncturing, and the at least one writing method comprises: skipping one or more of punctured code bits, wherein the one or more of punctured code bits belong to a preset transmission or a preset redundancy version.38.The method according to any one of claims 33 to 37, wherein when low-density parity check (LDPC) coding is used, the at least one writing method comprises skipping one or more of punctured code bits, wherein the one or more of punctured code bits comprise one or more systematic bits, or one or more parity bits.39.The method according to claim 38, wherein the one or more parity bits comprise one or more parity bits for high-rate LDPC code with a highest column degree in a base graph.40.The method according to claim 38, wherein the one or more parity bits comprise one or more core parity bits for LDPC code.41.The method according to claim 40, wherein the one or more preset parity bits comprise one or more core parity bits corresponding to one or more columns with a highest degree in a base graph.42.The method according to any one of claims 33 to 37, wherein when polar coding is used, the at least one writing method comprises skipping one or more of punctured code bits, wherein the one or more of punctured code bits comprise first one or more code bits in each length-power-of-2 block in the first bit sequence; wherein the number of the one or more code bits is determined according to a rate matching output sequence length.43.The method according to claim 33, wherein the rate matching scheme comprises repetition, and the at least one writing method comprises: repeating one or more code bits.44.The method according to claim 43, wherein when LDPC coding is used, the one or more repeated code bits comprise one or more of parity bits.45.The method according to claim 44, wherein the one or more parity bits comprise one or more extended parity bits corresponding to one or more degree-1 columns in a base graph.46.The method according to claim 44, wherein the one or more parity bits comprise one or more core parity bits for LDPC code.47.The method according to claim 46, wherein the one or more core parity bits comprise one or more core bits corresponding to one or more columns with a lowest degree in a base graph.48.The method according to claim 43, wherein when polar coding is used, the one or more repeated code bits comprise first or last one or more code bits in each length-power-of-2 block in the first bit sequence.49.The method according to claim 48, wherein a number of code bits of the one or more repeated code bits is pre-defined.50.The method according to any one of claims 43 to 49, wherein the one or more repeated code bits are bit-by-bit repeated or block-by-block repeated.51.The method according to claim 2, wherein the encoding method comprises a polar coding method or a LDPC coding method.52.An apparatus, comprising:an obtaining module, configured to obtain a first bit sequence; anda processing module, configured to obtain a size of a buffer according to length information of the first bit sequence; and write the first bit sequence into the buffer according to at least one writing method, wherein the at least one writing method is determined according to a rate matching scheme and the size of the buffer.53.The apparatus according to claim 52, wherein the obtaining module is configured to:encode information bits by using an encoding method to obtain the first bit sequence.54.The apparatus according to claim 52 or 53, wherein the processing module is configured to:obtain the size of the buffer according to a mother code length of the first bit sequence.55.The apparatus according to any one of claims 52 to 54, wherein the size of the buffer is a multiple of a mother code length of the first bit sequence, wherein the multiple is greater than 1.56.The apparatus according to any one of claims 52 to 54, wherein the size of the buffer is smaller than a mother code length of the first bit sequence.57.The apparatus according to any one of claims 52 to 54 or 56, wherein the size of the buffer is obtained according to a first ratio by which the size of the buffer is shorter than a mother code length of the first bit sequence.58.The apparatus according to any one of claims 52 to 54, wherein the size of the buffer is obtained according to a multiple of a first length shorter than a mother code length of the first bit sequence, wherein the multiple is an integer larger than 1.59.The apparatus according to claim 58, wherein the first length is obtained according to the mother code length and a first ratio by which the first length is shorter than the mother code length.60.The apparatus according to claim 57 or 59, wherein the first ratio is based on the rate matching scheme.61.The apparatus according to any one of claims 57, 59 or 60, wherein the first ratio is based on at least one of a shortening-related ratio or a puncturing-related ratio.62.The apparatus according to any one of claims 52 to 54, wherein the size of the buffer is larger than a mother code length of the first bit sequence.63.The apparatus according to any one of claims 52 to 54 or 62, wherein the size of the buffer is obtained according to a second ratio by which the size of the buffer is longer than a mother code length of the first bit sequence.64.The apparatus according to any one of claims 52 to 54, wherein the size of the buffer is obtained according to a multiple of a second length longer than a mother code length of the first bit sequence, wherein the multiple is an integer larger than 1.65.The apparatus according to claim 64, wherein the second length is obtained according to the mother code length and a second ratio by which the second length is longer than the mother code length.66.The apparatus according to claim 63 or 65, wherein the second ratio is based on the rate matching scheme.67.The apparatus according to any one of claims 63, 65 or 66, wherein the second ratio is based on a repetition-related ratio.68.The apparatus according to any one of claims 52 to 54, wherein the size of the buffer is obtained according to a third ratio by which the size of the buffer is differentiated from a mother code length of the first bit sequence, wherein the third ratio is based on two or more of: a shortening-related ratio, a puncturing-related ratio, or a repetition-related ration.69.The apparatus according to claim 61 or 68, wherein the shortening-related ratio is obtained based on a ratio of a number of shortened bits to the mother code length, wherein the number of shortened bits is an integer greater than 1, or based on a ratio of a number of bits of a subset of shortened bits to the mother code length, wherein the  number of bits of the subset of shortened bits is an integer greater than 1.70.The apparatus according to claim 61 or 68, wherein the puncturing-related ratio is obtained based on a ratio of a number of punctured bits to the mother code length, wherein the number of punctured bits is an integer greater than 1, or based on a ratio of a number of bits of a subset of punctured bits to the mother code length, wherein the number of bits of the subset of punctured bits is an integer greater than 1.71.The apparatus according to claim 67 or 68, wherein the repetition-related ratio is obtained based on a ratio of a number of repeated bits to the mother code length, wherein the number of repeated bits is an integer greater than 1, or based on a ratio of a number of bits of a subset of repeated bits to the mother code length, wherein the number of bits of the subset of repeated bits is an integer greater than 1.72.The apparatus according to any one of claims 52 to 54, wherein the size of the buffer equals to a difference between the mother code length and a shortened length; orthe size of the buffer equals to a multiple of a difference between the mother code length and a shortened length.73.The apparatus according to any one of claims 52 to 54, wherein the size of the buffer equals to a sum of a first difference and a repetition length; orthe size of the buffer equals to a multiple of a sum of a first difference and a repetition length,wherein the first difference is a difference between the mother code length and a shortened length.74.The apparatus according to claim 52 or 53, wherein the processing module is configured to:determine the size of the buffer according to a rate matching output length.75.The apparatus according to any one of claims 52, 53 or 74, wherein the size of the buffer is equal to a rate matching output length.76.The apparatus according to any one of claims 52, 53 or 74, wherein the size of the buffer is obtained according to a multiple of a rate matching output length, wherein the multiple is an integer larger than 1.77.The apparatus according to any one of claims 52, 53 or 74, wherein the size of the buffer is obtained according to a rate matching output length and a third length which is related to the rate matching scheme.78.The apparatus according to any one of claims 52, 53 or 74, wherein the size of the buffer is obtained according to a multiple of a fourth length, wherein the fourth length is obtained according to the rate matching length and a third length which is related to the rate matching scheme.79.The apparatus according to claim 77 or 78, wherein the third length is based on at least one of: a punctured length, a shortened length, or a repetition length.80.The apparatus according to claim 78, wherein the fourth length equals to a sum of the rate matching output length and a punctured length; orthe fourth length equals to a multiple of a sum of the rate matching output length and a punctured length.81.The apparatus according to claim 78, wherein the fourth length equals to a sum of the rate matching output length, a punctured length and a repetition length; orthe fourth length equals to a multiple of a sum of the rate matching output length, a punctured length and a repetition length.82.The apparatus according to any one of claim 55, 61, 64 or 78, wherein the multiple is a power of 2.83.The apparatus according to any one of claims 74 to 79, wherein the rate matching output length is based on a length of a specific redundancy version.84.The apparatus according to any one of claims 52 to 83, wherein the writing the first bit sequence into the buffer according to at least one writing method comprises:determining, for each code bit of the first bit sequence and according to one or more of the at least one writing method, whether to skip the respective code bit or repeat the respective code bit to obtain a second bit sequence;writing the second bit sequence into the buffer.85.The apparatus according to claim 84, wherein the rate matching scheme comprises shortening, and the at least one writing method comprises: skipping each shortened code bit.86.The apparatus according to claim 84, wherein the rate matching scheme comprises shortening, and the at least one writing method comprises: skipping one or more of shorten code bits, wherein the one or more of shorten code bits belong to a preset transmission or a preset redundancy version.87.The apparatus according to any one of claims 84 to 86, wherein the rate matching scheme comprises puncturing, and the at least one writing method comprises: skipping each punctured code bit.88.The apparatus according to any one of claims 84 to 86, wherein the rate matching scheme comprises puncturing, and the at least one writing method comprises: skipping one or more of punctured code bits, wherein the one or more of punctured code bits belong to a preset transmission or a preset redundancy version.89.The apparatus according to any one of claims 85 to 88, wherein when low-density parity check (LDPC) coding is used, the at least one writing method comprises skipping one or more of punctured code bits, wherein the one or more of punctured code bits comprise one or more systematic bits, or one or more parity bits.90.The apparatus according to claim 89, wherein the one or more parity bits comprise one or more parity bits  for high-rate LDPC code with a highest column degree in a base graph.91.The apparatus according to claim 89, wherein the one or more parity bits comprise one or more core parity bits for LDPC code.92.The apparatus according to claim 91, wherein the one or more preset parity bits comprise one or more core parity bits corresponding to one or more columns with a highest degree in a base graph.93.The apparatus according to any one of claims 84 to 88, wherein when polar coding is used, the at least one writing method comprises skipping one or more of punctured code bits, wherein the one or more of punctured code bits comprise first one or more code bits in each length-power-of-2 block in the first bit sequence; wherein the number of the one or more code bits is determined according to a rate matching output sequence length.94.The apparatus according to claim 84, wherein the rate matching scheme comprises repetition, and the at least one writing method comprises: repeating one or more code bits.95.The apparatus according to claim 94, wherein when LDPC coding is used, the one or more repeated code bits comprise one or more of parity bits.96.The apparatus according to claim 95, wherein the one or more parity bits comprise one or more extended parity bits corresponding to one or more degree-1 columns in a base graph.97.The apparatus according to claim 95, wherein the one or more parity bits comprise one or more core parity bits for LDPC code.98.The apparatus according to claim 97, wherein the one or more core parity bits comprise one or more core bits corresponding to one or more columns with a lowest degree in a base graph.99.The apparatus according to claim 94, wherein when polar coding is used, the one or more repeated code bits comprise first or last one or more code bits in each length-power-of-2 block in the first bit sequence.100.The apparatus according to claim 99, wherein a number of code bits of the one or more repeated code bits is pre-defined.101.The apparatus according to any one of claims 94 to 100, wherein the one or more repeated code bits are bit-by-bit repeated or block-by-block repeated.102.The apparatus according to claim 101, wherein the encoding method comprises a polar coding method or a LDPC coding method.103.An apparatus, comprising a processing circuitry for executing the method according to any one of claims 1 to 51.104.An encoder, comprising the apparatus according to any one of claims 52 to 102 or the apparatus according to claim 103.105.A computer-readable storage medium storing computer execution instructions which, when executed by a processor, cause the processor to execute the method according to any one of claims 1 to 51.106.A computer program product including computer execution instructions which, when executed by a processor, cause the processor to execute the method according to any one of claims 1 to 51.

Citation Information

Patent Citations

  • Low density parity check (LDPC) circular buffer rate matching

    CN110249538A

  • Rate matching scheme for polar codes

    CN116805895A

  • Method and apparatus for rate-matching of polar codes

    US20180278269A1

  • Sub-block wise interleaving for polar coding systems, procedures, and signaling

    US20200099471A1

  • Method, communication device, processing device, and storage medium for performing channel encoding, and method and communication device for performing channel decoding

    WO2022260469A1