Methods, systems, and apparatus for non-sequential decoding of polar codes

EP4684487A4Pending Publication Date: 2026-05-27HUAWEI TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
EP · EP
Patent Type
Applications
Current Assignee / Owner
HUAWEI TECH CO LTD
Filing Date
2023-03-23
Publication Date
2026-05-27

Smart Images

  • Figure CN2023083350_26092024_PF_FP
    Figure CN2023083350_26092024_PF_FP
Patent Text Reader

Abstract

Polar codes for wireless communications are constructed to adapt to channel conditions. Input bits are encoded by a polar code to obtain a number of encoded bits, and a reduced number of the encoded bits are decoded to obtain decoded input bits. The polar code provides or includes bit indices for placing values of the input bits before encoding. The bit indices include a first set of bit indices for the values of the input bits, a second set of bit indices for a predetermined bit value, and a third set of bit indices including input bit indices for the values of the input bits and reducing the number of the encoded bits. Decoding is not performed for the third set of bit indices. Non-sequential decoding enables decoding for the bit indices in the first and second sets to be out of order relative to sequential order of the bit indices.
Need to check novelty before this filing date? Find Prior Art

Description

Methods, Systems, and Apparatus for Non-Sequential Decoding of Polar Codes

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] The present application is related to the following Patent Cooperation Treaty (PCT) applications by the same applicant, filed of even date herewith:

[0003] PCT application entitled "Methods, Systems, and Apparatus for Bit Value Placement in Polar Coding" ;

[0004] PCT application entitled "Methods, Systems, and Apparatus for Encoded Bit Reduction in Polar Coding" ; and

[0005] PCT application entitled "Methods, Systems, and Apparatus for Protograph-based Low Density Parity Check Coding" , and the present application is also related to the following United States provisional patent applications, also filed of even date herewith:

[0006] United States provisional patent application entitled "Methods, Systems, and Apparatus for Partial Code Rate Reduction in Polar Coding" ;

[0007] United States provisional patent application entitled "Methods, Systems, and Apparatus for Rateless Polar Coding" ;

[0008] United States provisional patent application entitled "Methods, Systems, and Apparatus for Rateless Polar Coding and Low-complexity Decoding" ;

[0009] United States provisional patent application entitled "Methods, Systems, and Apparatus for Rateless Polar Coding and Incremental Redundancy" ; and

[0010] United States provisional patent application entitled "Methods, Systems, and Apparatus for Channel-dependent Error Correction Coding" .TECHNICAL FIELD

[0011] The present application relates to coding, and in particular to non-sequential decoding of polar codes.BACKGROUND

[0012] In wireless communications, channel conditions are constantly changing at both fast and slow scale due to, for example, fading effects. Accordingly, channel coding has conventionally always been designed to adapt to channel conditions. Modulation and coding scheme (MCS) adaptation, in which the modulation order, code length, and code rate can be changed in real time, is a powerful approach to combat varying channel conditions.

[0013] Adapting to channel conditions requires use of channel coding that can flexibly change 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 remains a challenge.

[0014] Probabilistic codes such as low density parity check (LDPC) codes, which are more like random codes, may be naturally suited for flexibility. However, algebraic codes such as Reed-Muller (RM) codes and Bose-Chaudhuri-Hocquenghem (BCH) codes, are not as flexible as probabilistic codes. This is because their inherent coding structures may be compromised when code length or rate changes. Polar codes exhibit features from both probabilistic codes and algebraic codes. As a result, polar codes have a level of flexibility that lies between probabilistic codes and algebraic codes.

[0015] Rate matching, including techniques such as puncturing and shortening, are techniques for implementing rate-compatible polar codes, such as the polar codes used in the fifth generation (5G) new radio (NR) 3GPP standard. However, the degree of flexibility afforded by conventional approaches to polar code rate matching is insufficient for supporting more advanced communications features, such as fine-grained incremental-redundancy hybrid automatic repeat request (IR-HARQ) , for example.

[0016] A more flexible channel coding approach is needed.

[0017] SUMMARY

[0018] The present disclosure encompasses embodiments related to non-sequential decoding. Non-sequential decoding may be understood to be in contrast to conventional successive cancellation (SC) and successive cancellation list (SCL) decoding techniques in which received bits are decoded in sequential order. Some embodiments involve code construction that includes a new type of bit, in addition to frozen bits and information bits in polar codes.

[0019] According to an aspect of the present disclosure, a method involves encoding input bits by a polar code to obtain a number of encoded bits, and outputting the encoded bits. The polar code comprises bit indices for placing values of the input bits before encoding, and the bit indices comprise: a first set of bit indices for the values of the input bits, a second set of bit indices for a predetermined bit value, and a third set of bit indices comprising input bit indices for the values of the input bits and reducing the number of the encoded bits.

[0020] A method according to another embodiment involves receiving rate-matched encoded bits that have been encoded by a polar code, and decoding the rate-matched encoded bits to obtain decoded input bits. The polar code comprises bit indices for placing values of input bits before encoding, and the bit indices comprise: a first set of bit indices for the values of the input bits, a second set of bit indices for a predetermined bit value, and a third set of bit indices comprising input bit indices for the values of the input bits and reducing a number of encoded bits to obtain the rate-matched encoded bits.

[0021] An apparatus according to an embodiment includes an encoder and an interface. The encoder is for encoding input bits by a polar code to obtain a number of encoded bits, and the polar code comprises bit indices for placing values of the input bits before encoding, the bit indices comprising: a first set of bit indices for the values of the input bits, a second set of bit indices for a predetermined bit value, and a third set of bit indices comprising input bit indices for the values of the input bits and reducing the number of the encoded bits. The interface is coupled to the encoder, for outputting the encoded bits.

[0022] According to another embodiment, an apparatus includes an interface for receiving rate-matched encoded bits that have been encoded by a polar code, and a decoder coupled to the interface, for decoding the rate-matched encoded bits to obtain decoded input bits. The polar code comprises bit indices for placing values of input bits before encoding, the bit indices comprising: a first set of bit indices for the values of the input bits, a second set of bit indices for a predetermined bit value, and a third set of bit indices comprising input bit indices for the values of the input bits and reducing a number of encoded bits to obtain the rate-matched encoded bits.

[0023] In other apparatus embodiments, an apparatus may include a processor configured to cause the apparatus to perform a method as disclosed herein.

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

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

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

[0027] For example, the programming may include instructions to or to cause a processor to encode input bits by a polar code to obtain a number of encoded bits, and output the encoded bits. The polar code comprises bit indices for placing values of the input bits before encoding. The indices comprise: a first set of bit indices for the values of the input bits, a second set of bit indices for a predetermined bit value, and a third set of bit indices comprising input bit indices for the values of the input bits and reducing the number of the encoded bits.

[0028] In another embodiment, programming includes instructions to or to cause a processor to: receive rate-matched encoded bits that have been encoded by a polar code, the polar code comprising bit indices for placing values of input bits before encoding, the bit indices comprising: a first set of bit indices for the values of the input bits, a second set of bit indices for a predetermined bit value, and a third set of bit indices comprising input bit indices for the values of the input bits and reducing a number of encoded bits to obtain the rate-matched encoded bits; and decode the rate-matched encoded bits to obtain decoded input bits.

[0029] A system is also disclosed, and may include a first communication device configured to transmit a reduced number of encoded bits encoded by a polar code, and a second communication device configured to receive the reduced number of encoded bits from the first communication device, and to decode the encoded bits to obtain decoded input bits. As in other embodiments, the polar code comprises bit indices for placing values of input bits before encoding, and the bit indices comprise: a first set of bit indices for the values of the input bits, a second set of bit indices for a predetermined bit value, and a third set of bit indices comprising input bit indices for the values of the input bits and reducing a number of the encoded bits encoded by the polar code to the reduced number of the encoded bits.

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

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

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

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

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

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

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

[0037] Fig. 6 is a block diagram illustrating an f-function used in polar code decoding.

[0038] Fig. 7 is a block diagram illustrating a g-function used in polar code decoding.

[0039] Fig. 8 is a block diagram illustrating processing of a “butterfly" in polar code decoding.

[0040] Fig. 9 is a block diagram illustrating a binary tree representation of successive cancellation decoding.

[0041] Fig. 10 is a block diagram illustrating a binary tree representation of SC decoding of a length N=4 polar code.

[0042] Fig. 11 is a block diagram illustrating a gr -function used in polar code decoding according to an embodiment.

[0043] Fig. 12 is a block diagram illustrating an fr -function used in polar code decoding according to an embodiment.

[0044] Fig. 13 is a block diagram illustrating processing of a “butterfly" in polar code decoding according to an embodiment.

[0045] Fig. 14 is a block diagram illustrating a binary tree representation of decoding scheduling according to an embodiment.

[0046] Fig. 15 is a block diagram illustrating a binary tree representation of non-sequential SC decoding of a length N=4 polar code.

[0047] Fig. 16 includes a table and a block diagram of a trellis, illustrating differences between non-sequential and sequential decoding.

[0048] Fig. 17 is a block diagram of a trellis, illustrating a decoding example according to an embodiment.

[0049] Fig. 18 is a block diagram of a trellis, illustrating a decoding example according to another embodiment.

[0050] Fig. 19 is a block diagram of a trellis, illustrating a further decoding example according to an embodiment.

[0051] Fig. 20 is a block diagram of a trellis, illustrating yet another decoding example according to another embodiment.

[0052] Fig. 21 is a block diagram of a trellis, illustrating a bidirectional decoding example according to an embodiment.

[0053] Fig. 22 is a block diagram of a trellis, illustrating another bidirectional decoding example according to another embodiment.

[0054] Fig. 23 is a block diagram illustrating a binary tree representation of SC decoding of an example length N=3 polar code based on puncturing a length N=4 mother code, for a decoding order [2, 3, 4] .

[0055] Fig. 24 is a block diagram illustrating a binary tree representation of SC decoding of the example polar code for Fig. 23, but for a decoding order [2, 4, 3] .

[0056] Fig. 25 is a block diagram illustrating a binary tree representation of SC decoding of the example polar code for Fig. 23, but for a decoding order [3, 4, 2] .

[0057] Fig. 26 is a block diagram illustrating a binary tree representation of SC decoding of the example polar code for Fig. 23, but for a decoding order [3, 2, 4] .

[0058] Fig. 27 is a block diagram illustrating a binary tree representation of SC decoding of the example polar code for Fig. 23, but for a decoding order [4, 2, 3] .

[0059] Fig. 28 is a block diagram illustrating a binary tree representation of SC decoding of the example polar code for Fig. 23, but for a decoding order [4, 3, 2] .

[0060] Fig. 29 is a block diagram illustrating two-step mutual information estimation for sequential decoding.

[0061] Fig. 30 is a block diagram illustrating two-step mutual information estimation for non-sequential decoding.

[0062] Fig. 31 is a block diagram illustrating an encoder.

[0063] Fig. 32 is a block diagram illustrating an encoder according to an embodiment.

[0064] Fig. 33 is a flow diagram illustrating more general example methods according to embodiments.DETAILED DESCRIPTION

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

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

[0067] Referring to Fig. 1, as an illustrative example without limitation, a simplified schematic illustration of a communication system is provided. The communication system 100 comprises a radio access network 120. The radio access network 120 may be a next generation (e.g., sixth generation, “6G, ” or later) radio access network, or a legacy (e.g., 5G, 4G, 3G or 2G) radio access network. One or more communication electric device (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.

[0068] 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 and unicast, etc. The communication system 100 may operate by sharing resources, such as carrier spectrum bandwidth, between its constituent elements. The communication system 100 may include a terrestrial communication system and / or a non-terrestrial communication system. The communication system 100 may provide a wide range of communication services and applications (such as earth monitoring, remote sensing, passive sensing and positioning, navigation and tracking, autonomous delivery and mobility, etc. ) . The communication system 100 may provide a high degree of availability and robustness through a joint operation of a terrestrial communication system and a non-terrestrial communication system. For example, integrating a non-terrestrial communication system (or components thereof) into a terrestrial communication system can result in what may be considered a heterogeneous network comprising multiple layers. Compared to conventional communication networks, the heterogeneous network may achieve better overall performance through efficient multi-link joint operation, more flexible functionality sharing and faster physical layer link switching between terrestrial networks and non-terrestrial networks.

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

[0070] 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, the 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, the ED 110d may communicate an uplink and / or downlink transmission over a non-terrestrial air interface 190c with NT-TRP 172.

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

[0072] 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 175 for multicast transmission.

[0073] The RANs 120a and 120b are in communication with the core network 130 to provide the EDs 110a, 110b, 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 the EDs 110a, 110b, 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, 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, 110c may communicate via wired communication channels to a service provider or switch (not shown) and to the Internet 150. The PSTN 140 may include circuit switched telephone networks for providing plain old telephone service (POTS) . The 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) . The EDs 110a, 110b, 110c may be multimode devices capable of operation according to multiple radio access technologies and may incorporate multiple transceivers necessary to support such.

[0074] Fig. 3 illustrates another example of an ED 110 and a base station 170a, 170b and / or 170c. The ED 110 is used to connect persons, objects, machines, etc. The ED 110 may be widely used in various scenarios, 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) , industrial control, self-driving, remote medical, smart grid, smart furniture, smart office, smart wearable, smart transportation, smart city, drones, robots, remote sensing, passive sensing, positioning, navigation and tracking, autonomous delivery and mobility, etc.

[0075] 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, an industrial device, or apparatus (e.g., communication module, modem, or chip) in the forgoing devices, among other possibilities. Future generation EDs 110 may be referred to using other terms. The base stations 170a and 170b each T-TRPs 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 the T-TRP 170 and / or the NT-TRP 172 can be dynamically or semi-statically turned-on (i.e., established, activated or enabled) , turned-off (i.e., released, deactivated or disabled) and / or configured in response to one of more of: connection availability; and connection necessity.

[0076] The ED 110 includes a transmitter 201 and a receiver 203 coupled to one or more antennas 204. Only one antenna 204 is illustrated. One, some, or all of the antennas 204 may, alternatively, be panels. The transmitter 201 and the receiver 203 may be integrated, e.g., as a transceiver. The transceiver is configured to modulate data or other content for transmission by the at least one antenna 204 or by a network interface controller (NIC) . The transceiver may also be 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.

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

[0078] 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 permit interaction with a user or other devices in the network. Each input / output device includes any suitable structure for providing information to, or receiving information from, a user, such as through operation as a speaker, a microphone, a keypad, a keyboard, a display or a touch screen, including network interface communications.

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

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

[0081] The processor 210, the processing components of the transmitter 201 and the processing components of the receiver 203 may each be implemented by the same or different one or more processors that are configured to execute instructions stored in a memory (e.g., the in 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) , a graphical processing unit (GPU) , or an application-specific integrated circuit (ASIC) .

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

[0083] 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 antennas 256 for the T-TRP 170, and may be coupled to the equipment that houses 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 antennas 256 of the T-TRP 170. The modules may also be coupled to other T-TRPs. In some embodiments, the T-TRP 170 may actually be a plurality of T-TRPs that are operating together to serve the ED 110, e.g., through the use of coordinated multipoint transmissions.

[0084] 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. One, some, or all of the antennas 256 may, alternatively, be panels. The transmitter 252 and the receiver 254 may be integrated as a transceiver. The T-TRP 170 further includes a processor 260 for performing operations including those related to: preparing a transmission for downlink transmission to the ED 110; processing an uplink transmission received from the ED 110; preparing a transmission for backhaul transmission to the NT-TRP 172; and processing a transmission received over backhaul from the NT-TRP 172. Processing operations related to preparing a transmission for downlink or backhaul transmission may include operations such as encoding, modulating, precoding (e.g., multiple input multiple output (MIMO) precoding) , transmit beamforming and generating symbols for transmission. Processing operations related to processing received transmissions in the uplink or over backhaul may include operations such as receive beamforming, demodulating received symbols and decoding received symbols. The processor 260 may also perform operations relating to network access (e.g., initial access) and / or downlink synchronization, such as generating the content of synchronization signal blocks (SSBs) , generating the system information, etc. In some embodiments, the processor 260 also generates an indication of beam direction, e.g., BAI, which may be scheduled for transmission by a scheduler 253. The processor 260 performs other network-side processing operations described herein, such as determining the location of the ED 110, determining where to deploy the NT-TRP 172, etc. In some embodiments, the processor 260 may generate signaling, e.g., to configure one or more parameters of the ED 110 and / or one or more parameters of the NT-TRP 172. Any signaling generated by the processor 260 is sent by the transmitter 252. Note that “signaling, ” as used herein, may alternatively be called control signaling. Dynamic signaling may be transmitted in a control channel, e.g., a physical downlink control channel (PDCCH) and static, or semi-static, higher layer signaling may be included in a packet transmitted in a data channel, e.g., in a physical downlink shared channel (PDSCH) .

[0085] 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 and / or backhaul transmissions, including issuing scheduling grants and / or configuring scheduling-free ( “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.

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

[0087] 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 of, one or more processors that are configured to execute instructions stored in a memory, e.g., in the memory 258. Alternatively, some or all of the processor 260, the scheduler 253, the processing components of the transmitter 252 and the processing components of the receiver 254 may be implemented using dedicated circuitry, such as a FPGA, a GPU or an ASIC.

[0088] Notably, 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. 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. One, some, or all of the antennas may alternatively be panels. The transmitter 272 and the receiver 274 may be integrated as a transceiver. The NT-TRP 172 further includes a processor 276 for performing operations including those related to: preparing a transmission for downlink transmission to the ED 110; processing an uplink transmission received from the ED 110; preparing a transmission for backhaul transmission to T-TRP 170; and processing a transmission received over backhaul from the T-TRP 170. Processing operations related to preparing a transmission for downlink or backhaul transmission may include operations such as encoding, modulating, precoding (e.g., MIMO precoding) , transmit beamforming and generating symbols for transmission. Processing operations related to processing received transmissions in the uplink or over backhaul may include operations such as receive beamforming, demodulating received signals and decoding received symbols. In some embodiments, the processor 276 implements the transmit beamforming and / or receive beamforming based on beam direction information (e.g., BAI) received from the T-TRP 170. In some embodiments, the processor 276 may generate signaling, e.g., to configure one or more parameters of the ED 110. In some embodiments, the NT-TRP 172 implements physical layer processing but does not implement higher layer functions such as functions at the medium access control (MAC) or radio link control (RLC) layer. As this is only an example, more generally, the NT-TRP 172 may implement higher layer functions in addition to physical layer processing.

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

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

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

[0092] 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 by a transmitting unit or by a transmitting module. A signal may be received 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 an integrated circuit, such as a programmed FPGA, a GPU or an ASIC. 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.

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

[0094] Having considered communications more generally above, attention will now turn to particular example embodiments.

[0095] Successive cancellation (SC) is the basic decoding algorithm for polar codes. In SC decoding, all frozen bits and information bits are decoded sequentially, bit by bit, according to a defined decoding order of the polar code. By convention, the decoding order is the natural order of the polar code bit indices on which all frozen bits and information bits are placed. Thus, this conventional decoding order is known as “natural order” . Preceding bits of 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 (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) . The path extension and pruning operations are performed during decoding 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) decoding 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) decoding also 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 a bit decision result. In code construction, PC bits are generated in addition to frozen bits and information bits.

[0099] Polar codes are linear block codes. For a polar code of length N, its generator matrix is GN, and its encoding process is where and is a binary input vector, and and is a binary code vector. The N×N binary generator matrix is where and is the polarization kernel matrix (also known as the Arikan kernel or Arikan matrix) ,  represents a Kronecker product operation, and n=log2 N.

[0100] With K information bits to be encoded into N code bits and K<N, a code rate of R=K / N<1 is obtained. This implies only part of is used to carry information bits, and the remining bits of are typically set to a fixed value and are known as frozen bits. The information bit set (or information set) may be denoted by I, and the frozen bit set (or frozen set) may be denoted by F. Sometimes, there is an additional PC bit set, denoted by P. The frozen bits are known and usually set to all zeros before decoding, so they do not carry any information. The PC bits are parity-check bits of a subset of information bits, and therefore are known once the associated information bits are decoded. Decoding of polar codes attempts to recover all information bits.

[0101] Code length M may, but might not always, be a power of 2, in which case M<N. In practice, puncturing and shortening are used to reduce the number of transmitted code bits from N to M. For convenience, N is referred to as mother code length, and M is referred to as code length herein. In particular, punctured bits of the mother code are untransmitted bits that are unknown to a decoder, but shortened bits are untransmitted bits that are known to the decoder (usually all zeros) .

[0102] Fig. 5 is a trellis graph illustrating an example of a polar code with N=8 and K=4. Each “butterfly” in the graph is a polarization, and one butterfly is shown by way of example at the right in Fig. 5, for In the example shown, 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} .

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

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

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

[0106] 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) .

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

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

[0109] Polar codes are conventionally decoded by SC and its variants. Conventionally, all SC-based polar decoders follow sequential order of bits while performing successive cancellation. With denoting an input vector that includes information, frozen, and possibly PC bit indices, respectively, the sequential decoding order is u1, u2, ..., uN.

[0110] Before a hard decision (i.e., 0 or 1) can be made on a bit value for each information and frozen bit (and PC bit if necessary) , received signals corresponding to the code bits are processed in the “butterflies” using the so-called f-function and g-function. The received signals may be known as soft information, which is typically expressed as log-likelihood ratios (LLRs) . Soft information is a non-binary value representing the receiver’s level of confidence, or probability, of a given bit value being a 0 or a 1. Fig. 6 is a block diagram illustrating the f-function used in polar code decoding and Fig. 7 is a block diagram illustrating the g-function used in polar code decoding.

[0111] As shown in Fig. 6, the f-function receives two LLR inputs Lin1 and Lin2, and outputs an LLR Lout. In a simplified LLR-based algorithm, the f-function is as follows:

[0112] As shown in Fig. 7, the g-function receives three inputs, including two LLRs Lin1, Lin2 and a binary variable b, and outputs an LLR Lout. In a simplified LLR-based algorithm, the g-function is as follows:

[0113] In the context of SC decoding, it is useful to consider the processing of one single “butterfly" , and Fig. 8 is a block diagram illustrating such processing.

[0114] In a first step represented at the left in Fig. 8, the f-function is performed to calculate the LLR of u1 using the two LLRs on the right side of the butterfly, and this isexpressed as L’1 = f (L1, L2) in the drawing. If u1 is an information bit, then its value will be obtained by hard decision, as a value 0 for positive LLR and value 1 for negative LLR, orequivalently, u1= (1-sign (L’1) )  / 2, where sign (L) is the sign function. Otherwise if u1 is a frozen bit or a PC bit, then its value is pre-known (for a frozen bit) or calculated using preceding information bit values (for a PC bit) . This applies to all bits from u1 to uN.

[0115] In a second step represented in the middle in Fig. 8, the g-function is performed to calculate the LLR of u2 using the two LLRs on the right side of the butterfly and the harddecision u1, expressed as L’2 = g (L1, L2, u1) in the drawing, followed by a hard decision toobtain u2 based on the calculated LLR. The hard decision is expressed as u2= (1-sign (L’2) )  / 2 in Fig. 8. As shown, the first bit u1 is always decoded before the second bit u2, and more generally each bit is decoded sequentially or in order, from u1 to uN.

[0116] In a third step represented at the right in Fig. 8, with hard decisions on both u1 and u2 having been made, it is straightforward to further recover the bits x1 and x2 as shown, by and x2 = u2. This step is called the “re-encoding” step.

[0117] For convenience, a binary tree is often used to simplify the representation of an SC decoder or SC decoding, and Fig. 9 is a block diagram illustrating such a binary tree representation. In a binary tree, a root node at the top of each view in Fig. 9 represents the nodes on the right side of the butterfly (or a trellis) , and the leaf nodes at the bottom represent the nodes on the left side of the butterfly (or a trellis) . As can be seen, SC decoding becomes a depth-first binary tree traversal.

[0118] For illustrative purposes, an example of code length N=4 is provided below, and it is believed that decoding of all code lengths can be readily understood based on that example. Fig. 10 is a block diagram illustrating a binary tree representation of SC decoding of a length N=4 polar code.

[0119] In Fig. 10, a “butterfly” is represented by a “fork” in the binary tree. Each edge represents either a set of f-functions or a set of g-functions. The order of executing the f / g-function exactly corresponds to the edge traversing order, represented in Fig. 10 by the dashed-line arrows, in the binary tree. After all bits on the left side of a butterfly have been decoded (hard decided) , represented by the dot-dash-line arrows in Fig. 10, the bits on the right side of the butterfly will be recovered immediately. Following these rules, the SC decoding of any mother code length N=8, 16, 32, 64 …can be derived.

[0120] This type of sequential SC decoding order has been used since the introduction of polar codes, and all SC-based decoders such as SCL, CA-SCL and PC-SCL follow the sequential order. Sequential SC-based decoding is believed to be the most common type of decoding for polar codes.

[0121] A fixed sequential order of SC decoding has several significant disadvantages.

[0122] Error propagation can be an issue in SC decoding. When bit decoding order is fixed, a very unreliable information bit can become a bottleneck of an overall code block. For example, if the decision of the i-th bit is incorrect, there is a very high probability that all subsequent information bits with index j>i will be incorrect. In this scenario, if it were possible to avoid decoding the i-th bit first, then there is a much higher probability that the j-th bit will be correctly decoded; however, conventional sequential SC decoding is not capable of avoiding the decoding of the i-th bit to increase the probability of correctly decoding the j-th bit.

[0123] SC decoding is also not flexible to channel dynamics. In some polar code implementations such as the NR standard, the probability of successful decoding for each bit (also sometimes referred to as “reliability” ) is pre-estimated and specified in the communication standard. In the NR standard, the reliability order is obtained by assuming an Additive White Gaussian Noise (AWGN) channel and is indicated in an ordered sequence in which bit indices are ordered according to their respective reliabilities. The K most reliable bit indices are selected as information bit indices for carrying payload data (also referred to herein as input bits) . However, as described herein, channel conditions in wireless communications are constantly changing. As a result, the actual reliability of each bit index may be different from the pre-estimated, fixed reliability specified in the standard. In the case where the actual order of reliabilities (based on actual channel conditions) of given bit indices differs from the specified order of reliabilities, the standardized polar code implementation may not place all information bits into the actual highest reliability bit indices. If the same sequential decoding order is always used as in conventional sequential SC decoding, then the best performance might not be achieved.

[0124] Reliability may be considered a measure or indication of how likely it is that a bit value will be correctly decoded or decodable at a decoder. Other related terms or descriptors include capacity, probability or likelihood of error, and probability or likelihood of decoding without error. Reliability is primarily used herein, but features disclosed herein in the context of reliability may also or instead apply in the context of capacity, probability or likelihood of error, probability or likelihood of decoding without error, or other measures or indicators of rank or preference between bit indices for the purpose of placing input bit values for encoding.

[0125] Conventional sequential SC decoding also does not support parallel decoding. This is logical because sequential decoding is serial in nature, and all preceding bits have to be decoded before decoding a current bit.

[0126] Some embodiments disclosed herein relate to a type of SC decoding, but with arbitrary bit decoding order. For non-sequential decoding, conventional bit decision and LLR updating rules described above no longer apply. New rules and new decoding approaches for non-sequential decoding order are disclosed herein.

[0127] Code construction, or polarization, under arbitrary bit decoding order is also considered herein. Decoding order may have a significant impact on the actual reliability of each bit index. Polarization or reliability as currently defined in communications standards, for example, is fixed and is based on and only holds for conventional sequential decoding. Code construction of polar codes that are appropriate for arbitrary bit decoding order may be based on estimates of actual reliability of each bit index under a new decoding order. The K most reliable bit indices, in terms of estimated actual reliability for non-sequential decoding order, may be different from the most reliable bit indices according to pre-estimated, fixed reliabilities for conventional polar codes (including the 5G polar codes) with conventional sequential SC decoding.

[0128] Thus, some embodiments herein primarily focus on decoding and decoders. Multiple decoding orders are proposed, and this is also referenced herein as decoding scheduling. Respective rules and operations for different decoding orders are provided by way of example.

[0129] Construction of codes, based on decoding-dependent reliability metrics that are derived for specific decoding orders, focuses primarily on encoding and encoders.

[0130] However, these encoding and decoding aspects of the present disclosure complement each other. With arbitrary decoding order, decoding scheduling can be optimized based on specific channel conditions, and code construction enables an optimal set of indices in an information set to be determined based on a specific decoding scheduling.

[0131] Non-sequential decoding, and other features herein, may be implemented or deployed on their own, or in conjunction with other features, such as those disclosed in the above-referenced related applications.

[0132] Considering the general concept of decoding scheduling, there are several novel and significant features. With decoding scheduling as disclosed herein, a bit value for any bit, denoted uj for ease of reference, among N bits u1, u2, ..., uN can be decoded without its preceding bit (s) , ui|i<j, having been decoded.

[0133] For a certain bit uj or a set of consecutive bits, if a hard decision is not to be performed because the capacity of the bit (s) is insufficient for example, then the bit or set of consecutive bits can be skipped. Such skipping of one or more bits herein, in the context of polar codes, refers to not processing the butterflies associated with that bit or that set of consecutive bits. This means that all associated f-functions, g-functions, LLR updates and re-encoding steps are not performed, or equivalently on a binary tree, if all bits in a subtree are skipped, then that subtree will not be visited for now. Skipped bits may be decoded later when conditions are suitable for decoding, for example when capacity is sufficient.

[0134] In theory, N-M punctured code bits, on the right-hand side of a trellis such as the example shown in Fig. 5, will have a more significant impact on N-M bit indices, on the left-hand side of the trellis. For example, puncturing N-M code bits degrades the actual reliability of N-M bit indices, and may degrade those bit indices to zero capacity. For example, if the code bits x1, x2, ..., xi are punctured, then bit indices corresponding to u1, u2, ..., ui have zero capacity. In some embodiments these bit indices are skipped for decoding and postponed hard decisions are made for bit values on these bit indices, or bits at these bit indices are not decoded at all according to some embodiments disclosed herein. A decision on a bit with 0 information has 0.5 probability of being correct. In other words, generally a hard decision should not be made unless there is confidence that the decision will be correct.

[0135] Another general guideline for determining decoding order is to decode a bit at a bit index corresponding to higher capacity (or lower bit error probability) first. In the above example, the decoding of a bit with zero-capacity may be postponed or cancelled entirely. In practice, there may be many bits or sets of consecutive bits, also referred to herein as blocks of bits, at bit indices with positive but very low capacity. It may be preferable to decode such bits later in a decoding process as well. For example, suppose that there are two blocks b1 and b2 with respective code rates Rb1 and Rb2 and respective finite length channel capacities Cb1 and Cb2. If Rb1> Cb1 and Rb2< Cb2, then it is preferable to decode block b2 before decoding block b1. Here, capacity is defined differently from existing polar codes, as described in further detail below.

[0136] To describe code construction and a corresponding decoding process, a new type of bit is defined and used in some embodiments, in addition to existing frozen bits and information bits. This new type of bit can be given and referenced by any of various names, such as a null bit, an empty bit, a zero-capacity bit, a low-capacity bit, a useless bit, an irrelevant bit, a non-decision bit, an invalid bit, etc. Herein, “null bit” is used simply for ease of reference. It should be appreciated, however, that any of these example names, and / or others, may be used to refer to a bit with such low capacity that it is not to be decoded.

[0137] Table 1 below compares existing bit types including information bits and frozen bits to the new bit type, null bit.

[0138] Table 1: Bit Type Comparisons

[0139] Although null bits may have zero-capacity, in some embodiments bits with very low reliability or capacity can be treated as null bits. In the context of bit indices, a set of bit indices for null bits is in addition to an information set, which is a set of bit indices for values of input bits, and a frozen set, which is a set of bit indices for a predetermined bit value.

[0140] As described above, before a hard decision can be made, received signals corresponding to code bits are processed. Conventional sequential decoding uses two functions, including the f-function and g-function referenced above. New functions or operations in addition to the above-referenced f-function and g-function are proposed herein and referenced as fr -function and gr -function. These new functions according to an embodiment are illustrated in block diagram form in Figs. 11 and 12. Fig. 11 is a block diagram illustrating the gr -function used in polar code decoding according to an embodiment, and Fig. 12 is a block diagram illustrating the fr -function used in polar code decoding according to an embodiment.

[0141] As shown in Fig. 11, the example gr -function receives an input LLR Lin2, and outputs an LLR Lout. The gr -function is as follows in some embodiments:

[0142] As shown in Fig. 12, the example fr -function receives two inputs, including an LLR Lin1 and a binary variable b, and outputs an LLR Lout. The fr -function is as follows in some embodiments:

[0143] The examples in Figs. 11 and 12 are specific to functions in the LLR domain, and are illustrative of functions that may be used in some embodiments. In practice, such functions may be implemented in other domains, such as a probability domain or a likelihood domain. The present disclosure is not in any way limited to the LLR examples for the LLR domain.

[0144] More generally, an fr -function has two inputs. A first input is soft information such as a probability value, a likelihood value, or an LLR, and a second input is a binary value. The first input value is associated with the first bit (upper right bit in a butterfly) , and the binary value is associated with the second bit (lower right bit in the butterfly) . The gr -function has one input, which may be soft information such as a probability value, a likelihood value, or an LLR, associated with the second bit (lower right bit in the butterfly) . These functions are different from the conventional functions, in that the conventional f-function has two inputs, and the conventional g-function has three inputs.

[0145] The gr -function and the fr -function may be expressed in more general form, in the context of decoding encoded bits in non-sequential decoding order based on the following functions gr and fr: Fnout, g_r=gr (Fnin2) Fnout, f_r=fr (Fnin1, b)

[0146] where

[0147] Fnout, g_r and Fnout, f_r respectively denote outputs associated with each of the functions;

[0148] Fnin1 and Fnin2 denote function inputs associated with respective positions (upper right and lower right in a butterfly) in a trellis graph for the polar code; and

[0149] b denotes a binary variable associated with the second bit (lower right bit in the butterfly) .

[0150] In these general forms of the gr -function and the fr -function, the "Fn" function inputs and outputs may be probability values, likelihood values, or LLRs, for example, and the preceding examples illustrate the more specific form of each function in the LLR domain.

[0151] Whether to perform the f-function and the g-function, or the new fr -function and the new gr -function, depends on decoding order. With reference to Fig. 13, which is a block diagram illustrating processing of a “butterfly" in polar code decoding according to an embodiment, if the lower-left bit (u2 in the example shown) in the butterfly is to be decoded first, then the new fr-function and the new gr-function are used instead of the f-function and the g-function. In this example and others herein, LLR domain functions are used for illustrative purposes, but in these and other examples and embodiments, functions in other domains may be used.

[0152] In the first step, Step 1 in Fig. 13, the new gr -function is performed to calculatethe LLR of u2 using the LLR on the right side of the butterfly, expressed as L’2 = gr (L2) = L2 in the drawing. If u2 is an information bit, then its value will be obtained by hard decision, of value 0 for positive LLR and value 1 for negative LLR. If u2 is a frozen bit, then its bit value is already known. As shown, x2 is equal to u2, and therefore x2 can be immediately set to x2 =u2.

[0153] Step 2 in Fig. 13 illustrates a second step, in which the new fr -function is performed to calculate the LLR of u1 using the LLR on the right side of the butterfly and thehard decision on u2, which is expressed in the drawing as L’1 = fr (L1, u2) , followed by a hard decision to obtain u1, which is based on the LLR of u1 if u1 is an information bit. Note that the decoding order has been changed, in that the second bit u2 is decoded before the first bit u1 instead of conventional decoding in sequential order by decoding u1 before u2.

[0154] In the third step, Step 3, with both u1 and u2 decoded, it is straightforward to further recover the code bit x1 by Note that here “re-encoding” is done in both Step 1 (x2 = u2) and Step 3 in this example. This is also different from sequential decoding.

[0155] It should be appreciated that LLR-based calculations or procedures (or similar decoding calculations or procedures) may still be performed for frozen bits and not just for information bits. Although LLRs might not be used in making bit decisions for frozen bits, received LLRs for received code bit indices that correspond to frozen bits may still be used in decoding input bits at bit indices in an information set.

[0156] Fig. 14 is a block diagram illustrating a binary tree representation of decoding scheduling according to an embodiment, and is consistent with the above example that refers to Fig. 13.

[0157] Although decoding order may be reversed or otherwise be non-sequential for some bits or blocks of bits, remaining bits or blocks of bits may still follow conventional sequential decoding order. This type of combined decoding order, which may be referred to as hybrid sequential and non-sequential decoding order, may exhibit the best decoding performance.

[0158] For example, suppose that decoding order for a length-8 polar code is the following: u5, u6, u7, u3, u4, u1, u2, u8. Here, the blocks u5, u6, u7 and u3, u4 and u1, u2 are sequential within themselves, and these may be referred to as sequential decoding blocks.

[0159] However, decoding order at the beginning and between the blocks is non-sequential, in that u5 and not u1 is decoded first, and between the first two blocks u5, u6, u7 are decoded before u3,u4, and between the last two blocks u3, u4 are decoded before u1, u2. In this example, decoding for u8 is non-sequential in that u8 is not decoded immediately after u7, but in terms of f / g and fr / gr functions, the immediately preceding bit u7 has already been decoded and therefore conventional f-function and g-function decoding can be used for u8.

[0160] Within any block, decoding may be sequential or may include sequential and non-sequential encoding. For example, in the first block u5 is decoded first, and this is non-sequential decoding because u4 was not decoded before u5. The new fr -function and the new gr -function are used for non-sequential decoding of u5. Within the first block, however, after u5 is decoded, sequential decoding (using the f-function and the g-function) can be used to decode u6 and u7 because u5 was decoded before u6. Decoding then transitions or "jumps" from u7 to a non-consecutive or non-sequential bit u3, and decoding of u3 uses non-sequential decoding. Decoding of u4 after u3 is sequential, then non-sequential after transitioning to u1, and then finally sequential decoding can be used to decode u2 after u1. In this example there are three non-sequential transitions, including the initial transition to u5 and two subsequent transitions at the end of each of the first two blocks. In general, if there are multiple decoding scheduling options with different numbers of such transitions or jumps but the same or similar performance, the option that involves fewer transitions may be preferred.

[0161] In embodiments that involve PC bits, the values of the PC bits are either copied from another information bit, or determined from an XOR sum of a set of other information bits. With non-sequential decoding, the definition of PC bits and information bits may depend on decoding order. In general, if PC bits are used, it may be preferred that the last bit in a PC function that is to be decoded according to a decoding order is a PC bit. Once other bits in the PC function have been decoded, the last bit becomes known, presuming that all other bits are correctly decoded.

[0162] For example, for a PC function ui+uj=0, if uj is decoded, then ui immediately becomes known because ui=uj. Here, ui, instead of uj, is the PC bit. As another example, for a PC function ui+uj+uk=0, if uj and uk are decoded, then ui immediately becomes known because ui=uj+uk. Here, ui, instead of uk, is the PC bit.

[0163] Also in the context of PC bits, soft combining can be applied to PC bits. If there are only two undecided bits in a PC function, for example, then they can be jointly decided, such as by combining their soft information such as LLRs. For parallel decoding with ui+uj=0 (or ui+uj=1) , for example, and the soft information L′i and L′j obtained at the same time, the following can be used ui=uj= (1-sign (L′i+L′j) )  / 2

[0164] or ui=~uj= (1-sign (L′i-L′j) )  / 2

[0165] so that the decisions on ui and uj are done simultaneously. This may be referred to as joint decision or parallel decoding.

[0166] For serial decoding and using the same PC function example that was used above for parallel decoding, the difference is that the soft information L′i is obtained first, and L′j is to be obtained at a later time. In this case, the hard decision of ui can be postponed until L′j is obtained. However, a soft decision of ui can be made to allow decoding to continue. OnceL′j is obtained, the hard decisions of ui and uj can be made as in the above parallel decoding example.

[0167] Decoding order may be determined or obtained based on any of various criteria, such as either or both of code length and channel.

[0168] For example, when code length M is a power of 2 (M=N=2n) sequential decoding may be applied, and sequential decoding may also be applied when code length is (1+a) N / 2, where a∈ {1 / 8, 1 / 4, 3 / 8, 1 / 2, 5 / 8, 3 / 4, 7 / 8} .

[0169] When code length M is over (1+a) N / 2, however, where N is power of 2 mother code length and a∈ {0, 1 / 8, 1 / 4, 3 / 8, 1 / 2, 5 / 8, 3 / 4, 7 / 8} , bit indices may be divided into two sets. The two sets include the first (1+a) N / 2 bit positions, denoted by U for ease of reference, and the other M- (1+a) N / 2 bit positions, denoted by V. In this example, the bit positions in U may be sequentially decoded, but the bit positions in V may be decoded in non-sequential order.

[0170] Other criteria and / or decoding scheduling may be used in other embodiments.

[0171] Another possible option is to uniquely define decoding order by a decoding scheduling sequence DS. For example, in DS= [i1, i2, i3 …iM] the indices i are bit positions to be decoded, and their order in the sequence is the decoding order. As another example, several starting and / or ending points may be used to define a decoding order. Suppose that a scheduling sequence DS= [i1, …, it, it+1 …iM] , includes several sets of consecutive indices represented by “…” . Such a scheduling sequency can instead be represented as DSs= [i1, it, it+1, iM], including only the starting and ending points of each set of consecutive indices.

[0172] An illustrative and non-limiting example of non-sequential SC decoding is provided below, with reference to Fig. 15, which is a block diagram illustrating a binary tree representation of non-sequential SC decoding of a length-4 polar code. The decoding order for the length-4 polar code in this example is u3, u4, u2, u1.

[0173] In Fig. 15, each edge represents either a set of f-functions or a set of g-functions, or a set of fr -functions or a set of gr -functions. The order of executing f / g / fr / gr -function is defined by the decoding order (or scheduling) u3, u4, u2, u1. Note that the left-to-right hard bit propagation, for u3 at Step 3, for u4 at Step 4, for u2 at Step 6, and for u1 at Step 7, is done once the lower-left bit in a butterfly has been decoded. In other words, there is no need to wait until both bits on the left side of a butterfly have been decoded (hard decided) to recover the bits on the right side of the butterfly. Following these rules, SC decoding of any mother code length N=8, 16, 32, 64 …can be derived given specific decoding scheduling.

[0174] Generalizing to SCL decoding, including CA-SCL and PC-SCL:

[0175] each path [ui1, ui2, ..., uiN] ∈ {0, 1} N represents non-sequential SC decoding results, where i1, i2, ..., iN∈ {1, 2, ..., N} are the bit indices;

[0176] a path metric is the likelihood (or probability) of the path, given the channel output, which may be expressed as Pr (ui1, ui2, ..., ui|L1, L2, ..., LN) -in practice, this may be implemented in the logarithm domain, and approximated as the selected sum of LLRs:  where is a binary indicator, and L′j is the LLR of uj.

[0177] Decoding may otherwise be the same as sequential SCL decoding.

[0178] Fig. 16 includes a table and a block diagram of a trellis, illustrating differences between non-sequential and sequential decoding. One feature of non-sequential decoding is that decoding may start from any point of the trellis at the right. New left / right propagation features are proposed to support arbitrary starting and finishing bit positions.

[0179] Given a bit index i with 0≤i≤N-1 (note here that the index starts from 0 rather than 1) , several auxiliary parameters referenced in the example below include the following, all of which are shown at the table on the left in Fig. 16:

[0180] Binary expansion of index i: denoted by column label "index" in the table and expressed as bin (i)

[0181] Left propagation depth: denoted by column label ← in the table and calculated by sum(xor (bin (i) , bin (i-1) ) )

[0182] f / g function sequence: denoted by column label "f / g" in the table and expressed as {f, g} n, where n=log2 (N) , and the sequence is obtained by replacing each 0 in bin (i) by an f-function and replacing each 1 in bin (i) by a g-function -note that f / g here is intended to generally denote an f-function or a g function that, depending on decoding order and the bit being decoded, may be the conventional f-function, the new fr -function disclosed herein, the conventional g-function, or the new gr -function disclosed herein

[0183] Right propagation depth: denoted by column label → in the table and calculated by # (ending 1) , i.e., the number of ending 1s in the bin (i) .

[0184] To decode a bit indexed by i, there are two cases or scenarios.

[0185] If the previous bit indexed by i-1 has already been decoded, then decode as in sequential decoding because the immediately preceding bit has been decoded. The left propagation depth (the number of stages to perform f / g function) is the second auxiliary parameter above, and the right propagation depth (the number of stages to perform re-encoding) is the fourth auxiliary parameter above.

[0186] If the previous bit indexed by i-1 has not yet been decoded, then decoding is non-sequential decoding. The left propagation starts from the rightmost stage, that is, the left propagation depth is n, and the full f / g function sequence is executed. The right propagation depth depends on the decoding status of its subsequent bits. A greedy right propagation of re-encoding is performed as long as there are no XOR operations with a lower bit (in the “butterfly” ) , or the lower bit is already decoded or re-encoded. As an example, consider starting decoding at index 2 (010) , labeled 1602 in Fig. 16. In sequential decoding, an f-function at 1604 in the row of the trellis at S=2 would have been previously executed in decoding the index 0 bit, but for non-sequential decoding in this example this f-function has not been executed because decoding in this example starts with decoding the index 2 bit. Therefore, the f / g function sequence for starting non-sequential decoding at index 2 is shown in the table at the left in Fig. 16 as fgf, with the first f in the f / g function sequence in bold and underline formatting to indicate that non-sequential decoding starting at the index 2 bit involves an f-function that would already have been executed and would need not be repeated in sequential decoding of the index 2 bit after the index 0 and index 1 bits. The trellis at the right in Fig. 16 also includes f / g labeling for another example of non-sequential decoding starting at index 5 (101) , labeled 1606 in Fig. 16.

[0187] In summary, jumping into decoding a bit in non-sequential order, using LLR domain as an example, may involve propagating LLR (right to left) from a deeper stage (right hand side of the trellis in Fig. 16; propagating hard decisions (left to right) to a deeper stage; and executing the fr -function and the gr -function as needed.

[0188] In some embodiments, information / frozen / PC bits are still decoded one by one, but decoding of such bits does not follow a sequential order according to the bit index [1, 2, 3 …N] . Instead, the decoding order is specified by a decoding scheduling sequence DS= [i1, i2, i3 …iM] , where the indices are the information / frozen / PC bit indices to be decoded. Note that M can be an integer smaller than N, because some zero-capacity or near zero-capacity bit indices can be skipped. This is an example of what may be referred to as “scheduled-serial” decoding.

[0189] Fig. 17 is a block diagram of a trellis, illustrating a decoding example according to an embodiment. The example in Fig. 17 is for a length-8 code where the first 3 code bits are punctured, and the decoding scheduling sequence is DS= [5, 6, 4, 7, 8] . In the example shown in Fig. 17, bit values for the bit indices 4 and 5 are the same, and the return arrow from position 5 to position 4 at the left in Fig. 17 is intended to represent the fact that the bit value for bit index 4 is known after the bit value for bit index 5 has been decoded.

[0190] To reduce description complexity, the decoding scheduling sequence may be shortened to indicate only non-sequential parts. If there is a consecutive sequential subsequence [i, i+1 …j] , for example, this can be represented as [i, j] for simplicity. A full decoding scheduling sequence DS= [i1, i2, i3 …iM] which can be represented as DS= [i1, …, it, it+1 …iM] , where “…” are consecutive indices, can be reduced to DSs= [i1, it, it+1, iM] . For example, DS= [5, 6, 7, 2, 3, 4, 8] can be reduced to DSs= [5, 7, 2, 4, 8] .

[0191] Fig. 18 is a block diagram of a trellis, illustrating a decoding example according to another embodiment. In this example of a length-8 code, the first 2 code bits are punctured, and the decoding scheduling sequence is DS= [4, 5, 6, 3, 7, 8] , or shortened as DSs= [4, 6, 3, 7, 8] . In the example shown in Fig. 18, bit values for the bit indices 4 and 5 are the same, and bit values for the bit indices 3 and 6 are the same. The arrows from position 4 to position 5 and from position 6 to position 3 at the left in Fig. 18 are intended to represent this. Regarding indices 4 and 5, Fig. 18 is different from Fig 17 in that the bit value for bit index 5 is decoded first in Fig. 17, but the bit value for bit index 4 is decoded first in Fig. 18.

[0192] Decoding orders in which information / frozen / PC bits are no longer decoded in serial order, but in parallel, are also possible. In cases in which there are multiple bits that have the same value, according to a PC function for example, they can be hard decided in parallel after combining their soft information such as LLRs. The decoding order in each parallel decoding block can be sequential, or non-sequential.

[0193] A parallel decoding order can be represented by a set of decoding scheduling sequences, instead of only one sequence. If there are p blocks that are to be decoded in parallel, then there may be p decoding scheduling sequences, including a respective decoding scheduling sequence for each block. This may be expressed as follows, as an example: DS1= [i1, i2 …] , DS2= [j1, j2 …] , …, DSp= [k1, k2 …] .

[0194] Any bits that are to be simultaneously hard decided can be represented by index tuples, which are pairs in the case of two bits to be hard decided at the same time, triples as in the following examples in the case of three bits to be hard decided at the same time, and so on: (ir=js=kt) , (ir+4=js+2=kt+1) , …

[0195] The above examples illustrate that bits that are to be simultaneously hard decided need not have corresponding positions in the decoding scheduling orders of parallel decode blocks. Such bits also need not be in the same position within their respective blocks. In the first example above, the r-th index in DS1, the s-th index in DS2, and the t-th index in DS3 are to be simultaneously hard decided. All of r, s, and t in this example, or any two of them, may be the same, or they may all be different.

[0196] Fig. 19 is a block diagram of a trellis, illustrating a further decoding example according to an embodiment. In the example shown, the upper half and lower half of the trellis are decoded in parallel. The decoding scheduling sequences are DS1= [3, 4] , DS2= [5, 6, 7, 8] , and (4=5) . As seen, for the 4th and 5th indices, their bit values are the same, and therefore their soft information such as LLRs L’4 and L’5 are combined first in this example, and then a joint hard decision is made: u4=u5= (1-sign (L′4+L′5) )  / 2.

[0197] Fig. 20 is a block diagram of a trellis, illustrating yet another decoding example according to another embodiment. In the example shown, as in the above example that refers to Fig. 19, the two parallel-decoded blocks have different sizes. More generally, blocks that are to be parallel-decoded may be of the same size or different sizes.

[0198] The decoding scheduling sequences in the example shown in Fig. 20 are DS1= [2] , DS2= [3, 4, 5, 6, 7, 8] , and (2=3) . As seen, for the 2nd and 3rd indices, their bit values are the same, and therefore their soft information such as LLRs L’2 and L’3 are combined first in the example shown, and then a joint hard decision is made: u2=u3= (1-sign (L′2+L′3) )  / 2.

[0199] In these two examples, the splitting point between two blocks, denoted o for ease of reference, are different. They are 4 and 2, respectively. In practice, a splitting point can be set as mother code length N divided by a power of 2 integer, such as o=N / 2, N / 4, N / 8, N / 16, etc., and their combination sums, such as o= N / 2+N / 4, o= N / 2+N / 8, o= N / 2+N / 4+N / 16, etc.

[0200] In embodiments that may be referred to herein as bidirectional decoding, directions of decoding different blocks can be different. For example, one block may be decoded in sequential order, while another block is decoded in reverse sequential order.

[0201] Fig. 21 is a block diagram of a trellis, illustrating a bidirectional decoding example according to an embodiment. In the example shown, the upper and lower half of the trellis are decoded in parallel, but in different directions. Although the example in Fig. 21 is for parallel-decoded blocks, bidirectional decoding may be applied to serially decoded blocks.

[0202] The decoding scheduling sequences in Fig. 21 are DS1= [4, 3] , DS2= [5, 6, 7, 8] , and (4=5) . As seen, the bit values for the 4th and 5th indices are the first decoded bit in each block and are the same, and therefore their soft information such as LLRs L’4 and L’5 are combined in the example shown and then a joint hard decision is made: u4=u5= (1-sign (L′4+L′5) )  / 2.

[0203] Fig. 22 is a block diagram of a trellis, illustrating another bidirectional decoding example according to another embodiment. In this example, the two parallel-decoded blocks have different sizes. The decoding scheduling sequences are DS1= [3, 2] , DS2= [4, 5, 6, 7, 8] , and (3=4) . As seen, the bit values for the 2nd and 3rd indices are the first decoded in each block and are the same, and therefore their soft information such as LLRs L’3 and L’4 can be combined and then a joint hard decision can be made: u3=u4= (1-sign (L′3+L′4) )  / 2.

[0204] Several illustrative examples, for different code lengths, are provided below.

[0205] For code length 2, there are two possible scheduled-serial decoding orders in total. The corresponding decoding scheduling sequences are [1, 2] for sequential decoding, and [2, 1] for non-sequential decoding.

[0206] For decoding scheduling sequence [1, 2] , u1 is decoded first, and then u2 is decoded. This is illustrated in Fig. 8 and described above.

[0207] For decoding scheduling sequence [2, 1] , u2 is decoded first, and then u1 is decoded. This is illustrated in Fig. 13 and described above.

[0208] When both code bits are transmitted, sequential decoding in order [1, 2] may generally be preferred. However, it is possible to use non-sequential decoding according to decoding scheduling sequence [2, 1] even when both code bits are transmitted. For example, in current channel conditions u1 may experience more severe interference than u2, and it may then be preferred to decode u2 first.

[0209] When only one code bit is transmitted, that is, either L1 or L2 (but not both) is received, the second decoding scheduling [2, 1] and non-sequential decoding can be used.

[0210] For code length 4, there are 4! =24 possible scheduled-serial decoding orders in total. All of 24 decoding scheduling sequences are listed below: [1, 2, 3, 4] , [1, 2, 4, 3] , [1, 3, 2, 4] , [1, 3, 4, 2] , [1, 4, 2, 3] , [1, 4, 3, 2] [2, 1, 3, 4] , [2, 1, 4, 3] , [2, 3, 1, 4] , [2, 3, 4, 1] , [2, 4, 1, 3] , [2, 4, 3, 1] [3, 1, 2, 4] , [3, 1, 4, 2] , [3, 2, 1, 4] , [3, 2, 4, 1] , [3, 4, 1, 2] , [3, 4, 2, 1] [4, 1, 2, 3] , [4, 2, 1, 3] , [4, 2, 1, 3] , [4, 2, 3, 1] , [4, 3, 1, 2] , [4, 3, 2, 1]

[0211] Any of these decoding scheduling sequences may be implemented or supported for non-sequential decoding, and a choice as to which sequence to use may be made depending on any of various factors, such as specific channel conditions. However, for an AWGN channel, only a subset of these sequences might be selected according to code length N and code rates, for example.

[0212] There are two possible code lengths under mother code length 4, including N=4 or N=3.

[0213] For N=4, which is the mother code length case, sequential decoding in order [1, 2, 3, 4] , or non-sequential decoding, can be used.

[0214] For N=3, no matter which code bit is punctured to reach code length 3, all of the puncturing options lead to the first bit (u1) being a null bit, and accordingly this bit should not be decided at all. In this example of N=3, there are "4 choose 3" = 4 possible options for puncturing one of the 4 code bits to reach code length 3, and a check of all 4 options confirms that each puncturing option lead to the first bit (u1) being a null bit. Although no decoding decision is made on a bit value that is placed on a null bit index, an input bit value may still be placed on a null bit index prior to encoding. However, null bit indices are skipped or ignored for decoding, and no bit values are decoded for null bit indices. As a result, the possible decoding scheduling sequences reduce to the following set of six cases: [2, 3, 4] , [2, 4, 3] , [3, 4, 2] , [3, 2, 4] , [4, 2, 3] , [4, 3, 2]

[0215] For (N=3, K=3) , all six decoding orders have the same block error rate (BLER) performance. Selection of a decoding order may be based on the importance of each individual bit. Decoding orders in which the more important bit is decoded first, for example, may be selected from the set of six decoding orders.

[0216] For (N=3, K=2) , there may be two decoding orders. Due to universal partial order of subchannel reliability, the 2nd bit index will always be the least reliable. In this example of (N=3, K=2) , the second bit is therefore a frozen bit, and it will always be decoded before the third bit, which is an information bit. The bit positions [2, 3] form a consecutive sequential subsequence, and the subsequence [3, 2] is not allowed. As a result, all the possible decoding scheduling sequences further reduce to the following two cases: [2, 3, 4] , [4, 2, 3]

[0217] For (N=3, K=1) , there is only one decoding order. Due to universal partial order of subchannel reliability, the 2nd and 3rd bit indices will always be less reliable than the 4th bit index, and thus are frozen. Because the second and the third bits are frozen bits in this example of (N=3, K=1) , they will always be decoded before the fourth bit, which is an information bit. The bit positions [2, 3, 4] form a consecutive sequential subsequence. As a result, all the possible decoding scheduling further reduce to the following one case: [2, 3, 4]

[0218] Decoding according to each of the set of six decoding orders above is described below. For all 2-by-2 polar transformations (or “butterflies” ) , if the upper bit is decoded first, then the f (L1, L2) and g (L1, L2, u1) functions are used. If the lower bit is decoded first, then the new gr (L2) and fr (L1, u2) functions are used.

[0219] Fig. 23 is a block diagram illustrating a binary tree representation of SC decoding of an example length N=3 polar code based on puncturing a length N=4 mother code, for a decoding order [2, 3, 4] . Although the indices in this decoding are sequential, the LLR calculation using f / g-functions is different due to the null bit u1.

[0220] Figs. 24 to 28 are block diagrams illustrating binary tree representations of SC decoding of the same example polar code for Fig. 23, but for a decoding order [2, 4, 3] , [3, 4, 2] , [3, 2, 4] , [4, 2, 3] , [4, 3, 2] , respectively.

[0221] For code length 8, there are 8! =40320 possible scheduled-serial decoding orders in total. Any of these decoding orders may be implemented or supported for non-sequential decoding, and a choice as to which decoding order to use may be made depending on any of various factors, such as specific channel conditions. However, for an AWGN channel, only a subset of these sequences might be selected according to code length N and code rates, for example.

[0222] For N=8, which is the mother code length case, sequential decoding order [1, 2, 3, 4, 5, 6, 7, 8] , or non-sequential decoding, can be used.

[0223] For N=7, no matter which code bit is punctured, all of the puncturing options lead to the first bit (u1) being a null bit. See, for example, L. Zhang, Z. Zhang, X. Wang, Q. Yu and Y. Chen, "On the puncturing patterns for punctured polar codes, " 2014 IEEE International Symposium on Information Theory, 2014, pp. 121-125, doi: 10.1109 / ISIT. 2014.6874807 (also referenced as "Zhang et al. " below) . Although an input bit value may be placed on the first bit index prior to encoding, the first bit will not be decided at all during decoding. As a result, the possible decoding scheduling sequences are the permutation set of all indices except the first bit, {2, 3, 4, 5, 6, 7, 8} . There are 7! =5040 possibilities.

[0224] For N=6, no matter which code bits are punctured, all of the puncturing options lead to the first bit (u1) and the second bit (u2) being null bits. See Zhang et al. Again, although input bit values may be placed on the first and second bit indices prior to encoding, the first and second bits will not be decided at all during decoding, and as a result, all the possible decoding scheduling sequences are the permutation set of all indices except the first two bits, {3, 4, 5, 6, 7, 8} . There are 6! =720 possibilities.

[0225] Similarly, for N=5, no matter which code bits are punctured, all of the puncturing options lead to the first three bits (u1, u2, u3) being null bits. See Zhang et al. These first three bits will not be decided during decoding, even if input bit values are placed on the null bit indices prior to encoding, and as a result, all the possible decoding scheduling sequences are the permutation set of all indices except the first three bits, {4, 5, 6, 7, 8} . There are 5! =120 possibilities.

[0226] For N≤4, the mother code length is no longer 8.

[0227] A code punctured from a length-8 mother code can always be decomposed into two subblocks punctured from length-4 mother codes. Decoding steps and features referenced above in the context of mother code length 4 can be reused to generate decoding steps and features for code length N=5~7. If the bit decoding order within a subblock is the same as an order described for a code based on mother code length 4, the same decoding steps can be reused. The two subblocks are decoded depending on which bit is currently being decoded. If the current bit belongs to the first subblock, then the first subblock will be decoded. The first subblock and the second subblock form 4 polar transformations (or “butterflies” ) . If a bit in the upper subblock is decoded first, then the f (L1, L2) and g (L1, L2, u1) functions are used. If a bit in the lower subblock is decoded first, then the new gr -function and the new fr -function described herein are used.

[0228] For codes punctured from mother codes of length 16 and above, the longer codes can be recursively decomposed into two subblocks, until codes with length 4 or 2 are obtained. Accordingly, the examples provided herein will enable a person skilled in the art to apply disclosed embodiments to other code lengths and code rates.

[0229] Non-sequential decoding, as disclosed herein, is a significant departure from conventional polar coding. With non-sequential decoding, the polarization process is also different. Constructing a polar code that works well for non-sequential decoding involves estimating the actual reliability of each bit index, and selecting the K most reliable bit positions, in terms of actual reliability based on non-sequential decoding, as the information set I.

[0230] Here reliability can be defined in many ways, including the following:

[0231] Subchannel capacity (or mutual information) for each bit index or bit ui, or a block of bits ui, ui+1, ..., uj;

[0232] Probability of correct decoding for each bit index or bit ui, or a block of bit indices or bits ui, ui+1, ..., uj.

[0233] As used herein, "reliability" is intended to encompass reliability defined in either of these ways.

[0234] General steps for code construction include estimating reliabilities and selecting the information set based on estimated reliabilities. For example, code construction may be summarized as follows:

[0235] 1. Estimate the actual reliability of all N bit indices according to the decoding scheduling ui1, ui2, ..., uiN;

[0236] 2. Choose the K most reliable bit indices as the information set I (which may include the PC set P) , lower-reliability bit indices as the frozen set F, and remaining zero-reliability (or very low reliability) bit indices as the null bit set

[0237] Without loss of generality, subchannel mutual information is referenced herein as a bit index reliability metric. Probability of correct decoding or error on decoding, or in other words reliability, can be determined or inferred once the mutual information is estimated. The larger mutual information, the higher reliability. Two estimation methods are disclosed, including bitwise channel mutual information and blockwise channel mutual information.

[0238] For AWGN channels, techniques for conversion between channel mutual information and channel variance are known. See S. ten Brink, G. Kramer and A. Ashikhmin, "Design of low-density parity-check codes for modulation and detection, " in IEEE Transactions on Communications, vol. 52, no. 4, pp. 670-678, April 2004, doi: 10.1109 / TCOMM. 2004.826370. For the present discussion it is assumed that the channel mutual information has already been obtained as I1, I2, ..., IN.

[0239] The following examples focus first on a single butterfly, and then an entire trellis can be modelled accordingly.

[0240] In sequential decoding, the mutual information of u1 is

[0241] where J is a function that converts standard deviation (σ) or variance (σ2) to mutual information:

[0242] After u1 is decoded, the mutual information of u2 becomes

[0243] Fig. 29 is a block diagram illustrating such two-step mutual information estimation for sequential decoding.

[0244] For non-sequential decoding, the mutual information of u2 is I′2=I2. Note that this is lower than I′2 for sequential decoding, as shown above and in Fig. 29. After u1 is decoded, the mutual information of u1 becomes I′1=I1, which is higher than I′1 for sequential decoding, as shown above and in Fig. 29.

[0245] Fig. 30 is a block diagram illustrating such two-step mutual information estimation for non-sequential decoding.

[0246] Following the above rules, and given a decoding scheduling, all mutual information I′1, I′2, ..., I′N for u1, u2, ..., uN can be obtained. Then, mutual information can be used as a measure of actual reliability and the basis for selection of bit indices, and the K indices with highest mutual information can be selected as the information set.

[0247] Some embodiments herein relate to code construction and corresponding decoding processes that involve null bits, which are not to be decoded but may still carry input bit values.

[0248] In this context, it may be useful to first consider conventional puncturing techniques. Fig. 31 is a block diagram illustrating an encoder. The illustrated encoder 3100 includes a bit index selector 3102 for selecting bit indices for an information set and a frozen set, a polar encoder 3104 for encoding bits to obtain encoded bits, and a rate matching module 3106 to perform rate matching. Input bits for encoding are shown as input transport block (TB) or payload bits, and rate-matched encoded bits are shown as an output of rate matching.

[0249] Values of K input bits are placed on bit indices in the information set, and a frozen bit is placed on bit indices in the frozen set at 3102 to generate an input vector, and the input vector is encoded at 3104 to obtain encoded bits. Rate matching at 3106 may include puncturing and / or shortening, for example, and resulting rate-matched encoded bits may be processed and / or transmitted, for example. The polar encoder 3104 outputs encoded bits that may be punctured, and all of the encoded bits are provided to the rate matching module 3106 for rate matching prior to output. However, some of the encoded bits from the polar encoder 3104 will not remain after rate matching, and will not be transmitted for example. The encoded bits that are removed during rate matching may be referred to as punctured bits in the case of rate matching by puncturing, and are not transmitted in a transmitter implementation for example. At a decoder side, punctured bit indices are known to the decoder, corresponding LLRs are set to 0, and decoding proceeds based on those LLRs for the punctured bits and received LLRs for other bits. Because the polar encoding was performed independently of rate matching, decoding performance may be substantially affected by the rate matching.

[0250] Fig. 32 is a block diagram illustrating an encoder according to an embodiment. The example encoder 3200 includes a bit index selector 3202, a polar encoder 3204 coupled to the bit index selector, a rate matching module 3206 coupled to the polar encoder, and a null bit index selector 3208 coupled to the rate matching module and to the bit index selector. Input bits for encoding are shown as input TB or payload bits, and rate-matched encoded bits are shown as an output of rate matching.

[0251] Encoder 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.

[0252] In the example encoder 3200, the bit index selector 3202 is configured, by executing software for example, to select bit indices for an information set and a frozen set. The polar encoder 3204 is configured, by executing software for example, to encode bits to obtain encoded bits. The rate matching module 3206 is configured, by executing software for example, to perform rate matching, and may include a circular buffer for storing encoded bits from the polar encoder 3204 for rate matching. The null bit index selector 3208 is configured, by executing software for example, to select or otherwise identify null bit indices, associated with an input vector, that are impacted by the rate matching at 3206. The null bit index selector 3208 is further configured to provide an indication of the null bit indices to the bit index selector 3202, so that null bit indices can be marked or otherwise taken into account in selecting bit indices for the information set. Null bit selection or determination need not necessarily be implemented separately from bit index selection as shown in Fig. 32. The encoder 3200 is just an example.

[0253] Regardless of the particular implementation of null bit index selection or determination, null bit indices are related to rate matching. For example, in general if there are P punctured positions from which encoded bits are punctured, then there will be exactly P null bit indices. Puncturing the first P bit positions at the first P indices in a codeword of a polar code, for example, will most significantly degrade the first P bit indices in an input vector, and those first P bit indices are marked or otherwise indicated as or treated as null bit indices. Similarly, for many other puncturing patterns, a null bit pattern is identical to the puncturing pattern, such that null bit indices are the same indices as puncture bit indices from which encoded bits are punctured. There can be exceptions, especially when puncturing from the end of a codeword, in which case the null bit pattern is different from the puncturing pattern, and for such scenarios a null bit pattern or its relationship to a puncturing pattern may be defined or specified in a communication standard for example.

[0254] In general terms, there is a relationship between bit indices of encoded bits that are punctured or otherwise reduced in rate matching and null bit indices, which are indices in an input vector that are most significantly impacted or affected by rate matching. Correspondence between a number of punctured bits and a number of null bit positions and correspondence between punctured and null bit indices are examples of relatively simple deterministic relationships, but the present disclosure is not in any way restricted to such relationships.

[0255] Null bit indices may be determined based on rate matching, from a puncturing pattern or punctured bit indices for example. Rate matching is in turn dependent on code length and / or code rate, which may be defined in control information such as a modulation and coding scheme (MCS) index. Based on code length and code rate, which are known to a decoder, rate matching and thus null bit indices can be determined for decoding. This does not preclude signaling or configuration to indicate null bit indices, which may be used in other embodiments.

[0256] Null bits may impact both encoding and decoding embodiments. For example, if a null bit index is also part of an information set, then an input bit value that has been placed on that bit index may also be placed on another bit index that becomes part of the information set, so that the input bit value can be properly decoded. The input bit value may remain on the null bit index, and that input value may be encoded, but the corresponding encoded bit will not be transmitted or otherwise provided to a decoder and the input bit value will not be decoded at that null bit index. Null bits are not decoded, and non-sequential decoding as disclosed herein enables null bits to be skipped for decoding.

[0257] This is different from conventional decoding of rate-matched codes. Although both types of decoding (conventional and null bit embodiments disclosed herein) may involve setting received LLRs for punctured bits to 0 for example, null bit indices are skipped entirely for decoding. In contrast, conventional decoding does not skip any bit positions for decoding but rather still attempts to decode bit values at indices that correspond to punctured bits.

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

[0259] With reference first to 3300, from a transmitting device perspective the outputting of rate-matched encoded bits involves transmitting, at 3308, rate-matched encoded bits. The rate-matched encoded bits are transmitted by a first communication device to a second communication device in a wireless communication network. A number of encoded bits are obtained by encoding input bits by a polar code at 3304, and may be referred to as encoded bits encoded by the polar code. The rate-matched encoded bits include a reduced number of the encoded bits, as a result of performing rate matching on the encoded bits at 3306.

[0260] The polar code comprises or provides bit indices for placing values of the input bits before encoding. The bit indices include: a first set of bit indices, also referred to herein as an information set, for the values of the input bits; a second set of bit indices, also referred to herein as a frozen set, for a predetermined bit value; and a third set of bit indices, also referred to herein as a null bit set, that input bit indices for the values of the input bits and reducing the number of the encoded bits. As discussed in detail at least above, the null bit indices are related to rate matching, and in this sense the third set of bit indices are for reducing the number of the encoded bits obtained by the encoding at 3304. Input bit values may have been placed on one or more of the null bit indices, and therefore the null bit indices include bit indices for values of the input bits. The input bits are also placed on bit indices in the first set (the information set) , so that they can be decoded at those bit indices.

[0261] Bit index selection, as part of the encoding at 3304, may be based on reliabilities, for example. Initially, the first set may include bit indices of highest reliability and the second set may include bit indices of lower reliability than the highest reliability according to an ordered reliability sequence for example. The third set may include bit indices that are most significantly impacted by the rate matching at 3306, and have the lowest actual reliability, different from reliabilities in a fixed ordered reliability sequence. The selection or determination of bit indices in the third set may result in selection of additional bit indices for at least the information set, for example, to ensure that the first set includes at least enough bit indices for placement of all input bit values.

[0262] This is not necessarily the only type of bit index selection that may be used. The example above refers to a fixed ordered reliability sequence for initial bit index selection. Another option is to select bit indices for each set based on an ordered sequence in which bit indices are differently ranked, in order of preference for placement of input bits taking the rate matching at 3306 into account, for example. In this case the sequence itself accounts for the impact of rate matching, and bit index selection for the three sets can be based on such a sequence.

[0263] Fig. 33 also illustrates another operation that may be involved in obtaining encoded bits. At 3302, Fig. 33 illustrates obtaining the input bits, which may involve, for example, collecting or otherwise receiving data outputs from one or more devices and / or services, or accessing data in a memory.

[0264] As shown at 3308, a method may also involve outputting the rate-matched encoded bits that were obtained at 3304 and rate-matched at 3306. The encoded bits may be output for storage to memory, and / or transmission as indicated at 3308 for example.

[0265] Embodiments may include any or all of the operations illustrated at 3300. For example, in some embodiments, a method may involve encoding as shown at 3304, performing rate matching at 3306, and transmitting or otherwise outputting rate-matched encoded bits at 3308. Other embodiments may involve outputting or transmitting encoded bits, that have been obtained by encoding by a polar code and rate-matched, at 3308. Such embodiments are not mutually exclusive, and methods may involve the obtaining, encoding, and performing rate matching as shown at 3302, 3304, 3306, and also transmitting encoded bits as shown at 3306.

[0266] In some embodiments, the number of bit indices in the third set of bit indices (the null bit indices) is equal to a number of bits by which the number of encoded bits is reduced for rate matching at 3306. This is described by way of example above in terms of P punctured positions, from which encoded bits are punctured, resulting in exactly P null bit indices.

[0267] Bit indices in the third set of bit indices may correspond, entirely or at least in part, to bit indices of encoded bits by which the number of encoded bits is reduced. Examples above are illustrative of such correspondence. Those examples include puncturing the first P bit positions at the first P indices in a codeword of a polar code most significantly degrading the first P bit indices in an input vector such that those first P bit indices may then be marked or otherwise indicated as or treated as null bit indices, or more generally a null bit pattern being identical to a puncturing pattern, such that null bit indices are the same indices as puncture bit indices from which encoded bits are punctured. A null bit pattern having a relationship to a puncture pattern is an even more general way to express such correspondence.

[0268] Rate matching, such as puncture bit indices or a puncturing pattern, and similarly the third set of bit indices, may be based on either or both of code length of the polar code and code rate of the polar code.

[0269] Some embodiments may provide or support non-sequential decoding. In such embodiments, a respective reliability of each of the bit indices may be dependent upon the non-sequential decoding order in which the values of the input bits are to be decoded from the encoded bits. Such reliability is another example of actual reliability, and may be used in some embodiments as basis for bit index selection for encoding at 3304 for example. Actual reliability is not limited to any particular types, parameters, or bases for determining reliability. For example, reliability may be determined based on either, or both, of how rate matching impacts bit indices and how non-sequential decoding order impacts bit indices. Either or both of these parameters may be taken into account in determine an ordered sequence of bit indices based upon which bit indices are selected for different sets.

[0270] A non-sequential decoding order may involve postponed decoding, such as postponed decoding processing such as LLR calculations and / or a postponed bit decision, for a first bit index in the first set. The postponed decoding may be postponed until after decoding for a second bit index. The second bit index is subsequent to the first bit index in a sequential order of the plurality of bit indices. The first bit index in this example may be a bit index in the first set (the information set) or in the second set (the frozen set) , and the second bit index may also be a bit index in the first set or in the second set. In sequential decoding, decoding is in sequential order of bit indices, whether those bit indices are in the information set or the frozen set. In non-sequential decoding, the decoding is non-sequential in terms of order of the bit indices as a whole. Decoding for bit index 4 (to decode the bit value of u4) before the decoding for bit index 3 (to decode the bit value of u3) , for example, is non-sequential, regardless of whether u3 and u4 are both frozen bits, both information bits, or one of each. As described above, even though frozen bits are of a known value, decoding procedures such as LLR calculations are still performed for frozen bits, and in at least this sense there is decoding of frozen bits.

[0271] A non-sequential decoding order may be preferred for any of various reasons. For example, in the above scenario of first and second bit indices, a capacity of the second bit index may be higher than a capacity of the first bit index, or a bit error probability of the second bit index may be lower than a bit error probability of the first bit index. Under either of these conditions, the above non-sequential decoding for the second bit index before the first bit index may be preferred.

[0272] Non-sequential decoding need not be entirely non-sequential. For example, a non-sequential decoding order may include decoding for one or more bit indices to be performed in non-sequential order, and decoding for one or more blocks of multiple bit indices to be performed in sequential order. This is described by way of example above in the context of blocks, within which some bit values are decoded sequentially, and between which decoding is non-sequential.

[0273] An order of decoding may change with any of various parameters. In some embodiments, a non-sequential decoding order is based on code length of the polar code. Other parameters based upon which decoding order may be determined are provided elsewhere herein, and include any one or more of: capacity associated with one or more bit indices (to decode for higher capacity bit indices before lower capacity bit indices) , a number of transitions associated with different decoding orders (to decode in an order that involves fewer transitions) , performance (to decode in an order that involves better performance) , mutual information associated with one or more bit indices, and probability of correct decoding for one or more bit indices. Decoding order may be based on multiple parameters, and an example provided above refers number of transitions and performance, wherein between multiple decoding scheduling options with different numbers of such transitions but the same or similar performance, the option that involves fewer transitions may be preferred.

[0274] A non-sequential decoding order may be defined by a sequence of bit indices in the decoding order in which decoding for the bit indices in the sequence is to be performed. This is described by way of example above with reference to decoding scheduling sequences. There may be one, or more than one, decoding scheduling sequence. Respective decoding scheduling sequences may specify decoding order for different blocks of bit indices, for example.

[0275] The values of input bits placed on bit indices in the first set may include values of multiple input bits that are related to each other. Various examples of functions that establish or define relationships between input bits are provided elsewhere herein.

[0276] With related input bits, the non-sequential decoding order may enable determination of the value of any one of the multiple input bits based on bit decisions made for the values of other input bits of the multiple related input bits. There is no need to decode the value (s) of the input bit (s) in sequential order according to the bit indices on which the input bit values have been placed.

[0277] Another feature that may be enabled by the non-sequential decoding order in embodiments that involve multiple related input bits is determination of the values of the multiple input bits based on soft combining and joint bit decisions for the values of the multiple input bits.

[0278] Embodiments may involve other features or operations that are not explicitly shown in Fig. 33. For example, some embodiments may involve communicating signaling that is indicative of any of various parameters, such as any one or more of: MCS index, code length, code rate, puncturing pattern, and null bit pattern. 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 encoded bits 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 the signaling from the network device, and / or a decoder  / decoding device or a receiver  / receiving device receiving the signaling from the network device.

[0279] At 3350, Fig. 33 illustrates various decoding and / or receiving counterparts of features shown at 3300. From a receiving device perspective, the receiving at 3352 is represents receiving receiving rate-matched encoded bits that have been encoded by a polar code (and that remain after rate-matching applied to the encoded bits) . The receiving may involve receiving the rate-matched encoded bits, from a first communication device by a second communication device in a wireless communication network, for example.

[0280] The polar code, as in other embodiments herein, comprises bit indices for placing values of input bits before encoding, and the bit indices include a first set of bit indices (also referred to herein as an information set) for the values of the input bits, a second set of bit indices (also referred to herein as a frozen set) for a predetermined bit value, and a third set of bit indices (which may also be referred to as a null set) that includes input bit indices for the values of the input bits and reducing a number of encoded bits to obtain the rate-matched encoded bits. The decoding at 3354 is intended to illustrate decoding the received rate-matched encoded bits to obtain decoded input bits. 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 3356, for processing and / or storage, for example.

[0281] Received rate-matched encoded bits may be decoded in non-sequential order, as indicated at 3354. This may involve decoding based on the above-referenced functions fr and gr: Fnout, g_r=gr (Fnin2) Fnout, fr=fr (Fnin1, b)

[0282] where

[0283] Fnout, g_r and Fnout, f_r respectively denote outputs associated with each of the functions;

[0284] Fnin1 and Fnin2 denote function inputs associated with respective positions in a trellis graph for the polar code as described by way of example at least above; and

[0285] b denotes a binary variable.

[0286] These functions may be based on LLRs as follows:

[0287] where

[0288] Lout denotes an output LLR associated with each of the functions; and

[0289] Lin1, Lin2 denote input LLRs, which are described by way of example at least above.

[0290] In such embodiments, decoding according to non-sequential decoding order may involve decoding for an i-th bit index based on the functions gr and fr where decoding for an (i-1) -th bit index has not been performed before the decoding for the i-th bit index.

[0291] Any or all of the features that are described above in the context of encoder-side or transmitter-side methods, with reference to operations at 3300 in Fig. 33, 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:

[0292] a number of bit indices in the third set of bit indices is equal to a number of bits by which the number of encoded bits was reduced by rate matching to obtain the rate-matched encoded bits;

[0293] the bit indices in the third set of bit indices correspond to bit indices of encoded bits by which the number of encoded bits was reduced to obtain the rate-matched encoded bits;

[0294] the third set of bit indices is based either or both of: code length of the polar code and code rate of the polar code;

[0295] the decoding involves decoding the values of the input bits from the rate-matched encoded bits according to a non-sequential decoding order;

[0296] a respective reliability of each of the bit indices is dependent upon the non-sequential decoding order;

[0297] the decoding according to the non-sequential decoding order involves, for a first bit index and a second bit index that is subsequent to the first bit index in a sequential order of the plurality of bit indices: decoding for the second bit index and then decoding for the first bit index after the decoding for the second bit index;

[0298] a capacity of the second bit index is higher than a capacity of the first bit index;

[0299] a bit error probability of the second bit index is lower than a bit error probability of the first bit index;

[0300] the decoding according to the non-sequential decoding order involves: decoding for one or more of the plurality of bit indices in non-sequential order, and decoding for one or more blocks of multiple bit indices of the plurality of bit indices in sequential order;

[0301] the non-sequential decoding order is based on code length of the polar code;

[0302] the non-sequential decoding order is defined by a sequence of bit indices in decoding order in which decoding for the bit indices in the sequence is to be performed;

[0303] the values of the input bits include values of multiple input bits that are related to each other;

[0304] the decoding according to the non-sequential decoding order involves determining the value of any one of the plurality of the input bits based on bit decisions made for the values of other input bits of the multiple input bits;

[0305] the decoding according to the non-sequential decoding order involves determining the values of the multiple input bits based on soft combining and joint bit decisions for the values of the multiple input bits.

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

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

[0308] 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 polar code to obtain a number of encoded bits, and output the encoded bits. An apparatus may also or instead include an encoder for encoding input bits by a polar code to obtain a number of encoded bits, and an interface coupled to the encoder for outputting the encoded bits. The polar code comprises bit indices for placing values of the input bits before encoding, and the bit indices include: a first set of bit indices for the values of the input bits, a second set of bit indices for a predetermined bit value, and a third set of bit indices comprising input bit indices for the values of the input bits and reducing the number of the encoded bits.

[0309] An interface may be configured to, or programming may include, or may also include instructions to, or to cause a processor to: transmit, by a first communication device to a second communication device in a wireless communication network, reduced number of encoded bits encoded by a polar code. The polar code comprises first, second, and third sets of bit indices, and the third set of bit indices bit indices includes input bit indices for the values of the input bits and reducing a number of the encoded bits to the reduced number of the encoded bits.

[0310] 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:

[0311] a number of bit indices in the third set of bit indices is equal to a number of bits by which the number of encoded bits is reduced for rate matching;

[0312] the bit indices in the third set of bit indices correspond to bit indices of encoded bits by which the number of encoded bits is reduced;

[0313] the third set of bit indices is based on either or both of: code length of the polar code and code rate of the polar code;

[0314] a respective reliability of each of the bit indices is dependent upon a non-sequential decoding order in which the values of the input bits are to be decoded from the encoded bits;

[0315] the non-sequential decoding order involves postponed decoding for a first bit index of the plurality of bit indices until after decoding for a second bit index of the plurality of bit indices, wherein the second bit index is subsequent to the first bit index in a sequential order of the plurality of bit indices;

[0316] a capacity of the second bit index is higher than a capacity of the first bit index;

[0317] a bit error probability of the second bit index is lower than a bit error probability of the first bit index;

[0318] the non-sequential decoding order involves decoding for one or more of the plurality of bit indices to be performed in non-sequential order, and decoding for one or more blocks of multiple bit indices of the plurality of bit indices to be performed in sequential order;

[0319] the non-sequential decoding order is based on code length of the polar code;

[0320] the non-sequential decoding order is defined by a sequence of bit indices in decoding order in which decoding for the bit indices in the sequence is to be performed;

[0321] the values of the input bits include values of multiple input bits that are related to each other;

[0322] the non-sequential decoding order enables determination of the value of any one of the multiple input bits based on bit decisions made for the values of other input bits of the multiple input bits;

[0323] the non-sequential decoding order enables determination of the values of the multiple input bits based on soft combining and joint bit decisions for the values of the multiple input bits.

[0324] For a decoder-side or receiver-side apparatus or a computer program product comprising a non-transitory computer readable storage medium to support decoder-side or receiver-side operations, the apparatus may be configured to or programming may include instructions to, or to cause a processor to: receive rate-matched encoded bits that have been encoded by a polar code, and decode the rate-matched encoded bits to obtain decoded input bits. In another embodiment, an apparatus includes an interface for receiving rate-matched encoded bits that have been encoded by a polar code, and a decoder coupled to the interface, for decoding the rate-matched encoded bits to obtain decoded input bits. The polar code comprises bit indices for placing values of input bits before encoding, and the bit indices include a first set of bit indices for the values of the input bits, a second set of bit indices for a predetermined bit value, and a third set of bit indices comprising input bit indices for the values of the input bits and reducing a number of encoded bits to obtain the rate-matched encoded bits.

[0325] 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:

[0326] the interface is configured to, or the programming includes instructions to or to cause a processor to: receive the rate-matched encoded bits from a first communication device by a second communication device in a wireless communication network;

[0327] a number of bit indices in the third set of bit indices is equal to a number of bits by which the number of encoded bits was reduced by rate matching to obtain the rate-matched encoded bits;

[0328] the bit indices in the third set of bit indices correspond to bit indices of encoded bits by which the number of encoded bits was reduced to obtain the rate-matched encoded bits;

[0329] the third set of bit indices is based either or both of: code length of the polar code and code rate of the polar code;

[0330] the decoder is configured to, or the programming includes instructions to or to cause a processor to: decode the rate-matched encoded bits by decoding the values of the input bits from the rate-matched encoded bits according to a non-sequential decoding order;

[0331] a respective reliability of each of the bit indices is dependent upon the non-sequential decoding order;

[0332] the decoder is configured to, or the programming includes instructions to or to cause a processor to: decode according to the non-sequential decoding order by, for a first bit index and a second bit index of the plurality of bit indices, wherein the second bit index is subsequent to the first bit index in a sequential order of the plurality of bit indices: decoding for the second bit index; and decoding for the first bit index after the decoding for the second bit index;

[0333] a capacity of the second bit index is higher than a capacity of the first bit index;

[0334] a bit error probability of the second bit index is lower than a bit error probability of the first bit index;

[0335] the decoder is configured to, or the programming includes instructions to or to cause a processor to: decode according to the non-sequential decoding order by decoding based on the following functions gr and fr: Fnout, g_r=gr (Fnin2) Fnout, f_r=fr (Fnin1, b)

[0336] where

[0337] Fnout, g_r and Fnout, f_r respectively denote outputs associated with each of the functions;

[0338] Fnin1 and Fnin2 denote function inputs associated with respective positions in a trellis graph for the polar code; and

[0339] b denotes a binary variable;

[0340] the functions gr and fr are based on LLRs as follows:

[0341] where

[0342] Lout denotes an output LLR associated with each of the functions; and

[0343] Lin1, Lin2 denote input LLRs;

[0344] the decoder is configured to, or the programming includes instructions to or to cause a processor to: decode according to the non-sequential decoding order by decoding for an i-th bit index of the plurality of bit indices based on the functions gr and fr where decoding for an (i-1) -th bit index of the plurality of bit indices has not been performed before the decoding for the i-th bit index;

[0345] the decoder is configured to, or the programming includes instructions to or to cause a processor to: decode according to the non-sequential decoding order by: decoding for one or more of the plurality of bit indices in non-sequential order, and decoding for one or more blocks of multiple bit indices of the plurality of bit indices in sequential order;

[0346] the non-sequential decoding order is based on code length of the polar code;

[0347] the non-sequential decoding order is defined by a sequence of bit indices in decoding order in which decoding for the bit indices in the sequence is to be performed;

[0348] the values of the input bits include values of multiple input bits that are related to each other;

[0349] the decoder is configured to, or the programming includes instructions to or to cause a processor to: decode according to the non-sequential decoding order by determining the value of any one of the plurality of the input bits based on bit decisions made for the values of other input bits of the multiple input bits;

[0350] the decoder is configured to, or the programming includes instructions to or to cause a processor to: decode according to the non-sequential decoding order by determining the values of the multiple input bits based on soft combining and joint bit decisions for the values of the multiple input bits.

[0351] Embodiments disclosed herein encompass various aspects of polar coding, including encoding and decoding.

[0352] Disclosed embodiments may provide a fundamental upgrade of polar codes, and may make polar codes applicable for a much wider set of scenarios.

[0353] For example, disclosed embodiments may be implemented as part of a channel coding scheme, and may thus be applicable wherever channel coding is used. This covers a very wide range of scenarios. The flexibility provided by embodiments disclosed herein may help make the associated channel coding scheme particularly suitable for wireless communications.

[0354] Possible product deployments, in or in conjunction with which embodiments may be implemented, include network devices such as base stations, access devices such as UEs, robots, sensors, cars, drones, and satellites. Service deployment examples include enhanced mobile broadband (eMBB) , ultra-reliable low latency communications (URLLC) , massive machine type communications (mMTC)  / Internet of things (IoT) , and vehicular and industry scenarios. Network deployment examples include 5G+, 6G, WiFi, non-terrestrial networks (NTNs) , optical networks, distributed networks, and self-organized networks. These are illustrative and non-limiting examples, and other deployments, implementations, or applications are possible.

[0355] Some embodiments provide or support arbitrary decoding orders. A rich set of decoding orders may, in effect, provide a new and more flexible design space. For example, conventional code construction combined with fixed, sequential SC-based decoding provides a one-dimensional design space in which code construction represents one dimension or degree of freedom within which performance can be improved or optimized. Non-sequential decoding order introduces a further dimension or degree of freedom to improve or optimize performance, by jointly designing decoding scheduling and code construction. This can be considered two-dimensional (code construction and decoding scheduling) polar code design compared with the conventional one-dimensional (code construction only) polar code design.

[0356] Potential advantages or benefits of disclosed embodiments include more flexibility and larger design space for polar codes, and better adaptivity to channel state change or imperfect channel estimation. Improved flexibility and larger design space provide for better code construction, and better adaptivity enables decoding, and / or encoding, to be adapted to a dynamic wireless environment. In summary, non-sequential decoding for polar codes may provide or support better adaptation to different channel states or channel state changes, and polar code construction under non-sequential decoding may provide more flexibility and larger code design space.

[0357] For an (M=1500, K=768) polar code with sequential puncturing, for example, it has been confirmed by the inventors through simulation that the required signal to noise ratio (SNR) to achieve BLER=0.01 is significantly different with sequential and non-sequential SCL (list size 8) decoding. Under sequential decoding, the BLER does not drop to 0.01 regardless of how high the SNR is. Under scheduled decoding, the BLER drops to 0.01 at approximately SNR 3.0dB. These are illustrative of simulation results, and similar or different performance may be observed in deployments or implementations.

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

[0359] Features disclosed herein in the context of method embodiments, for example, may also or instead be implemented in apparatus 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.

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

[0361] 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:encoding input bits by a polar code to obtain a number of encoded bits, the polar code comprising bit indices for placing values of the input bits before encoding, the bit indices comprising: a first set of bit indices for the values of the input bits, a second set of bit indices for a predetermined bit value, and a third set of bit indices comprising input bit indices for the values of the input bits and reducing the number of the encoded bits; andoutputting the encoded bits.2.The method of claim 1, further comprising:transmitting, by a first communication device to a second communication device in a wireless communication network, the reduced number of the encoded bits.3.The method of claim 1 or claim 2, wherein a number of bit indices in the third set of bit indices is equal to a number of bits by which the number of encoded bits is reduced for rate matching.4.The method of any one of claims 1 to 3, wherein the bit indices in the third set of bit indices correspond to bit indices of encoded bits by which the number of encoded bits is reduced.5.The method of any one of claims 1 to 4, wherein the third set of bit indices is based on either or both of: code length of the polar code and code rate of the polar code.6.The method of any one of claims 1 to 5, wherein a respective reliability of each of the bit indices is dependent upon a non-sequential decoding order in which the values of the input bits are to be decoded from the encoded bits.7.The method of claim 6, wherein the non-sequential decoding order comprises postponed decoding for a first bit index of the plurality of bit indices until after decoding for a second bit index of the plurality of bit indices, wherein the second bit index is subsequent to the first bit index in a sequential order of the plurality of bit indices.8.The method of claim 7, wherein a capacity of the second bit index is higher than a capacity of the first bit index, or a bit error probability of the second bit index is lower than a bit error probability of the first bit index.9.The method of any one of claims 6 to 8, wherein the non-sequential decoding order comprises decoding for one or more of the plurality of bit indices to be performed in non-sequential order, and decoding for one or more blocks of multiple bit indices of the plurality of bit indices to be performed in sequential order.10.The method of any one of claims 6 to 9, wherein the non-sequential decoding order is based on code length of the polar code.11.The method of any one of claims 6 to 10, wherein the non-sequential decoding order is defined by a sequence of bit indices in decoding order in which decoding for the bit indices in the sequence is to be performed.12.The method of any one of claims 6 to 11,wherein the values of the input bits comprise values of multiple input bits that are related to each other,wherein the non-sequential decoding order enables determination of the value of any one of the multiple input bits based on bit decisions made for the values of other input bits of the multiple input bits.13.The method of any one of claims 6 to 11,wherein the values of the input bits comprise values of multiple input bits that are related to each other,wherein the non-sequential decoding order enables determination of the values of the multiple input bits based on soft combining and joint bit decisions for the values of the multiple input bits.14.A method comprising:receiving rate-matched encoded bits that have been encoded by a polar code, the polar code comprising bit indices for placing values of input bits before encoding, the bit indices comprising: a first set of bit indices for the values of the input bits, a second set of bit indices for a predetermined bit value, and a third set of bit indices comprising input bit indices for the values of the input bits and reducing a number of encoded bits to obtain the rate-matched encoded bits; anddecoding the rate-matched encoded bits to obtain decoded input bits.15.The method of claim 14, wherein the receiving comprises receiving, from a first communication device by a second communication device in a wireless communication network, the rate-matched encoded bits.16.The method of claim 14 or claim 15, wherein a number of bit indices in the third set of bit indices is equal to a number of bits by which the number of encoded bits was reduced by rate matching to obtain the rate-matched encoded bits.17.The method of any one of claims 14 to 16, wherein the bit indices in the third set of bit indices correspond to bit indices of encoded bits by which the number of encoded bits was reduced to obtain the rate-matched encoded bits.18.The method of any one of claims 14 to 17, wherein the third set of bit indices is based either or both of: code length of the polar code and code rate of the polar code.19.The method of any one of claims 14 to 18, wherein the decoding comprises decoding the values of the input bits from the rate-matched encoded bits according to a non-sequential decoding order, and wherein a respective reliability of each of the bit indices is dependent upon the non-sequential decoding order.20.The method of claim 19, wherein the decoding according to the non-sequential decoding order comprises, for a first bit index and a second bit index of the plurality of bit indices, wherein the second bit index is subsequent to the first bit index in a sequential order of the plurality of bit indices:decoding for the second bit index; anddecoding for the first bit index after the decoding for the second bit index.21.The method of claim 20, wherein a capacity of the second bit index is higher than a capacity of the first bit index, or a bit error probability of the second bit index is lower than a bit error probability of the first bit index.22.The method of any one of claims 19 to 21, wherein the decoding according to the non-sequential decoding order comprises decoding based on the following functions gr and fr: Fnout, g_r=gr (Fnin2) Fnout, f_r=fr (Fnin1, b)whereFnout, g_r and Fnout, f_r respectively denote outputs associated with each of the functions;Fnin1 and Fnin2 denote function inputs associated with respective positions in a trellis graph for the polar code; andb denotes a binary variable.23.The method of claim 22, wherein the functions gr and fr are based on log-likelihood ratios (LLRs) as follows: whereLout denotes an output LLR associated with each of the functions; andLin1, Lin2 denote input LLRs.24.The method of claim 22 or claim 23, wherein the decoding according to the non-sequential decoding order comprises:decoding for an i-th bit index of the plurality of bit indices based on the functions gr and fr where decoding for an (i-1) -th bit index of the plurality of bit indices has not been performed before the decoding for the i-th bit index.25.The method of any one of claims 19 to 24, wherein the decoding according to the non-sequential decoding order comprises:decoding for one or more of the plurality of bit indices in non-sequential order, anddecoding for one or more blocks of multiple bit indices of the plurality of bit indices in sequential order.26.The method of any one of claims 19 to 25, wherein the non-sequential decoding order is based on code length of the polar code.27.The method of any one of claims 19 to 26, wherein the non-sequential decoding order is defined by a sequence of bit indices in decoding order in which decoding for the bit indices in the sequence is to be performed.28.The method of any one of claims 19 to 27,wherein the values of the input bits comprise values of multiple input bits that are related to each other,wherein the decoding according to the non-sequential decoding order comprises determining the value of any one of the plurality of the input bits based on bit decisions made for the values of other input bits of the multiple input bits.29.The method of any one of claims 19 to 27,wherein the values of the input bits comprise values of multiple input bits that are related to each other,wherein the decoding according to the non-sequential decoding order comprises determining the values of the multiple input bits based on soft combining and joint bit decisions for the values of the multiple input bits.30.An apparatus comprising a processor configured to cause the apparatus to perform the method of any one of claims 1 to 13.31.An apparatus comprising:an encoder for encoding input bits by a polar code to obtain a number of encoded bits, the polar code comprising bit indices for placing values of the input bits before encoding, the bit indices comprising: a first set of bit indices for the values of the input bits, a second set of bit indices for a predetermined bit value, and a third set of bit indices comprising input bit indices for the values of the input bits and reducing the number of the encoded bits; andan interface coupled to the encoder, for outputting the encoded bits.32.The apparatus of claim 31, the interface being configured to:transmit, by a first communication device to a second communication device in a wireless communication network, the reduced number of the encoded bits.33.The apparatus of claim 31 or claim 32, wherein a number of bit indices in the third set of bit indices is equal to a number of bits by which the number of encoded bits is reduced for rate matching.34.The apparatus of any one of claims 31 to 33, wherein the bit indices in the third set of bit indices correspond to bit indices of encoded bits by which the number of encoded bits is reduced.35.The apparatus of any one of claims 31 to 34, wherein the third set of bit indices is based on either or both of: code length of the polar code and code rate of the polar code.36.The apparatus of any one of claims 31 to 35, wherein a respective reliability of each of the bit indices is dependent upon a non-sequential decoding order in which the values of the input bits are to be decoded from the encoded bits.37.The apparatus of claim 36, wherein the non-sequential decoding order comprises postponed decoding for a first bit index of the plurality of bit indices until after decoding for a second bit index of the plurality of bit indices, wherein the second bit index is subsequent to the first bit index in a sequential order of the plurality of bit indices.38.The apparatus of claim 37, wherein a capacity of the second bit index is higher than a capacity of the first bit index, or a bit error probability of the second bit index is lower than a bit error probability of the first bit index.39.The apparatus of any one of claims 36 to 38, wherein the non-sequential decoding order comprises decoding for one or more of the plurality of bit indices to be performed in non-sequential order, and decoding for one or more blocks of multiple bit indices of the plurality of bit indices to be performed in sequential order.40.The apparatus of any one of claims 36 to 39, wherein the non-sequential decoding order is based on code length of the polar code.41.The apparatus of any one of claims 36 to 40, wherein the non-sequential decoding order is defined by a sequence of bit indices in decoding order in which decoding for the bit indices in the sequence is to be performed.42.The apparatus of any one of claims 36 to 41,wherein the values of the input bits comprise values of multiple input bits that are related to each other,wherein the non-sequential decoding order enables determination of the value of any one of the multiple input bits based on bit decisions made for the values of other input bits of the multiple input bits.43.The apparatus of any one of claims 36 to 41,wherein the values of the input bits comprise values of multiple input bits that are related to each other,wherein the non-sequential decoding order enables determination of the values of the multiple input bits based on soft combining and joint bit decisions for the values of the multiple input bits.44.An apparatus comprising a processor configured to cause the apparatus to perform the method of any one of claims 14 to 29.45.An apparatus comprising:an interface for receiving rate-matched encoded bits that have been encoded by a polar code, the polar code comprising bit indices for placing values of input bits before encoding, the bit indices comprising: a first set of bit indices for the values of the input bits, a second set of bit indices for a predetermined bit value, and a third set of bit indices comprising input bit indices for the values of the input bits and reducing a number of encoded bits to obtain the rate-matched encoded bits; anda decoder coupled to the interface, for decoding the rate-matched encoded bits to obtain decoded input bits.46.The apparatus of claim 45, wherein the interface is configured to receive the rate-matched encoded bits from a first communication device by a second communication device in a wireless communication network.47.The apparatus of claim 45 or claim 46, wherein a number of bit indices in the third set of bit indices is equal to a number of bits by which the number of encoded bits was reduced by rate matching to obtain the rate-matched encoded bits.48.The apparatus of any one of claims 45 to 47, wherein the bit indices in the third set of bit indices correspond to bit indices of encoded bits by which the number of encoded bits was reduced to obtain the rate-matched encoded bits.49.The apparatus of any one of claims 45 to 48, wherein the third set of bit indices is based either or both of: code length of the polar code and code rate of the polar code.50.The apparatus of any one of claims 45 to 49, wherein the decoder is configured to decode the rate-matched encoded bits by decoding the values of the input bits from the rate-matched encoded bits according to a non-sequential decoding order, wherein a respective reliability of each of the bit indices is dependent upon the non-sequential decoding order.51.The apparatus of claim 50, wherein the decoder is configured to decode according to the non-sequential decoding order by, for a first bit index and a second bit index of the plurality of bit indices, wherein the second bit index is subsequent to the first bit index in a sequential order of the plurality of bit indices:decoding for the second bit index; anddecoding for the first bit index after the decoding for the second bit index.52.The apparatus of claim 51, wherein a capacity of the second bit index is higher than a capacity of the first bit index, or a bit error probability of the second bit index is lower than a bit error probability of the first bit index.53.The apparatus of any one of claims 50 to 52, wherein the decoder is configured to decode according to the non-sequential decoding order by decoding based on the following functions gr and fr: Fnout, g_r=gr (Fnin2) Fnout, f_r=fr (Fnin1, b)whereFnout, g_r and Fnout, f_r respectively denote outputs associated with each of the functions;Fnin1 and Fnin2 denote function inputs associated with respective positions in a trellis graph for the polar code; andb denotes a binary variable.54.The apparatus of claim 53, wherein the functions gr and fr are based on log-likelihood ratios (LLRs) as follows: whereLout denotes an output LLR associated with each of the functions; andLin1, Lin2 denote input LLRs.55.The apparatus of claim 53 or claim 54, wherein the decoder is configured to decode according to the non-sequential decoding order by:decoding for an i-th bit index of the plurality of bit indices based on the functions gr and fr where decoding for an (i-1) -th bit index of the plurality of bit indices has not been performed before the decoding for the i-th bit index.56.The apparatus of any one of claims 50 to 55, wherein the decoder is configured to decode according to the non-sequential decoding order by:decoding for one or more of the plurality of bit indices in non-sequential order, anddecoding for one or more blocks of multiple bit indices of the plurality of bit indices in sequential order.57.The apparatus of any one of claims 50 to 56, wherein the non-sequential decoding order is based on code length of the polar code.58.The apparatus of any one of claims 50 to 57, wherein the non-sequential decoding order is defined by a sequence of bit indices in decoding order in which decoding for the bit indices in the sequence is to be performed.59.The apparatus of any one of claims 50 to 58,wherein the values of the input bits comprise values of multiple input bits that are related to each other,wherein the decoder is configured to decode according to the non-sequential decoding order by determining the value of any one of the plurality of the input bits based on bit decisions made for the values of other input bits of the multiple input bits.60.The apparatus of any one of claims 50 to 58,wherein the values of the input bits comprise values of multiple input bits that are related to each other,wherein the decoder is configured to decode according to the non-sequential decoding order by determining the values of the multiple input bits based on soft combining and joint bit decisions for the values of the multiple input bits.61.A computer program product comprising a non-transitory computer readable medium storing programming for execution by a processor, the programming including instructions to:encode input bits by a polar code to obtain a number of encoded bits, the polar code comprising bit indices for placing values of the input bits before encoding, the bit indices comprising: a first set of bit indices for the values of the input bits, a second set of bit indices for a predetermined bit value, and a third set of bit indices comprising input bit indices for the values of the input bits and reducing the number of the encoded bits; andoutput the encoded bits.62.A computer program product comprising a non-transitory computer readable medium storing programming for execution by a processor, the programming including instructions to:receive rate-matched encoded bits that have been encoded by a polar code, the polar code comprising bit indices for placing values of input bits before encoding, the bit indices comprising: a first set of bit indices for the values of the input bits, a second set of bit indices for a predetermined bit value, and a third set of bit indices comprising input bit indices for the values of the input bits and reducing a number of encoded bits to obtain the rate-matched encoded bits; anddecode the rate-matched encoded bits to obtain decoded input bits.63.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 29.64.A system comprising:a first communication device configured to transmit a reduced number of encoded bits encoded by a polar code, the polar code comprising bit indices for placing values of input bits before encoding, the bit indices comprising: a first set of bit indices for the values of the input bits, a second set of bit indices for a predetermined bit value, and a third set of bit indices comprising input bit indices for the values of the input bits and reducing a number of the encoded bits encoded by the polar code to the reduced number of the encoded bits; anda second communication device configured to receive the reduced number of encoded bits from the first communication device, and to decode the encoded bits to obtain decoded input bits.