Methods, apparatus, and systems of code bit selection for an error correction code

By defining redundancy versions and performing bit selection based on code type, the method addresses the challenge of fine-grained flexibility and low complexity in channel coding, achieving stable performance and effective error correction across varying channel conditions.

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

Patent Information

Application Number
PCT/CN2024/079033
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-12-11
Filing Date
2024-02-28
Publication Date
2025-06-19

AI Technical Summary

Technical Problem

Existing channel coding schemes struggle to provide fine-grained flexibility in code length and rate while maintaining low implementation complexity and achieving good error correction performance across varying channel conditions.

Method used

The method involves defining redundancy versions and performing bit selection for each redundancy version based on the code type, supporting incremental redundancy HARQ retransmissions for both LDPC and polar codes, and determining starting and ending positions in the codeword for each redundancy version and transmission.

Benefits of technology

This approach achieves stable performance across a wide range of code lengths and rates, supports multiple transmissions and retransmissions, and simplifies implementation complexity while maintaining effective error correction capabilities.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024079033_19062025_PF_FP_ABST
    Figure CN2024079033_19062025_PF_FP_ABST
Patent Text Reader

Abstract

The present disclosure encompasses methods, apparatus, systems, and other embodiments related to code bit selection for error correction codes. Coded bits obtained from encoding input bits by a code are transmitted in an initial transmission, and a redundancy version that includes bits associated with the input bits or the coded bits of the initial transmission are transmitted in one or more further transmissions. A redundancy version may be one of a number of redundancy versions determined for the code, and the redundancy versions and bits of each of the redundancy versions may be determined for the code based on a parameter of the code, such as one or more of: code type, code length, block length associated with the code, or application scenario. In some embodiments there are multiple transmissions for a redundancy version, and accordingly respective portions of a redundancy version may be transmitted in multiple transmissions.
Need to check novelty before this filing date? Find Prior Art

Description

Methods, Apparatus, and Systems of Code Bit Selection for an Error Correction Code

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] The present application is related to, and claims priority to, United States provisional patent application Serial No. 63 / 608,402, entitled “METHODS, APPARATUS, AND SYSTEM OF CODE BIT SELECTION FOR AN ERROR CORRECTION CODE” , filed on December 11, 2023, the entire contents of which are hereby incorporated by reference.TECHNICAL FIELD

[0003] The present application relates to coding, and in particular to error correction codes and selection of code bits for such codes.BACKGROUND

[0004] 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.

[0005] 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.

[0006] 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.SUMMARY

[0007] Some embodiments of the present disclosure include methods to select code bits, for transmission for example. Disclosed methods may also support IR-HARQ retransmission for both LDPC and polar codes. Some embodiments of the present disclosure may include the following objectives: to obtain a stable performance under a wide range of code lengths and rates; to support multiple transmissions and retransmissions, for example, with multiple redundancy versions.

[0008] Methods in accordance with embodiments of the present disclosure may include one or more of the following features: methods to define redundancy versions and (re) transmissions; methods to select code bits from a  codeword for each redundancy version and each transmission; methods to determine the starting positions and ending positions in a codeword for each redundancy version and each transmission.

[0009] 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.

[0010] Some embodiments of the present disclosure include methods to define redundancy versions (RVs) and perform bit selection for each RV, according to the code type. The definition of RV, especially the code bit selection methods, is different for different code types because it is decided by the coding structure of that particular code type.

[0011] In some applications, self-decodability is also a desirable feature. The ways to provide self-decodability is also different for different code types. In practice, several starting positions and / or ending positions need to be defined for each code type too. It is technically challenging to design a unified multi-RV and IR-HARQ function for multiple code types.

[0012] According to an aspect of the present disclosure, a method involves transmitting, in an initial transmission, coded bits obtained from encoding input bits by a code; and transmitting, in a further transmission, a redundancy version that includes bits associated with the input bits or the coded bits of the initial transmission.

[0013] Another method disclosed herein involves receiving, in a further transmission subsequent to an initial transmission that includes coded bits obtained from encoding input bits by a code, a redundancy version that includes bits associated with the input bits or the coded bits of the initial transmission. Such a method may also involve decoding the further transmission.

[0014] In these method examples, and others herein, the redundancy version is one of a number of redundancy versions determined for the code, and the redundancy versions and bits of each of the redundancy versions are determined for the code based on a parameter of the code.

[0015] According to another example herein, a method may involve transmitting, in an initial transmission, coded bits obtained from encoding input bits by a code; and transmitting, in multiple further transmissions, respective portions of a redundancy version.

[0016] Yet another method disclosed herein involves receiving, in multiple further transmissions subsequent to an initial transmission that includes coded bits obtained from encoding input bits by a code, respective portions of a redundancy version; and decoding the respective portions of the redundancy version.

[0017] In these method examples, and others herein, the redundancy version includes bits associated with the input bits or the coded bits of the initial transmission.

[0018] Apparatus embodiments are also disclosed.

[0019] An apparatus may include an encoder for encoding input bits by a code, and a transmitter, coupled to the encoder, for transmitting, in an initial transmission, coded bits obtained from encoding the input bits, and for transmitting, in a further transmission, a redundancy version that includes bits associated with the input bits or the coded bits of the initial transmission.

[0020] Another example provided herein relates to an apparatus that includes a receiver for receiving, in a further transmission subsequent to an initial transmission that includes coded bits obtained from encoding input bits by a code, a redundancy version that includes bits associated with the input bits or the coded bits of the initial transmission. Such an apparatus may also include a decoder, coupled to the receiver, for decoding the further transmission.

[0021] In these apparatus examples, and others herein, the redundancy version is one of multiple redundancy versions determined for the code. The redundancy versions and bits of each of the redundancy versions are determined for the code based on a parameter of the code.

[0022] Another example provided herein relates to an apparatus that includes an encoder for encoding input bits by a code; and a transmitter, coupled to the encoder, for transmitting, in an initial transmission, coded bits obtained from encoding the input bits by the code, and for transmitting, in multiple further transmissions, respective portions of a redundancy version.

[0023] Yet another example herein relates to an apparatus that includes: a receiver for receiving, in multiple further transmissions subsequent to an initial transmission that comprises coded bits obtained from encoding input bits by a code, respective portions of a redundancy version; and a decoder, coupled to the receiver, for decoding the respective portions of the redundancy version.

[0024] In these apparatus examples, and others herein, the redundancy version includes bits associated with the input bits or the coded bits of the initial transmission.

[0025] In other apparatus embodiments, an apparatus may include a processor configured to cause the apparatus to perform any of the methods as disclosed herein.

[0026] An apparatus may include a processor and a non-transitory computer readable storage medium that is coupled to the processor and stores programming for execution by the processor.

[0027] A storage medium need not necessarily or only be implemented in or in conjunction with such an apparatus. A computer program product, for example, may be or include a non-transitory computer readable medium storing programming for execution by a processor.

[0028] Programming stored by a computer readable storage medium may include instructions to, or to cause a processor to, perform, implement, support, or enable any of the methods disclosed herein.

[0029] A system is also disclosed, and may include a first communication device and a second communication device.

[0030] The first communication device may be configured for transmitting, in an initial transmission, coded bits obtained from encoding input bits by a code, and for transmitting, in a further transmission, a redundancy version that includes bits associated with the input bits or the coded bits of the initial transmission. The redundancy version may be one of multiple redundancy versions determined for the code, and the redundancy versions and bits of each of the redundancy versions may be determined for the code based on a parameter of the code. In such a system, the second communication device may be configured for receiving and decoding the further transmission.

[0031] According to another system example, the first communication device may be configured for transmitting, in an initial transmission, coded bits obtained from encoding input bits by the code, and for transmitting, in multiple further transmissions, respective portions of a redundancy version. The redundancy version includes bits associated with the input bits or the coded bits of the initial transmission. The second communication device may be configured for receiving and decoding the respective portions of the redundancy version.

[0032] The present disclosure encompasses these and other aspects or embodiments.BRIEF DESCRIPTION OF THE DRAWINGS

[0033] For a more complete understanding of the present embodiments, and the advantages thereof, reference is now made, by way of example, to the following descriptions taken in conjunction with the accompanying drawings.

[0034] Fig. 1 is a simplified schematic illustration of a communication system.

[0035] Fig. 2 is a block diagram illustration of the example communication system in Fig. 1.

[0036] Fig. 3 illustrates an example electronic device and examples of base stations.

[0037] Fig. 4 illustrates units or modules in a device.

[0038] Fig. 5 is a trellis graph illustrating an example of a polar code.

[0039] Fig. 6A illustrates puncturing and shortening of an interleaving pattern.

[0040] Fig. 6B illustrates puncturing and shortening with a cyclic buffer.

[0041] Fig. 7 illustrates retransmissions to which incremental freezing may be applied.

[0042] Fig. 8A illustrates polar encoding of an example initial transmission and an example retransmission.

[0043] Fig. 8B illustrates a polar transform matrix representation of three transmissions with effective code lengths M1=8, M2=12, M3=16.

[0044] Fig. 9 illustrates an example LDPC code parity check matrix.

[0045] Fig. 10 illustrates more general example methods according to embodiments.

[0046] Fig. 11 illustrates an apparatus according to an embodiment.DETAILED DESCRIPTION

[0047] For illustrative purposes, specific example embodiments will now be explained in greater detail in conjunction with the figures.

[0048] The embodiments set forth herein represent information sufficient to practice the claimed subject matter and illustrate ways of practicing such subject matter. Upon reading the following description in light of the accompanying figures, those of skill in the art will understand the concepts of the claimed subject matter and will recognize applications of these concepts not particularly addressed herein. It should be understood that these concepts and applications fall within the scope of the disclosure and the accompanying claims.

[0049] 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 (for example sixth generation (6G) or later) radio access network, or a legacy (for example 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.

[0050] 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, and so on. 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, and so on) . 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.

[0051] 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.

[0052] 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.

[0053] 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.

[0054] 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.

[0055] 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.

[0056] Fig. 3 illustrates another example of an ED 110 and a base station 170a, 170b and / or 172. The ED 110 is used to connect persons, objects, machines, and so on. 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, and so on.

[0057] 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, and so on) , an industrial device, or an apparatus in (for example 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 (that is, established, activated, or enabled) , turned-off (that is, released, deactivated, or disabled) and / or configured in response to one of more of: connection availability and connection necessity.

[0058] 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, for example 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.

[0059] 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) (for example, 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.

[0060] 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, and so on.

[0061] 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 (for example 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, for example beam angle information (BAI) , received from the T-TRP 170. In some embodiments, the processor 210 may perform operations relating to network access (for example initial access) and / or downlink synchronization, such as operations relating to detecting a synchronization sequence, decoding and obtaining the system information, and so on. In some embodiments, the processor 210 may perform channel estimation, for example using a reference signal received from the NT-TRP 172 and / or from the T-TRP 170.

[0062] 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.

[0063] 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 (for example 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.

[0064] 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 (for example a communication module, a modem, or a chip) in the forgoing devices.

[0065] 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, for example through the use of coordinated multipoint transmissions.

[0066] 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 (for example 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 (for example initial access) and / or downlink synchronization, such as generating the content of synchronization signal blocks (SSBs) , generating the system information, and so on. In some embodiments, the processor 260 also generates an indication of beam direction, for example 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, and so on. In some embodiments, the processor 260 may generate signaling, for example 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, for example 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 (for example, higher than physical layer) packet transmitted in a physical layer data channel, for example 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.

[0067] 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 (for example, “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.

[0068] 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.

[0069] 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, for example 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 (for example, a GPU or AI accelerator) , or an ASIC.

[0070] 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 (for example 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 (for example BAI) received from the T-TRP 170. In some embodiments, the processor 276 may generate signaling, for example 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.

[0071] 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.

[0072] 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, for example 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 (for example, 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, for example through coordinated multipoint transmissions.

[0073] 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.

[0074] 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.

[0075] 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.

[0076] 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.

[0077] 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.

[0078] 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. A polarization phenomenon occurs under successive cancellation (SC) or SC-based decoding, which has a relatively low complexity.

[0079] Low-density parity-check (LDPC) codes are capacity-approaching codes. LDPC codes may be defined by a parity-check matrix, which typically has far more zeros than ones ─ in other words, having low density. By properly designing the positions of the ones in the matrix, the decoding performance can be improved. Although LDPC codes can theoretically be viewed as a type of random code, certain structures, whether conceptual or physical, can facilitate the hardware implementation of LDPC encoders and decoders. A “Quasi-cyclic” (QC) structure is an example structure that may improve performance and / or implementation complexity. A QC-LDPC scheme first defines a smaller base matrix or base graph (BG) , and then performs a “lifting” operation that replaces the ones in the base matrix or graph with a cyclic shifted version of an identity matrix.

[0080] 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.

[0081] 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.

[0082] 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.

[0083] 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.

[0084] 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.

[0085] The transmitted code length M may not always be the power of 2, that is, 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) .

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

[0087] In Fig. 5, the unshaded circles at the left represent the information set I= {u4, u6, u7, u8} , and the shaded circles represent the frozen set F= {u1, u2, u3, u5} .

[0088] The input vector u at the left in Fig. 5 and the code vector x at the right in Fig. 5 each include a number of bit positions. The bit positions in the input vector are indexed by respective bit indices, and bit values are placed on or at those bit indices or bit positions for encoding. These bit indices or bit positions are also sometimes referred to as bit channels or subchannels. Placing bit values on bit indices as disclosed herein may also be referred to in other ways, such as placing bits or bit values on or at bit indices, bit positions, bit channels, or subchannels; or assigning bit values or bits to bit indices, bit positions, bit channels, or subchannels. Other terminology may be used to express how bit values or bits are provided as inputs to encoding.

[0089] In this way, a polar code may be considered as providing or comprising bit indices, bit positions, bit channels, or subchannels for bit values. Those bit indices, bit positions, bit channels, or subchannels are not necessarily only for bits that are to be encoded. For example, the u vector elements u1, . . . uN are also referenced in decoding, and therefore bit values that are decoded may similarly be associated with bit indices, bit positions, bit channels, or subchannels.

[0090] On the right side in Fig. 5, the code vector x also includes a number of elements that are in or at bit positions or bit indices. A bit value on the i-th bit index in the input vector u has some effect on multiple code bits in the code vector x, but the bit value on the i-th bit index in the input vector u is the primary contributor to the value of the code bit on the corresponding i-th bit index in the code vector x. In this sense, for a polar code, input vector bit indices or bit positions may be considered to correspond to, or be associated with or related to, code vector bit indices or bit positions. This is the case for polar codes, and there may be different input  / code bit correspondence, relationships, or associations for other types of codes.

[0091] Regarding encoding, the process of encoding may be expressed in any of various ways. For example, encoding may be described as encoding bits to obtain encoded bits or to generate encoded bits. The above-referenced encoding process for example, may be expressed as generating or otherwise obtaining an encoding input (the input vector u in this example) that includes bits or bit values for encoding, to obtain or generate a number of encoded bits (the code vector x in this example) .

[0092] The bit values of elements in the input vector u, from an encoding perspective, may be referred to as values or bits to be encoded, or as values or bits for encoding, for example. Blocks of bits or bit values for encoding are also  sometimes referred to as code blocks. The bit values of elements in the code vector x may be referred to as encoded bits, coded bits, or code bits, and a block of such bits may be referred to as a codeword, for example.

[0093] From a decoding perspective, decoding may be referred to as decoding encoded bits, a codeword, or a code, or as decoding, obtaining, or recovering bits or bit values (that were encoded) , from the encoded bits, a codeword, or a code, for example. The bit values of elements in the vector u, in the context of decoding, may be referred to as decoded or recovered bits or bit values.

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

[0095] By convention, the decoding order is the natural order of the polar code bit indices on bit values are placed. Thus, this decoding order is known as “natural order” . Preceding bits in the natural order are always decoded first, before decoding a current bit.

[0096] Successive cancellation list (SCL) is an enhanced decoding algorithm for polar codes, where multiple (for example, 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.

[0097] 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.

[0098] 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.

[0099] 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.

[0100] 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|.

[0101] 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.

[0102] 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, that is, 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 (that is, 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.

[0103] 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.

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

[0105] Repetition, when M>N;

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

[0107] Shortening, when K / M>7 / 16.

[0108] Fig. 6A is a diagram based on a table reproduced from a 3GPP standard specification. The diagram illustrates an example interleaving scheme. 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.

[0109] The “puncturing” and “shortening” labels and arrows illustrate starting points and directions of puncturing and shortening operations, respectively.

[0110] 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. 6B.

[0111] Fig. 6B is a diagram illustrating puncturing and shortening with a cyclic buffer. At 602 in Fig. 6B, code bits of a codeword are illustrated in a vertical column, with punctured and shortened bits as shown. At 604, Fig. 6B illustrates a cyclic buffer, represented by a circle shape, and reading of code bits with no puncturing or shortening. The next two circles illustrate, respectively, cyclic buffers with dashed lines representing puncturing from the beginning of the buffer at 606 and shortening from the end of the buffer at 608.

[0112] 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.

[0113] 1. 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.

[0114] 2. 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.

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

[0116] 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.

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

[0118] 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.

[0119] 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.

[0120] Fig. 8A is a diagram illustrating an example of polar encoding of an initial transmission and a retransmission. In this 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 represented by the first (top) equation.

[0121] 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 is 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 represented by the second (bottom) equation.

[0122] In a second retransmission (not illustrated) , 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.

[0123] From the polar transform matrix point of view, the three transmissions with effective code lengths M1=8, M2=12, M3=16, are shown in Fig. 8B.

[0124] 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.

[0125] In general, a code bit selection scheme may need to specify the following parameters:

[0126] ● How to select code bits for transmission.

[0127] ● Which bits to select for transmission in each redundancy version, and / or (re) transmission.

[0128] ● The starting position and ending positions for each redundancy version (or transmission) .

[0129] As also noted earlier herein, some embodiments of the present disclosure include methods to select code bits for transmission. The methods may also support IR-HARQ retransmission for both LDPC and polar codes. Some embodiments of the present disclosure may include the following objectives:

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

[0131] ● To support multiple transmissions and retransmissions, for example, with multiple redundancy versions.

[0132] Methods in accordance with embodiments of the present disclosure may include one or more of the following features:

[0133] ● Methods to define redundancy versions and (re) transmissions;

[0134] ○ Redundancy versions

[0135] ○ Self-decodable redundancy version

[0136] ○ Multiple transmissions within a redundancy version

[0137] ● Methods to select code bits from a codeword for each redundancy version and each transmission;

[0138] ○ Directly from the codeword.

[0139] ○ From a circular buffer

[0140] ● Methods to determine the starting positions and ending positions in a codeword for each redundancy version and each transmission;

[0141] ○ Starting positions

[0142] ○ Ending positions.

[0143] 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.

[0144] Some embodiments of the present disclosure include methods to define redundancy versions (RVs) and perform bit selection for each RV, according to the code type. Example types of channel coding include: turbo codes, LDPC codes (including spatially-coupled LDPC codes) , polar codes (including polarization-adjusted convolutional codes, or PAC codes) and Reed-Muller codes. In some implementations, multiple types of codes may coexist and certain codes be used according to coding rates, block length (or code length) or application scenarios. Support for multiple RVs and incremental redundancy hybrid ARQ (IR-HARQ) functions would benefit all or multiple coding types. However, even if IR-HARQ as a function can be shared across multiple code types, the definition of RV, especially the code bit selection methods, is different for different code types because it is decided by the coding structure of that particular code type. In some applications, self-decodability is also a desirable feature. The ways to provide self-decodability is also different for different code types. In practice, several starting positions and / or ending positions need to be defined for each code type too. It is technically challenging to design a unified multi-RV and IR-HARQ function for multiple code types.

[0145] Some embodiments of the present disclosure include the following methods:

[0146] ● Methods to define redundancy versions (RVs) and (re) transmissions according to code type

[0147] ○ The definition and determination of redundancy versions depends on the code type.

[0148] ○ The determination of self-decodable redundancy version depends on the code type

[0149] ○ Multiple transmissions within a redundancy version depending on the code type

[0150] ● Methods to select code bits from a codeword for each redundancy version and each transmission

[0151] ○ Directly from the codeword depending on the code type.

[0152] ○ Define a circular buffer or multiple circular buffers depending on the code type.

[0153] ● Methods to determine the starting positions and ending positions in a codeword for each redundancy version and each transmission

[0154] ○ Starting positions are used to define redundancy versions. The determination of starting positions may also depend on the code type.

[0155] ○ Ending positions can also be used to define redundancy versions. The determination of starting positions may also depend on the code type.

[0156] Some embodiments of the present disclosure include methods to define redundancy versions (RVs) and (re) transmissions according to code type.

[0157] ● The definition and determination of redundancy versions depends on the code type.

[0158] ○ Redundancy version can be selected from all the code bits in one mother code word; The code bits to be included in a redundancy version can be incrementally selected with no limitation on the scope within the mother code. That means, when as the transmission length of the RV increases, it may eventually include all the code bits in the mother code. The code type can be LDPC codes, Turbo codes, and polar codes. For example, the code bits are [c0, c1, c2, …, cN-2, cN-1] , where N is the mother code length, and a redundancy version has code bits where E is the length of the redundancy version, and [i0, i1, …, iE-2, iE-1] can take all values in [0, 1, 2, …, N-2, N-1] . In the above, the mother code length N can also be replaced by rate matched mother code length M (or circular buffer size M) .

[0159] ○ Redundancy version can be selected from only a subset of the code bits in one mother code word; The subset includes a plurality of code bits that are fewer than all the code bits in the mother code. The code bits to be included in a redundancy version can be incrementally selected with a pre-defined limitation on the scope within the mother code. That means, when as the transmission length of the RV increases, it will not include all the code bits in the mother code. The code type can be polar codes and Reed-Muller codes. For example, the code bits are [c0, c1, c2, …, cN-2, cN-1] , and a redundancy version has code bits  where E is the length of the redundancy version, and [i0, i1, …, iE-2, iE-1] can only take value from a subset in [0, 1, 2, …, N-2, N-1] . In one example, the subset can be [0, 1, …, N 2-2, N / 2-1] , or [N / 2, N / 2+1, …, N-2, N-1] . In another example, the subset can be [0, 1, …, N / 4-2, N / 4-1] , or [N / 4, N / 4+1, …, N / 2-2, N / 2-1] , or [N / 2, N / 2+1, …, 3N / 4-2, 3N / 4-1] , or [3N / 4, 3N / 4+1, …, N-2, N-1] .

[0160] ○ Redundancy version can be a separately encoded code word; Each RV is selected from code bits that are separately encoded from all the information bits. They are not part or all of the code bits in a longer mother code as in the previous two cases. Specifically, each encoding can generate a codeword using a separate codebook, or generator matrix, or parity-check matrix. The code type can be polar codes and Reed-Muller codes. For example, the code bits for the first separately encoded code word are which is used for the first RV, where N0 is the mother code length for the first code word; similarly, the code bits for the second separately encoded code word are  which is used for the second RV, where N1 is the mother code length for the second code word; and so on. The transmitted bits for the first RV are only selected from  and one bit may be selected more than one times as partial repetition; similarly, transmitted bits for the second RV are only selected from and one bit may be selected more than one times as partial repetition. In the above, the mother code length N can also be replaced by rate matched mother code length M (or circular buffer size M) .

[0161] ○ Redundancy version can be part of the code bits obtained from joint encoding several individual code words; Similar to the above case, several codewords are separately encoded from all the information bits. Then, these codewords are further encoded to obtain a longer code. The code bits of each RV are obtained from the longer code, but the code bit selection considers the first step of separate encoding. For example, the code bits are selected within a limited scope with length no larger than the corresponding separately encoded code word in the first step. The code type can be polar codes and Reed-Muller codes. For example, several code words are separately encoded from all the information bits to generate S codewords: c0, c1, …, cS-2, cS-1, and their lengths are N0, N1, …, NS-2, NS-1,  respectively. The longer code is further encoded by c=G× [cS-1, cS-2, …, c1, c0] T, where XT denotes transpose. The code bits are selected from c. Specifically, the code bits for the first RV are selected from the last N0 bits in c, and the code bits for the second RV are selected from the next last N1 bits in c, and the code bits for the third RV are selected from the next last N2 bits in c, and so on.

[0162] ○ As another possible option for a redundancy version that involves further encoding, a redundancy version can be part of the code bits obtained from encoding input bits that were previously encoded to generate several individual code words. Similar to the preceding example, several codewords are separately encoded from subsets of the information bits, and then multiple subsets of the information bits can be combined for encoding to obtain a longer code. The code bits of each RV are obtained from the longer code, and code bit selection may consider the first step of separate encoding. For example, the code bits may be selected within a limited scope with length no larger than the corresponding separately encoded code words in the first step.

[0163] ● The determination of self-decodable redundancy version depends on the code type

[0164] ○ Each redundancy version needs to satisfy certain criteria. In general, the code bits or parity bits from an RV should be generated from all the information bits (or payload bits) , not part of the information bits (or payload bits) .

[0165] ○ If the code type is LDPC codes or turbo codes, a self-decodable redundancy version should contain a sufficient number of systematic bits, for example, the number (or proportion) of systematic bits included in a self-decodable redundancy version must exceed a pre-defined threshold (for example, 3 / 4) . Or, the code bits in a self-decodable redundancy version should either start from a systematic bit or end at a systematic bit.

[0166] ○ The pre-defined threshold of 3 / 4 is an example –other examples include 1 / 4, 1 / 2. A threshold may be standardized or otherwise specified, and determined simulation for example. Whether self-decodability is to be supported could be signaled or otherwise indicated to a communication device, but in some embodiments the threshold is determined from simulation or otherwise known or specified. The options in the preceding example, to start or end at a systematic bit, may also involve a threshold number of systematic bits for self-decodability.

[0167] ○ If the code type is polar codes or Reed-Muller codes, a self-decodable redundancy version should cover a whole subblock with length larger than the entire information block length. That is, if the information block length is K and a subblock length is B, we should specify that B>K in order to have self-decodability. Otherwise if an RV corresponds to a subblock of size B<K, or an RV does not cover a whole subblock with length B>K, then we determine that this is not a self-decodable RV.

[0168] ● Multiple transmissions within a redundancy version depending on the code type

[0169] ○ The redundancy version can be defined such that each redundancy version corresponds to a transmission or retransmission. That is, in each transmission, code bits from a particular RV is selected for transmission; and in a subsequent transmission, we no longer select and transmit bits from the current RV, but move on to select bits from another RV for (re) transmission. We call this “single transmission in an RV” .

[0170] ○ The above defined “single transmission in an RV” can be used for LDPC codes, and turbo codes, and polar codes.

[0171] ○ Alternatively, redundancy version can be defined such that each redundancy version corresponds to multiple transmissions or retransmissions. That is, in each transmission, code bits from a particular RV is selected for transmission; and in a subsequent transmission, we can continue to select and transmit bits from the current RV, without going to select bits from another RV for (re) transmission. We call this “multiple transmissions in an RV” .

[0172] ○ The above defined “multiple transmissions in an RV” can be used for polar codes and Reed-Muller codes.

[0173] Some embodiments of the present disclosure include methods to select code bits from a codeword for each redundancy version and each transmission.

[0174] Code bits for each redundancy version and each transmission may be selected directly from a codeword or from one or more circular buffers.

[0175] Regarding code bit selection directly from the codeword, in an embodiment a code word is divided into several subblocks, and certain subblocks provide code bits for the redundancy versions. For example, a polar code can be divided into power-of-2 subblocks, and each subblock consists of consecutive bits. Each redundancy version can be simply defined by the subblock indices. In other words, the standard will specify an rvid-to-subblock index mapping. For example, for a length-N polar code, four subblocks can be defined: the first subblock [0, 1, …, N / 4-2, N / 4-1] , and the second subblock [N / 4, N / 4+1, …, N / 2-2, N / 2-1] , and the third subblock [N / 2, N / 2+1, …, 3N / 4-2, 3N / 4-1] , and the fourth [3N / 4, 3N / 4+1, …, N-2, N-1] . We may define that the first RV with rvid=0 corresponds to the first and second subblocks, and the second RV with rvid=0 corresponds to the third and fourth subblocks. Alternatively, the subblock-to-RV mapping can be specified in a table. In an example in which a length-N mother polar code is divided into 8 subblocks, the RV definition table looks something like this:

[0176] Table 1: Example RV Definition Table

[0177] In another example two sub-types of polar codes are defined, depending on the mother code length. The first sub-type of polar codes are those with mother code length less than or equal to 1024, and the second sub-type of polar codes are those with mother code length larger than or equal to 2048. The first sub-type of polar codes (N≤1024) are divided into four subblocks, and the second sub-type of polar codes (N≥2048) are divided into eight subblocks. The subblock-to-RV mapping table can be like below.

[0178] Table 2: Example Subblock-to-RV Mapping Table

[0179] In the above, the mother code length N can also be replaced by rate matched mother code length M (or circular buffer size M) .

[0180] The above defined “subblock-based redundancy version definition” can be used for polar codes and Reed-Muller codes.

[0181] Another option for code bit selection is to define a circular buffer or multiple circular buffers depending on the code type.

[0182] The code bits in the mother code can also be written into a circular buffer. In some cases, the code bits are optionally interleaved before being written in the circular buffer. Sometimes, the code bits are written into multiple circular buffers rather than a single circular buffer.

[0183] The choice between using one circular buffer or multiple circular buffers depends on the code type. For turbo codes or LDPC codes, only one circular buffer is defined; for polar codes or Reed-Muller codes, multiple circular buffers are defined. Specifically, the number of circular buffers can be 2 or 4.

[0184] For multiple circular buffers, each circular buffer can contain code bits from a redundancy version, or the corresponding subblocks, according to an aforementioned subblock. For example, the code bits for first RV (rvid=0) are written into the first circular buffer, the code bits for second RV (rvid=1) are written into the second circular buffer; the code bits for third RV (rvid=2) are written into the third circular buffer, the code bits for fourth RV (rvid=3) are written into the fourth circular buffer.

[0185] Multiple circular buffers may be advantageous to simplify management of starting positions. For example, if code bits for each RV are written into different circular buffers, then the starting position for each RV is 0, in its respective buffer.

[0186] Some embodiments of the present disclosure include methods to determine the starting positions and ending positions in a codeword for each redundancy version and each transmission.

[0187] Starting positions are used to define redundancy versions. The determination of starting positions may also depend on the code type.

[0188] The determination of starting positions may also depend on other coding parameters or characteristics, such as code length and / or information block length.

[0189] Starting positions are defined at certain proportion of the code word in the following example. Like in 5G LDPC codes, four redundancy versions are defined using starting positions in the following table, where p1, p2, p3 are three pre-defined proportions, and N1 and N2 are the mother code lengths for the LDPC codes constructed from the two base graphs. In the above, the mother code length N1, N2 can also be replaced by rate matched mother code length M1, M2 (or circular buffer size M1, M2) .

[0190] Table 3: Example of LDPC Code RVs Defined Using Starting Positions

[0191] The above starting position definition is used for LDPC codes or turbo codes.

[0192] Starting positions are defined by the first bit position of certain subblocks in the following examples. The subblock-based RV definition has been introduced above. In practice, we may also use starting position definitions with bit indices, instead of subblock indices, to define each RV. In an example in which two sub-types of polar codes are defined, depending on the mother code length. The first sub-type of polar codes are those with mother code length less than or equal to 1024, and the second sub-type of polar codes are those with mother code length larger than or equal to 2048. The first sub-type of polar codes (N≤1024) has two RVs, and the second sub-type of polar codes (N≥2048) has four RVs. The starting position-to-RV mapping table can be like below.

[0193] Table 4: Example Starting Position-to-RV Mapping Table for Polar Codes

[0194] In the above, the mother code length N can also be replaced by rate matched mother code length M (or circular buffer size M) .

[0195] The above starting position definition is used for polar codes or Reed-Muller codes.

[0196] More generally, the number of RVs and their starting positions may depend on the code length. This may be applied to general channel codes, including polar codes and LDPC codes. Table 5 below provides an example.

[0197] Table 5: Example Starting Position-to-RV Mapping Table for Channel Codes

[0198] In Table 5, 0≤pi<1 are proportions of the codeword before the starting positions. In particular, pi can be 0. Moreover, an operation such as a ceiling, round, floor, or truncation operation can be applied to the values in Table 5, such that the starting position is an integer. Such operations may also or instead be applied in other embodiments, to provide integer starting positions and / or ending positions.

[0199] Table 4 provides an example for polar codes, and Table 5 provides a more general example. For LDPC codes as a further example, the detailed design may be as follows.

[0200] Table 6: Example Starting Position-to-RV Mapping Table for LDPC Codes

[0201] In the above, the n0, n1, n2, n3 are integers, and Z is the lifting size. In particular, n0 can be 0, 1, or 2.

[0202] Ending positions can also be used to define redundancy versions. The determination of ending positions may also depend on the code type.

[0203] Ending positions can be defined at certain positions of the codeword. The ending position means that the code bits beyond that ending position will not be transmitted in this current RV.

[0204] During code bit selection, upon reading the code bit corresponding to the ending position, the transmitter can have two methods in transmitting more bits: either (i) start over to select the first bits in that RV for transmission, or (ii) reversely select the last bits in that RV for transmission.

[0205] In the first method that starts over to select the first bits in that RV for transmission, in an RV that contains code bits that are indexed where iE-1 is the ending position, the transmitter will start over to select for transmission after having selected for transmission. This method can be used for LDPC code or turbo codes.

[0206] In the second method that reversely selects the last bits in that RV for transmission, in an RV that contains code bits that are indexed where iE-1 is the ending position, the transmitter will continue to select  (that is, in reverse order) for transmission after having selected for transmission. This method can be used for polar or Reed-Muller codes.

[0207] In many cases, the transmission length might not be known until a transmission is scheduled, and ending positions may be used together with one of these bit selection methods to obtain a transmitted bit sequence. The first method above provides an example of selection in forward order, starting from a starting position and toward an ending position after the ending position is reached. The second method above provides an example of bit selection in reverse order, starting from an ending position and toward a starting position. Bit selection or bit selection methods may also be referred to as bit read-out or bit read-out methods, where bits are stored in and read out from a circular buffer for example.

[0208] Ending positions are defined at certain segments of the code word. For example, if a codeword can be divided into several segments, we can use the ending position of certain segments to define the end of an RV.

[0209] For example, in LDPC codes, the parity-check matrix (or base graph) is segmented into five areas, shown in Fig. 9. The core submatrix with systematic bits, denoted by A; the core parity submatrix with core parity bits, denoted by B; the extended all-zero submatrix, denoted by C; the extended submatrix with systematic bits, denoted by D; and the raptor-like extended identity submatrix for parity bits, denoted by E. From the code bits’ perspective, all code bits are further divided into three segments whose ending positions can become the ending position of the RVs: the ending position of A, the ending position of B (or the ending position of D) , and the ending position of C (or the ending position of E) .

[0210] The above ending position definition is used for LDPC codes.

[0211] Ending positions are defined at certain subblocks of the code word, and are associated to each RV. For example, if a codeword can be divided into several subblocks, we can use the ending position of certain subblocks to define the end of an RV.

[0212] For example, ending positions are defined by the last bit position of certain subblocks. The subblock-based RV definition has been introduced above. In practice, we may use ending position definitions with bit indices, instead of subblock indices, to define each RV. In an example, two sub-types of polar codes are defined, depending on the mother code length. The first sub-type of polar codes are those with mother code length less than or equal to 1024, and the second sub-type of polar codes are those with mother code length larger than or equal to 2048. The first sub-type of polar codes (N≤1024) has two RVs, and the second sub-type of polar codes (N≥2048) has four RVs. The ending position-to-RV mapping table can be like below.

[0213] Table 7: Example Ending Position-to-RV Mapping Table for Polar Codes

[0214] In the above, the mother code length N can also be replaced by rate matched mother code length M (or circular buffer size M) .

[0215] The number of RVs and ending positions, as described at least above for starting positions, may depend on the code length. This may be applied to general channel codes, including polar codes and LDPC codes. Table 8 below provides an example.

[0216] Table 8: Example Ending Position-to-RV Mapping Table for Channel Codes

[0217] Table 7 provides an example for polar codes, and Table 8 provides a more general example. For LDPC codes as a further example, the detailed design may be as follows.

[0218] Table 9: Example Starting Position-to-RV Mapping Table for LDPC Codes

[0219] In Table 9, nmax may be the total number of columns in the LDPC base graph, or otherwise specified in a standard specification for example.

[0220] In some cases, the starting positions and ending positions can be provided in a single table.

[0221] Ending positions are defined at certain subblocks of the code word, and are associated to multiple transmissions in an RV. For example, if a codeword can be divided into several subblocks, we can use the ending position of certain subblocks to define the end of a transmission, beyond which the aforementioned two methods in transmitting more bits can be used.

[0222] For example, we can define a set of ending positions for polar code with mother code length N. The ending positions can be selected from {N / 2, 5N / 8, 3N / 4, 7N / 8, N} .

[0223] In another example, we can define a set of ending positions for polar code with rate matched mother code length M (or circular buffer size M) . The ending positions can be selected from {M / 2, 5M / 8, 3M / 4, 7M / 8, M} .

[0224] In the above, the ending positions can be used for one RV, but different transmissions.

[0225] The above ending position definition is used for polar codes or Reed-Muller codes.

[0226] Some embodiments of the present disclosure include examples expressed in pseudocode of code bit selection of a particular code.

[0227] In the following pseudocode examples, text entries preceded by “--” are comments.

[0228] Bit selection: one transmission per RV

[0229] The bit sequence y0, y1, y2, …, yM-1 is read out from the circular buffer in the following way for transmission.

[0230] Denote by rvid the redundancy version number for a transmission (rvid = 0, 1, 2, 3, 4…) and the rate matching output sequence length for this transmission. The first transmission always reads out and transmits the first E0 bits in the circular  buffer. A polar retransmission with redundancy version number rvid continues to transmit the next bits unless a self-decodable redundancy version is requested.

[0231] The rate matching output bit sequence ek,  is generated as follows, where:

[0232] Bit selection: multiple transmissions allowed in the transmission of an RV

[0233] The bit sequence y0, y1, y2, …, yM-1 is read out from the circular buffer in the following way for transmission.

[0234] There are two self-decodable redundancy versions for polar codes. Denote by rvid=0, 1 the redundancy version number. Each redundancy version can be transmitted in multiple transmissions, and denote by t=0, 1, 2, 3, …, the transmission number. Denote by the rate matching output sequence length of redundancy version rvid in the t-th transmission. For each retransmission, the transmitter reads out and transmits the next bits in the circular buffer.

[0235] The rate matching output bit sequence ek,  is generated as follows, where:

[0236] The above descriptions mainly determine the following code bit selection parameters:

[0237] ● Several methods for online definition of code bit selection schemes.

[0238] ● The scope within a codeword to be transmitted in a redundancy version, including the intra-CB segmentation information, subblock information, or starting positions and ending positions.

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

[0240] Standard specifications represent one example of how parameters may be pre-defined. RRC and UCI are examples of signaling that may indicate parameters.

[0241] OVERVIEW

[0242] Various aspects of the present disclosure are described above and shown in the drawings by way of example. Fig. 10 illustrates more general example methods according to embodiments. At the left, 1000 in Fig. 10 illustrates operations or features that may be provided or supported at an encoder or transmitter-side device, and at the right, 1050 illustrates operations or features that may be provided or supported at a decoder or receiver-side device. For ease of reference, a device at which encoding and / or transmitting features may be implemented or supported may be called a first communication device, and a device at which decoding and / or receiving features may be implemented or supported may be called a second communication device. Embodiments may involve either or both of such devices.

[0243] With reference first to 1000, encoding input bits by a code to obtain coded bits is shown at 1004. Coded bits may be referred to as code bits or encoded bits, for example, and may be described as being obtained or generated by encoding input bits by a code. Encoding at 1004 may be implemented or performed by an encoder or a processor, for example.

[0244] Embodiments herein involve transmitting an initial transmission and one or more further transmissions, as shown by way of example at 1008. In some embodiments, the transmitting involves transmitting the coded bits in an initial transmission and transmitting a redundancy version in a further transmission. The redundancy version includes bits associated with the input bits or the coded bits of the initial transmission. These bits that are associated with the input bits or the coded bits of the initial transmission may include the same and / or different coded bits (that is, the same coded bits as the initial transmission or some of the same coded bits and some different coded bits) , re-encoded coded bits, or re-encoded input bits, for example. These and other examples of bits that may be included in a redundancy version are described in further detail elsewhere herein.

[0245] A redundancy version that is transmitted in a further transmission at 1008 may be one of multiple redundancy versions that are determined for the code by which input bits are encoded at 1004. The redundancy versions (the number of RVs, for example) , and the bits of each of the redundancy versions, are determined for the code based on a parameter of the code. Thus, multiple RVs and bit selections for the RVs are determined, for a code, based on a parameter of that code.

[0246] Although transmissions are illustrated at 1008 in Fig. 10, coded bits and / or other bits for an initial transmission and one or more further transmissions may be output without necessarily being transmitted by an encoder or encoding device. Bits for each transmission may be output through or via any of various types of interface, including a communication interface or transmitter in the case of transmitting. Embodiments are not in any way restricted to any particular type of interface. Transmissions may be transmitted at 1008 by a first communication device to a second communication device in a wireless communication network, for example. The transmissions, including an initial transmission and one or more further transmissions, are illustrated by the dashed lines from 1008 to 1052, but not all embodiments necessarily involve transmitting. For example, in some embodiments the bits for each transmission may be output for further processing or handling before being transmitted. The bits for each transmission may be output and written to memory, such as one or more circular buffers as shown at 1006 for example, and subsequently read from memory to be transmitted.

[0247] Regarding redundancy versions and bits being determined for the code based on a parameter of the code, although not shown separately in Fig. 10 a method may involve determining the redundancy versions and bits based on the parameter of the code.

[0248] An example of determining the redundancy versions involves determining how many redundancy versions are to be used. Therefore, in some embodiments the multiple redundancy versions referenced above include a number of redundancy versions, and the number of redundancy versions and the bits of each of the redundancy versions are determined for the code based on a parameter of the code. The number of redundancy versions and the bits of each redundancy version may be based on the same parameter of the code, different parameters of the code, or one or more of the same parameters and one or more different parameters of the code.

[0249] Examples of a code parameter, based upon any one or more of which the redundancy versions and the bits of each redundancy version may be determined, include the following:

[0250] a code type of the code;

[0251] a code length associated with the code;

[0252] a block length associated with the code;

[0253] an application scenario associated with the code or the input bits.

[0254] Code type, code length, and block length examples are provided elsewhere herein. Regarding application scenario associated with the code or the input bits, one example of an application scenario associated with input bits is a type or source of the input bits to be encoded by a code. Different RVs and RV bits may be preferred for different types of data or traffic, for example. Other parameters related to a code, such as code rate, may also or instead be used in determining RVs and bits for RVs. Parameters of a code may also be referred to as code parameters, coding parameters, and parameters may also be referred to as properties or characteristics, for example.

[0255] Some aspects of the present disclosure relate to definition and determination of redundancy versions depending on code type.

[0256] In some embodiments, bits for a redundancy version can be selected from all of the code bits in a mother code word. More generally, the coded bits in an initial transmissions may be or include bits from a codeword that is generated by encoding the input bits by the code at 1004. The bits of each of the redundancy versions may be selected from among all bits in the codeword, or more generally all bits generated by encoding the input bits. In other words, a method may involve selecting bits of each of the redundancy versions from among all bits in the codeword, or more generally from among all bits generated by encoding the input bits.

[0257] Code bits to be included in a redundancy version can be incrementally selected with no limitation on the scope within the mother code. This means that, as the transmission length of the RV increases, it may eventually include all the code bits in the mother code. In the case of multiple redundancy versions, the redundancy versions may together include all of the bits in a codeword that is generated by encoding the input bits by the code at 1004, or more generally all bits generated by encoding the input bits.

[0258] For this type of RV bit selection, from among all coded bits generated by encoding the input bits, the code type can be LDPC codes, Turbo codes, and polar codes. This is one example of RV determination and bit selection based on a code parameter (code type in this example) .

[0259] A more detailed example of this type of RV bit selection is provided above, for code bits [c0, c1, c2, …, cN-2, cN-1] , where N is the mother code length, and a redundancy version has code bits where E is the length of the redundancy version, and [i0, i1, …, iE-2, iE-1] can take all values in [0, 1, 2, …, N-2, N-1] . In this example, as noted above, the mother code length N can also be replaced by rate matched mother code length M (or circular buffer size M) .

[0260] Within the context of coded bits that are or include bits from a codeword (or bits) generated by encoding the input bits by the code, bit selection for redundancy versions may be more restricted. For example, bits for a redundancy version can be selected from only a subset of the code bits in one mother codeword. More generally, in some embodiments, the bits of a redundancy version (or each of the redundancy versions in the case of more than one) are selected from a subset that incudes fewer than all bits in a codeword or a set of bits generated by encoding the input bits at 1004. Thus, a method may involve selecting bits of each of the redundancy versions from a subset that includes fewer than all of the bits in a codeword or fewer than all bits generated by encoding the input bits.

[0261] For this type of RV bit selection, from among all coded bits generated by encoding the input bits, the code type can be polar codes and Reed-Muller codes. This is another example of RV determination and bit selection based on a code parameter (code type in this example) .

[0262] The code bits to be included in a redundancy version can be incrementally selected with a pre-defined limitation on the scope within the mother code. This means that, as the transmission length of the RV (or multiple RVs) increases, the RV or the multiple RVs together will not include all of the code bits in a mother code (or set of bits generated by encoding) .

[0263] According to a detailed example of this type of RV bit selection provided above, the code bits are [c0, c1, c2, …, cN-2, cN-1] , and a redundancy version has code bits where E is the length of the  redundancy version, and [i0, i1, …, iE-2, iE-1] can only take value from a subset in [0, 1, 2, …, N-2, N-1] . In one example, the subset can be [0, 1, …, N / 2-2, N / 2-1] , or [N / 2, N / 2+1, …, N-2, N-1] . In another example, the subset can be [0, 1, …, N / 4-2, N / 4-1] , or [N / 4, N / 4+1, …, N / 2-2, N / 2-1] , or [N / 2, N / 2+1, …, 3N / 4-2, 3N / 4-1] , or [3N / 4, 3N / 4+1, …, N-2, N-1] .

[0264] A redundancy version can be a separately encoded codeword. For example, in some embodiments, the bits of each of multiple redundancy versions may include bits obtained from separately encoding the input bits. A method may involve separately encoding the input bits, and selecting the bits of each of the redundancy versions from among bits obtained from separately encoding the input bits

[0265] In other words, bits for each RV may be selected from code bits that are separately encoded from all the input bits, which may also be referred to as information bits. These code bits are not part or all of the code bits in a longer mother code as in the previous two examples. Each encoding can generate a codeword using a separate codebook, or generator matrix, or parity-check matrix, for example. The code type can be polar codes and Reed-Muller codes, and this type of RV bit selection is another example of determining RV bits based on a parameter of a code, which is again code type in this example.

[0266] In one detailed example provided above, the code bits for a first separately encoded code word are which is used for the first RV, where N0 is the mother code length for the first code word; similarly, the code bits for the second separately encoded code word are which is used for the second RV, where N1 is the mother code length for the second code word; and so on. The transmitted bits for the first RV are only selected from and any bit may be selected more than one time as partial repetition; similarly, transmitted bits for the second RV are only selected from and any bit may be selected more than one time as partial repetition. The mother code length N in this example can also be replaced by rate matched mother code length M (or circular buffer size M) .

[0267] The coded bits in the initial transmission at 1008 may be or include bits from multiple codewords generated by encoding the input bits by the code at 1004, and a redundancy version can include part of the code bits obtained from joint encoding (or otherwise further encoding) several of these multiple, individual code words. Encoding to generate code bits for an initial transmission may encode subsets of the input bits to generate respective codewords, or more generally respective sets of coded bits. In such embodiments, the bits of a redundancy version, or each of the redundancy versions in the case of multiple redundancy versions, may be or include bits obtained from further encoding the codewords or sets of coded bits. A method may involve encoding the codewords or sets of coded bits, and selecting the bits of each of the redundancy versions from among bits obtained from encoding the codewords or sets of coded bits.

[0268] Similar to other examples above, multiple codewords can be generated by encoding the input bits, but then these codewords are further encoded, to obtain a longer code in some embodiments. The code bits of each RV are obtained from the longer code, but the code bit selection may be based on the first step of separate encoding. For example, the code bits for an RV may be selected from code bits within a limited scope, such as with length no larger than a corresponding separately encoded code word in the first step of encoding.

[0269] For this type of RV bit selection, the code type can be polar codes and Reed-Muller codes, and this is another example of determining RV bits based on a parameter (here, code type) of the code.

[0270] In a detailed example above, several code words are separately encoded from input bits to generate S codewords: c0, c1, …, cS-2, cS-1, and their lengths are N0, N1, …, NS-2, NS-1, respectively. The longer code is further encoded by c=G× [cS-1, cS-2, …, c1, c0] T, where XT denotes transpose. The code bits are selected from c. In an embodiment, the code bits for the first RV are selected from the last N0 bits in c, and the code bits for the second RV are selected from the next last N1 bits in c, and the code bits for the third RV are selected from the next last N2 bits in c, and so on.

[0271] As described at least above, a redundancy version can be part of the code bits obtained from encoding input bits that were previously encoded to generate several individual code words. Thus, the coded bits in the initial transmission at 1008 may be or include bits from multiple codewords generated by encoding the input bits by the code at 1004. The bits of a (or each) redundancy version may include bits obtained from further encoding the input bits (instead of encoding individual codewords as in another example above) to generate another codeword or set of coded bits. This codeword or set is of a length that is greater than a length of any of the multiple codewords previously generated by encoding the input bits. A method may therefore involve further encoding the input bits, and selecting the bits of each of the redundancy versions from among the codeword or set of bits obtained from that further encoding.

[0272] Similar to the preceding example, several codewords may be separately encoded from subsets of the information bits, and then multiple subsets of the information bits can be combined for encoding to obtain a longer code. The code bits of each RV may then be selected from the longer code, and code bit selection may consider the first step of separate encoding. For example, the code bits may be selected within a limited scope with length no larger than the corresponding separately encoded code words in the first step.

[0273] For this type of RV bit selection, the code type can be polar codes and Reed-Muller codes, and this is another example of determining RV bits based on a parameter of the code, which is again code type in this example.

[0274] In some embodiments herein, self-decodability of each of the redundancy versions is determined based on a code type of the code (another example of RV and RV bit determination based on a parameter of a code) , and in such embodiments the parameter of the code based upon which the RVs and RV bits are determined is the code type of the code. A method may therefore include determining self-decodability of each of the redundancy versions, based on a code type of the code for example.

[0275] For example, self-decodability of an RV may be determined based on one or more criteria. As an example of a criterion for self-decodability the code bits or parity bits from an RV should be generated from all the information bits (or payload bits) , and not part of the information bits (or payload bits) .

[0276] In a more specific example based on code type of LDPC codes or turbo codes, a criterion for determining self-decodability is that a redundancy version should contain a sufficient number of systematic bits. For example, the number (or proportion) of systematic bits included in a redundancy version must exceed a pre-defined threshold (for example, 3 / 4) , or the code bits in a redundancy version must either start from a systematic bit or end at a systematic bit for the redundancy version to be self-decodable.

[0277] Other threshold examples and details related to self-decodability for LDPC codes or turbo codes are also provided at least above.

[0278] If the code type is polar codes or Reed-Muller codes, then a criterion for a self-decodable redundancy version is that the redundancy version should cover a whole subblock with length larger than the entire information block length.  That is, if the information block length is K and a subblock length is B, then B>K may be a criterion in order to have self-decodability. Otherwise, if an RV corresponds to a subblock of size B<K, or an RV does not cover a whole subblock with length B>K, then it may be determined that the RV is not a self-decodable RV.

[0279] These example criteria may be used in determining self-decodability of an RV, and may affect RV bit selection in that if an RV is to be self-decodable, then RV bits are selected such that the RV satisfies one or more self-decodability criteria.

[0280] Thus, self-decodability is another factor that may affect RV bit selection (depending on whether an RV is to be self-decodable) , and is related to code type. A such, self-decodability is another example of a parameter of a code based upon which RV bits may be determined.

[0281] An RV may involve one transmission or multiple transmissions. In the context of an example above in which a method includes transmitting a redundancy version in a further transmission, in a multiple-transmissions within an RV embodiment the further transmission is one of multiple further transmissions in which respective portions of the redundancy version are transmitted. Each of these further transmissions may be referred to as a transmission within a redundancy version, for example. The definition of a redundancy version may be the same as above, with a redundancy version including bits associated with coded bits in an initial transmission or input bits that were encoded to obtain the coded bits, but multiple transmissions for the RV (which may also be referred to as multiple transmissions of an RV, within an RV, or in an RV) are supported. If a previous transmission of an RV stops at a bit position k, for example, then the next transmission within that RV starts from bit position k+1.

[0282] A redundancy version can be defined to correspond to one transmission or retransmission. That is, in any transmission, code bits from one RV are selected and transmitted, and in a subsequent transmission, bits from the current RV are no longer transmitted. For the subsequent transmission, bits from another RV for are selected and transmitted. this may be referred to as single transmission in an RV, within an RV, of an RV, or for an RV. A single transmission RV approach can be used for LDPC codes, turbo codes, and polar codes, and this is an example of RV determination (in particular determining the number of transmissions for an RV) based on a parameter of a code (code type) .

[0283] Redundancy versions can instead be defined such that each redundancy version corresponds to multiple transmissions or retransmissions, wherein code bits from a particular RV are selected for a transmission and in one or more subsequent transmissions, bits from the current RV are selected and transmitted without switching RVs to select bits from another RV to be transmitted. A multiple transmission RV approach can be used for polar codes and Reed-Muller codes, and this is an example of RV determination (determining the number of transmissions for an RV) based on a parameter of a code (code type) .

[0284] Thus, consistent with these examples, a number of transmissions for an RV may be determined based on a parameter of a code, which is code type in these examples.

[0285] Pseudocode examples of bit selection for single-transmission RVs and multiple-transmission RVs are also provided above.

[0286] RV bits may be selected directly from coded bits generated by encoding, or from one or more circular buffers.

[0287] In some embodiments, the bits of each redundancy version may be selected from respective sets of one or more subblocks of bits in a codeword generated by encoding the input bits by the code. A method may therefore involve selecting the bits of each redundancy version from the respective sets of one or more such subblocks. Although reference is made herein to codewords, a codeword denotes a set of bits generated by encoding, and accordingly features that are described herein in respect of codewords may apply more generally to sets of bits that are generated by encoding.

[0288] According to an example above, a code word is divided into several subblocks, and certain subblocks provide code bits for redundancy versions. A polar code divided into power-of-2 subblocks of consecutive bits is provided as a detailed example, with each redundancy version being defined by subblock indices. An RV to index mapping, such as an rvid-to-subblock index mapping as referenced above, may be specified in a communication standard or may be otherwise available, and subblock indices (and bits for each RV) may then be determined based on the mapping. In a detailed example above, for a length-N polar code, four subblocks and RVs are defined, and bits for each RV are selected from respective sets of two subblocks of bits generated by encoding the input bits by the code. Table 1 above provides a further example of an RV definition table in which a subblock-to-RV mapping is specified for a length-N mother polar code that is divided into 8 subblocks.

[0289] Regarding the RVs and RV bits being determined based on a parameter of the code for the encoding at 1004, the number of redundancy versions and a total number of subblocks of bits in a codeword may be determined for the code, based on the parameter of the code. A method may therefore involve determining the number of redundancy versions and the total number of subblocks based on the parameter of the code.

[0290] For example, the number of subblocks may depend on a parameter such as mother code length. In an example above, there are different sub-types of a polar code with different numbers of subblocks and RVs depending on mother code length. This illustrates an embodiment in which determination of RVs and RV bits is based on multiple parameters of a code, including code type and code length.

[0291] This example above defines two sub-types of polar codes depending on mother code length, including a first sub-type with mother code length less than or equal to 1024 divided into four subblocks, and a second sub-type with mother code length larger than or equal to 2048 divided into eight subblocks. An example subblock-to-RV mapping table, illustrating a different number of RVs with corresponding subblock indices for each sub-type, is provided in Table 2 above.

[0292] The mother code length N can be replaced by rate matched mother code length M (or circular buffer size M in the case of embodiments that involve one or more circular buffers) , and subblock-based redundancy version definition can be used to determine RVs and RV bits for not only polar codes, but also Reed-Muller codes.

[0293] Another option disclosed herein for code bit selection is to define a circular buffer, or multiple circular buffers, depending on the code type for example. A method may involve writing bits of each of the redundancy versions into, and reading or otherwise selecting the bits from, one or more circular buffers. This is shown by way of example at 1006. More generally, the bits of each of the redundancy versions may be written into and read or otherwise selected from a circular buffer. There may be more than one circular buffer. For example, the bits of each of the redundancy versions may be written into and read or otherwise selected from a respective circular buffer for each of the redundancy versions.

[0294] The code bits in a mother code, or more generally code bits generated from encoding, can be written into one or more circular buffers. The code bits may be written in order, or may be interleaved or otherwise rearranged before being written in the circular buffer (s) . Circular buffers are used for RVs and RV bits in some embodiments, and accordingly a  determination as to whether bits are to be written into, and read or otherwise selected from, one circular buffer or multiple circular buffers is another example of a determination of RVs and RV bits. In some embodiments the determination is based on a code parameter of the code type, and examples provided above include defining and using one circular buffer for turbo codes or LDPC codes, or defining and using multiple circular buffers for polar codes or Reed-Muller codes.

[0295] For multiple circular buffers, each circular buffer can contain bits for a redundancy version, or the corresponding subblock (s) in subblock-based embodiments. Consistent with examples provided above, the code bits for a first RV (rvid=0) may be written into a first circular buffer, the code bits for a second RV (rvid=1) may be written into a second circular buffer, the code bits for a third RV (rvid=2) may be written into a third circular buffer, and the code bits for a fourth RV (rvid=3) may be written into a fourth circular buffer. More generally, bits for each of multiple RVs may be written into (and subsequently read from or otherwise selected from) a respective circular buffer for each RV.

[0296] Some examples provided herein relate to determining the starting positions and ending positions, in a codeword for example, for each redundancy version, and each transmission in the case of multiple transmissions for an RV. Starting positions and / or ending positions may depend on code type, and may also or instead depend on other coding parameters or characteristics, such as code length and / or information block length. Starting positions and / or ending positions may define RVs and the bits in each RV (and each transmission in the case of multiple transmissions for an RV) , and therefore determination of starting positions and / or ending positions is another example of a determination of RVs and RV bits based on a parameter of a code.

[0297] In some embodiments, the number of the redundancy versions and the bits of each of the redundancy versions are consistent with respective starting positions, respective ending positions, or both respective starting and ending positions of the bits of each of the redundancy versions in a codeword or set of bits generated by encoding the input bits by the code at 1004.

[0298] Several starting position and ending position examples are provided herein. Starting positions defined in terms of proportions of a code word (or more generally a set of bits generated from encoding) are described by way of example above and in Table 3, in the context of four redundancy versions and two different mother code lengths for LDPC codes constructed from the two base graphs. This is another example of determining RVs and RV bits based on code type and code sub-types. This example also illustrates how a number of redundancy versions and the bits of each of the redundancy versions may be consistent with respective starting positions of the bits of each of the redundancy versions in a codeword or set of bits generated by encoding.

[0299] This type of starting position definition is described for LDPC codes, but may also or instead be used for turbo codes.

[0300] Starting positions defined in terms of first bit position of certain subblocks of a code word (or more generally a set of bits generated from encoding) are also described by way of example above and in Tables 4 to 6.

[0301] Starting position definitions may use bit indices instead of subblock indices, to define each RV. In an earlier example that involves two sub-types of polar codes, RVs are defined in terms of subblock indices. Table 4 provides a starting position-to-RV mapping table example that instead uses bit indices.

[0302] Although this example starting position definition may be used for polar codes or Reed-Muller codes, more generally the number of RVs and their starting positions may depend on a code parameter. Table 5 provides an example of  starting positions using bit indices for general channel codes with different mother code lengths, and Table 6 provides an example of starting positions using bit indices for LDPC codes with different lifting sizes.

[0303] All of these starting position examples illustrate how a number of redundancy versions and the bits of each of the redundancy versions may be consistent with respective starting positions of the bits of each of the redundancy versions in a codeword or set of bits generated by encoding.

[0304] Ending positions can also or instead be used to define redundancy versions. The determination of ending positions may depend on one or more code parameters such as code type. Ending positions may be defined at certain segments (also referred to herein as subblocks) of a codeword. For example, if a codeword can be divided into several segments, then the ending position of certain segments may be used to define the end of an RV.

[0305] One ending position example is provided above for LDPC codes, with reference to Fig. 9.

[0306] In another example above, ending positions are defined by the last bit position of certain subblocks. Ending position definitions with bit indices may be used to define each RV. Table 7 provides a mapping table example for ending position bit indices in the context of two sub-types of polar codes. Although this example may be used for polar codes or Reed-Muller codes, more generally the number of RVs and their ending positions may depend on a code parameter. Table 8 provides an example of ending positions using bit indices for general channel codes with different mother code lengths, and Table 9 provides an example of starting positions using bit indices for LDPC codes with different lifting sizes.

[0307] An ending position means that bits beyond that ending position will not be transmitted in a current RV (or transmission in the case of multiple transmissions.

[0308] During RV bit selection, upon reading or otherwise selecting a bit corresponding to the ending position, options for transmitting additional bits where the number of bits to be transmitted exceeds RV (or current transmission) length include, for example: (i) starting over to select the first bits in that RV or transmission, or (ii) selecting, in reverse order, the last bits in that RV or transmission. Each of these options is described by way of example above, including an example for option (i) for LDPC code or turbo codes and an example for option (ii) for polar or Reed-Muller codes. A selection between these options is another example of a determination of RVs and RV bits based on a parameter of a code (code type in these examples) .

[0309] All of these ending position examples illustrate how a number of redundancy versions and the bits of each of the redundancy versions may be consistent with respective ending positions of the bits of each of the redundancy versions in a codeword or set of bits generated by encoding.

[0310] Some embodiments may involve both starting positions and ending positions, and in such embodiments a number of redundancy versions and the bits of each of the redundancy versions are consistent with both respective starting and ending positions of the bits of each of the redundancy versions in a codeword or set of bits generated by encoding.

[0311] RV and RV bit determination, which are described by way of example at least above, are not shown separately in Fig. 10 to avoid congestion in the drawings. These features may be part of the encoding at 1004, or implemented separately from the encoding.

[0312] Fig. 10 illustrates obtaining the input bits for encoding at 1002. This may be performed or supported separately from the encoding at 1004 and / or the transmitting at 1008. The obtaining at 1002 may involve any of various operations, such as any one or more of the following: collecting or otherwise receiving input bits from one or more devices and / or services; accessing input bits in a memory; encoding or otherwise pre-processing input bits before the encoding at 1004.

[0313] Other operations or features may also be supported or provided in some embodiments. For example, features may be implemented in combination or separately. The foregoing description of Fig. 10 is primarily in the context of RVs and RV bits being determined for a code based on a parameter of the code. Within this context, there may be one or more transmissions of an RV. Multiple transmissions within an RV is an example of a feature that may instead be implemented separately.

[0314] In an embodiment, a method may involve transmitting, in an initial transmission at 1008 for example, coded bits obtained from encoding input bits by a code at 1004; and transmitting, in multiple further transmissions at 1008, respective portions of a redundancy version. Each further transmission includes a portion of the same redundancy version in this example. As in other embodiments, the redundancy version incudes bits associated with the input bits or the coded bits of the initial transmission. These features may be combined with other operations or features disclosed herein, such as obtaining the input bits at 1002, encoding at 1004, writing to and / or reading from one or more circular buffers at 1006, or features related to determining RVs and RV bits as discussed in further detail at least above.

[0315] There may be multiple RVs, and any RV may involve one, or more than one, transmission. In the above example of transmitting a redundancy version in multiple further transmissions, the redundancy version may be one of multiple redundancy versions, and each of the multiple redundancy versions may include bits associated with the input bits or the coded bits of the initial transmission. In the case of a multiple-transmission RV, a method may shift to transmitting another redundancy version after transmitting the above-referenced further transmissions of the multiple-transmission RV. This does not necessarily mean that all further transmissions of a multiple-transmission RV have necessarily been completed. A transmission for another RV can be transmitted before all transmissions of a preceding RV have been transmitted.

[0316] For example, if transmission length is long enough, an RV may eventually cover all mother code bits. Even a starting position and an ending position of an RV are defined, all of the bits in that RV might not necessarily be transmitted before a transmission of another RV can be transmitted. Transmitting can switch to another RV immediately once the DCI indicates another RVid, for example Therefore, all bits (or all transmissions) of an RV need not necessarily be transmitted; rather, “some or all” bits or transmissions of an RV might be transmitted before transmitting switches to a transmission of another RV.

[0317] With an RV that can support multiple transmissions, an additional parameter such as a transmission index may be used in some embodiments to keep track of transmissions. A transmission index may be either a lower-level indicator below an RV index such as RV identifier, or an RV-independent index.

[0318] For example, an (i-j) pair may be used to track transmissions in an RV, where i is the RV index and j is the transmission index, such as (0-0) , (0-1) , (0-2) …for RV0 and (1-0) , (1-1) , (1-2) …for RV1.

[0319] In practice, whether to adopt or operate in a “one-RV-per-transmission” mode or “one-RV-multiple-transmission” mode may be code-specific (LDPC the former and polar the latter for example) , or configured in RRC signaling. Absence of a “one-RV-multiple-transmission” mode indicator may result in operation in “one-RV-per- transmission” mode. When this new kind of one-RV-multiple-transmission mode is configured, the DCI may indicate the same RV index in a retransmission (which is not allowed in 5G) , but the new data indicator (NDI) might not be toggled to suggest this is a retransmission. Specifically, such a “transmission index” may be explicitly transmitted in DCI, or it might not be transmitted. In the latter example, the transmitting device may automatically increase the transmission index by 1.

[0320] Thus, a method may involve determining whether each of the redundancy versions involves a single transmission or multiple transmissions. This determination may be made individually for each RV, or at once for all RVs. The determining may be based on one or more of the following: a parameter of the code (such as code type in the LDPC and polar code example above) ; an indication in received signaling (such as RRC signaling with one or more indications such as RV index and possibly transmission index in DCI) ; or absence of an indication in received signaling (as in the above example of absence of a “one-RV-multiple-transmission” mode indicator in RRC signaling) .

[0321] As in other embodiments, a multiple-transmission redundancy version may be consistent with a starting position, an ending position, or both a starting position and an ending position of the redundancy version. The respective portions of such a redundancy version may be consistent with respective starting positions, respective ending positions, or both respective starting and ending positions within the redundancy version.

[0322] In the case of multiple redundancy versions, the redundancy versions may be consistent with a respective starting position of each redundancy version, a respective ending position of each redundancy version, or both respective starting and ending positions of each of the redundancy versions. The respective portions of a multiple-transmission redundancy version are consistent with respective starting positions, respective ending positions, or both respective starting and ending positions of each transmission, within the redundancy version. Transmitting another redundancy version may involve switching from transmitting bits from a starting position within the redundancy version (which is a multiple-transmission redundancy version in this example) to transmitting bits from a starting position of the other redundancy version.

[0323] Several starting and ending position examples to define RVs are provided herein. Starting and / or ending positions of transmissions may be defined within an RV, using bit indices or potentially subblock indices where an RV is defined in terms of subblock indices and each transmission for a multiple-transmission RV corresponds to a subblock.

[0324] The RRC and DCI examples above are illustrative of signaling features that may be provided in some embodiments but are not explicitly shown in Fig. 10. Some embodiments may involve transmitting and / or receiving signaling or any of various types of indications related to encoding, RVs, and / or transmissions for example. More generally, embodiments may involve communicating, in a wireless communication network, signaling indicative of any of various parameters. Parameters related to one or more of encoding, RVs, RV bits, transmissions, reception, or decoding may be indicated in signaling.

[0325] Such communicating of signaling may involve transmitting the signaling by an encoder  / encoding device or a transmitter  / transmitting device that is to transmit encoded bits, to a decoder  / decoding device or a receiver  / receiving device. The communicating may also or instead involve receiving the signaling by a decoder  / decoding device or a receiver  / receiving device from an encoder  / encoding device or a transmitter  / transmitting device. Signaling need not necessarily be between, or only between, communication devices by which transmissions are to be transmitted or received. For example, a network device such as a gNB or a base station may transmit signaling to configure parameters at one or more communication devices. Therefore, a method may involve a network device transmitting signaling, and an encoder  / encoding device or a transmitter  / transmitting device receiving signaling from the network device, and / or a decoder  / decoding device or a receiver  / receiving device receiving signaling from the network device.

[0326] Other features may also or instead be supported.

[0327] At 1050, Fig. 10 illustrates various decoding and / or receiving counterparts of features shown at 1000. From a receiving device perspective, the receiving at 1052 is intended to represent receiving, in a further transmission subsequent to an initial transmission that includes coded bits obtained from encoding input bits by a code, a redundancy version that includes bits associated with the input bits or the coded bits of the initial transmission. The initial transmission may or may not also have been received. The redundancy version is one of multiple redundancy versions determined for the code, and as in other embodiments herein the redundancy versions and bits of each of the redundancy versions are determined for the code based on a parameter of the code.

[0328] As shown at 1054, a method may also involve decoding the received transmission (s) , which include at least the above-referenced further transmission. The decoding may be referred to as decoding the redundancy version or the coded bits, or decoding the input bits from the further transmission or the redundancy version. This does not necessarily mean that the redundancy version is self-decodable. The decoding at 1054 may involve multiple received transmissions (possibly including the initial transmission) .

[0329] The decoding at 1054 may be implemented or performed by a decoder or a processor, for example.

[0330] In some embodiments, a decoder might not be a discrete device, but rather a block of logic in silicon or part of a system-on-chip that decodes and uses the decoded input bits. In other embodiments, the decoded input bits are output as shown at 1056, for processing and / or storage, for example.

[0331] Any or all of the features that are described herein in the context of encoder-side or transmitter-side methods, with reference to operations at 1000 in Fig. 10, for example, may also apply to or have counterpart features in a decoder-side or receiver-side method. Any one or more of the following features, for example, may be provided or supported, individually or in any of various combinations, in a decoder-side or receiver-side method:

[0332] the multiple redundancy versions may a number of redundancy versions;

[0333] the number of redundancy versions and the bits of each of the redundancy versions may have been determined for the code based on the parameter of the code;

[0334] the parameter may be any one or more of: a code type of the code, a code length associated with the code, a block length associated with the code, an application scenario associated with the code or the input bits;

[0335] the coded bits may be or include bits from a codeword generated by encoding the input bits by the code;

[0336] the bits of each of the redundancy versions may have been selected from all bits in the codeword;

[0337] the redundancy versions may together include all of the bits in the codeword;

[0338] the bits of each of the redundancy versions may have been selected from a subset that includes fewer than all bits in the codeword;

[0339] the bits of each of the redundancy versions may include bits obtained from separately encoding the input bits;

[0340] the coded bits may include bits from multiple codewords generated by encoding the input bits by the code;

[0341] the bits of each of the redundancy versions may include bits obtained from further encoding the multiple codewords;

[0342] the coded bits may include bits from multiple codewords generated by encoding respective subsets of the input bits by the code;

[0343] the bits of each of the redundancy versions may include bits obtained from further encoding the input bits to generate a codeword of a length that is greater than a length of any of the multiple codewords;

[0344] the parameter of the code may be a code type of the code, and self-decodability of each of the redundancy versions may be determined based on the code type;

[0345] the further transmission may be one of multiple further transmissions in which respective portions of the redundancy version are transmitted;

[0346] a method may involve receiving (at 1052) and decoding (at 1054) the multiple further transmissions;

[0347] the bits of each of the redundancy versions may have been selected from respective sets of one or more subblocks of bits in a codeword generated by encoding the input bits by the code;

[0348] the number of redundancy versions and a total number of the subblocks of bits in the codeword may have been determined for the code based on the parameter of the code;

[0349] the bits of each of the redundancy versions may have been selected from a circular buffer;

[0350] the bits of the redundancy versions may have been selected from multiple circular buffers;

[0351] the bits of each of the redundancy versions may have been selected from a respective circular buffer for each of the redundancy versions;

[0352] a number of the redundancy versions and the bits of each of the redundancy versions may be consistent with respective starting positions, respective ending positions, or both respective starting and ending positions of the bits of each of the redundancy versions in a codeword generated by encoding the input bits by the code.

[0353] A method according to another embodiment may involve receiving at 1052, in multiple further transmissions subsequent to an initial transmission that includes coded bits obtained from encoding input bits by a code, respective portions of a redundancy version. The redundancy version includes bits associated with the input bits or the coded bits of the initial transmission, but the initial transmission may or may not have been received. Such a method may also involve decoding the respective portions of the redundancy version in the received transmissions at 1054, and in some embodiments outputting decoded input bits at 1056.

[0354] The redundancy version may be one of multiple redundancy versions, with each of the multiple redundancy versions including bits associated with the input bits or the coded bits of the initial transmission. A method may then involve  receiving, at 1052, another redundancy version of the multiple redundancy versions, after receiving the further transmissions. The other redundancy version may be used in the decoding at 1054.

[0355] In some embodiments, whether each of the redundancy versions involves a single transmission or multiple transmissions is determined based on one or more of the following: a parameter of the code, an indication in received signaling, absence of an indication in received signaling.

[0356] The multiple-transmission redundancy version may be consistent with a starting position, an ending position, or both a starting position and an ending position of the redundancy version, and the respective portions in the transmissions received at 1052 may be consistent with respective starting positions, respective ending positions, or both respective starting and ending positions within the redundancy version.

[0357] In embodiments that involve multiple redundancy versions, the redundancy versions may be consistent with a respective starting position, a respective ending position, or both respective starting and ending positions of each of the redundancy versions. The respective portions in the received transmissions may be consistent with respective starting positions, respective ending positions, or both respective starting and ending positions within the redundancy version. Receiving another redundancy version of the multiple redundancy versions may involve switching from receiving bits from a starting position within the multiple-transmission redundancy version of which portions are received in transmissions at 1052, to receiving bits from a starting position of the other redundancy version.

[0358] 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.

[0359] An apparatus may include a processor that is configured, by executing programming for example, to cause the apparatus to perform a method or operations, or to provide or support features, disclosed herein. An apparatus may also include a non-transitory computer readable storage medium, coupled to the processor, storing programming for execution by the processor. In Fig. 3, for example, the processors 210, 260, 276 may each be or include one or more processors, and each memory 208, 258, 278 is an example of a non-transitory computer readable storage medium, in an ED 110 and a TRP 170, 172. A non-transitory computer readable storage medium need not necessarily be provided only in combination with a processor, and may be provided separately in a computer program product, for example.

[0360] As an illustrative example, programming stored in or on a non-transitory computer readable storage medium may include instructions to or to cause a processor to: encode input bits by a code; to transmit, in an initial transmission, coded bits obtained from encoding the input bits; and to transmit, in a further transmission, a redundancy version that includes bits associated with the input bits or the coded bits of the initial transmission. The redundancy version is one of multiple redundancy versions determined for the code, and the redundancy versions and bits of each of the redundancy versions are determined for the code based on a parameter of the code.

[0361] Other embodiments may similarly be implemented using programming that includes instructions to or to cause a processor to: encode input bits by a code; to transmit, in an initial transmission, coded bits obtained from encoding the input bits by the code; and to transmit, in multiple further transmissions, respective portions of a redundancy version that includes bits associated with the input bits or the coded bits of the initial transmission.

[0362] Apparatus embodiments are not limited to the foregoing examples of programming-based embodiments. An apparatus may also or instead include, for example, an encoder for encoding input bits by a code, and a transmitter that is coupled to the encoder. The transmitter is for transmitting, in an initial transmission, coded bits obtained from encoding the input bits, and for transmitting, in a further transmission, a redundancy version that includes bits associated with the input bits or the coded bits of the initial transmission. As in other embodiments herein, the redundancy version is one of multiple redundancy versions determined for the code, and the redundancy versions and bits of each of the redundancy versions are determined for the code based on a parameter of the code.

[0363] The apparatus may be a communication device or a component implemented in a communication device. For example, the apparatus implemented in a communication device may be an integrated circuit, which in some contexts may be known by other names, such as chip, modem, modem chip, baseband chip, or baseband processor. In some implementations, one or more integrated circuits can be packaged into a system-on-chip, a system-in-package, or a multi-chip module. The apparatus may comprise one or more integrated circuits or comprise one or more integrated circuits and other discrete components.

[0364] Fig. 11 is a block diagram illustrating an apparatus according to an embodiment. At 1100, Fig. 11 illustrates components of an example apparatus in which or in conjunction with which transmitting and / or encoding features may be implemented, and components of an example apparatus in which or in conjunction with which receiving and / or decoding features may be implemented are illustrated at 1150. A controller 1130 may be provided in either of these types of apparatus. In some embodiments, an apparatus may include both transmitting and receiving features, and either or both of encoding features or decoding features. In the example shown in Fig. 11, an apparatus with all of the illustrated components supports both encoding features and decoding features, as well and transmitting features and receiving features.

[0365] For encoding features and transmitting features, the example apparatus in Fig. 11 includes an input interface 1102, an encoder 1104 coupled to the input interface, an output interface 1106, a transmitter 1108, and a controller 1130 coupled to the encoder and the output interface. The controller 1130 may also or instead be coupled to one or more other components such as the transmitter 1108, but connections are not shown in Fig. 11 to avoid congestion in the drawing. Input bits for encoding by the encoder 1104 are shown as inputs to the input interface 1102, coded bits are output through the output interface 1106, and transmissions including some or all of the coded bits are transmitted by the transmitter 1108. Although shown as a separate component in Fig. 11, the output interface 1106 for transmitting or otherwise outputting codewords may be provided by, incorporated into, or coupled to the encoder 1104 or the transmitter 1108. Similarly, although shown as a separate input interface 1102 in Fig. 11, an interface through which input bits for encoding are obtained by the encoder 1104 may be provided by, incorporated into, or coupled to the encoder.

[0366] Encode-side or transmit-side features or functions, and other features or functions herein, may be implemented in any of various ways, such as in hardware, firmware, or one or more components that execute software. The present disclosure is not limited to any specific type of implementation, and implementation details may vary between different devices.

[0367] Input bits for encoding may be obtained, and coded bits may be transmitted or otherwise output, via any of various types of interface, including a communication interface in the case of transmitting coded bits or transmissions, or receiving input bits for encoding. Embodiments are not in any way restricted to any particular type of interface or transmitter, the implementation of which may be based at least in part on how input bits are to be obtained and how encoded bits are to be output.

[0368] In an embodiment, an apparatus includes an encoder such as the encoder 1104 for encoding input bits by a code as disclosed herein. A transmitter may be provided and coupled to an encoder, and in the example shown the transmitter 1108 is coupled to the encoder 1104, through the output interface 1106, for transmitting, in an initial transmission, coded bits obtained from encoding the input bits, and for transmitting, in a further transmission, a redundancy version that includes bits associated with the input bits or the coded bits of the initial transmission.

[0369] More generally, an apparatus or a component thereof such as an encoder 1104 or a processor may be configured to encode (or for encoding) input bits by a code as disclosed herein. An apparatus or a component thereof such as a transmitter 1108, which may be coupled to the encoder 1104 directly or indirectly, may be configured to transmit (or for transmitting) , or programming may include instructions to transmit (or for transmitting) or to cause a processor to transmit, coded bits in an initial transmission and a redundancy version in a further transmission as disclosed herein.

[0370] Embodiments related to such apparatus or non-transitory computer readable storage media may include any one or more of the following features, for example, which are also discussed elsewhere herein:

[0371] the redundancy version may be one of multiple redundancy versions determined for the code;

[0372] the redundancy versions and bits of each of the redundancy versions may be determined for the code based on a parameter of the code;

[0373] the apparatus or a component thereof such as the encoder 1104 or the controller 1130 may be configured to determine (or for determining) , or programming may include instructions to determine (or for determining) , or to cause a processor to determine the redundancy versions and bits of each of the redundancy versions for the code based on a parameter of the code;

[0374] the redundancy versions may include a number of redundancy versions;

[0375] the number of redundancy versions and the bits of each of the redundancy versions may be determined for the code based on the parameter of the code;

[0376] the apparatus or a component thereof such as the encoder 1104 or the controller 1130 may be configured to determine (or for determining) , or programming may include instructions to determine (or for determining) , or to cause a processor to determine the number of redundancy versions and the bits of each of the redundancy versions may be determined for the code based on the parameter of the code;

[0377] the parameter include any one or more of: a code type of the code, a code length associated with the code, a block length associated with the code, an application scenario associated with the code or the input bits;

[0378] the coded bits may include bits from a codeword (or a set of bits) generated by encoding the input bits by the code;

[0379] the bits of each of the redundancy versions may be selected from all bits in the codeword;

[0380] the apparatus or a component thereof such as the encoder 1104 or the controller 1130 may be configured to select (or for selecting) , or programming may include instructions to select (or for selecting) , or to cause a processor to select the bits of each of the redundancy versions from all bits in the codeword;

[0381] the redundancy versions may together include all of the bits in the codeword;

[0382] the bits of each of the redundancy versions may be selected from a subset that includes fewer than all bits in the codeword;

[0383] the apparatus or a component thereof such as the encoder 1104 or the controller 1130 may be configured to select (or for selecting) , or programming may include instructions to select (or for selecting) , or to cause a processor to select the bits of each of the redundancy versions from a subset that includes fewer than all bits in the codeword;

[0384] the bits of each of the redundancy versions may include bits obtained from separately encoding the input bits;

[0385] the apparatus or a component thereof such as the encoder 1104 may be configured to separately encode (or for separately encoding) , or programming may include instructions to separately encode (or for separately encoding) , or to cause a processor to separately encode the input bits;

[0386] the coded bits may include bits from multiple codewords generated by encoding the input bits by the code;

[0387] the apparatus or a component thereof such as the encoder 1104 may be configured to encode (or for encoding) , or programming may include instructions to encode (or for encoding) , or to cause a processor to encode the input bits by the code to generate multiple codewords;

[0388] the bits of each of the redundancy versions may include bits obtained from further encoding the multiple codewords;

[0389] the apparatus or a component thereof such as the encoder 1104 may be configured to further encode (or for further encoding) , or programming may include instructions to further encode (or for further encoding) , or to cause a processor to further encode the multiple codewords;

[0390] the coded bits may include bits from multiple codewords generated by encoding respective subsets of the input bits by the code;

[0391] the apparatus or a component thereof such as the encoder 1104 may be configured to encode (or for encoding) , or programming may include instructions to encode (or for encoding) , or to cause a processor to encode respective subsets of the input bits by the code to generate multiple codewords;

[0392] the bits of each of the redundancy versions may include bits obtained from further encoding the input bits to generate a codeword of a length that is greater than a length of any of the multiple codewords;

[0393] the apparatus or a component thereof such as the encoder 1104 may be configured to further encode (or for further encoding) , or programming may include instructions to further encode (or for further encoding) , or to cause a processor to further encode the input bits to generate a codeword of a length that is greater than a length of any of the multiple codewords;

[0394] the parameter of the code may be a code type of the code, self-decodability of each of the redundancy versions may be determined based on the code type;

[0395] the apparatus or a component thereof such as the encoder 1104 may be configured to determine (or for determining) , or programming may include instructions to determine (or for determining) , or to cause a processor to determine self-decodability of each of the redundancy versions based on the code type;

[0396] the further transmission may be one of multiple further transmissions in which respective portions of the redundancy version are transmitted;

[0397] the bits of each of the redundancy versions may be selected from respective sets of one or more subblocks of bits in a codeword generated by encoding the input bits by the code;

[0398] the apparatus or a component thereof such as the encoder 1104 or the controller 1130 may be configured to select (or for selecting) , or programming may include instructions to select (or for selecting) , or to cause a processor to select the bits of each of the redundancy versions from respective sets of one or more subblocks of bits in a codeword generated by encoding the input bits by the code;

[0399] the number of redundancy versions and a total number of the subblocks of bits in the codeword are determined for the code based on the parameter of the code;

[0400] the apparatus or a component thereof such as the encoder 1104 may be configured to determine (or for determining) , or programming may include instructions to determine (or for determining) , or to cause a processor to determine the number of redundancy versions and a total number of the subblocks of bits in the codeword based on the parameter of the code;

[0401] the bits of each of the redundancy versions may be written into and selected from a circular buffer;

[0402] the apparatus may include a circular buffer;

[0403] the apparatus or a component thereof such as the encoder 1104 or the controller 1130 may be configured to write (or for writing) , or programming may include instructions to write (or for writing) , or to cause a processor to write the bits of each of the redundancy versions into the circular buffer;

[0404] the apparatus or a component thereof such as the encoder 1104 or the controller 1130 may be configured to select (or for selecting) , or programming may include instructions to select (or for selecting) , or to cause a processor to select the bits of each of the redundancy versions from the circular buffer;

[0405] the apparatus may include a respective circular buffer for each of the redundancy versions;

[0406] the bits of each of the redundancy versions may be written into and selected from the respective circular buffer for each of the redundancy versions;

[0407] the apparatus or a component thereof such as the encoder 1104 or the controller 1130 may be configured to write (or for writing) , or programming may include instructions to write (or for writing) , or to cause a processor to write the bits of each of the redundancy versions into the respective circular buffer for each of the redundancy versions;

[0408] the apparatus or a component thereof such as the encoder 1104 or the controller 1130 may be configured to select (or for selecting) , or programming may include instructions to select (or for selecting) , or to cause a processor to select the bits of each of the redundancy versions from the respective circular buffer for each of the redundancy versions;

[0409] a number of the redundancy versions and the bits of each of the redundancy versions may be consistent with respective starting positions, respective ending positions, or both respective starting and ending positions of the bits of each of the redundancy versions in a codeword generated by encoding the input bits by the code.

[0410] According to another embodiment, an apparatus includes an encoder such as the encoder 1104 for encoding input bits by a code. Such an apparatus may also include a transmitter, coupled to the encoder, for transmitting, in an initial transmission, coded bits obtained from encoding the input bits by the code, and for transmitting, in multiple further transmissions, respective portions of a redundancy version. As in other embodiments, the redundancy version includes bits associated with the input bits or the coded bits of the initial transmission.

[0411] The redundancy version may be one of multiple redundancy versions, and each redundancy version of the multiple redundancy versions may include bits associated with the input bits or the coded bits of the initial transmission. The transmitter may be further configured for transmitting another redundancy version of the multiple redundancy versions, after transmitting the multiple further transmissions.

[0412] An apparatus or a component thereof such as the encoder 1104 may be configured to determine (or for determining) , or programming may include instructions to determine (or for determining) , or to cause a processor to determine whether each of the redundancy versions involves a single transmission or multiple transmissions. This determining may be based on one or more of the following: a parameter of the code, an indication in received signaling, absence of an indication in received signaling.

[0413] The redundancy version may be consistent with a starting position, an ending position, or both a starting position and an ending position of the redundancy version, and the respective portions may be consistent with respective starting positions, respective ending positions, or both respective starting and ending positions within the redundancy version.

[0414] In an embodiment that involves multiple redundancy versions, the redundancy versions may be consistent with a respective starting position, a respective ending position, or both respective starting and ending positions of each of the redundancy versions. The above-referenced respective portions may be consistent with respective starting positions, respective ending positions, or both respective starting and ending positions within the redundancy version. In this context, transmitting another redundancy version of the multiple redundancy versions may involve switching from transmitting bits from a starting position within the redundancy version to transmitting bits from a starting position of the other redundancy version.

[0415] With reference again to Fig. 11, the example apparatus also includes components to provide or support receiving and decoding features. These components may be provided separately in a decoding or receiving device, or together with other components to provide or support decoding or receiving features together with encoding or transmitting features.

[0416] An input interface 1156 is coupled to a decoder 1154, and these components are also coupled to the controller 1130, which as described at least above may also or instead be coupled to one or more other components. The decoder 1154 is coupled to an output interface 1152. Fig. 11 also illustrates decoded bits, which may also be referred to as decoded input bits or recovered input bits, as outputs from the output interface 1152. Coded bits are inputs received by the interface 1156. The interface 1156 may be provided by, incorporated into, or coupled to the decoder 1154 or the receiver 1158, and similarly an interface 1152 through which decoded bits are output by the decoder may be provided by, incorporated into, or coupled to the decoder. The receiver 1158 is coupled to the decoder, through the input interface 1156 in the example shown.

[0417] Decode-side or receive-side features or functions, and other features or functions herein, may be implemented in any of various ways, such as in hardware, firmware, or one or more components that execute software. The  present disclosure is not limited to any specific type of implementation, and implementation details may vary between different devices, for example.

[0418] Coded bits may be received or otherwise obtained, and decoded bits may be output, via any of various types of interface, including a communication interface in the case of the receiver 1158 or more generally receiving coded bits or transmitting decoded bits. Embodiments are not in any way restricted to any particular type of receiver or interface, the implementation of which may be based at least in part on how coded bits for decoding are to be obtained and how decoded bits are to be output.

[0419] Encoder and decoder interfaces are shown separately in Fig. 11 to illustrate that encoding and decoding features may be implemented independently. However, it should be appreciated that a single device or equipment may support both encoding and decoding, in which case an encoder and a decoder may be coupled to the same interface (s) at 1102, 1152. For example, the encoder 1104 and the decoder 1154 may be coupled to the same interface (s) to obtain input bits for encoding by the encoder and to output decoded bits from the decoder. The encoder 1104 and the decoder 1154 may also or instead be coupled to the same interface (s) to output coded bits that are generated by the encoder and receive coded bits for decoding by the decoder.

[0420] In an embodiment, an apparatus includes a receiver such as the receiver 1158 for receiving, in a further transmission subsequent to an initial transmission that includes coded bits obtained from encoding input bits by a code, a redundancy version that includes bits associated with the input bits or the coded bits of the initial transmission. A decoder such as the decoder 1154 is coupled to the receiver 1158, for decoding the further transmission. The redundancy version is one of multiple redundancy versions determined for the code, and the redundancy versions and bits of each of the redundancy versions are determined for the code based on a parameter of the code as disclosed herein.

[0421] More generally, an apparatus or a component thereof such as a receiver 1158 may be configured to receive (or for receiving) or to otherwise obtain (or for obtaining) , or programming may include instructions to receive (or for receiving) or to otherwise obtain (or for obtaining) or to cause a processor to receive or otherwise obtain, in a further transmission subsequent to an initial transmission, a redundancy version. Such an apparatus or a component thereof such as a decoder 1154 or a processor may be configured to decode (or for decoding) , or programming may include instructions to decode (or for decoding) the further transmission.

[0422] Embodiments related to such apparatus or non-transitory computer readable storage media may include any one or more of the following features, for example, which are also discussed elsewhere herein:

[0423] the redundancy versions may include a number of redundancy versions;

[0424] the number of redundancy versions and the bits of each of the redundancy versions may have been determined for the code based on the parameter of the code;

[0425] the parameter may include any one or more of: a code type of the code, a code length associated with the code, a block length associated with the code, an application scenario associated with the code or the input bits;

[0426] the coded bits may include bits from a codeword (or a set of bits) generated by encoding the input bits by the code;

[0427] the bits of each of the redundancy versions may have been selected from all bits in the codeword;

[0428] the redundancy versions may together include all of the bits in the codeword;

[0429] the bits of each of the redundancy versions may have been selected from a subset that includes fewer than all bits in the codeword;

[0430] the bits of each of the redundancy versions may include bits obtained from separately encoding the input bits;

[0431] the coded bits may include bits from multiple codewords generated by encoding the input bits by the code;

[0432] the bits of each of the redundancy versions may include bits obtained from further encoding the multiple codewords;

[0433] the coded bits may include bits from multiple codewords generated by encoding respective subsets of the input bits by the code;

[0434] the bits of each of the redundancy versions may include bits obtained from further encoding the input bits to generate a codeword of a length that is greater than a length of any of the multiple codewords;

[0435] the parameter of the code may be a code type of the code, and self-decodability of each of the redundancy versions may be determined based on the code type;

[0436] the further transmission may be one of multiple further transmissions in which respective portions of the redundancy version are transmitted;

[0437] the apparatus or a component thereof such as the receiver 1158 may be configured to receive (or for receiving) , or programming may include instructions to receive (or for receiving) , or to cause a processor to receive the multiple further transmissions;

[0438] the apparatus or a component thereof such as the decoder 1154 may be configured to decode (or for decoding) , or programming may include instructions to decode (or for decoding) , or to cause a processor to decode the multiple further transmissions;

[0439] the bits of each of the redundancy versions may have been selected from respective sets of one or more subblocks of bits in a codeword generated by encoding the input bits by the code;

[0440] the number of redundancy versions and a total number of the subblocks of bits in the codeword may have been determined for the code based on the parameter of the code;

[0441] the bits of each of the redundancy versions may have been selected from a circular buffer;

[0442] the bits of the redundancy versions may have been selected from multiple circular buffers;

[0443] the bits of each of the redundancy versions may have been selected from a respective circular buffer for each of the redundancy versions;

[0444] a number of the redundancy versions and the bits of each of the redundancy versions may be consistent with respective starting positions, respective ending positions, or both respective starting and ending positions of the bits of each of the redundancy versions in a codeword generated by encoding the input bits by the code.

[0445] According to another embodiment, an apparatus includes a receiver such as the receiver 1158 for receiving, in multiple further transmissions subsequent to an initial transmission that includes coded bits obtained from encoding input bits by a code, respective portions of a redundancy version. The redundancy version includes bits associated with the input bits or the coded bits of the initial transmission. Such an apparatus may also include a decoder such as the decoder 1154, coupled to the receiver, for decoding the respective portions of the redundancy version.

[0446] More generally, an apparatus or a component thereof such as a receiver 1158 may be configured to receive (or for receiving) or to otherwise obtain (or for obtaining) , or programming may include instructions to receive (or for receiving) or to otherwise obtain (or for obtaining) or to cause a processor to receive or otherwise obtain, in multiple further transmissions subsequent to an initial transmission that includes coded bits obtained from encoding input bits by a code, respective portions of a redundancy version. Such an apparatus or a component thereof such as a decoder 1154 or a processor may be configured to decode (or for decoding) , or programming may include instructions to decode (or for decoding) the respective portions of the redundancy version.

[0447] The redundancy version may be one of multiple redundancy versions, each including bits associated with the input bits or the coded bits of the initial transmission. An apparatus or a component thereof such as the receiver 1154 may be configured to receive (or for receiving) or to otherwise obtain (or for obtaining) , or programming may include instructions to receive (or for receiving) or to otherwise obtain (or for obtaining) or to cause a processor to receive or otherwise obtain another redundancy version of the multiple redundancy versions, after receiving the multiple further transmissions.

[0448] In some embodiments, whether each of the redundancy versions involves a single transmission or multiple transmissions may determined based on one or more of the following: a parameter of the code, an indication in received signaling, absence of an indication in received signaling.

[0449] The redundancy version may be consistent with a starting position, an ending position, or both a starting position and an ending position of the redundancy version, and the respective portions may be consistent with respective starting positions, respective ending positions, or both respective starting and ending positions within the redundancy version.

[0450] The redundancy versions may be consistent with a respective starting position, a respective ending position, or both respective starting and ending positions of each of the redundancy versions. The respective portions may be consistent with respective starting positions, respective ending positions, or both respective starting and ending positions within the redundancy version. Under these conditions, receiving another redundancy version may involve switching from receiving bits from a starting position within the redundancy version to receiving bits from a starting position of the other redundancy version.

[0451] Other features disclosed herein may also or instead be provided or supported in apparatus embodiments.

[0452] Apparatus embodiments are not in any way restricted to single devices. A system, for example, may include a first communication device and a second communication device.

[0453] In one system example, the first communication device is configured for transmitting, in an initial transmission, coded bits obtained from encoding input bits by a code, and for transmitting, in a further transmission, a redundancy version that includes bits associated with the input bits or the coded bits of the initial transmission. The second communication device is configured for receiving and decoding the further transmission. The redundancy version is one of  multiple redundancy versions determined for the code, and the redundancy versions and bits of each of the redundancy versions are determined for the code based on a parameter of the code.

[0454] In another system example, the first communication device is configured for transmitting, in an initial transmission, coded bits obtained from encoding input bits by the code, and for transmitting, in multiple further transmissions, respective portions of a redundancy version. The second communication device is configured for receiving and decoding the respective portions of the redundancy version. The redundancy version includes bits associated with the input bits or the coded bits of the initial transmission.

[0455] More generally, other features disclosed herein may also or instead be provided in method, apparatus, and / or system embodiments.

[0456] 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.

[0457] 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.

[0458] 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.

[0459] The following acronyms, abbreviations, and initialisms may be used herein:

[0460] Although aspects of the present invention have been described with reference to specific features and embodiments thereof, various modifications and combinations can be made thereto without departing from the invention. The description and drawings are, accordingly, to be regarded simply as an illustration of some embodiments of the invention as defined by the appended claims, and are contemplated to cover any and all modifications, variations, combinations or equivalents that fall within the scope of the present invention. Therefore, although embodiments and potential advantages have been described in detail, various changes, substitutions and alterations can be made herein without departing from the invention as defined by the appended claims. Moreover, the scope of the present application is not intended to be limited to the particular embodiments of the process, machine, manufacture, composition of matter, means, methods and steps described in the specification. As one of ordinary skill in the art will readily appreciate from the disclosure of the present invention, processes, machines, manufacture, compositions of matter, means, methods, or steps, presently existing or later to be developed, that perform substantially the same function or achieve substantially the same result as the corresponding embodiments described herein may be utilized according to the present invention. Accordingly, the appended claims are intended to include within their scope such processes, machines, manufacture, compositions of matter, means, methods, or steps.

[0461] Moreover, any module, component, or device exemplified herein that executes instructions may include or otherwise have access to a non-transitory computer readable or processor readable storage medium or media for storage of information, such as computer readable or processor readable instructions, data structures, program modules, and / or other data. A non-exhaustive list of examples of non-transitory computer readable or processor readable storage media includes magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, optical disks such as compact disc read-only memory (CD-ROM) , digital video discs or digital versatile disc (DVDs) , Blu-ray DiscTM, or other optical storage, volatile and non-volatile, removable and nonremovable media implemented in any method or technology, random-access memory (RAM) , read-only memory (ROM) , electrically erasable programmable read-only memory (EEPROM) , flash memory or other memory technology. Any such non-transitory computer readable or processor readable storage media may be part of a device or accessible or connectable thereto. Any application or module herein described may be implemented using instructions that are readable and executable by a computer or processor may be stored or otherwise held by such non-transitory computer readable or processor readable storage media.

Claims

1.A method comprising:transmitting, in an initial transmission, coded bits obtained from encoding input bits by a code; andtransmitting, in a further transmission, a redundancy version comprising bits associated with the input bits or the coded bits of the initial transmission,the redundancy version comprising one of a plurality of redundancy versions determined for the code, the plurality of redundancy versions and bits of each of the redundancy versions determined for the code based on a parameter of the code.2.The method of claim 1,wherein the plurality of redundancy versions comprises a number of redundancy versions,wherein the number of redundancy versions and the bits of each of the redundancy versions are determined for the code based on the parameter of the code.3.The method of claim 1 or claim 2, wherein the parameter comprises any one or more of:a code type of the code;a code length associated with the code;a block length associated with the code;an application scenario associated with the code or the input bits.4.The method of claim 1,wherein the coded bits comprise bits from a codeword generated by encoding the input bits by the code, wherein the bits of each of the redundancy versions are selected from all bits in the codeword.5.The method of claim 4, wherein the redundancy versions together include all of the bits in the codeword.6.The method of claim 1,wherein the coded bits comprise bits from a codeword generated by encoding the input bits by the code,wherein the bits of each of the redundancy versions are selected from a subset that comprises fewer than all bits in the codeword.7.The method of claim 1, wherein the bits of each of the redundancy versions comprise bits obtained from separately encoding the input bits.8.The method of claim 1,wherein the coded bits comprise bits from a plurality of codewords generated by encoding the input bits by the code,wherein the bits of each of the redundancy versions comprise bits obtained from further encoding the plurality of codewords.9.The method of claim 1,wherein the coded bits comprise bits from a plurality of codewords generated by encoding respective subsets of the input bits by the code,wherein the bits of each of the redundancy versions comprise bits obtained from further encoding the input bits to generate a codeword of a length that is greater than a length of any of the plurality of codewords.10.The method of claim 1,wherein the parameter of the code comprises a code type of the code,wherein self-decodability of each of the redundancy versions is determined based on the code type.11.The method of any one of claims 1 to 10, wherein the further transmission comprises one of a plurality of further transmissions in which respective portions of the redundancy version are transmitted.12.The method of claim 1,wherein the coded bits comprise bits from a codeword generated by encoding the input bits by the code,wherein the bits of each of the redundancy versions are selected from respective sets of one or more subblocks of bits in the codeword.13.The method of claim 12,wherein the plurality of redundancy versions comprises a number of redundancy versions,wherein the number of redundancy versions and a total number of the subblocks of bits in the codeword are determined for the code based on the parameter of the code.14.The method of any one of claims 1 to 11, wherein the bits of each of the redundancy versions are written into and selected from a circular buffer.15.The method of any one of claims 1 to 11, wherein the bits of each of the redundancy versions are written into and selected from a respective circular buffer for each of the redundancy versions.16.The method of claim 1,wherein the coded bits comprise bits from a codeword generated by encoding the input bits by the code,wherein a number of the redundancy versions and the bits of each of the redundancy versions are consistent with respective starting positions, respective ending positions, or both respective starting and ending positions of the bits of each of the redundancy versions in the codeword.17.A method comprising:transmitting, in an initial transmission, coded bits obtained from encoding input bits by a code; andtransmitting, in a plurality of further transmissions, respective portions of a redundancy version,the redundancy version comprising bits associated with the input bits or the coded bits of the initial transmission.18.The method of claim 17,the redundancy version comprising one of a plurality of redundancy versions, each redundancy version of the plurality of redundancy versions comprising bits associated with the input bits or the coded bits of the initial transmission, the method further comprising:transmitting another redundancy version of the plurality of redundancy versions, after transmitting the plurality of further transmissions.19.The method of claim 18, further comprising:determining whether each of the redundancy versions involves a single transmission or multiple transmissions, the determining based on one or more of the following:a parameter of the code;an indication in received signaling;absence of an indication in received signaling.20.The method of claim 17, wherein the redundancy version is consistent with a starting position, an ending position, or both a starting position and an ending position of the redundancy version, and the respective portions are consistent with respective starting positions, respective ending positions, or both respective starting and ending positions within the redundancy version.21.The method of claim 18 or claim 19,wherein the redundancy versions are consistent with a respective starting position, a respective ending position, or both respective starting and ending positions of each of the redundancy versions,wherein the respective portions are consistent with respective starting positions, respective ending positions, or both respective starting and ending positions within the redundancy version,wherein transmitting another redundancy version of the plurality of redundancy versions comprises switching from transmitting bits from a starting position within the redundancy version to transmitting bits from a starting position of the other redundancy version.22.A method comprising:receiving, in a further transmission subsequent to an initial transmission that comprises coded bits obtained from encoding input bits by a code, a redundancy version comprising bits associated with the input bits or the coded bits of the initial transmission,the redundancy version comprising one of a plurality of redundancy versions determined for the code, the plurality of redundancy versions and bits of each of the redundancy versions determined for the code based on a parameter of the code, the method further comprising:decoding the further transmission.23.The method of claim 22,wherein the plurality of redundancy versions comprises a number of redundancy versions,the number of redundancy versions and the bits of each of the redundancy versions having been determined for the code based on the parameter of the code.24.The method of claim 22 or claim 23, wherein the parameter comprises any one or more of:a code type of the code;a code length associated with the code;a block length associated with the code;an application scenario associated with the code or the input bits.25.The method of claim 22,wherein the coded bits comprise bits from a codeword generated by encoding the input bits by the code, the bits of each of the redundancy versions having been selected from all bits in the codeword.26.The method of claim 22, wherein the redundancy versions together include all of the bits in the codeword.27.The method of claim 22,wherein the coded bits comprise bits from a codeword generated by encoding the input bits by the code,the bits of each of the redundancy versions having been selected from a subset that comprises fewer than all bits in the codeword.28.The method of claim 22, wherein the bits of each of the redundancy versions comprise bits obtained from separately encoding the input bits.29.The method of claim 22,wherein the coded bits comprise bits from a plurality of codewords generated by encoding the input bits by the code,wherein the bits of each of the redundancy versions comprise bits obtained from further encoding the plurality of codewords.30.The method of claim 22,wherein the coded bits comprise bits from a plurality of codewords generated by encoding respective subsets of the input bits by the code,wherein the bits of each of the redundancy versions comprise bits obtained from further encoding the input bits to generate a codeword of a length that is greater than a length of any of the plurality of codewords.31.The method of claim 22,wherein the parameter of the code comprises a code type of the code,wherein self-decodability of each of the redundancy versions is determined based on the code type.32.The method of any one of claims 22 to 31,wherein the further transmission comprises one of a plurality of further transmissions in which respective portions of the redundancy version are transmitted,the method comprising:receiving and decoding the plurality of further transmissions.33.The method of claim 22,wherein the coded bits comprise bits from a codeword generated by encoding the input bits by the code,the bits of each of the redundancy versions having been selected from respective sets of one or more subblocks of bits in the codeword.34.The method of claim 33,wherein the plurality of redundancy versions comprises a number of redundancy versions,the number of redundancy versions and a total number of the subblocks of bits in the codeword having been determined for the code based on the parameter of the code.35.The method of any one of claims 22 to 32, the bits of each of the redundancy versions having been selected from a circular buffer.36.The method of any one of claims 22 to 32, the bits of each of the redundancy versions having been selected from a respective circular buffer for each of the redundancy versions.37.The method of claim 22,wherein the coded bits comprise bits from a codeword generated by encoding the input bits by the code,wherein a number of the redundancy versions and the bits of each of the redundancy versions are consistent with respective starting positions, respective ending positions, or both respective starting and ending positions of the bits of each of the redundancy versions in the codeword.38.A method comprising:receiving, in a plurality of further transmissions subsequent to an initial transmission that comprises coded bits obtained from encoding input bits by a code, respective portions of a redundancy version,the redundancy version comprising bits associated with the input bits or the coded bits of the initial transmission, the method further comprising:decoding the respective portions of the redundancy version.39.The method of claim 38,the redundancy version comprising one of a plurality of redundancy versions, each redundancy version of the plurality of redundancy versions comprising bits associated with the input bits or the coded bits of the initial transmission, the method further comprising:receiving another redundancy version of the plurality of redundancy versions, after receiving the plurality of further transmissions.40.The method of claim 39, wherein whether each of the redundancy versions involves a single transmission or multiple transmissions is determined based on one or more of the following:a parameter of the code;an indication in received signaling;absence of an indication in received signaling.41.The method of claim 38, wherein the redundancy version is consistent with a starting position, an ending position, or both a starting position and an ending position of the redundancy version, and the respective portions are consistent with respective starting positions, respective ending positions, or both respective starting and ending positions within the redundancy version.42.The method of claim 39 or claim 40,wherein the redundancy versions are consistent with a respective starting position, a respective ending position, or both respective starting and ending positions of each of the redundancy versions,wherein the respective portions are consistent with respective starting positions, respective ending positions, or both respective starting and ending positions within the redundancy version,wherein receiving another redundancy version of the plurality of redundancy versions comprises switching from receiving bits from a starting position within the redundancy version to receiving bits from a starting position of the other redundancy version.43.An apparatus comprising a processor configured to cause the apparatus to perform the method of any one of claims 1 to 21.44.An apparatus comprising:an encoder for encoding input bits by a code;a transmitter, coupled to the encoder, for transmitting, in an initial transmission, coded bits obtained from encoding the input bits, and for transmitting, in a further transmission, a redundancy version comprising bits associated with the input bits or the coded bits of the initial transmission,the redundancy version comprising one of a plurality of redundancy versions determined for the code, the plurality of redundancy versions and bits of each of the redundancy versions determined for the code based on a parameter of the code.45.The apparatus of claim 44,wherein the plurality of redundancy versions comprises a number of redundancy versions,wherein the number of redundancy versions and the bits of each of the redundancy versions are determined for the code based on the parameter of the code.46.The apparatus of claim 44 or claim 45, wherein the parameter comprises any one or more of:a code type of the code;a code length associated with the code;a block length associated with the code;an application scenario associated with the code or the input bits.47.The apparatus of claim 44,wherein the coded bits comprise bits from a codeword generated by encoding the input bits by the code,wherein the bits of each of the redundancy versions are selected from all bits in the codeword.48.The apparatus of claim 47, wherein the redundancy versions together include all of the bits in the codeword.49.The apparatus of claim 44,wherein the coded bits comprise bits from a codeword generated by encoding the input bits by the code,wherein the bits of each of the redundancy versions are selected from a subset that comprises fewer than all bits in the codeword.50.The apparatus of claim 44, wherein the bits of each of the redundancy versions comprise bits obtained from separately encoding the input bits.51.The apparatus of claim 44,wherein the coded bits comprise bits from a plurality of codewords generated by encoding the input bits by the code,wherein the bits of each of the redundancy versions comprise bits obtained from further encoding the plurality of codewords.52.The apparatus of claim 44,wherein the coded bits comprise bits from a plurality of codewords generated by encoding respective subsets of the input bits by the code,wherein the bits of each of the redundancy versions comprise bits obtained from further encoding the input bits to generate a codeword of a length that is greater than a length of any of the plurality of codewords.53.The apparatus of claim 44,wherein the parameter of the code comprises a code type of the code,wherein self-decodability of each of the redundancy versions is determined based on the code type.54.The apparatus of any one of claims 44 to 53, wherein the further transmission comprises one of a plurality of further transmissions in which respective portions of the redundancy version are transmitted.55.The apparatus of claim 44,wherein the coded bits comprise bits from a codeword generated by encoding the input bits by the code,wherein the bits of each of the redundancy versions are selected from respective sets of one or more subblocks of bits in the codeword.56.The apparatus of claim 45,wherein the plurality of redundancy versions comprises a number of redundancy versions,wherein the number of redundancy versions and a total number of the subblocks of bits in the codeword are determined for the code based on the parameter of the code.57.The apparatus of any one of claims 44 to 54, wherein the bits of each of the redundancy versions are written into and selected from a circular buffer.58.The apparatus of any one of claims 44 to 54, further comprising:a respective circular buffer for each of the redundancy versions,wherein the bits of each of the redundancy versions are written into and selected from the respective circular buffer for each of the redundancy versions.59.The apparatus of claim 44,wherein the coded bits comprise bits from a codeword generated by encoding the input bits by the code,wherein a number of the redundancy versions and the bits of each of the redundancy versions are consistent with respective starting positions, respective ending positions, or both respective starting and ending positions of the bits of each of the redundancy versions in the codeword.60.An apparatus comprising:an encoder for encoding input bits by a code;a transmitter, coupled to the encoder, for transmitting, in an initial transmission, coded bits obtained from encoding the input bits by the code, and for transmitting, in a plurality of further transmissions, respective portions of a redundancy version,the redundancy version comprising bits associated with the input bits or the coded bits of the initial transmission.61.The apparatus of claim 60,the redundancy version comprising one of a plurality of redundancy versions, each redundancy version of the plurality of redundancy versions comprising bits associated with the input bits or the coded bits of the initial transmission,wherein the transmitter is further configured for transmitting another redundancy version of the plurality of redundancy versions, after transmitting the plurality of further transmissions.62.The apparatus of claim 61, wherein the encoder is further configured for:determining whether each of the redundancy versions involves a single transmission or multiple transmissions, the determining based on one or more of the following:a parameter of the code;an indication in received signaling;absence of an indication in received signaling.63.The apparatus of claim 60, wherein the redundancy version is consistent with a starting position, an ending position, or both a starting position and an ending position of the redundancy version, and the respective portions are consistent with respective starting positions, respective ending positions, or both respective starting and ending positions within the redundancy version.64.The apparatus of claim 61 or claim 62,wherein the redundancy versions are consistent with a respective starting position, a respective ending position, or both respective starting and ending positions of each of the redundancy versions,wherein the respective portions are consistent with respective starting positions, respective ending positions, or both respective starting and ending positions within the redundancy version,wherein transmitting another redundancy version of the plurality of redundancy versions comprises switching from transmitting bits from a starting position within the redundancy version to transmitting bits from a starting position of the other redundancy version.65.An apparatus comprising a processor configured to cause the apparatus to perform the method of any one of claims 22 to 42.66.An apparatus comprising:a receiver for receiving, in a further transmission subsequent to an initial transmission that comprises coded bits obtained from encoding input bits by a code, a redundancy version comprising bits associated with the input bits or the coded bits of the initial transmission,the redundancy version comprising one of a plurality of redundancy versions determined for the code, the plurality of redundancy versions and bits of each of the redundancy versions determined for the code based on a parameter of the code, the apparatus further comprising:a decoder, coupled to the receiver, for decoding the further transmission.67.The apparatus of claim 66,wherein the plurality of redundancy versions comprises a number of redundancy versions,the number of redundancy versions and the bits of each of the redundancy versions having been determined for the code based on the parameter of the code.68.The apparatus of claim 66 or claim 67, wherein the parameter comprises any one or more of:a code type of the code;a code length associated with the code;a block length associated with the code;an application scenario associated with the code or the input bits.69.The apparatus of claim 66,wherein the coded bits comprise bits from a codeword generated by encoding the input bits by the code,the bits of each of the redundancy versions having been selected from all bits in the codeword.70.The apparatus of claim 66, wherein the redundancy versions together include all of the bits in the codeword.71.The apparatus of claim 66,wherein the coded bits comprise bits from a codeword generated by encoding the input bits by the code,the bits of each of the redundancy versions having been selected from a subset that comprises fewer than all bits in the codeword.72.The apparatus of claim 66, wherein the bits of each of the redundancy versions comprise bits obtained from separately encoding the input bits.73.The apparatus of claim 66,wherein the coded bits comprise bits from a plurality of codewords generated by encoding the input bits by the code,wherein the bits of each of the redundancy versions comprise bits obtained from further encoding the plurality of codewords.74.The apparatus of claim 66,wherein the coded bits comprise bits from a plurality of codewords generated by encoding respective subsets of the input bits by the code,wherein the bits of each of the redundancy versions comprise bits obtained from further encoding the input bits to generate a codeword of a length that is greater than a length of any of the plurality of codewords.75.The apparatus of claim 66,wherein the parameter of the code comprises a code type of the code,wherein self-decodability of each of the redundancy versions is determined based on the code type.76.The apparatus of any one of claims 66 to 75,wherein the further transmission comprises one of a plurality of further transmissions in which respective portions of the redundancy version are transmitted,wherein the receiver is further configured for receiving the plurality of further transmissions,wherein the decoder is further configured for decoding the plurality of further transmissions.77.The apparatus of claim 66,wherein the coded bits comprise bits from a codeword generated by encoding the input bits by the code,the bits of each of the redundancy versions having been selected from respective sets of one or more subblocks of bits in the codeword.78.The apparatus of claim 77,wherein the plurality of redundancy versions comprises a number of redundancy versions,the number of redundancy versions and a total number of the subblocks of bits in the codeword having been determined for the code based on the parameter of the code.79.The apparatus of any one of claims 66 to 76, the bits of each of the redundancy versions having been selected from a circular buffer.80.The apparatus of any one of claims 66 to 76, the bits of each of the redundancy versions having been selected from a respective circular buffer for each of the redundancy versions.81.The apparatus of claim 66,wherein the coded bits comprise bits from a codeword generated by encoding the input bits by the code,wherein a number of the redundancy versions and the bits of each of the redundancy versions are consistent with respective starting positions, respective ending positions, or both respective starting and ending positions of the bits of each of the redundancy versions in the codeword.82.An apparatus comprising:a receiver for receiving, in a plurality of further transmissions subsequent to an initial transmission that comprises coded bits obtained from encoding input bits by a code, respective portions of a redundancy version,the redundancy version comprising bits associated with the input bits or the coded bits of the initial transmission, the apparatus further comprising:a decoder, coupled to the receiver, for decoding the respective portions of the redundancy version.83.The apparatus of claim 82,the redundancy version comprising one of a plurality of redundancy versions, each redundancy version of the plurality of redundancy versions comprising bits associated with the input bits or the coded bits of the initial transmission,wherein the receiver is further configured for receiving another redundancy version of the plurality of redundancy versions, after receiving the plurality of further transmissions.84.The apparatus of claim 83, wherein whether each of the redundancy versions involves a single transmission or multiple transmissions is determined based on one or more of the following:a parameter of the code;an indication in received signaling;absence of an indication in received signaling.85.The apparatus of claim 82, wherein the redundancy version is consistent with a starting position, an ending position, or both a starting position and an ending position of the redundancy version, and the respective portions are consistent with respective starting positions, respective ending positions, or both respective starting and ending positions within the redundancy version.86.The apparatus of claim 83 or claim 84,wherein the redundancy versions are consistent with a respective starting position, a respective ending position, or both respective starting and ending positions of each of the redundancy versions,wherein the respective portions are consistent with respective starting positions, respective ending positions, or both respective starting and ending positions within the redundancy version,wherein receiving another redundancy version of the plurality of redundancy versions comprises switching from receiving bits from a starting position within the redundancy version to receiving bits from a starting position of the other redundancy version.87.A computer program product comprising a non-transitory computer readable medium storing programming for execution by a processor, the programming including instructions to perform the method of any one of claims 1 to 42.88.A system comprising:a first communication device configured for transmitting, in an initial transmission, coded bits obtained from encoding input bits by a code, and for transmitting, in a further transmission, a redundancy version comprising bits associated with the input bits or the coded bits of the initial transmission,the redundancy version comprising one of a plurality of redundancy versions determined for the code, the plurality of redundancy versions and bits of each of the redundancy versions determined for the code based on a parameter of the code, the system further comprising:a second communication device configured for receiving and decoding the further transmission.89.A system comprising:a first communication device configured for transmitting, in an initial transmission, coded bits obtained from encoding input bits by the code, and for transmitting, in a plurality of further transmissions, respective portions of a redundancy version,the redundancy version comprising bits associated with the input bits or the coded bits of the initial transmission, the system further comprising:a second communication device configured for receiving and decoding the respective portions of the redundancy version.

Citation Information

Patent Citations

  • Redundancy version transmission method and equipment

    CN108270525A

  • Method and apparatus for communication

    CN108886432A

  • Self-decodable retransmission for LDPC code based HARQ systems

    CN111034056A

  • Retransmission method and device

    CN114124292A

  • Self-decodable redundancy versions for polar codes

    WO2019158112A1