Methods and apparatus for error correction coding with transmission diversity
Patent Information
- Application Number
- PCT/IB2025/059119
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2025-03-11
- Filing Date
- 2025-09-11
- Publication Date
- 2026-09-17
Smart Images

Figure IB2025059119_17092026_PF_FP_ABST
Abstract
Description
METHODS AND APPARATUS FOR ERROR CORRECTION CODING WITH TRANSMISSION DIVERSITY
[0001] The present disclosure is directed generally to error correction coding in a communication system, more specifically, to error correction coding with transmission diversity.
[0002] 5thgeneration (5G) mobile communication technologies specify broad frequency bands to provide higher transmission rates and new services, and can be deployed in “Sub 6GHz” bands such as 3.5 GHz, and also in “above 6 GHz” bands, which may be referred to as mmWave bands including 28 GHz and 39 GHz. In addition, the implementation of 6th generation 6G mobile communication technologies (e.g., beyond 5G systems) in terahertz frequency bands (e.g., 95 GHz to 3 THz bands) has been proposed in order to achieve transmission rates up to fifty times higher than 5G mobile communication technologies and ultra-low latencies approximately one-tenth of 5G mobile communication technologies.
[0003] Since the beginning of the development of 5G mobile communication technologies, to support various services and to satisfy performance requirements related to enhanced mobile broadband (eMBB), ultra-reliable low-latency communications (URLLC), and massive machine-type communications (mMTC), there has been ongoing standardization regarding beamforming and massive multi-input multi-output (MIMO) for mitigating radio-wave path loss and extending radio-wave transmission distances in mmWave, introducing numerologies (e.g., operating multiple subcarrier spacings (SCSs)) for efficiently utilizing mmWave resources and dynamic operation of slot formats, initial access technologies for supporting multi-beam transmission and broadbands, definition and operation of bandwidth parts (BWPs), novel channel coding methods such as a low density parity-check (LDPC) code for large amount of data transmission and a polar code for highly reliable transmission of control information, Layer 2 (L2) pre-processing, and network slicing for providing a dedicated network tailored to a specific service.
[0004] Currently, there are ongoing discussions regarding improvement and performance enhancement of initial 5G mobile communication technologies in view of services to be supported by 5G mobile communication technologies, and there has been physical layer standardization regarding technologies such as vehicle-to-everything (V2X) for aiding driving determination by autonomous vehicles based on information regarding positions and states of vehicles transmitted by the vehicles and for enhancing user convenience, new radio (NR)-Unlicensed (U) aimed at system operations conforming to various regulation-related requirements in unlicensed bands, NR UE (User Equipment) power saving, non-terrestrial network (NTN), which is UE-satellite direct communication for providing coverage in an area in which communication with terrestrial networks is unavailable, and positioning.
[0005] There has also been ongoing standardization in air interface architecture / protocol regarding technologies such as industrial Internet of things (IIoT) for supporting new services through interworking and convergence with other industries, integrated access and backhaul (IAB) for providing a node for network service area expansion by supporting a wireless backhaul link and an access link in an integrated manner, mobility enhancement including conditional handover and dual active protocol stack (DAPS) handover, and two-step random access for simplifying random access procedures (2-step RACH for NR).
[0006] There also has been ongoing standardization in system architecture / service regarding a 5G baseline architecture (e.g., service based architecture or service based interface) for combining network functions virtualization (NFV) and software-defined networking (SDN) technologies, and mobile edge computing (MEC) for receiving services based on UE positions.
[0007] As 5G mobile communication systems are commercialized, an exponentially increasing number of connected devices will be connected to communication networks, and it is expected that enhanced functions and performances of 5G mobile communication systems and integrated operations of connected devices will be necessary. To this end, new research is scheduled in connection with extended reality (XR) for efficiently supporting augmented reality (AR), virtual reality (VR), mixed reality (MR), etc., 5G performance improvement and complexity reduction by utilizing artificial intelligence (AI) and machine learning (ML), AI service support, metaverse service support, and drone communication.
[0008] Such development of 5G mobile communication systems will serve as a basis for developing new waveforms for providing coverage in terahertz bands of 6G mobile communication technologies, multi-antenna transmission technologies such as full dimensional MIMO (FD-MIMO), array antennas and large-scale antennas, metamaterial-based lenses and antennas for improving coverage of terahertz band signals, high-dimensional space multiplexing technology using orbital angular momentum (OAM), and reconfigurable intelligent surface (RIS), and also full-duplex technologies for increasing frequency efficiency of 6G mobile communication technologies and improving system networks, AI-based communication technologies for implementing system optimization by utilizing satellites and AI from the design stage and internalizing end-to-end AI support functions, and next-generation distributed computing technologies for implementing services at levels of complexity exceeding the limit of UE operation capability by utilizing ultra-high-performance communication and computing resources.
[0009] Definitions for other certain words and phrases are provided throughout this patent document. Those of ordinary skill in the art should understand that in many if not most instances, such definitions apply to prior as well as future uses of such defined words and phrases.
[0010] The present disclosure discloses a method and an apparatus for error correction coding in a communication system, more specifically, to error correction coding integrated with transmission diversity.
[0011] In one embodiment, an encoder apparatus in a communication system is provided. The encoder apparatus includes a polar encoder. The polar encoder is configured to identify a data word, obtain a transform input word comprising a data part derived from the data word and a fixed part, wherein a length of the data part is less than or equal to a sum of a length of the data word and a constant, and obtain a plurality of transform variables from the transform input word based on a polar transform. The encoder apparatus further includes a diversity mapper. The diversity mapper is configured to generate a diversity code array based on a diversity code array formation relation and a plurality of zero-error constraints, wherein, based on the diversity code array formation relation, an element of the diversity code array is associated with one of the plurality of transform variables, wherein at least one of the plurality of zero-error constraints is associated with a non-empty proper subset of rows of the diversity code array and the data part is uniquely identifiable from the subset of rows. The diversity mapper is further configured to transmit the diversity code array.
[0012] In another embodiment, a decoder apparatus in a communication system is provided. The decoder apparatus includes a diversity demapper. The diversity demapper is configured to identify a received diversity code array, wherein the received diversity code array corresponds to a transmitted diversity code array, the diversity code array is based on a diversity code array formation relation and a plurality of zero-error constraints, and each element of the diversity code array is associated, based on the diversity code array formation relation, with one of a plurality of transform variables, wherein the plurality of transform variables are related to the transform input word by a polar transform, the transform input word comprises a data part derived from a data word and a fixed part, a length of the data part is less than or equal to a sum of a length of the data word and a constant, at least one of the plurality of zero-error constraints is associated with a non-empty proper subset of rows of the diversity code array, and the data part is uniquely identifiable from the subset of rows. The diversity demapper is further configured to obtain, from the received diversity code array, a polar decoder input including an indicator indicating at least one element of the plurality of transform variables. The decoder apparatus further incnludes a polar decoder. The polar decoder is configured to decode the polar decoder input based on the polar transform to obtain a decoded data word.
[0013] In another embodiment, an encoding method in a communication system is provided. The encoding method includes a polar encoding step. The polar encoding step includes identifying a data word, obtaining a transform input word comprising a data part derived from the data word and a fixed part, wherein a length of the data part is less than or equal to a sum of a length of the data word and a constant, and obtaining a plurality of transform variables from the transform input word based on a polar transform. The encoding method further includes a diversity mapping step. The diversity mapping step incldues generating a diversity code array based on a diversity code array formation relation and a plurality of zero-error constraints, wherein, based on the diversity code array formation relation, an element of the diversity code array is associated with one of the plurality of transform variables, wherein at least one of the plurality of zero-error constraints is associated with a non-empty proper subset of rows of the diversity code array and the data part is uniquely identifiable from the subset of rows. The diversity mapping step further includes transmitting the diversity code array.
[0014] In yet another embodiment, a decoding method in a communication system is provided. The decoding method includes a diversity demapping step. The diversity demapping step includes identifying a received diversity code array, wherein the received diversity code array corresponds to a transmitted diversity code array, the diversity code array is based on a diversity code array formation relation and a plurality of zero-error constraints, and each element of the diversity code array is associated, based on the diversity code array formation relation, with one of a plurality of transform variables, wherein the plurality of transform variables are related to the transform input word by a polar transform, the transform input word comprises a data part derived from a data word and a fixed part, a length of the data part is less than or equal to a sum of a length of the data word and a constant, at least one of the plurality of zero-error constraints is associated with a non-empty proper subset of rows of the diversity code array, and the data part is uniquely identifiable from the subset of rows. The diversity demapping step further includes obtaining, from the received diversity code array, a polar decoder input including an indicator indicating at least one element of the plurality of transform variables. The decoding method further includes a polar decoding step. The polar decoding step includes decoding the polar decoder input based on the polar transform to obtain a decoded data word.
[0015] Other technical features may be readily apparent to one skilled in the art from the following figures, descriptions, and claims.
[0016] Before undertaking the DETAILED DESCRIPTION below, it may be advantageous to set forth definitions of certain words and phrases used throughout this patent document. The term “couple” and its derivatives refer to any direct or indirect communication between two or more elements, whether or not those elements are in physical contact with one another. The terms “transmit,” “receive,” and “communicate,” as well as derivatives thereof, encompass both direct and indirect communication. The terms “include” and “comprise,” as well as derivatives thereof, mean inclusion without limitation. The term “or” is inclusive, meaning and / or. The phrase “associated with,” as well as derivatives thereof, means to include, be included within, interconnect with, contain, be contained within, connect to or with, couple to or with, be communicable with, cooperate with, interleave, juxtapose, be proximate to, be bound to or with, have, have a property of, have a relationship to or with, or the like. The term “controller” means any device, system, or part thereof that controls at least one operation. Such a controller may be implemented in hardware or a combination of hardware and software and / or firmware. The functionality associated with any particular controller may be centralized or distributed, whether locally or remotely. The phrase “at least one of,” when used with a list of items, means that different combinations of one or more of the listed items may be used, and only one item in the list may be needed. For example, “at least one of: A, B, and C” includes any of the following combinations: A, B, C, A and B, A and C, B and C, and A and B and C.
[0017] Moreover, various functions described below can be implemented or supported by one or more computer programs, each of which is formed from computer readable program code and embodied in a computer readable medium. The terms “application” and “program” refer to one or more computer programs, software components, sets of instructions, procedures, functions, objects, classes, instances, related data, or a portion thereof adapted for implementation in a suitable computer readable program code. The phrase “computer readable program code” includes any type of computer code, including source code, object code, and executable code. The phrase “computer readable medium” includes any type of medium capable of being accessed by a computer, such as read only memory (ROM), random access memory (RAM), a hard disk drive, a compact disc (CD), a digital video disc (DVD), or any other type of memory. A “non-transitory” computer readable medium excludes wired, wireless, optical, or other communication links that transport transitory electrical or other signals. A non-transitory computer readable medium includes media where data can be permanently stored and media where data can be stored and later overwritten, such as a rewritable optical disc or an erasable memory device.
[0018] Definitions for other certain words and phrases are provided throughout this patent document. Those of ordinary skill in the art should understand that in many if not most instances, such definitions apply to prior as well as future uses of such defined words and phrases.
[0019] Before undertaking the DETAILED DESCRIPTION below, it may be advantageous to set forth definitions of certain words and phrases used throughout this patent document: the terms “include” and “comprise,” as well as derivatives thereof, mean inclusion without limitation; the term “or,” is inclusive, meaning and / or; the phrases “associated with” and “associated therewith,” as well as derivatives thereof, may mean to include, be included within, interconnect with, contain, be contained within, connect to or with, couple to or with, be communicable with, cooperate with, interleave, juxtapose, be proximate to, be bound to or with, have, have a property of, or the like; and the term “controller” means any device, system or part thereof that controls at least one operation, such a device may be implemented in hardware, firmware or software, or some combination of at least two of the same. It should be noted that the functionality associated with any particular controller may be centralized or distributed, whether locally or remotely.
[0020] Moreover, various functions described below can be implemented or supported by one or more computer programs, each of which is formed from computer readable program code and embodied in a computer readable medium. The terms “application” and “program” refer to one or more computer programs, software components, sets of instructions, procedures, functions, objects, classes, instances, related data, or a portion thereof adapted for implementation in a suitable computer readable program code. The phrase “computer readable program code” includes any type of computer code, including source code, object code, and executable code. The phrase “computer readable medium” includes any type of medium capable of being accessed by a computer, such as read only memory (ROM), random access memory (RAM), a hard disk drive, a compact disc (CD), a digital video disc (DVD), or any other type of memory. A “non-transitory” computer readable medium excludes wired, wireless, optical, or other communication links that transport transitory electrical or other signals. A non-transitory computer readable medium includes media where data can be permanently stored and media where data can be stored and later overwritten, such as a rewritable optical disc or an erasable memory device.
[0021] Definitions for certain words and phrases are provided throughout this patent document, those of ordinary skill in the art should understand that in many, if not most instances, such definitions apply to prior, as well as future uses of such defined words and phrases.
[0022] The present disclosure provides a method and an apparatus for error correction coding in a communication system.
[0023] For a comprehensive understanding of the present disclosure and its advantages, reference is made to the following description, which should be read in conjunction with the accompanying drawings, wherein like reference numerals represent like parts:
[0024] FIG. 1 is a schematic diagram of a wireless network 100 in which embodiments of the present principles may be implemented according to certain aspects of the present disclosure;
[0025] FIG. 2A illustrates an example user equipment network in which embodiments of the present principles may be implemented according to certain aspects of the present disclosure;
[0026] FIG. 2B illustrates an example of an enhanced NodeB (eNB) network in which embodiments of present principles may be implemented according to certain aspects of the present disclosure;
[0027] FIG. 3 is a block diagram illustrating a communication system in which embodiments of a diversity code can be implemented in accordance with certain aspects of the present principles;
[0028] FIG. 4 is a flowchart that illustrates an encoding method in accordance with certain aspects of the present disclosure;
[0029] FIG. 5A is a diagram 500 illustrating the essential elements of a preferred embodiment of the encoder 320 in accordance with certain aspects of the present principles;
[0030] FIG. 5B illustrates an example of a preferred embodiment of the encoder, in accordance with certain aspects of the present principles;
[0031] FIG 5C is a flowchart of a method for checking if a diversity code satisfies a plurality of zero-error constraints in accordance with certain aspects of the present principles;
[0032] FIG. 5D illustrates a first example of the zero-error check method depicted in FIG. 5C;
[0033] FIG. 5E illustrates a second example of the zero-error check method depicted in FIG. 5C;
[0034] FIG. 5F illustrates a third example of the zero-error check method depicted in FIG. 5C;
[0035] FIG. 5G illustrates a fourth example of the zero-error check method depicted in FIG. 5C;
[0036] FIG. 6A is a flowchart illustrating the steps of the ML-x method for constructing zero-error diversity codes in accordance with certain aspects of the present principles;
[0037] FIGS. 6B and 6C illustrate an example of the ML-x method depicted in FIG. 6A;
[0038] FIGS. 7A, 7B, and 7C are flowcharts and associated formulas illustrating the steps of the SC-x method for constructing zero-error diversity codes in accordance with certain aspects of the present principles;
[0039] FIGS. 7D and 7E illustrate an example of the SC-x method depicted in FIGs. 7A, 7B, and 7C;
[0040] FIGS. 8A and 8B are flowcharts illustrating the steps of the SC-u method for constructing zero-error diversity codes in accordance with certain aspects of the present principles;
[0041] FIG. 8C illustrates an example of the SC-u method depicted in FIGS. 8A and 8B;
[0042] FIG. 9 is a flowchart illustrating a decoding method in accordance with certain aspects the present disclosure;
[0043] FIG. 10 presents a simulation-based comparison of the frame error rate (FER) performance of example diversity code arrays constructed in accordance with certain aspects of the present principles;
[0044] FIG. 11 is a table that presents five implementation options for the encoder in accordance with certain aspects of the present principles.
[0045] FIGS. 1 through 11, discussed below, and the various embodiments used to describe the principles of the present disclosure in this patent document are by way of illustration only and should not be construed in any way to limit the scope of the disclosure. Those skilled in the art will understand that the principles of the present disclosure may be implemented in any suitably arranged system or device.
[0046] In emerging applications such as ultra-reliable low-latency communications (URLLC) there is a requirement to send short messages with ultra-high reliability and minimal latency over wireless channels affected by fading, interference, and thermal noise. Traditional methods to enhance the reliability of a given forward error-correcting coding (FEC) scheme through retransmissions, such as Hybrid-Automatic Repeat Request (HARQ), may not be compatible with the low latency requirement of certain URLLC usage scenarios. There is need for FEC methods that are integrated with transmission diversity so as to provide extreme reliability without retransmissions when such need arises. The present principles provide such a solution.
[0047] The present principles can be applied, provided that the channel in the system is capable of supporting transmission diversity, such as a channel consisting of multiple independently fading subchannels. For example, in an OFDM system, such subchannels may be obtained by using a multiple resource blocks that are sufficiently separated in frequency or time. Given such a channel and a FEC scheme with a specific encoder and decoder, the present principles introduce a diversity mapper between the encoder and the channel input, and a diversity demapper between the channel output and the FEC decoder, without requiring modifications to the encoder or the decoder. Effectively, the present principles upgrade the given channel to a higher-quality channel by integrating the channel with a diversity scheme that is tailored to the characteristics or the FEC scheme.
[0048] Polar coding is particularly well suited for use within or in combination with the present principles. In one aspect, the present principles can be viewed as an extension of polar coding, where a polar transform is augmented by a diversity mapper. Polar coding for fading channels has been extensively studied. For example, various techniques, including interleaving, signal shaping, modulation, and diversity transmission, have been integrated with polar coding to enhance resilience against fading and outages. Alternative diversity coding schemes in prior art based on Reed-Solomon (RS) codes achieve high efficiency as RS codes are maximum distance separable (MDS), achieving the Singleton bound with equality. However, employing RS codes for diversity coding increases complexity, particularly at the receiver side in extracting soft information from received RS symbols. The present principles eliminate RS coding and offer seamless integration of a legacy FEC scheme with a custom-designed diversity coding scheme, while using a common alphabet for both schemes. In preferred embodiments, the legacy FEC scheme is a binary polar code and the diversity coding scheme utilizes the binary variables generated in the course of computing a binary polar transform. The present principles minimize the complexity of soft information extraction at the receiver and integrate seamlessly with legacy polar decoders.
[0049] The present principles are based on a novel reliability criterion referred to as “zero-error diversity coding.” Zero-error diversity codes can be used as a supplementary method for enhancing the reliability of an existing polar coding scheme in a transparent manner, without requiring modifications to the existing polar coding scheme. This transparency is crucial when the existing scheme is already standardized or implemented in ASIC, where modifications may be impractical or costly. This transparency also enables “future-proofing” of an existing polar code implementation, which is essential in modern wireless communication standards as future use cases and their FEC requirements often cannot be anticipated at the time of standardization.
[0050] FIGS. 1 through 11, discussed below, and the various embodiments used to describe the principles of the present disclosure in this patent document are by way of illustration only and should not be construed in any way to limit the scope of the disclosure. Those skilled in the art will understand that the principles of the present disclosure may be implemented in any suitably arranged communication system.
[0051] Aspects, features, and advantages of the disclosure are readily apparent from the following detailed description, simply by illustrating a number of particular embodiments and implementations, including the best mode contemplated for carrying out the disclosure. The disclosure is also capable of other and different embodiments, and its several details can be modified in various obvious respects, all without departing from the spirit and scope of the disclosure. Accordingly, the drawings and description are to be regarded as illustrative in nature, and not as restrictive. The disclosure is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings.
[0052] In the following, for brevity, both FDD and TDD are considered as the duplex method for both DL and UL signaling.
[0053] Although exemplary descriptions and embodiments to follow assume orthogonal frequency division multiplexing (OFDM) or orthogonal frequency division multiple access (OFDMA), this disclosure can be extended to other OFDM-based transmission waveforms or multiple access schemes such as filtered OFDM (F-OFDM).
[0054] The present disclosure covers several components which can be used in conjunction or in combination with one another, or can operate as standalone schemes.
[0055] FIG. 1 is a schematic diagram of a wireless network 100 in which embodiments of the present principles may be implemented according to certain aspects of the present disclosure. The wireless network 100 is for illustration only and does not limit the scope of the present disclosure. In particular, the present disclosure can be applied in wireline communication systems as well as wireless systems.
[0056] The wireless network 100 includes an eNodeB (eNB) 101, an eNB 102, and an eNB 103. The eNB 101 communicates with the eNB 102 and the eNB 103. The eNB 101 also communicates with at least one Internet Protocol (IP) network 130, such as the Internet, a proprietary IP network, or other data network.
[0057] Depending on the network type, other well-known terms may be used instead of “eNodeB” or “eNB,” such as “base station,” “BS,” “gNodeB,” or “access point.” For the sake of convenience, the terms “eNodeB” and “eNB” are used in this patent document to refer to network infrastructure components that provide wireless access to remote terminals. Also, depending on the network type, other well-known terms may be used instead of “user equipment” or “UE,” such as “mobile station” (or “MS”), “subscriber station” (or “SS”), “remote terminal,” “wireless terminal,” or “user device.” For the sake of convenience, the terms “user equipment” and “UE” are used in this patent document to refer to remote wireless equipment that wirelessly accesses an eNB, whether the UE is a mobile device (such as a mobile telephone or smartphone) or is normally considered a stationary device (such as a desktop computer or vending machine).
[0058] The eNB 102 provides wireless broadband access to the IP network 130 for a first plurality of user equipments (UEs) within a coverage area 120 of the eNB 102. The first plurality of UEs includes a UE 111, which may be located in a small business (SB); a UE 112, which may be located in an enterprise (E); a UE 113, which may be located in a WiFi hotspot (HS); a UE 114, which may be located in a first residence (R1); a UE 115, which may be located in a second residence (R2); and a UE 116, which may be a mobile device (M) like a cell phone, a wireless laptop, a wireless personal digital assistant (PDA), tablet, or the like. The eNB 103 provides wireless broadband access to the IP network 130 for a second plurality of UEs within a coverage area 125 of the eNB 103. The second plurality of UEs includes the UE 115 and the UE 116. In some embodiments, one or more of the eNBs 101-103 may communicate with each other and with the UEs 111-116 using WiFi, WiMAX, 3G, 4G, long-term evolution (LTE), LTE-A, 5G, or other present or future advanced wireless communication techniques.
[0059] Dotted lines show the approximate extents of the coverage areas 120 and 125, which are shown as approximately circular for the purposes of illustration and explanation only. It should be clearly understood that the coverage areas associated with eNBs, such as the coverage areas 120 and 125, may have other shapes, including irregular shapes, depending upon the configuration of the eNBs and variations in the radio environment associated with natural and man-made obstructions.
[0060] As described in more detail below, one or more of eNB 101, eNB 102 and eNB 103 include 2D antenna arrays that can be used in conjunction with embodiments of the present disclosure. In some embodiments, one or more of eNB 101, eNB 102 and eNB 103 support the codebook design and structure for systems having 2D antenna arrays.
[0061] Although FIG. 1 illustrates one example of the wireless network 100, various changes may be made to FIG. 1. For example, the wireless network 100 could include any number of eNBs and any number of UEs in any suitable arrangement. Also, the eNB 101 could communicate directly with any number of UEs and provide those UEs with wireless broadband access to the IP network 130. Similarly, each eNB 102-103 could communicate directly with the IP network 130 and provide UEs with direct wireless broadband access to the IP network 130. Further, the eNB 101, 102, and / or 103 could provide access to other or additional external networks, such as external telephone networks or other types of data networks.
[0062] The embodiments of the present principles depicted in the figures and described below may be implemented in an eNB (such as eNB 102) and / or a UE (such as UE 116), as described in further detail below.
[0063] FIG. 2A illustrates an example user equipment network in which embodiments of the present principles may be implemented according to certain aspects of the present disclosure. The embodiment of the UE 116 illustrated in FIG. 2A is for illustration only, and the UEs 111-116 of FIG. 1 could have the same or similar configuration. However, UEs come in a wide variety of configurations, and FIG. 2A does not limit the scope of the present disclosure to any particular implementation of a UE.
[0064] The UE 116 includes an antenna 205, a radio frequency (RF) transceiver 210, a transmit (TX) processing circuitry 215, a microphone 220, and a receive (RX) processing circuitry 225. The UE 116 also includes a speaker 230, a controller / processor 240, an input / output (I / O) interface 245, input device(s) 250 (such as a keypad), a display 255, and a memory 260. The memory 260 includes a basic operating system (OS) program 261 and one or more applications 262. Either the basic OS program 261, one of the applications 262, or some combination thereof may implement programming for employing the present principles as described in the various embodiments herein.
[0065] The RF transceiver 210 receives, from the antenna 205, an incoming RF signal transmitted by an eNB of the wireless network 100. The RF transceiver 210 may down-convert the incoming RF signal to generate an intermediate frequency (IF) or baseband signal which would be sent to the RX processing circuitry 225. The RX processing circuitry 225 transmits the processed signal to the speaker 230 (such as for voice data) or to the controller / processor 240 for further processing (such as for web browsing data).
[0066] The TX processing circuitry 215 receives, as at least some input data for the source data block, analog or digital voice data from the microphone 220 or other outgoing baseband data (such as web data, e-mail, or interactive video game data) from the controller / processor 240. The RF transceiver 210 receives the outgoing processed baseband or IF signal from the TX processing circuitry 215 and up-converts the baseband or IF signal to an RF signal that is transmitted via the antenna 205.
[0067] The controller / processor 240 can include one or more processors or other processing devices and execute the basic OS program 261 stored in the memory 260 in order to control the overall operation of the UE 116. For example, the controller / processor 240 could control the reception of forward channel signals and the transmission of reverse channel signals by the RF transceiver 210, the RX processing circuitry 225, and the TX processing circuitry 215 in accordance with well-known principles. In some embodiments, the controller / processor 240 includes at least one programmable microprocessor or microcontroller, while in other embodiments the main processor includes dedicated circuitry as well as (optionally) programmable logic or processing circuits. The controller / processor 240 may comprise or correspond to an application processor (AP) and / or a communication processor (CP). In one example, the AP and / or CP may be implemented in separate integrated circuit (IC) packages. In another example, the AP and / or CP may be integrated into a single IC package or implemented as a system on chip (SoC).
[0068] The controller / processor 240 is also capable of executing other processes and programs resident in the memory 260, such as operations for channel quality measurement and reporting for systems having 2D antenna arrays. The controller / processor 240 can move data and / or instructions into or out of the memory 260 as required by an executing process. In some embodiments, the controller / processor 240 is configured to execute the applications 262 based on the basic OS program 261 or in response to signals received from eNBs or an operator. The controller / processor 240 is also coupled to the I / O interface 245, which provides the UE 116 with the ability to connect to other devices such as laptop computers and handheld computers. The I / O interface 245 is the communication path between these accessories and the controller / processor 240. The controller / processor 240 can be configured to perform the functions performed by the encoder, diversity mapper, decoder, and diversity demapper described in the following description.
[0069] The controller / processor 240 is also coupled to the input device(s) 250 (which may simply be a single button or may be an array or other set of buttons) and the display 255. The operator of the UE 116 can use the input device(s) 250 to enter data into the UE 116. The display 255 may be a touch screen display or other display capable of rendering text and / or at least limited graphics, such as from web sites, and receiving touch inputs by a user in accordance with known practices.
[0070] The memory 260 is coupled to the controller / processor 240, and at least a part of the memory 260 could include a random access memory (RAM), and another part of the memory 260 could include a Flash memory or other read-only memory (ROM). The memory 260 may be implemented as one or more separate memory devices, or may be integrated into the same chip or package as the controller / processor 240, thereby forming a SoC or a multi-chip package. While the controller / processor 240 and memory 260 are shown as separate blocks in FIG. 2A, they may be physically combined or implemented in a single chip, and memory 260 may include embedded logic or processing elements that support controller / processor 240 functionality.
[0071] Although FIG. 2A illustrates one example of the UE 116, various changes may be made to FIG. 2A. For example, various components in FIG. 2A could be combined, further subdivided, or omitted and additional components could be added according to particular needs. As a particular example, the controller / processor 240 could be divided into multiple processors, such as one or more central processing units (CPUs), one or more application specific integrated circuits (ASICs), one or more field programmable gate arrays (FPGAs), and one or more graphics processing units (GPUs). Also, while FIG. 2A illustrates the UE 116 configured as a mobile telephone or smartphone, UEs could be configured to operate as other types of mobile or stationary devices.
[0072] FIG. 2B illustrates an example of an enhanced NodeB (eNB) network in which embodiments of present principles may be implemented according to certain aspects of the present disclosure. The embodiment of the eNB 102 shown in FIG. 2B is for illustration only, and other eNBs of FIG. 1 could have the same or similar configuration. However, eNBs come in a wide variety of configurations, and FIG. 2B does not limit the scope of the present disclosure to any particular implementation of an eNB. It is noted that the eNB 101 and the eNB 103 can include the same or similar structure as the eNB 102.
[0073] As shown in FIG. 2B, the eNB 102 includes multiple antennas 270a-270n, multiple RF transceivers 272a-272n, a transmit (TX) processing circuitry 274, and a receive (RX) processing circuitry 276. In certain embodiments, one or more of the multiple antennas 270a-270n include 2D antenna arrays. The eNB 102 also includes a controller / processor 278, a memory 280, and a backhaul or network interface 282.
[0074] The RF transceivers 272a-272n receive, from the antennas 270a-270n, incoming RF signals, such as signals transmitted by UEs or other eNBs. The RF transceivers 272a-272n down-convert the incoming RF signals to generate IF or baseband signals. The IF or baseband signals are sent to the RX processing circuitry 276, which generates processed signals by filtering, decoding, and / or digitizing the baseband or IF signals. The RX processing circuitry 276 transmits the processed signals to the controller / processor 278 for further processing.
[0075] The TX processing circuitry 274 receives at least some input data. The TX processing circuitry 274 implements circuits to encode, multiplex, and / or digitize the outgoing baseband data to generate processed signals. The RF transceivers 272a-272n receive the outgoing processed signals from the TX processing circuitry 274 and up-converts the baseband or IF signals to RF signals that are transmitted via the antennas 270a-270n.
[0076] The controller / processor 278 can include one or more processors or other processing devices that control the overall operation of the eNB 102. For example, the controller / processor 278 could control the reception of forward channel signals and the transmission of reverse channel signals by the RF transceivers 272a-272n, the RX processing circuitry 276, and the TX processing circuitry 274 in accordance with well-known principles. The controller / processor 278 could support additional functions as well, such as more advanced wireless communication functions. Any of a wide variety of other functions could be supported in the eNB 102 by the controller / processor 278. In some embodiments, the controller / processor 278 includes at least one microprocessor or microcontroller, while in other embodiments the main processor includes dedicated circuitry (e.g., for controlling encoding and decoding processes, code puncturing and / or shortening processes, data mapping,etc.) as well as (optionally) programmable logic or processing circuits. The controller / processor 278 can be configured to perform the functions performed by the encoder, diversity mapper, decoder, and diversity demapper described in the following specification.
[0077] The controller / processor 278 is also capable of executing programs and other processes resident in the memory 280, such as a basic OS. The controller / processor 278 is also capable of supporting channel quality measurement and reporting for systems having 2D antenna arrays. In some embodiments, the controller / processor 278 supports communications between entities. The controller / processor 278 can move data and / or instructions into or out of the memory 280 as required by an executing process.
[0078] The controller / processor 278 is also coupled to the backhaul or network interface 282. The backhaul or network interface 282 allows the eNB 102 to communicate with other devices or systems over a backhaul connection or over a network. The network interface 282 could support communications over any suitable wired or wireless connection(s). For example, when the eNB 102 is implemented as part of a cellular communication system (such as one supporting 3G, 4G, 5G, LTE, or LTE-A), the interface 282 could allow the eNB 102 to communicate with other eNBs over a wired or wireless backhaul connection. When the eNB 102 is implemented as an access point, the network interface 282 could allow the eNB 102 to communicate over a wired or wireless local area network or over a wired or wireless connection to a larger network (such as the Internet). The interface 282 includes any suitable structure supporting communications over a wired or wireless connection, such as an Ethernet or RF transceiver.
[0079] The memory 280 is coupled to the controller / processor 278. Part of the memory 280 could include a RAM, and another part of the memory 280 could include a Flash memory or other ROM. In certain embodiments, a plurality of instructions is stored in memory. The instructions are configured to cause the controller / processor 278 to perform the systematic and / or non-systematic encoding or decoding processes, shortening processes, data mapping,etc.
[0080] Although FIG. 2B illustrates one example of the eNB 102, various changes may be made to FIG. 2B. For example, the eNB 102 could include any number of each component shown. As a particular example, an access point could include a number of instances of the network interface 282, and the controller / processor 278 could support routing functions to route data between different network addresses. As another particular example, while shown as including a single instance of the TX processing circuitry 274 and a single instance of the RX processing circuitry 276, the eNB 102 could include multiple instances of each (such as one per RF transceiver).
[0081] For any set , the notation indicates that is an element of , denotes the complement in a specified universal set, and denotes the size (cardinality) of . The notation denotes the empty set. A set is called non-empty if . For any two sets and , the notation means that is a subset of , which includes the possibility that . A set is called a proper subset of a set if and . A set is called a non-empty proper subset of a set if and . The symbols , , , and denote the logical operators OR, AND, XOR, and NOT, respectively.
[0082] The terms “word” and “array” refer to collections of data that are arranged into one-dimensional and two-dimensional structures, respectively. The elements of words and arrays may correspond to various types of numbers, parameters, or signals in a system.
[0083] A word is a one-dimensional collection such as indexed by a single set of integers , where is referred to as the length of , and as the index set of . The term is referred to as an th element of , or an th coordinate of , or an element in the th position of . For any subset , the notation denotes the subword consisting of elements of the word with indices in . The elements of are listed in increasing index order in . For example, for and , we have . The elements of a word may be numerical or non-numerical. For example, the elements of a word may represent binary data emitted by a source, in which case they may take the values 0 or 1. In another example, the elements of a word may represent symbols sent over a channel, in which case they may belong to a modulation alphabet. In a third example, the elements of a word may represent log-likelihood rations produced by a demapper between a channel and a decoder, in which case they may be real numbers.
[0084] An array is a collection of words such as , wherein denotes the number of words in , and denotes an th word of , . The th row of is a word of the form , wherein denotes the length of . Different rows of may have different lengths; i.e., the lengths need not be the same. The sum is referred to as the length of the array . The largest of the row lengths is referred to as the number of columns of . An array is also denoted , where is referred to as the th element of , or the element in the th position of . We sometimes use the notation to denote . The index set of an array is defined as . The index set of an array is the set of all available positions in the array . In general, an array is displayed with the aid of a special symbol "-" to denote any "null" elements in the array; for example, represents an irregular array with row lengths , , , , and total length .
[0085] An aray is called regular if all rows of have the same length; otherwise, it is called irregular. We say that is an regular array if is a regular array with rows and columns. For an regular array , and any two sets and , the notation denotes the subarray , where the elements of are listed in the same relative order as they appear in . For example, for , , and , we have .
[0086] Given an array , the notation denotes the word . For example, if , then ).
[0087] Sometimes a word is given and the task is to construct an array from , where the number of rows in is specified as a fixed parameter but the number of columns of is subject to choice. By default, the number of columns of is chosen as , where denotes the integer greater than or equal to . The array is populated with the elements of by filling elements into the top rows and elements into the bottom rows. The filling starts at the top row, each row is filled from left to right with the specified number of elements before moving to the next row. For instance, if and , the default method yields the array . We define balanced row-major order as a method of constructing an array from a word . In this method, is populated with the elements of as described above.
[0088] To describe various encoding operations, we use vectors and matrices over a vector space. Vectors represent points in a vector space and matrices represent linear operators on vectors. In this description, we regard vectors as special cases of words and matrices as special cases of regular arrays. So, the terminology and notation described above for words and regular arrays apply to words and matrices, respectively. For an element of a matrix , we call the row index and the column index of . We write to denote the transpose of a matrix ; thus, is the matrix with . If is an invertible matrix, we denote the inverse of by . Given two matrices and , the notation denotes the product of and . Given a vector and a matrix , we denote their product by . For these products to make sense, the matrices and vectors involved must have compatible dimensions. The Kronecker product of any two matrices and is defined as the matrix .
[0089] FIG. 3 is a block diagram illustrating a communication system 300 in which embodiments of a diversity code can be implemented in accordance with certain aspects of the present principles. FIG. 3 provides a high-level overview of the overall system, including both an encoder and a decoder for the diversity code, as well as their interaction through a communication channel. At this stage, no specific aspects of the present principles or implementation details are depicted, offering a general framework for understanding data flow within the system.
[0090] The communication system 300 comprises an encoder 320 connected, a channel 330 connected to the encoder 320, and a decoder 340 connected to the channel 330, wherein the encoder 320 is configured to identify a data word, encode the data word to a diversity code array from a diversity code, and transmit the diversity code array over the channel 330, wherein the decoder 340 is configured to identify a received diversity code array at an output of the channel 330, and decode the received diversity code array to obtain a decoded data word, wherein the encoder 320 comprises a polar encoder 321 and a diversity mapper 322, the decoder 340 comprises a diversity demapper 341 and a polar decoder 342, wherein the polar encoder 321 and the polar decoder 342 operate based on a polar transform.
[0091] The data word may include voice, video, sensor readings, or any other form of digital information. The encoder 320 implements an error-correcting code based on the present principles, generating a diversity code array based on the data word. The channel 330 may represent any physical or logical communication medium, such as a wired link (e.g., copper cable, fiber optic), a wireless connection (e.g., radio frequency, optical wireless), or a hybrid network architecture. During transmission, the data can be exposed to noise, interference, signal fading, or other impairments that introduce errors into the received signal. The channel 330 typically comprises signal processing functions such as modulation / demodulation, digital-to-analog (D / A) and analog-to-digital (A / D) conversion operations, amplification, filtering, equalization, and synchronization. At the receiver side, the decoder 340 processes the received signal in accordance with the present principles to mitigate the effects of channel-induced impairments and recover the transmitted data.
[0092] In typical embodiments, the channel 330 comprises a plurality of subchannels 330-1 through 330-s, where the number of subchannels matches a number of rows in the diversity code array. Each row of the diversity code array is associated with a corresponding subchannel according to a subchannel assignment relation, and each row is transmitted via its respective subchannel. The subchannel assignment relation may be a one-to-one relation, associating each row with a unique subchannel. In some embodiments, the subchannel assignment relation may be a many-to-one relation, assign multiple rows to a single subchannel. In some embodiments, a number of subchannels may be larger than a number of rows, and a subset of subchannels may be selected based on available subchannel state information.The internal details of the channel 330 and the subchannels 330-1 through 330-s are beyond the scope of the present principles. The encoder 320 and decoder 340 interface with the channel over digital interfaces. For instance, if the diversity code array is over a binary alphabet, the encoder 320 typically sends a sequence of binary digits or symbols over each of the subchannels. These binary digits or symbols are modulated into real or complex-valued signals capable of being transmitted over the physical medium comprising the channel 330. The signals may be electrical, optical, or in another physical form. Different subchannels may utilize varying modulation formats, transmission time slots, or frequencies to enhance diversity.
[0093] The present principles focus on applications that require delivering data words from a transmitter to receiver with extreme reliability and low latency. To achieve this, diversity transmission techniques are employed across a plurality of subchannels 330-1 through 330-s.For example, the physical layer (PHY) resources for the subchannels may be assigned at different frequencies (carriers) to provide frequency domain diversity, at different time slots to provide time domain diversity, or across different antennas, antenna elements, or antenna polarization modes to provide spatial diversity. Typically, the number of subchannelssis a flexible configuration parameter that determines the order of transmission diversity. The encoder 320 and decoder 340 are designed to be adaptive with respect to the parameters, allowing the system to accommodate various diversity orders as needed. The present principles are applicable for anys≥2; however, significant performance gains are demonstrated withs≤6.
[0094] The channel 330 is typically characterized at the decoder 340 by channel transition probabilities, which may depend on the channel state and are usually expressed as the conditional probability of observing a channel output given the channel input and the channel state. In some embodiments, the channel 330 and its subchannels may be modeled as conditionally independent given the channel state and the transmitted code array. Additionally, the subchannels may be modeled as conditionally memoryless given the channel state.
[0095] The channel output observed by the decoder 340 is typically a sequence of finite-precision real- or complex-valued signals that carry raw statistical information about the symbols transmitted at the channel input. Additionally, the channel output may include various forms of side information about the state of the plurality of subchannels 330-1 through 330-s, such as estimates of fading coefficients, outage events, received signal strengths, or signal-to-noise ratio (SNR) estimates. The present principles are designed to take full advantage of the availability of such channel state information (CSI) at the decoder 340, without requiring that CSI is available at the encoder 320. Based on the channel model and the CSI, the diversity demapper 341 processes the channel output, effectively inverting the processes at the diversity mapper 322, and generates a polar decoder input that can be readily used by the polar decoder 342 to generate a decoded data word.
[0096] Current and future wireless standards include control channels and signaling methods designed to coordinate an encoder and decoder, enabling them to leverage the present principles in rapidly changing wireless transmission environments. Typically, the encoder 320 and decoder 340 are configured by their respective control units, which are not shown in FIG. 3. In some embodiments of the present principles, the encoder 320 and decoder 340 operate as part of an adaptive coding and modulation system, controlled by a higher-layer protocol, such as a MAC layer resource allocation and scheduling algorithm. In such adaptive systems, the configurations of the encoder 320 and decoder 340 may vary with each use of the communication system 300, along with the channel 330 and the subchannels 330-1 through 330-s. For instance, the channel 330 may be reconfigured based on PHY layer resource assignments communicated to the encoder 320 and decoder 340 by a MAC layer entity.
[0097] A configuration consists of one or more configuration parameters. Some of these parameters for the encoder 320 and decoder 340 may be predefined or predetermined, while others may be signaled between the encoder and decoder, or determined by the encoder and / or decoder autonomously. In typical embodiments of the present principles, as described below, the configuration parameters for the encoder and decoder include the polar transform size, data word length, data part index set, polar code word length, channel interleaver, a plurality of zero-error constraints, number of rows in the diversity code array, length of each row in the diversity code array, among others. These configuration parameters are subject to various constraints.
[0098] For instance, the polar transform size may be restricted to powers of two, such as values between 8 and 1024. The data word length may be limited to positive integers smaller than the polar transform size. The plurality of zero-error constraints may be chosen from a predefined set of options. Additionally, there may be a number of predefined design types for the diversity code array, with a specific design type included in the encoder and decoder configuration. The encoder and decoder may be preconfigured with stored diversity code arrays, enabling selection through a unique identifier for a specific array.
[0099] The encoder and decoder may also be preconfigured to determine the data part index set and channel interleaver using predefined procedures, such as those defined by 5G NR standards, after determining the polar transform size and data word length. In some embodiments, configuration parameters may be set through signaling methods such as RRC signaling, MAC CE, or DCI. For example, up to bits of signaling could specify a parameter with or fewer preconfigured values.
[0100] The configuration of the polar encoder may further include details about the polar transform size and a method (e.g., identification) for forming the transform input word from the data word. In some embodiments of the present principles, the configuration may also specify rate-adaptation methods, such as shortening or puncturing. The transform input word may include redundant bits, such as cyclic redundancy checks (CRC) or dynamically frozen bits, derived from the data word using various techniques. In some cases, the data word itself may include redundant bits. When puncturing or shortening is applied, adjustments may be made to the transform input word or the transform output word accordingly.
[0101] Additionally, the configuration of the polar encoder may include information (e.g., identification) regarding permutation or interleaving operations to be applied to the transform input word, transform output word, or polar code word. In certain embodiments of the present principles, the polar encoder may specifically be a 5G NR polar encoder.
[0102] When the diversity mapper 322 and diversity demapper 341 are implemented as add-on features to an existing polar encoder and polar decoder, existing RRC signaling methods can be used to deliver the polar coding configuration parameters to the polar encoder and decoder. Additional signaling, such as RRC signaling, MAC CE, or DCI, is required to deliver the diversity code parameters to the diversity mapper and demapper. For backward compatibility with an existing polar coding system, RRC signaling should also include a message enabling a fallback mode that bypasses diversity coding while using polar coding.
[0103] In some embodiments of the present principles, the encoder 320 and decoder 340 in the communication system 300 are capable of operating under multiple configurations, providing flexibility in selecting a diversity code array to meet various operational constraints such as reliability, latency, and available communication resources. Such multi-configuration systems are common in current wireless standards like 5G and are expected to be a requirement in future 6G standards. When employing the present principles in systems with multiple configurations, a coordination problem arises between the encoder and decoder, specifically the need to ensure that both select compatible configurations. In some scenarios, the encoder configuration may be controlled by a medium access control (MAC) layer or entity, which transmits radio resource control (RRC) messages, while the decoder uses blind detection methods to determine the encoder's configuration. Alternatively, both the encoder and decoder may be configured by the MAC layer or entity via respective RRC messages. In some cases, the decoder may rely on blind detection to determine the encoder's configuration. Alternatively, a set of predefined configuration candidates (e.g., configuration-1, configuration-2, configuration-3) may be established through RRC messages, with one specific configuration (e.g., configuration-2) selected via a MAC control element (CE), downlink control information (DCI), or other Layer 1 (L1) signaling.
[0104] The present principles, as depicted in FIG. 3, utilize a modular architecture that separates error correction functions (polar encoder / decoder) from diversity transmission functions (diversity mapper / demapper). This design allows a polar encoder / decoder pair to be combined with different diversity mapper / demapper pairs, enhancing flexibility and enabling backward-compatible integration with legacy systems. For instance, a 5G NR-based polar encoder 321 can be paired with a diversity mapper 322 to address the reliability demands of 5G / 6G ultra-reliable low-latency communication (URLLC) scenarios. This modular approach also supports future applications requiring extreme reliability while maintaining compatibility with existing standards.
[0105] The present principles provide extensive implementation flexibility due to the wide range of parameters that define the encoder 320 and decoder 340. These principles can be realized in hardware, software, or a combination of both. In some embodiments, the encoder 320 may be implemented at a base station and the decoder 340 at a user terminal, or vice versa. The principles support both real-time diversity code array design using algorithms and retrieval of pre-stored diversity code arrays from memory. It should be noted that various modifications can be made to the apparatus and methods described herein. For instance, operations presented in the figures or flowcharts may overlap, occur in parallel, follow a different order, or repeat multiple times. Additionally, certain operations may be omitted or substituted with alternative processes.
[0106] In some embodiments of the present principles, for a given configuration of the polar encoder 321 and polar decoder 342, the diversity mapper 322 and diversity demapper 341 may have a limited number of configuration options. In such cases, it may be preferable to preconfigure the diversity mapper and demapper with a set of pre-stored choices and use RRC signaling to indicate which option to employ. This approach eliminates the need for real-time diversity code array computation, reducing processing complexity and latency. Additionally, it allows the MAC layer (or MAC entity) to easily determine the PHY layer resource requirements for transmitting the diversity code array. In another embodiment, the MAC layer (or MAC entity) may compute a diversity code array in real-time and send its description to the encoder 320 and decoder 340. While this method introduces more overhead, it removes the restriction of limiting the parameter space to predefined selections.
[0107] After addressing system-level architectural considerations for deploying the present principles, we now focus on specific embodiments of the encoder 320 and decoder 340.
[0108] FIG. 4 is a flowchart that illustrates an encoding method 400 in accordance with certain aspects of the present disclosure. The encoding method 400 includes the steps of (401) identifying a data word, (402) obtaining a transform input word comprising a data part derived from the data word and a fixed part, wherein a length of the data part is less than or equal to a sum of a length of the data word and a constant, (403) obtaining a plurality of transform variables from the transform input word based on a polar transform, (404) generating a diversity code array based on a diversity code array formation relation and a plurality of zero-error constraints, wherein, based on the diversity code array formation relation, an element of the diversity code array is associated with one of the plurality of transform variables, wherein at least one of the plurality of zero-error constraints is associated with a non-empty proper subset of rows of the diversity code array and the data part is uniquely identifiable from the subset of rows, and (405) transmitting the diversity code array. Steps 401, 402, and 403 are executed by the polar encoder 321, while steps 404 and 405 are executed by the diversity mapper.
[0109] The following discussion elaborates on several technical terms referenced in the description of the encoder 320, including "polar transform," "plurality of transform variables", "diversity code array," and "zero-error constraints." Additionally, an explanation of the constraints imposed on various length parameters is provided.
[0110] FIG. 5A is a diagram 500 illustrating the essential elements of a preferred embodiment of the encoder 320 in accordance with certain aspects of the present principles. The diagram 500 consists of four panels, each detailing a distinct component: (1) the polar encoder steps, (2) the fast polar transform operation, (3) the diversity mapper steps, and (4) the zero-error constraints in relation to a diversity code array. Each of these panels is discussed in detail below.
[0111] The present principles are compatible with any communication system 300 where the polar encoder 321 or the polar decoder 342 comprise a polar transform that can be represented by a matrix of the type wherein are a plurality of kernel matrices over a finite field , i.e., is a lower triangular matrix with non-zero elements on the diagonal, and at least one non-zero element below the diagonal, with , for all . More generally, the polar encoder 321 or the polar decoder 342 may comprise various permutations, such as bit-reversals permutations, applied before or after the polar transform operation . In the preferred embodiments and examples below, we consider the most basic forms of polar coding over the binary field in order not to clutter the description with unnecessary detail. These specific embodiments and examples should not be interpreted as limiting the scope of the present principles.
[0112] To discuss a basic form of polar coding, we turn to the first panel in FIG. 5A, which illustrates a polar transform 501 over the binary field . The transform has size 502 and is defined by the th Kronecker power of a kernel matrix 503 for some . Given a vector 504 over , we define the vector 505 as the polar transform of if the relation 506 holds, where the matrix multiplication is performed in the binary field . Based on the relation 506, the vectors and are referred to as the "transform input word" and "transform output word," respectively.
[0113] In step 401 of the encoder method 400, the polar encoder 321 identifies a data word 507, where denotes a length of . For the time being, we assume that ; below, we will introduce further constraints on that will narrow the scope of the present principles. In general, the data word may have built-in redundancies (such as parity-checks inserted by higher layer protocols) or statistical correlations among the elements of (as in speech or image data); however, in the preferred embodiments that we consider below, the encoder 320 and the decoder 340 treat the data word as an arbitrary word that can take any value in the set of all possible binary -tuples .
[0114] In encoding step 402, a basic option is to obtain the transform input word 504 from the data word 507 by setting 508 and 509, wherein is a subset of the transform input index set, , denotes the complement of in , denotes a mapping from to a word of length , and is a predefined word of length . The parameters jointly define a transform input word formation relation that relates the data word to the transform input word . We refer to as a "data part index set," and refer to and as a "data part" and "fixed part" of the transform input word, respectively. In typical embodiments of the present principles, the communication system 300 is configured such that the polar decoder 342 is either fully provided with, or capable of reliably estimating, the parameters prior to initiating decoding operations.
[0115] In some embodiments of the present principles, the encoder 320 may compute the data part index set in real time or, alternatively, retrieve from a table, such as in the 5G NR polar code bit-selection method. The choice of the data part index set may, in certain embodiments, depend on zero-error constraints, as illustrated below in connection with FIG. 8C.
[0116] In the most basic form of polar coding, the mapping is an identity mapping, defined as , and the predefined word is an all-zero word. Thus, the input word formation relation becomes and , where 0 denotes an all-zero word of length , which applies throughout this document in this context. In the illustrative examples below, this basic form of polar coding is used, as it suffices to present the main ideas with minimal additional complexity. However, the present principles are compatible with other forms of transform input word formation relations known in the prior art. For instance, in some embodiments, a systematic version of polar coding may be employed, where the data word is inserted directly into the transform output word , and is computed by an algorithm. In other embodiments, may take the form , where is a cyclic redundancy check (CRC) computed as a function of . The CRC is typically utilized by a list decoder to correctly identify the data word from among a list of alternatives. In other embodiments, may involve computing other types of parity bits, such as "dynamically frozen" bits, as used in 5G NR polar coding. In preferred embodiments of the present principles, the mapping is invertible, meaning that is uniquely determined when is provided.
[0117] To avoid discussing edge cases with limited practical significance, we implicitly assume that , where is a constant representing the length of an overhead introduced by the transform input formation relation . This overhead typically includes CRC bits or dynamically-frozen bits. For example, in 5G NR polar codes, is 11 bits for the uplink and 24 bits for the downlink. By introducing a limit on the length of the overhead bits, the scope of the present principles is effectively confined to methods based on polar coding.
[0118] In preferred embodiments of step 403, the polar encoder 321 computes the transform output word using a fast polar transform (FPT) method, which computes a polar transform of size using approximately exclusive-or operations (mod-2 addition) operations. To describe the FPT method, we now refer to the second panel of FIG. 5A. For purposes of illustration, we consider a specific version of the FPT method, which is based on an FPT array 510, where has rows and columns for a polar transform of size . The th row of the FPT array is denoted as , for . To compute the polar transform of a transform input word using the FPT method, the first row of the FPT array is initialized as . The remaining rows are computed successively, with the th row obtained from the th row through butterfly operations. The transform output word is then derived from the last row of the FPT array by the relation . We illustrate the butterfly relations using bit-indexing to represent the column indices of the elements in the FPT array . A column index is replaced by ann-tuple of bits , where 511. For example, for , the bit-indexed representation of the th row is . In terms of the bit-indexed variables, the relation between the elements of the th and th rows is given by 512:
[0119]
[0120] where the summation is a mod-2 summation over all such that . For instance, for , the relations and correspond to the butterfly relations and between rows 1 and 2. The butterfly relations between successive rows of the FPT array can be combined to yield an explicit relationship 513:
[0121]
[0122] between the elements of the th row and the elements of the first row , for . These relations imply that the FPT array has degrees of freedom: the elements of can be chosen independently, while the remaining elements of are uniquely determined by . Accordingly, each element of the FPT array can be interpreted as a "parity-check" on a subset of elements of the transform input word .
[0123] Referring to the third panel of FIG. 5A, we describe the diversity code array and the corresponding diversity code array formation relation. The specific representations of the diversity code array and the diversity code array formation relation are provided solely for illustrative purposes. The present principles may also be implemented using alternative representations.
[0124] The diversity code array is represented as 514, where denotes the number of rows in . Each row of has a length , for . The diversity code array formation relation comprises a coordinate mapping 515 from the index set of to the index set of . For each , the diversity code array formation relation now associates the th element of with an element of the FPT array by setting .
[0125] Based on the foregoing, the encoder 320 implements an encoder mapping . This mapping defines a "diversity code." For simplicity, is often used as shorthand for the diversity code defined by the encoder mapping , provided no confusion arises. When referring to a specific diversity code array corresponding to a data word , we denote it as .
[0126] In preferred embodiments of the present principles the mapping is divided into two parts. The polar encoder 321 implements a first part . The diversity mapper 322 implements a second part , where represents the subarray of corresponding to the range of the coordinate mapping . In the present embodiment, the polar encoder 321 computes the subarray and makes accessible to the diversity mapper 322. The elements of the subbarray form an embodiment of the "plurality of transform variables" referrred to in FIG. 4. Broadly, the plurality of transform variables may be any subset of elements chosen from the FPT array . In some embodiments, the plurality of transform variables comprises the elements of the transform output word , and each element of the diversity code array is associated with an element of the transform output word. In other embodiments, the plurality of transform variables comprises the polar transform output word and at least some elements of the data part of the transform input word, and at least one element of the diversity code array is associated with an element of the trasform input word. Various alternatives for choosing the plurality of transform variables and associated implementation options, subject to constraints, such as flexibility, backward compatibility, or modularity, are discussed at the end of this disclosure.
[0127] An important figure of merit for diversity codes is the code rate. For an encoder mapping , the code rate is defined as , where denotes the length of the data word and denotes the total length of the diversity code array . One objective of the present principles is to construct encoder mappings that achieve high rates while satisfying zero-error constraints.
[0128] Finally, we refer to the fourth panel of FIG. 5A to describe the plurality of zero-error constraints. A plurality of zero-error constraint on the diversity code array 514 is represented by an array 516, which is referred to as a "zero-error constraints array" or briefly as a "constraints array" in the following. Each row of corresponds to a zero-error constraint; thus, represents zero-error constraints. The number of columns of equals , which is the same as the number of rows in 514. For and , an element in the th row of is assigned a value 1 or 0, depending on whether the th zero-error constraint designates the th row of as "observed" or "unobserved," respectively.
[0129] For , let denote the subset of rows of 514 identified as observed under the th zero-error constraint. In a typical embodiment of the present principles, each of the zero-error constraints is associated with a distinct subset of the diversity code array such that the data part is uniquely identifiable from each of the distinct subset of rows. Let denote the array obtained from by the formulas 517 and 518. Thus, is obtained from 514 by replacing the th row of with null elements ("ㅡ") for each , effectively nullifying (erasing) the information in such rows. The array is a diversity code array, defined by the mapping . In the following, is referred to as the " th observed version of the diversity code array ."
[0130] For any diversity code and zero-error constraints array , we say that "the diversity code uniquely identifies the data word under " if and only if, for each row index of , the mapping is invertible on its range. In other words, uniquely identifies under if and only if, for any two distinct data words and , the corresponding th observed versions and of are distinct for all . For brevity, we say that the pair satisfies the zero-error constraints if this condition holds. Thus, the notions of "unique identifiability" and "zero-error constraints" are equivalent: a diversity code uniquely identifies the data word under if and only if the pair satisfies the zero-error constraints. When is fixed or understood from the context, we may also refer to as a "zero-error diversity code," indicating that satisfies the zero-error constraints. It is important to note that permuting the elements within any row of a diversity code array does not affect its zero-error property.
[0131] Given a zero-error constraints array with rows and columns, we define a row of as redundant if there exists a row such that for all . If a row is redundant, it can be removed from , as already contains a stricter zero-error constraint represented by some other row. An all-zero row in precludes any non-trivial zero-error diversity code. Therefore, the present principles assume that each row of contains at least one "1." Conversely, an all-one row in is always redundant. To avoid trivial edge cases, the scope of the present principles is restricted to zero-error constraints arrays with rows, columns, and with no all-zero or all-one rows. In the claims, the phrase "each zero-error constraint designates a non-empty proper subset of the rows as a subset of observed rows" is equivalent to this condition on the zero-error constraints array .
[0132] Various alternatives for the plurality of zero-error constraints, stated in terms of the corresponding arrays , are as follows. In some embodiments, the array consists of columns and rows, where each row contains a fixed number of ones. An important special case is when the rows of comprise all combinations of ones and zeros, for some . In other embodiments, the array consists of columns and rows, where each row contains a row-dependent non-zero number of ones, with the ones in each row adjacent to each other. In still other embodiments, the number of ones in each column of the array is proportional to a reliability figure associated with that column.
[0133] In general, the zero-error constraints array can be chosen so that each row of corresponds to a zero-error constraint associated with a specific critical failure mode of the channel 330. For example, in some embodiments of the presents principles, the plurality of zero-error constraints can be dynamically determined based on a channel state information available at the transmitter, and the diversity code is then designed or selected from a set of predefined set of choices accordingly.
[0134] FIG. 5B illustrates an example 520 of a preferred embodiment of the encoder 320, in accordance with certain aspects of the present principles. The polar encoder 321 in the example 520 employs a basic form of polar coding with parameters , as illustrated in panel 521. The transform input word is obtained by setting and , also as illustrated in panel 521. The polar transform in the example 520 is implemented using an FPT array , as shown in the logic diagram 522. In logic diagram 522, the FPT array is depicted in transposed form, with the rows of corresponding to columns in the diagram, and signals flowing from left to right. The first column of logic diagram 522 receives the transform input word through the initialization , and at the end of the FPT calculations, the transform output word is obtained by the relation . Logic diagram 522 includes butterfly operations between adjacent layers, such as and between layers 1 and 2. Other butterfly relations may be directly inferred from logic diagram 522.
[0135] The diversity mapper 322 in the example utilizes the diversity code array formation relation 523 to obtain the diversity code array 524. The array 523 is a representation that provides a compact and convenient way of specifying the relation . The th entry of array 523 is given by , and the code array is obtained by setting for each .
[0136] The plurality of zero-error constraints in the example 520 is represented by the array 525. The array 525 comprises columns, which matches the number of rows of the diversity code array 524. There are rows in the array 525, each corresponding to a zero-error constraint. These rows cover all combinations of nullifying two specific rows of the code array 524 while leaving the other two rows of intact.
[0137] In the example 520, there are observed versions of 524, denoted as 526-k for . For example, the first row of represents a zero-error constraint that nullifies the third and fourth rows of 524, yielding the array 526-1. The same logic applies to each row of , with each row defining a constraint that nullifies two specific rows of 524 to yield the corresponding observed version 526-k, for .
[0138] This concludes the description of example 520. At this point, the question arises as to whether the pair in this example satisfies the zero-error constraints. We first provide a heuristic answer to this question for the specific case of example 520, followed by a general method for determining whether any given pair satisfies the zero-error constraints.
[0139] The question of unique identifiability under the th zero-error constraint is equivalent to determining whether the transform equation has a unique solution for given the observations available in and the knowledge that . For the first observed version 526-1, the observed variables are , , , , , and . Expressed in terms of the unknows , the observed variables can be written as a system of linear equations:
[0140]
[0141] This system of equations can be inferred from the relations and in panel 521, and the logic diagram 522 of the FPT array . Since the coefficient matrix defining this system of equations has full rank, the data word is uniquely identifiable under the first zero-error constraint. A similar analysis shows that the data word is uniquely identifiable under the th zero-error constraint, for any . Therefore, the pair in example 520 satisfies the zero-error constraints. Building on the ideas in this example, a general method for checking if a pair satisfies the zero-error constraints is given next.
[0142] FIG 5C is a flowchart of a zero-error check method 530 for checking if a diversity code satisfies a plurality of zero-error constraints in accordance with certain aspects of the present principles. Zero-error check method 530 is an example of a "zero-error check method" that operates under the assumption that, in the encoding step 402, the transform input word is obtained from the data word by setting and , where is a data part index set and is a fixed word.
[0143] Step 531 of zero-error check method 530 identifies the input parameters where is a polar transform size, is a data part index set, is a zero-error constraints array, and is a diversity code array. According to the diversity coding method of FIG. 5B, the mapping from data words to diversity code arrays comprises a sequence of mappings , where each mapping in the sequence is linear, except for the first mapping , which is affine when the fixed word is non-zero. Consequently, the overall mapping can be expressed in canonical form as an affine mapping where are a collection of "basis arrays" with the same dimensions as the diversity code array . The array equals zero if the fixed word equals zero. Using the vectorization operation on arrays (as defined above), this relation can also be rewritten as , which, in turn, can be expressed as where is a matrix with rows, and the th row is given by . We refer to the matrix as a "generator matrix" for the diversity code array .
[0144] Starting from the canonical form , we obtain a corresponding canonical form , where is the array that is obtained from in the same manner that is obtained from . In other words, denotes the array obtained from by replacing the elements in the th row of with null elements ("ㅡ") for each . Applying the vectorization operation, the expression is obtained. This can be written as , where is the matrix whose th row is given by , for . The matrix serves as a generator matrix for , and we refer to as the th reduced generator matrix. The th reduced generator matrix can be obtained directly from the original generator matrix by deleting the columns of that correspond to unavailable observations under the th zero-error constraint.
[0145] In terms of the present formulation, the unique identifiability condition can be stated as "if , then for all ," which in turn can be stated as "if , then for all ." This leads to the following rank-criterion: a pair satisfies the zero-error constraints if and only if rank( )=K for all . This rank criterion forms the basis of the remaining steps in zero-error check method 530.
[0146] Step 532 obtains the basis arrays , . Step 533 obtains the generator matrix and the reduced generator matrices , where is the number of rows of (which equals the number of constraints). Step 534 computes the ranks for . Step 535 declares that satisfies the zero-error constraints if for all ; otherwise, step 535 declares that does not satisfy the zero-error constraints if there exists a such that . This concludes the description of the zero-error check method 530.
[0147] Zero-error check method 530 provides an algorithmic definition of the zero-error constraints for a specific embodiment of the present principles. One skilled in the art will readily understand how to adapt zero-error check method 530 to more general embodiments where the polar encoder 321 employs, in encoding step 402 of polar encoding, a transform input word formation relation that incorporates CRC or distributed-parity computations. FIGS. 5D through 5G illustrate the zero-error check method 530 with several examples.
[0148] FIG. 5D illustrates a first example 550 of the zero-error check method 530 depicted in FIG. 5C. In example 550, the input parameters are as shown in panel 551. The data word has a length , the polar transform has a size , the diversity code array comprises rows, and the zero-error constraints array includes all combinations of nullifying two rows out of four. The diversity code array consists solely of the elements of the transform output word , which are arranged in in accordance with the balanced row-major order, as defined above. The basis arrays .are displayed in panel 552. The generator matrix and the reduced generator matrices are displayed in panel 553. The ranks , for , are shown in panel 554. The pair does not satisfy the zero-error constraints since the rank condition (requiring all ranks to equal ) fails to hold.
[0149] FIG. 5E illustrates a second example 560 of the zero-error check method 530 depicted in FIG. 5C. The second example 560 differs from the first example 550 in the ordering of the elements in the diversity code array: is a permuted version of . In example 560, a permutation is applied to the transform output word , yielding . The array with rows is constructed from the permuted word using the balanced row-major order. The permutation is based on the 5G NR triangular channel interleaving method. As shown in panel 564, the ranks , for , in example 560 are all equal to . Consequently, the pair satisfies the zero-error constraints. Example 560 highlights the importance of a carefully selected interleaver on the zero-error properties of a diversity code array. The diversity code array has a code rate 1 / 2.
[0150] It can be shown that the code rate 1 / 2 is the highest possible code rate achievable byanydiversity code (including non-linear codes) for transmitting bits of data under the zero-error constraints in this example. The code array happens to coincide with an extended Reed-Solomon code over and is an MDS code. In general, the present principles do not yield MDS codes; however, they compensate for this rate deficiency by offering seamless integration with polar codes, enabling low-complexity encoding and soft-decision decoding.
[0151] FIG. 5F illustrates a third example 570 of the zero-error check method 530 depicted in FIG. 5C. The diversity code array in example 570 is derived from the diversity code array of example 550 using a zero-error diversity code array construction method referred to as the "ML-x" method, which will be presented in connection with FIG. 6A. The ML-x method is a method introduced in the present disclosure and augments a given diversity code array with additional transmissions, if necessary, to obtain a zero-error diversity code array. These additional transmissions in the ML-x method are chosen from the elements of the transform output word . The "ML" in the name of the method signifies that the ML-x method guarantees zero-error decoding under maximum likelihood (ML) decoding, which represents the optimal decoding method. In example 570, there are four additional transmissions: and in the first row, in the second and third rows. The pair satisfies the zero-error constraints as shown by the ranks 574, and has a code rate 4 / 12.
[0152] FIG. 5G illustrates a fourth example 580 of the zero-error check method 530 depicted in FIG. 5C. The diversity code array in example 580 is obtained from the diversity code array of example 550 using a zero-error diversity code array construction method referred to as the "SC-u" method, which will be presented in connection with FIG. 8A. The SC-u method augments a given diversity code array with additional transmissions, if necessary, to obtain a zero-error diversity code array. The additional transmissions in the SC-u method are chosen from the elements of the transform input word . The "SC" in the name of the method signifies that the SC-u method guarantees zero-error decoding even under successive cancellation (SC) decoding, which is a suboptimal decoding method. In example 580, there are four additional transmissions: and in the first row, in the second row, and in the third row. The pair satisfies the zero-error constraints as shown by the ranks 584, and has a code rate 4 / 12.
[0153] A trivial method of constructing zero-error diversity codes is to repeat the data word in each row of , resulting in a zero-error diversity code array with rate . More efficient solutions based on repetition can be obtained by solving a combinatorial problem. Let the zero-error constraints array be given by . Consider subsets of column indices that satisfy the condition that, for each , there exists an index such that . A set satisfying this property is called a hitting set in . The transversal number of , denoted , is defined as the minimum size of a hitting set . Given a hitting with , an encoder mapping can be defined by setting the th row of as if , and leaving an all-null row if . The pair satisfies the zero-error constraints and achieves a code rate . In general computing is an NP-hard problem; however, for zero-error constraints arrays with specific structures or small sizes, can be determined using known formulas or computed feasibly through exhaustive search. In the following, the rate is used as a benchmark to assess whether the methods presented below can achieve code rates that significantly exceed those attainable through simple repetition techniques. In preferred embodiments of the present principles, the product of the length of the data word and the transversal number of the plurality of constraints is less than the total number of elements in the diversity code array, expressed as: .
[0154] For example, zero-error constraints array 525 in the examples of FIGS. 5D through 5G has a transversal number , yielding a benchmark rate of 1 / 3. The zero-error diversity code in FIG. 5E has a rate 1 / 2, which significantly exceeds the benchmark code rate. On the other hand, the zero-error diversity code in FIG. 5F and in FIG. 5G have rates 1 / 3, which match the benchmark code rate. Although, and do not outperform the repetition-based zero-error diversity coding schemes in terms of code rate, they provide better protection against additiveve noise thanks to the parity bits they contain, as opposed to raw data bits.
[0155] FIGS. 6A to 6C, 7A to 7E, and 8A to 8C present three heuristic methods, called ML-x, SC-x, and SC-u, for zero-error diversity code construction. These methods receive a set of input parameters , where is the polar transform size, is the data part index set, is the zero-error constraints array, and is an initial diversity code array.
[0156] The initial diversity code array may be an arbitrary array with rows, one option being an empty array. In some preferred embodiments, each element of the initial diversity code array is associated with an element of a polar code word, where the polar code word may be produced by a legacy polar encoder, for example, a 5G NR polar encoder. The present principles are compatible with a wide variety of legacy polar encoders. For example, the polar encoder 321 may be a legacy polar encoder configured to generate a polar code word from the transform output word through a polar code word formation relation, which in general may depend on several parameters, such as target code word length, link direction (uplink / downlink), etc. In legacy systems, such parameters are typically supplied by a higher-layer protocol. Given all relevant parameters for specifying the polar code word formation relation, the legacy polar encoder may obtain the polar code word by a mapping from the index set of to the index set of , where the mapping associates each element of with an element of via , for . This framework is flexible enough to encompass prior-art rate-adaptive polar coding methods, including shortening, puncturing, and repetition methods as used in 5G NR polar codes. Once is obtained by the legacy polar encoder, the diversity mapper 322 can obtain from using any method of copying into . For example, can be copied into following the balanced row-major order, defined above.
[0157] Given the initial diversity code array , the ML-x, SC-x, and SC-u methods apply specific procedures to construct a remedial diversity code array so that when is appended to a final diversity code array is obtained such that satisfies the zero-error constraints. The ML-x and SC-x methods select the elements of from the transform output word , while the SC-u method selects the elements of from the transform input word . The ML-x method guarantees that satisfies the zero-error constraints under maximum-likelihood (ML) decoding, but not under any other suboptimal decoding method, such as successive-cancellation (SC) decoding. In contrast, SC-x and SC-u methods ensure that satisfies the zero-error constraints under SC decoding or some modified version of SC decoding.
[0158] All three zero-error diversity code array construction methods rely on the concepts of transmission and reception sets. For a diversity code array , the transmission sets of are defined as , for . The th transmission set represents the set of indices of elements in the transform output word that appear in the th row of . The reception sets for the pair are defined as for . The th reception set represents the set of indices of elements in that appear in one of the rows of that is not nullified by the th zero-error constraint.
[0159] FIG. 6A is a flowchart 600 illustrating the steps of the ML-x method for constructing zero-error diversity codes in accordance with certain aspects of the present principles. The ML-x method takes as input a set of parameters and produces a diversity code as output, where the pair is guaranteed to satisfy the zero-error constraints under ML decoding. The details of each step of the ML-x method are provided below.
[0160] Step 610 of the ML-x method identifies the input parameters , where is a polar transform size, is a data part index set, is a zero-error constraints array, and is an initial diversity code.
[0161] Step 620 obtains a rank-profile array from the parameters , where is a array with elements defined as , where are the reception sets for the pair . Here, denotes the submatrix of the polar transform matrix , comprising the elements of with row indices in and column indices in . The set is defined as the empty set when , and for . The rank-profile array has the property that entries within any given row of form a non-increasing sequence from left to right, with adjacent entries differing by at most one. This property follows from the fact that the rank of a matrix remains the same or decreases by at most one when a column is removed.
[0162] Step 630 obtains a remedial array from , where the remedial array is defined as a array with elements , , . The elements are either 0 or 1 since the entries in a given row of are non-increasing and adjacent entries can differ by at most one. Having equal to 1 signifies two points: (1) the th element of the transform output word is unobserved under the th zero-error constraint, meaning ; and (2) accessing the value of is equivalent to obtaining one additional linearly independent equation in the ML decoding process under the th zero-error constraint. In the following, is called "rank-critical under the th zero-error constraint" if equals 1.
[0163] Step 640 obtains a remedial set from the remedial array by computing the column sums of , for , and setting . The elements of is a list of indices of rank-critical elements of the transform output word .
[0164] Step 650 checks if is empty, and moves to step 660 or step 670 if the answer is YES or NO, respectively.
[0165] Step 660 outputs , with the guarantee that satisfies the zero-error constraints.
[0166] Step 670 obtains a remedial diversity code array from by solving an instance of a node covering problem in a bipartite graph for each element of . The instance corresponding to is defined in terms of a bipartite graph consisting of a set of left-side nodes , a set of right-side nodes (which is independent of ), and edges connecting specific pairs of left- and right-side nodes. The set of left-side nodes is defined as . Thus, consists of the constraint indices for which the element of the transform output word is rank-critical. The set of right-side nodes is defined as , and contains one node for each row index . The bipartite graph contains an edge between a left-side node and a right-side node if and only if . A subset of right-side nodes is called a "node-cover" if for each left-side node there exists a right side node such that is an edge in . Given a node-cover , step 670 constructs the remedial diversity code array as an array with rows, where the th row of contains the element if and only if and , for and . Thus, the rows of comprise elements with ; each such element appears in at least one row of ; and, certain rows of may remain null.
[0167] It is known that the finding a node-cover with minimum size is an NP-hard problem in general. It is also known that the node-cover problem in a bipartitite graph is equivalent to a suitably defined hitting-set a problem. There exist various heuristic methods for finding suboptimal solutions to the node-cover and hitting-set problems. The present principles can be implemented using any such heuristic method from prior art. In the examples below, we employ a greedy heuristic for finding a node-cover.
[0168] Step 680 augments the initial diversity code array with the remedial diversity code array to obtain a final diversity code array . Let and denote the th transmission sets of and , respectively, for . The final diversity code array is then defined such that its th transmission set is given by , for . The pair is guaranteed to satisfy the zero-error constraints under ML decoding. This completes the description of the ML-x method. We now turn to an example that demonstrates the ML-x method.
[0169] FIGS. 6B and 6C illustrate an example 690 of the ML-x method depicted in FIG. 6A. In the example 690, step 610 identifies the input parameters as 691. Step 620 obtains the rank-profile array as 692. Step 630 obtains the remedial array 693 from 692. Step 640 computes the remedial set 694 by picking the column indices of 693 for which the column sums are positive. The labels 6921 and 6931 serve as a visual aids for identifying the column indices of 692 and 693, respectively, with no other significance. Step 650 identifies that 694 is non-empty and proceeds to step 670.
[0170] Step 670 sets up an instance of the node-cover problem for each element of 694, with the instance corresponding to represented by a bipartite graph , as illustrated by the graphs 6941, 6942, 6943, 6944, and 6945. In the example 690, the set of left-side nodes are given as follows: . The set of right-side nodes are given by for all 694.
[0171] Step 670 solves the node-cover problems 6941-6945 using a first-fit heuristic to obtain a set of solutions, represented by 69411, 69421, 69431, 69441, and 69451, which collectively yield the remedial diversity code array 695. Optionally, step 670 may use a balanced-fit heuristic to obtain a alternate set of solutions to the node-cover problems 6941-6945, represented by 69412, 69422, 69432, 69442, and 69452, which result in the remedial diversity code array 697. The first-fit heuristic solves the hitting set problem using a greedy approach that prioritizes right-side nodes with larger edge degrees, breaking ties in favor of nodes with smaller indices. The balanced-fit heuristic, also a greedy procedure based on edge degrees, differs in that it resolves ties by balancing the number of times a right-side node is used across the collection of hitting sets .
[0172] Step 680 obtains the final diversity code array 696 by augmenting the initial diversity code array in 691 with the remedial diversity code array 695. Optionally, step 680 may obtain an alternative final diversity code array 698 by augmenting the initial diversity code array in 691 with the remedial diversity code array 697. By construction, both final diversity codes 696 and 698 are guaranteed to satisfy the zero-error constraints.
[0173] The code rates for both 696 and 698 are 11 / 21. The transversal number of zero-error constraints array 690 is , which indicates that, under the zero-error constraints , the best rate achievable by simple repetition schemes is 1 / 2. Thus, the zero-error codes constructed by the ML-x method in this example achieve rates slightly above the benchmark code rate.
[0174] In FIGS. 6A to 6C, we focused on the construction of zero-error diversity codes under ML decoding. Although ML decoding is in general too complex to implement in practice, for polar codes its performance can be closely approximated using SCL decoders with sufficiently large list sizes. Next, we discuss the construction of zero-error diversity codes under SC decoding. Compared to ML zero-error diversity codes, SC zero-error diversity codes offer a less efficient solution in terms of code rate but a more practical alternative with a lower decoding complexity.
[0175] FIG. 7A is a flowchart 700 illustrating the steps of the SC-x method for constructing zero-error diversity codes in accordance with certain aspects of the present principles. The SC-x method takes as input a set of parameters and produces a diversity code as output, where the pair is guaranteed to satisfy the zero-error constraints under SC decoding. The details of each step of the SC-x method are provided below.
[0176] Step 710 identifies the input parameters , wherein is a polar transform size, is a data part index set, is a zero-error constraints array, and is an initial diversity code.
[0177] Step 720 obtains a transform output word erasure array from the parameters by setting to 0 if , and to 1 if , where are the reception sets for the pair . In other words, equals 1 if and only if the th element of the transform output word is erased under the th zero-error constraint, for and . Alternatively, equals 1 if and only if does not appear in any row of the th observed version of the initial diversity code array , for and . Under the th zero-error constraint, an SC decoder observes the portion of the transform output word , while the remaining part of gets nullified or erased. The th row of the output word erasure array serves as an indicator vector that specifies which elements of the transform output word are erased under the th zero-error constraint, for .
[0178] Step 730 obtains a remedial array from the parameters . Step 730 comprises steps 7301-7311 as illustrated in FIG. 7B, which involve calling step 730 recursively. Step 7301 identifies the input parameters . Step 7302 selects the next step as 7303 or 7304 depending on whether the data part index set is empty or not, respectively. Step 7303 sets the remedial array to a array of all zeros and moves to step 7311. Step 7304 selects the next step as 7305 or 7306 depending on whether the polar transform size equals one or not. Step 7305 sets to and moves to step 7311. Step 7306 obtains a left-side pair of parameters from using formulas 73061 illustrated in FIG. 7C, wherein denotes the th entry of for , . Step 7307 obtains a left-side remedial array by a recursive call to step 730 using the left-side input parameters . Step 7308 obtains a right-side pair of parameters from by using formulas 73081 illustrated in FIG. 7C, wherein the notation " " denotes the set , which is obtained by subtracting from each element of , and wherein denotes the th entry of and denotes the th entry of for , . Step 7309 obtains a right-side remedial array by a recursive call to step 730 using the right-side input parameters . Step 7310 obtains the remedial array from and using formulas 73101 illusrated in FIG. 7C, wherein denotes the th entry of for , and denotes the th entry of for , . Step 7311 completes step 730 by returning .
[0179] Step 740 obtains a remedial set from by computing the columns sums of for each , and setting . The elements of indicate which elements of the transform output word require remedial transmissions as part of .
[0180] Step 750 checks if the remedial set is empty, and moves to step 760 or step 770 if the answer is YES or NO, respectively.
[0181] Step 760 outputs as . It is worth noting that steps 710 through 760 constitute a method for checking if the pair satisfies the zero-error constraints under SC decoding.
[0182] Step 770 obtains a remedial diversity code array from by solving a node-cover problem for each element of . For each , step 770 sets up an instance of the node-cover problem, represented by a bipartite graph . The bipartite graph is obtained from in the same manner as in step 670 of the ML-x method in FIG. 6A. Although the ML-x and SC-x methods use different methods to obtain their respective parameters , once are obtained, the two methods use the same rules to construct .
[0183] Step 780 augments the initial diversity code array with the remedial diversity code array to obtain a final diversity code array . Let and denote the th transmission sets of and , respectively, for . The final diversity code array is then defined such that its th transmission set is given by , for . The pair is guaranteed to satisfy the zero-error constraints under SC decoding.
[0184] The formulas 73061, 73081, and 73101 are based on a recursive method of reducing a zero-error diversity code construction problem of size to two problems of size using the Plotkin structure of polar codes. The formulas 73101 are derived from the truth table 73102, which is designed by exhaustive analysis of the case. This completes the description of the SC-x method. We now turn to an example that demonstrates the SC-x method.
[0185] FIG. 7D illustrates an example 790 of the SC-x method of the flowchart 700 depicted in FIG. 7A. In example 790, step 710 identifies the input parameters 791. Step 720 obtains the transform output word erasure array 792. Step 730 obtains the remedial array 793. Step 740 obtains the remedial set 794. In example 790, step 750 determines that does not satisfy the zero-error constraints under SC decoding, and proceeds to step 770. Step 770 obtains the remedial diversity code array 795. Step 780 combines the initial diversity code array from 791 and the remedial diversity code array 795 to obtain the zero-error diversity code array 796. The SC-x method guarantees that the pair satisfies zero-error constraints under SC decoding. The code rate for is 11 / 22, which matches the benchmark code rate of 1 / 2.
[0186] Further details relating to the first level of recursion in step 730 of example 790 are as follows. Step 7306 obtains the pair 7931 using the formulas 73061. Step 7307 obtains the left remedial array 7932 by calling the method of step 730 with input , wherein are as in 7931. Step 7308 obtains the pair 7933 using the formulas 73081. Step 7309 obtains the right remedial array 7934 by calling the method of step 730 with input , wherein are as in 7933. We omit illustration of calculations at further levels of recursion since they follow the same principles as shown here for the first level.
[0187] FIG. 8A is a flowchart 800 illustrating the steps of the SC-u method for constructing zero-error diversity codes in accordance with certain aspects of the present principles. The SC-u method takes as input a set of parameters and produces a diversity code as output, where the pair is guaranteed to satisfy the zero-error constraints under a modified SC decoding. The details of each step of the SC-u method are provided below.
[0188] Step 810 identifies the input parameters , wherein is a polar transform length, is a data part index set, is a zero-error constraints array, and is an initial diversity code.
[0189] Step 820 obtains a transform output word erasure array from the parameters by setting to 1 if , and to 0 otherwise, where are the reception sets for the pair . Step 820 of the SC-u method is identical to step 720 of the SC-x method.
[0190] Step 830 obtains a transform input word erasure array from by emulating an SC decoder under each zero-error constraint. For any , having indicates that, when the th zero-error constraint is in effect, an SC decoder will experience an erasure in decoding even if the entire initial segment that precedes in SC decoding order is frozen and known to the SC decoder. Thus, the non-zero entries of the array indicate the problematic cases that require retransmission for constructing zero-error diversity codes.
[0191] Step 830 comprises steps 831-838 as illusrated in FIG. 8B, which involve calling step 830 recursively. Step 831 identifies the input parameters . Step 832 checks the value of and passes control to step 833 or step 834 depending on whether or , respectively. Step 833 sets and proceeds to step 838. Step 834 obtains a left transform output word erasure array and a right transform output word erasure array by setting and for and . Step 835 obtains a left transform input word erasure array by a recursive call to step 830 using left-side input parameters . Step 836 obtains a right transform input word erasure array by a recursive call to step 830 using right-side input parameters . Steps 835 and 836 can be executed in parallel. Step 837 obtains the transform input word erasure array by setting and passes control to step 838. More explicitly, step 837 sets to if and , and to if and . Step 838 returns as the output of the current instance of the recursive procedure.
[0192] Step 840 obtains a remedial set from and . Step 840 first computes the column sums of , for , and obtains the remedial set . The elements of indicate which elements of the transform input word require remedial transmissions on one or more subchannels to attain the goal of zero-error SC decoding.
[0193] Step 850 checks if the remedial set is empty, and proceeds to step 860 or step 870 if the answer is YES or NO, respectively.
[0194] Step 860 outputs as a zero-error diversity code array under SC decoding.
[0195] Step 870 obtains a remedial diversity code array from by solving a node-cover problem for each element of . The instance corresponding to is defined in terms of a bipartite graph consisting of a set of left-side nodes , a set of right-side nodes , and edges between a left-side node and a right-side node if and only if . Given a node-cover step 870 constructs the remedial diversity code array as an array with rows, where the th row of contains the element if and only if and , for and . Thus, the rows of comprise elements with ; each such element appears in at least one row of ; and, certain rows of may remain null.
[0196] Step 880 augments the initial diversity code array with the remedial diversity code array to obtain a final diversity code array . Let and denote the th transmission sets of and , respectively, for . The final diversity code array is then defined such that its th transmission set is given by , for . The pair is guaranteed to satisfy the zero-error constraints under a modified form of SC decoding, which incorporates observations of elements of into the decoding process.
[0197] We note that steps 810-850 of the flowchart 800 can be used as an "SC-check" method for checking if a given diversity code is a zero-error diversity code under SC decoding. The SC-check and SC-u methods as presented here have complexity O( ), which shows that these methods can be implemented at low complexity for constructing zero-error diversity codes in real-time.
[0198] This completes the description of the SC-u method. We now turn to an example that demonstrates the SC-u method.
[0199] FIG. 8C illustrates an example 890 of the SC-u method depicted in FIG. 8A. In the example 890, step 810 identifies the input parameters 891. Step 820 obtains the transform output word erasure array 892. Step 830 obtains the transform input word erasure array 893. Step 840 obtains the remedial set as 8931. Step 850 checks if 8931 is empty and moves to step 870. Step 870 obtains the remedial diversity code array 894. Step 880 combines from 891 and 894 to obtain a zero-error diversity code array 895. The code rate for 895 is 11 / 19, which is better than the benchmark code rate of 1 / 2.
[0200] The method depicted in flowchart 800 can be used to improve the code rate further by modifying the data part index set. The modified data part index set is selected by minimizing the sum over all sets with a prescribed size . In example 890, this rule yields the alternative data part index set 896. Method 800, with the input , yields the remedial diversity code array 897 and the final diversity code array 898. The code rate for 898 is 11 / 18. This example demonstrates selecting the data part index set in accordance with the zero-error constraints can improve the code rate of zero-error diversity codes.
[0201] In general, the SC-u method enhances an initial design by remedial transmissions chosen from the elements of the transform input word . This process produces a final design such that satisfies the zero-error constraints under a slightly modified version SC decoding. This modified SC decoding incorporates observations of the transform input word into the decoding process. One such modification from prior art is belief propagation (BP) decoding. By leveraging the flexibility of using elements of the transform input word , the SC-u method may sometimes yield more efficient zero-error diversity code designs than ML-x and SC-x methods, as demonstrated by the examples shown in FIGS. 6B, 7B, and 8B. However, diversity code arrays constructed using the SC-u method may exhibit local weak spots-a topic discussed following the simulations presented in FIG. 10.
[0202] This completes the description of the encoder 320. The ML-x, SC-x, and SC-u methods for constructing zero-error diversity codes illustrate certain aspects of the present principles; however, they do not exhaust its full scope. These methods can be refined, combined with one another, or integrated with other known techniques―such as repetition―to develop alternative zero-error diversity code construction methods. All such methods fall within the scope of the present principles. Next, we turn our attention to the decoder 340.
[0203] FIG. 9 is a flowchart illustrating a decoding method 900 in accordance with certain aspects the present disclosure. The decoding method 900 includes the steps of (901) identifying a received diversity code array, wherein the received diversity code array corresponds to a transmitted diversity code array, the diversity code array is based on a diversity code array formation relation and a plurality of zero-error constraints, and each element of the diversity code array is associated, based on the diversity code array formation relation, with one of a plurality of transform variables, wherein the plurality of transform variables are related to a transform input word by a polar transform, the transform input word comprises a data part derived from a data word and a fixed part, a length of the data part is less than or equal to a sum of a length of the data word and a constant, at least one of the plurality of zero-error constraints is associated with a non-empty proper subset of rows of the diversity code array, and the data part is uniquely identifiable from the subset of rows, (902) obtaining, from the received diversity code array, a polar decoder input including an indicator indicating at least one element of the polar transform input word, the polar transform output word, or one of the plurality of intermediate transform words, and (903) decoding the polar decoder input based on the polar transform to obtain a decoded data word. Steps 901 and 902 are executed at the diversity demapper 341 and step 903 is executed at the polar decoder 342.
[0204] The terms "received diversity code array" and "indicator," mentioned in connection with FIG. 9, will be described by considering a preferred embodiment of the decoder 340. In the preferred embodiment of the decoder 340, the encoder 320 is assumed to transmit a diversity code array over the channel 330. The channel 330, in turn, delivers to the decoder 340 a received diversity code array of the same dimensions as . For each in the index set , the element in the th row of is transmitted over the th subchannel and received at its output as . The decoder is configured to operate in accordance with a model of the channel 330 characterized by channel transition probabilities , where represents the likelihood of observing at the channel output given that is transmitted at the channel input. The decoder 340 assigns a state to the channel 330, where represents the state of the th subchannel 330- , for . The decoder operates under channel transition probabilities of the form
[0205]
[0206] More specifically, the decoder 340 uses product-form channel transition probabilities
[0207]
[0208] which corresponds to conditionally memoryless channel models given the channel state.
[0209] The diversity demapper 341 generates an indicator for each element in the range of the mapping , which defines the array in terms of the elements of the FPT array . To be specific, is assumed to be a likelihood ratio given by , where
[0210]
[0211] Here, is proportional to the conditional probability of the event that the element in the FPT array equals , given the received diversity code array and the channel state . In other embodiments, may be a log-likelihood ratio, .
[0212] The diversity demapper 341 needs to compute the indicator for those that are in the range of . For instance, if the range of comprises the elements of the transform output word , then the diversity demapper computes for . If the range of includes some elements of the data part of the transform input word , then is computed for those elements as well. The diversity demapper 341 makes the plurality of indicators available to the polar decoder 342 as the polar decoder input.
[0213] The polar decoder 342 uses the plurality of indicators to obtain a decoded data word . If these indicators comprise elements of the transform output word , then a standard polar decoder--―such as a successive cancellation (SC) decoder, a successive cancellation list (SCL) decoder, or a CRC-aided SCL decoder―may be used. However, if the indicators comprise elements of the FPT array other than , then a version of polar decoding is required that can utilize the indicators corresponding to elements of the transform input word or internal transform words. A suitable decoder for this latter case is a belief-propagation (BP) decoder, which inherently supports this type of statistical likelihood processing. Other alternatives include appropriately modified SC or SCL decoders. This completes the description of the preferred embodiment of the decoder 340. This preferred embodiment is given solely for illustrative purposes and does not limit the scope of the present principles. One skilled in the art will have no difficulty in implementing the present principles using other embodiments of the decoder 340.
[0214] FIG. 10 presents a simulation-based comparison 1000 of the frame error rate (FER) performance of example diversity code arrays constructed in accordance with certain aspects of the present principles. The comparison 1000 demonstrates the practical benefits of the present principles. The example diversity code arrays in the comparison 1000 share a common set of parameters as shown in panel 1010. The polar transform size is and the length of the data word is The data part index set is chosen in accordance with the 5G NR polar code design rule. The polar encoder 321 prepares the transform input word by setting and . The zero-error constraints are represented by the array shown in panel 1010. Four diversity code arrays are compared: 1021, 1022, 1023, and 1024. The pair does not satisfy the zero-error constraints; it serves as a benchmark to illustrate the effectiveness of the present principles in improving FER performance. The other three codes, , , and , are zero-error diversity code arrays obtained from by the ML-x, SC-x, and SC-u design methods, respectively. For further details on how these codes are constructed, we refer to FIGS. 6B, 7D, and 8C.
[0215] In the simulation setup, the channel 330 is simulated in accordance with the same model as discussed in connection with the preferred embodiment of the decoder 340. In other words, the channel 330 in the simulations is a channel with state , derived from the rows of the zero-error constraints array . Each row of represents one possible state of the channel 330. Conditioned on the th row being the active channel state, the channel transition probabilities are given by
[0216]
[0217] More specifically, we assume binary phase-shift keying (BPSK) modulation and an additive Gaussian channel. In this setup, the received signal is
[0218]
[0219] where is the BPSK signal at the input of the th subchannel, and is a zero-mean Gaussian noise variable with variance . The multiplicative term determines which subchannels are nullified under the zero-error constraint in effect. We assume that channel state information (CSI) is available at the decoder 340, meaning that the decoder can determine which zero-error constraint is active. Under these assumptions, the conditional channel probability density function, given the zero-error constraint , is
[0220]
[0221] where is the Dirac delta (impulse) function, corresponding to a unit probability mass at the origin―effectively erasing all the information sent over that subchannel― and becomes operative on subchannels that are nullified by the th constraint . Finally, to complete the model definition, each zero-error constraint is assumed to be equally likely, so each row of is chosen with probability , where . Overall, this channel model corresponds to an additive white Gaussian noise (AWGN) channel with BPSK modulation and full CSI at the decoder.
[0222] In the present simulation setup, the diversity demapper 341 processes to obtain the plurality of indicators , as discussed above in connection with the preferred embodiment of the decoder 340. The polar decoder 342 then decodes these likelihood indicators to obtain the decoded data word . A frame error is said to occur if . The frame error rate (FER) is defined as the frequency of frame errors over a specified number of simulation runs or until a prescribed number of frame errors has occurred.
[0223] Chart 1030 presents results of the five simulation scenarios, as summarized in table 1035. Each curve in chart 1030 plots FER versus performance of one of the codes in table 1035. The parameter is the energy per bit and is the double-sided noise power spectral density. In the BSPK-AWGN channel, equals , where is the code rate of the diversity code arrays under consideration. Since the diversity code arrays in chart 1030 have different code rates , the parameter is used for a fair comparison. The right-most column of table 1035 indicates the type of decoder used in each simulation. For each simulation scenario, is varied from 0 dB to 15 dB in steps of 1 dB. At each value and for each zero-error constraint, we conduct simulation runs and allow up to 200 frame errors. Once the measured FER, averaged over all zero-error constraints, drops below at a given , simulations at higher values are skipped. We provide specific details as we discuss each simulation scenario.
[0224] Performance curve 1 in chart 1030 illustrates that the diversity code array 1021 experiences an error floor effect under SC decoding. This error floor cannot be eliminated by replacing the SC decoder with an ML decoder because there is not enough information at the channel output to uniquely identify the transmitted data word. Each zero-error constraint in nullifies 6 elements of the array 1021, leaving 10 elements intact, which is insufficient to recover the data bits.
[0225] Performance curve 2 in chart 1030 shows that the diversity code array 1022, constructed by the ML-x method, also experiences an error floor under SC decoding. In this case, the error floor can be attributed to the suboptimality of the SC decoder, since the diversity code array 1022 is, by construction, a zero-error diversity code array under ML decoding. This suggests using an SCL decoder.
[0226] Performance curve 3 in chart 1030 shows that the diversity code array 1022 is free from an error floor effect when decoded by an SCL decoder with a list size of 16. This outcome is expected, as an SCL decoder's performance approaches that of an ML decoder as its list size grows. The second and third simulation scenarios thus demonstrate the practical utility of the ML-x construction method, even when an ML decoder cannot be employed in practice.
[0227] Performance curve 4 in chart 1030 shows that the diversity code array 1023, constructed by the SC-x method, is free from an error floor under SC decoding.
[0228] Performance curve 5 in chart 1030 indicates that the diversity code array 1024, constructed by the SC-u method, exhibits no error floor under SC decoding, as expected. It should be noted that the SC decoder used here is a modified version, capable of incorporating the direct observations of the elements and in its decoding process.
[0229] Simulation results highlight the practical utility and effectiveness of the present principles. Of the five scenarios presented in FIG. 10, the diversity code array 1024, constructed using the SC-u method, achieves the best performance. However, drawing broad conclusions about the relative strengths of the ML-x, SC-x, and SC-u methods based solely on this small-scale study would be premature. Diversity codes arrays constructed by the SC-u method may be susceptible to single-bit transmission errors.
[0230] For example, if the bit in the diversity code array 1024 is received incorrectly due to additive noise, it could lead to the entire frame being decoded incorrectly. However, local weak spots in a diversity code array generated by the SC-u method can often be mitigated at low cost through repetition. For instance, the weak spot in the first row of can be strengthened by modifying the first row to , so that repeated transmission of increases the probability of correct decoding. Importantly, such repetition techniques can be applied to any zero-error diversity code array construction method. The scope of the present principles encompasses all such modifications and extensions to the specific zero-error diversity code array construction methods described herein.
[0231] The description concludes with additional remarks on a various implementation alternatives, in particular implementation under backward compatibility constraints.
[0232] FIG. 11 is a table 1100 that presents five implementation options for the encoder 320 in accordance with certain aspects of the present principles. The table presents different configurations based on the internal calculation stages at the polar encoder 321 and the diversity mapper 322. Each row of the table corresponds to a different implementation option, detailing the flow from input through internal processing to the final output.
[0233] In table 1100, some operations between arrays or words are indicated by arrows of type "→" The notation " " denotes an invertible functional relationship, meaning there exists a function with domain and range , such that , , and , where is uniquely determined by . For example is justified since is derived from by an invertible functional relationship, which we refer to as the transform input word formation relation. Similarly, the notations and are justified, as both and are obtained from through an invertible polar transform operation.
[0234] Some other operations in table 1100 are indicated by arrows of type "⇒" The notation " " represents the operation of copying elements from array into array , allowing for omissions and repetitions. For example, " " means that the polar code word is derived from the transform output word by a copy operation, where some elements of may be omitted, while others may be repeated. Similarly, indicates that the diversity code array is obtained from the FPT array through a copy operation of the same type, where elements of may be omitted or copied multiple times. The copy operation " " is governed by a function that associates each element of with some element of . Each element of is copied into as many times as it appears in the range of this function. The governing function in the case of the copy operation " " is referred to as the "diversity code array formation relationship."
[0235] In option 1, the polar encoder 321 calculates the entire FPT array from the transform input word and makes the array available to the diversity mapper 322. This represents the most general form of the present principles, offering the diversity mapper maximum flexibility in the formation of the diversity code array. However, this option is also the most resource-intensive, as the entire FPT array must be stored and made accessible to the diversity mapper. Additionally, this option requires a specialized decoder that can incorporate observations of arbitrary elements from the FPT array into the decoding process. The most suitable type of decoder for this purpose is the belief propagation (BP) decoder.
[0236] In option 2, the polar encoder 321 calculates a predefined subarray of the FPT array from the transform input word and makes the array available to the diversity mapper 322. For example, may include the transform input word and the transform output word . The ML-x, SC-x, or SC-u methods can be used as part of this option for constructing a zero-error diversity code array. Compared to option 1, this option is much less resource intensive. Option 2 requires a minor modification to an SC, SCL, or BP decoder to incorporate the observations of the transform input word into the decoding process.
[0237] In option 3, the polar encoder 321 calculates the transform output word from the transform input word and makes available to the diversity mapper 322. The ML-x or SC-x methods can be employedas part of this option for constructing a zero-error diversity code array. Option 3 is compatible with standard polar decoders in prior art.
[0238] In option 4, the polar encoder 321 calculates the transform output word from the transform input word , obtains a polar code word from through a copy operation , and makes both and available to the diversity mapper 322. Instead of constructing the diversity code array directly from the combination of and (which would result in a scenario similar to option 3), the diversity mapper in option 4 first obtains an initial diversity code array via an invertible functional relation , and a remedial diversity code array via the copy operation . A zero-error diversity code array is then obtained by combining and in a predefined manner. The ML-x and SC-x examples shown in FIGS. 6 and 7 illustrate zero-error diversity code construction using this option. Option 4 is compatible with prior art polar encoders and decoders, such as those for 5G NR polar codes.
[0239] In option 5, the polar encoder 321 calculates the transform output word from the transform input word , obtains a polar code word from through a copy operation , and makes the transform input word (or just the data part of ) and the polar code word available to the diversity mapper 322. The diversity mapper in option 5 first obtains an initial diversity code array via an invertible functional relation , and a remedial diversity code array via the copy operation . A zero-error diversity code array is then obtained by combining and in a predefined manner. The SC-u example shown in FIG. 8 illustrates zero-error diversity code construction using this option. Option 5 requires a minor modification to an SC, SCL, or BP decoder, similar to option 2.
[0240] The five implementation options described above are by no means exhaustive. They are provided to illustrate some sample implementations of the present principles. In reality, many other implementation options are possible. The scope of the present principles covers all such implementations, and the person skilled in the art will have no difficulty identifying and implementing these variations based on the disclosed principles.
[0241] While the particular METHODS AND APPARATUS FOR ERROR CORRECTION CODING WITH TRANSMISSION DIVERSITY is herein described in detail and is depicted in the drawings, it is to be understood that the subject matter which is encompassed by the present disclosure is limited by the claims. Although the present disclosure has been described with exemplary embodiments, various changes and modifications may be suggested to one skilled in the art. It is intended that the present disclosure encompass such changes and modifications that fall within the scope of the appended claims. The description in the present application should not be read as implying that any particular element, step, or function is an essential or critical element which must be included in the claim scope: the scope of patented subject matter is defined by the allowed claims. Moreover, none of these claims are intended to invoke 35 USC §112(f) with respect to any of the appended claims or claim elements unless the exact words "means for" or "step for" are explicitly used in the particular claim, followed by a participle phrase identifying a function. Use of terms such as (but not limited to) "mechanism," "module," "device," "unit," "component," "element," "member," "apparatus," "machine," "system," "processor," or "controller" within a claim is understood and intended to refer to structures known to those skilled in the relevant art, as further modified or enhanced by the features of the claims themselves, and is not intended to invoke 35 U.S.C. § 112(f).
[0242] Although the present disclosure has been described with various embodiments, various changes and modifications may be suggested to one skilled in the art. It is intended that the present disclosure encompass such changes and modifications as fall within the scope of the appended claims.
Claims
1.An encoder apparatus in a communication system, the encoder apparatus comprising:a polar encoder configured to:identify a data word,obtain a transform input word comprising a data part derived from the data word and a fixed part, wherein a length of the data part is less than or equal to a sum of a length of the data word and a constant, andobtain a plurality of transform variables from the transform input word based on a polar transform, anda diversity mapper configured to:generate a diversity code array based on a diversity code array formation relation and a plurality of zero-error constraints, wherein, based on the diversity code array formation relation, an element of the diversity code array is associated with one of the plurality of transform variables, wherein at least one of the plurality of zero-error constraints is associated with a non-empty proper subset of rows of the diversity code array and the data part is uniquely identifiable from the subset of rows, andtransmit the diversity code array.2.The encoder apparatus of claim 1, wherein the plurality of transform variables comprises at least one of:a transform output word, wherein each element of the diversity code array is associated with an element of the transform output word, oran element of the transform input word, wherein at least one element of the diversity code array is associated with an element of the transform input word.3.The encoder apparatus of claim 1, wherein the polar encoder is further configured to obtain a polar code word from the plurality of transform variables according to a polar code word formation relation, wherein the diversity code array comprises an initial part and a remedial part and each element of the initial part is associated with an element of the polar code word.4.The encoder apparatus of claim 1, wherein the plurality of zero-error constraints is dynamically determined based on a channel state information, andwherein each of the plurality of zero-error constraints is associated with a distinct subset of rows of the diversity code array such that the data part is uniquely identifiable from each of the distinct subset of rows.5.The encoder apparatus of claim 1, wherein the data part of the transform input word is identified by a data part index set, determined, in part, based on the plurality of zero-error constraints.6.The encoder apparatus of claim 1, wherein a product of a length of the data word and a transversal number of the plurality of zero-error constraints is less than a total number of elements in the diversity code array.7.A decoder apparatus in a communication system, the decoder apparatus comprising:a diversity demapper configured to:identify a received diversity code array, wherein the received diversity code array corresponds to a transmitted diversity code array, the transmitted diversity code array is based on a diversity code array formation relation and a plurality of zero-error constraints, and each element of the transmitted diversity code array is associated, based on the diversity code array formation relation, with one of a plurality of transform variables, wherein the plurality of transform variables are related to a transform input word by a polar transform, the transform input word comprises a data part derived from a data word and a fixed part, a length of the data part is less than or equal to a sum of a length of the data word and a constant, at least one of the plurality of zero-error constraints is associated with a non-empty proper subset of rows of the transmitted diversity code array, and the data part is uniquely identifiable from the subset of rows, andobtain, from the received diversity code array, a polar decoder input including an indicator indicating at least one element of the plurality of transform variables,a polar decoder configured to:decode the polar decoder input based on the polar transform to obtain a decoded data word.8.The decoder apparatus of claim 7, wherein the plurality of zero-error constraints is dynamically determined based on a channel state information, andwherein each of the plurality of zero-error constraints is associated with a distinct subset of rows of the transmitted diversity code array such that the data part is uniquely identifiable from each of the distinct subset of rows.9.The decoder apparatus of claim 7, wherein the data part of the transform input word is identified by a data part index set, determined, in part, based on the plurality of zero-error constraints.10.The decoder apparatus of claim 7, wherein a product of a length of the data word and a transversal number of the plurality of zero-error constraints is less than a total number of elements in the transmitted diversity code array.11.An encoding method in a communication system, the encoding method comprising:a polar encoding step, wherein the polar encoding step comprises:identifying a data word,obtaining a transform input word comprising a data part derived from the data word and a fixed part, wherein a length of the data part is less than or equal to a sum of a length of the data word and a constant, andobtaining a plurality of transform variables from the transform input word based on a polar transform, anda diversity mapping step, wherein the diversity mapping step comprises:generating a diversity code array based on a diversity code array formation relation and a plurality of zero-error constraints, wherein, based on the diversity code array formation relation, an element of the diversity code array is associated with one of the plurality of transform variables, wherein at least one of the plurality of zero-error constraints is associated with a non-empty proper subset of rows of the diversity code array and the data part is uniquely identifiable from the subset of rows, andtransmitting the diversity code array.12.The encoding method of claim 11, wherein the polar encoding step further comprises obtaining a polar code word from the plurality of transform variables according to a polar code word formation relation, wherein the diversity code array comprises an initial part and a remedial part and each element of the initial part is associated with an element of the polar code word.13.The encoder method of claim 11, wherein the plurality of zero-error constraints is dynamically determined based on a channel condition, andwherein each of the plurality of zero-error constraints is associated with a distinct subset of rows of the diversity code array such that the data part is uniquely identifiable from each of the distinct subset of rows.14.A decoding method in a communication system, the decoding method comprising:a diversity demapping step, wherein the diversity demapping step comprises:identifying a received diversity code array, wherein the received diversity code array corresponds to a transmitted diversity code array, the transmitted diversity code array is based on a diversity code array formation relation and a plurality of zero-error constraints, and each element of the transmitted diversity code array is associated, based on the diversity code array formation relation, with one of a plurality of transform variables, wherein the plurality of transform variables are related to a transform input word by a polar transform, the transform input word comprises a data part derived from a data word and a fixed part, a length of the data part is less than or equal to a sum of a length of the data word and a constant, at least one of the plurality of zero-error constraints is associated with a non-empty proper subset of rows of the diversity code array, and the data part is uniquely identifiable from the subset of rows, andobtaining, from the received diversity code array, a polar decoder input including an indicator indicating at least one element of the plurality of transform variables,a polar decoding step, wherein the polar decoding step comprises:decoding the polar decoder input based on the polar transform to obtain a decoded data word.15.The decoding method of claim 14, wherein the plurality of zero-error constraints is dynamically determined based on a channel condition, andwherein each of the plurality of zero-error constraints is associated with a distinct subset of rows of the transmitted diversity code array such that the data part is uniquely identifiable from each of the distinct subset of rows.