Patent Description:
Block codes, or error correcting codes are frequently used to provide reliable transmission of digital messages over noisy channels. In a typical block code, an information message or sequence is split up into blocks, and an encoder at the transmitting device then mathematically adds redundancy to the information message. Exploitation of this redundancy in the encoded information message is the key to reliability of the message, enabling correction for any bit errors that may occur due to the noise. That is, a decoder at the receiving device can take advantage of the redundancy to reliably recover the information message even though bit errors may occur, in part, due to the addition of noise to the channel.

Many examples of such error correcting block codes are known to those of ordinary skill in the art, including Hamming codes, Bose-Chaudhuri-Hocquenghem (BCH) codes, turbo codes, and low-density parity check (LDPC) codes, among others. Many existing wireless communication networks utilize such block codes, such as 3GPP LTE networks, which utilize turbo codes; and IEEE <NUM>. 11n Wi-Fi networks, which utilize LDPC codes. However, for future networks, a new category of block codes, called polar codes, presents a potential opportunity for reliable and efficient information transfer with improved performance relative to turbo codes and LDPC codes.

While research into implementation of polar codes continues to rapidly advance its capabilities and potential, additional enhancements are desired, particularly for potential deployment of future wireless communication networks beyond LTE.

<CIT> relates to a generalized convolutional interleaver/deinterleaver.

Various aspects of the disclosure provide for wireless communication devices configured to encode information blocks to produce code blocks and interleave the code blocks utilizing an interleaver including a plurality of rows and a plurality of columns, where the number of columns of the interleaver varies between the rows. In some examples, the interleaver includes a right isosceles triangle-shaped matrix of rows and columns. In other examples, the interleaver includes a trapezoid-shaped matrix of rows and columns.

According to the present invention, a method of wireless communication is provided as set out in claim <NUM> and an apparatus for wireless communication and a computer-readable medium as set out in claims <NUM> and <NUM>. Other aspects of the invention can be found in at least the dependent claims.

Referring now to <FIG>, as an illustrative example without limitation, a simplified schematic illustration of a radio access network <NUM> is provided. The radio access network <NUM> may be a next generation (e.g., fifth generation (<NUM>) or New Radio (NR)) radio access network or a legacy (<NUM> or <NUM>) radio access network. In addition, one or more nodes in the radio access network <NUM> may be next generation nodes or legacy nodes.

As used herein, the term legacy radio access network refers to a network employing a third generation (<NUM>) wireless communication technology based on a set of standards that complies with the International Mobile Telecommunications-<NUM> (IMT-<NUM>) specifications or a fourth generation (<NUM>) wireless communication technology based on a set of standards that comply with the International Mobile Telecommunications Advanced (ITU-Advanced) specification. For example, some the standards promulgated by the 3rd Generation Partnership Project (3GPP) and the 3rd Generation Partnership Project <NUM> (3GPP2) may comply with IMT-<NUM> and/or ITU-Advanced. Examples of such legacy standards defined by the 3rd Generation Partnership Project (3GPP) include, but are not limited to, Long-Term Evolution (LTE), LTE-Advanced, Evolved Packet System (EPS), and Universal Mobile Telecommunication System (UMTS). Additional examples of various radio access technologies based on one or more of the above-listed 3GPP standards include, but are not limited to, Universal Terrestrial Radio Access (UTRA), Evolved Universal Terrestrial Radio Access (eUTRA), General Packet Radio Service (GPRS) and Enhanced Data Rates for GSM Evolution (EDGE). Examples of such legacy standards defined by the 3rd Generation Partnership Project <NUM> (3GPP2) include, but are not limited to, CDMA2000 and Ultra Mobile Broadband (UMB). Other examples of standards employing <NUM>/<NUM> wireless communication technology include the IEEE <NUM> (WiMAX) standard and other suitable standards.

As further used herein, the term next generation radio access network generally refers to a network employing continued evolved wireless communication technologies. This may include, for example, a fifth generation (<NUM>) wireless communication technology based on a set of standards. The standards may comply with the guidelines set forth in the <NUM> White Paper published by the Next Generation Mobile Networks (NGMN) Alliance on February <NUM>, <NUM>. For example, standards that may be defined by the 3GPP following LTE-Advanced or by the 3GPP2 following CDMA2000 may comply with the NGMN Alliance <NUM> White Paper. Standards may also include pre-3GPP efforts specified by Verizon Technical Forum and Korea Telecom SIG.

The geographic region covered by the radio access network <NUM> may be divided into a number of cellular regions (cells) that can be uniquely identified by a user equipment (UE) based on an identification broadcasted over a geographical area from one access point or base station. <FIG> illustrates macrocells <NUM>, <NUM>, and <NUM>, and a small cell <NUM>, each of which may include one or more sectors (not shown). A sector is a sub-area of a cell. All sectors within one cell are served by the same base station. A radio link within a sector can be identified by a single logical identification belonging to that sector. In a cell that is divided into sectors, the multiple sectors within a cell can be formed by groups of antennas with each antenna responsible for communication with UEs in a portion of the cell.

In general, a respective base station (BS) serves each cell. A BS may also be referred to by those skilled in the art as a base transceiver station (BTS), a radio base station, a radio transceiver, a transceiver function, a basic service set (BSS), an extended service set (ESS), an access point (AP), a Node B (NB), an eNode B (eNB), a gNode B (gNB), or some other suitable terminology.

In general, base stations may include a backhaul interface for communication with a backhaul portion (not shown) of the network. The backhaul may provide a link between a base station and a core network (not shown), and in some examples, the backhaul may provide interconnection between the respective base stations. The core network may be a part of a wireless communication system and may be independent of the radio access technology used in the radio access network.

The radio access network <NUM> is illustrated supporting wireless communication for multiple mobile apparatuses. A mobile apparatus is commonly referred to as user equipment (UE) in standards and specifications promulgated by the 3rd Generation Partnership Project (3GPP), but may also be referred to by those skilled in the art as a mobile station (MS), a subscriber station, a mobile unit, a subscriber unit, a wireless unit, a remote unit, a mobile device, a wireless device, a wireless communications device, a remote device, a mobile subscriber station, an access terminal (AT), a mobile terminal, a wireless terminal, a remote terminal, a handset, a terminal, a user agent, a mobile client, a client, or some other suitable terminology. A UE may be an apparatus that provides a user with access to network services.

Within the present document, a "mobile" apparatus need not necessarily have a capability to move, and may be stationary. The term mobile apparatus or mobile device broadly refers to a diverse array of devices and technologies. For example, some nonlimiting examples of a mobile apparatus include a mobile, a cellular (cell) phone, a smart phone, a session initiation protocol (SIP) phone, a laptop, a personal computer (PC), a notebook, a netbook, a smartbook, a tablet, a personal digital assistant (PDA), and a broad array of embedded systems, e.g., corresponding to an "Internet of things" (IoT). A mobile apparatus may additionally be an automotive or other transportation vehicle, a remote sensor or actuator, a robot or robotics device, a satellite radio, a global positioning system (GPS) device, an object tracking device, a drone, a multi-copter, a quad-copter, a remote control device, a consumer and/or wearable device, such as eyewear, a wearable camera, a virtual reality device, a smart watch, a health or fitness tracker, a digital audio player (e.g., MP3 player), a camera, a game console, etc. A mobile apparatus may additionally be a digital home or smart home device such as a home audio, video, and/or multimedia device, an appliance, a vending machine, intelligent lighting, a home security system, a smart meter, etc. A mobile apparatus may additionally be a smart energy device, a security device, a solar panel or solar array, a municipal infrastructure device controlling electric power (e.g., a smart grid), lighting, water, etc.; an industrial automation and enterprise device; a logistics controller; agricultural equipment; military defense equipment, vehicles, aircraft, ships, and weaponry, etc. Still further, a mobile apparatus may provide for connected medicine or telemedicine support, i.e., health care at a distance. Telehealth devices may include telehealth monitoring devices and telehealth administration devices, whose communication may be given preferential treatment or prioritized access over other types of information, e.g., in terms of prioritized access for transport of critical service user data traffic, and/or relevant QoS for transport of critical service user data traffic.

Within the radio access network <NUM>, the cells may include UEs that may be in communication with one or more sectors of each cell. For example, UEs <NUM> and <NUM> may be in communication with base station <NUM>; UEs <NUM> and <NUM> may be in communication with base station <NUM>; UEs <NUM> and <NUM> may be in communication with base station <NUM> by way of RRH <NUM>; UE <NUM> may be in communication with base station <NUM>; and UE <NUM> may be in communication with mobile base station <NUM>. Here, each base station <NUM>, <NUM>, <NUM>, <NUM>, and <NUM> may be configured to provide an access point to a core network (not shown) for all the UEs in the respective cells.

In another example, a mobile network node (e.g., quadcopter <NUM>) may be configured to function as a UE. In some aspects of the disclosure, two or more UE (e.g., UEs <NUM> and <NUM>) may communicate with each other using peer to peer (P2P) or sidelink signals <NUM> without relaying that communication through a base station (e.g., base station <NUM>).

Unicast or broadcast transmissions of control information and/or traffic information (e.g., user data traffic) from a base station (e.g., base station <NUM>) to one or more UEs (e.g., UEs <NUM> and <NUM>) may be referred to as downlink (DL) transmission, while transmissions of control information and/or traffic information originating at a UE (e.g., UE <NUM>) may be referred to as uplink (UL) transmissions. In addition, the uplink and/or downlink control information and/or traffic information may be time-divided into frames, subframes, slots, mini-slots and/or symbols. As used herein, a symbol may refer to a unit of time that, in an orthogonal frequency division multiplexed (OFDM) waveform, carries one resource element (RE) per sub-carrier. A slot may carry <NUM> or <NUM> OFDM symbols. A mini-slot may carry less than <NUM> OFDM symbols or less than <NUM> OFDM symbols. A subframe may refer to a duration of <NUM>. Multiple subframes may be grouped together to form a single frame or radio frame. Of course, these definitions are not required, and any suitable scheme for organizing waveforms may be utilized, and various time divisions of the waveform may have any suitable duration.

The air interface in the radio access network <NUM> may utilize one or more multiplexing and multiple access algorithms to enable simultaneous communication of the various devices. For example, multiple access for uplink (UL) or reverse link transmissions from UEs <NUM> and <NUM> to base station <NUM> may be provided utilizing time division multiple access (TDMA), code division multiple access (CDMA), frequency division multiple access (FDMA), orthogonal frequency division multiple access (OFDMA), sparse code multiple access (SCMA), single-carrier frequency division multiple access (SC-FDMA), resource spread multiple access (RSMA), or other suitable multiple access schemes. Further, multiplexing downlink (DL) or forward link transmissions from the base station <NUM> to UEs <NUM> and <NUM> may be provided utilizing time division multiplexing (TDM), code division multiplexing (CDM), frequency division multiplexing (FDM), orthogonal frequency division multiplexing (OFDM), sparse code multiplexing (SCM), single-carrier frequency division multiplexing (SC-FDM) or other suitable multiplexing schemes.

Further, the air interface in the radio access network <NUM> may utilize one or more duplexing algorithms. Duplex refers to a point-to-point communication link where both endpoints can communicate with one another in both directions. Full duplex means both endpoints can simultaneously communicate with one another. Half duplex means only one endpoint can send information to the other at a time. In a wireless link, a full duplex channel generally relies on physical isolation of a transmitter and receiver, and suitable interference cancellation technologies. Full duplex emulation is frequently implemented for wireless links by utilizing frequency division duplex (FDD) or time division duplex (TDD). In FDD, transmissions in different directions operate at different carrier frequencies. In TDD, transmissions in different directions on a given channel are separated from one another using time division multiplexing. That is, at some times the channel is dedicated for transmissions in one direction, while at other times the channel is dedicated for transmissions in the other direction, where the direction may change very rapidly, e.g., several times per subframe.

In the radio access network <NUM>, the ability for a UE to communicate while moving, independent of their location, is referred to as mobility. The various physical channels between the UE and the radio access network are generally set up, maintained, and released under the control of a mobility management entity (MME). In various aspects of the disclosure, a radio access network <NUM> may utilize DL-based mobility or UL-based mobility to enable mobility and handovers (i.e., the transfer of a UE's connection from one radio channel to another). In a network configured for DL-based mobility, during a call with a scheduling entity, or at any other time, a UE may monitor various parameters of the signal from its serving cell as well as various parameters of neighboring cells. Depending on the quality of these parameters, the UE may maintain communication with one or more of the neighboring cells. During this time, if the UE moves from one cell to another, or if signal quality from a neighboring cell exceeds that from the serving cell for a given amount of time, the UE may undertake a handoff or handover from the serving cell to the neighboring (target) cell. For example, UE <NUM> may move from the geographic area corresponding to its serving cell <NUM> to the geographic area corresponding to a neighbor cell <NUM>. When the signal strength or quality from the neighbor cell <NUM> exceeds that of its serving cell <NUM> for a given amount of time, the UE <NUM> may transmit a reporting message to its serving base station <NUM> indicating this condition. In response, the UE <NUM> may receive a handover command, and the UE may undergo a handover to the cell <NUM>.

In a network configured for UL-based mobility, UL reference signals from each UE may be utilized by the network to select a serving cell for each UE. In some examples, the base stations <NUM>, <NUM>, and <NUM>/<NUM> may broadcast unified synchronization signals (e.g., unified Primary Synchronization Signals (PSSs), unified Secondary Synchronization Signals (SSSs) and unified Physical Broadcast Channels (PBCH)). The UEs <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, and <NUM> may receive the unified synchronization signals, derive the carrier frequency and subframe timing from the synchronization signals, and in response to deriving timing, transmit an uplink pilot or reference signal. The uplink pilot signal transmitted by a UE (e.g., UE <NUM>) may be concurrently received by two or more cells (e.g., base stations <NUM> and <NUM>/<NUM>) within the radio access network <NUM>. Each of the cells may measure a strength of the pilot signal, and the radio access network (e.g., one or more of the base stations <NUM> and <NUM>/<NUM> and/or a central node within the core network) may determine a serving cell for the UE <NUM>. As the UE <NUM> moves through the radio access network <NUM>, the network may continue to monitor the uplink pilot signal transmitted by the UE <NUM>. When the signal strength or quality of the pilot signal measured by a neighboring cell exceeds that of the signal strength or quality measured by the serving cell, the network <NUM> may handover the UE <NUM> from the serving cell to the neighboring cell, with or without informing the UE <NUM>.

In various implementations, the air interface in the radio access network <NUM> may utilize licensed spectrum, unlicensed spectrum, or shared spectrum. Licensed spectrum provides for exclusive use of a portion of the spectrum, generally by virtue of a mobile network operator purchasing a license from a government regulatory body. Unlicensed spectrum provides for shared use of a portion of the spectrum without need for a government-granted license. While compliance with some technical rules is generally still required to access unlicensed spectrum, generally, any operator or device may gain access. Shared spectrum may fall between licensed and unlicensed spectrum, wherein technical rules or limitations may be required to access the spectrum, but the spectrum may still be shared by multiple operators and/or multiple RATs. For example, the holder of a license for a portion of licensed spectrum may provide licensed shared access (LSA) to share that spectrum with other parties, e.g., with suitable licensee-determined conditions to gain access.

That is, for scheduled communication, scheduled entities utilize resources allocated by the scheduling entity.

In other examples, sidelink signals may be used between UEs without necessarily relying on scheduling or control information from a base station. For example, UE <NUM> is illustrated communicating with UEs <NUM> and <NUM>. In some examples, the UE <NUM> is functioning as a scheduling entity or a primary sidelink device, and UEs <NUM> and <NUM> may function as a scheduled entity or a non-primary (e.g., secondary) sidelink device. In still another example, a UE may function as a scheduling entity in a device-to-device (D2D), peer-to-peer (P2P), or vehicle-to-vehicle (V2V) network, and/or in a mesh network. In a mesh network example, UEs <NUM> and <NUM> may optionally communicate directly with one another in addition to communicating with the scheduling entity <NUM>.

<FIG> is a schematic illustration of wireless communication between a first wireless communication device <NUM> and a second wireless communication device <NUM>. Each wireless communication device <NUM> and <NUM> may be a user equipment (UE), a base station, or any other suitable apparatus or means for wireless communication. In the illustrated example, a source <NUM> within the first wireless communication device <NUM> transmits a digital message over a communication channel <NUM> (e.g., a wireless channel) to a sink <NUM> in the second wireless communication device <NUM>. To provide for reliable communication of the digital message, it is usually beneficial to take into account the noise <NUM> that affects the communication channel <NUM>.

Block codes, or error correcting codes are frequently used to provide reliable transmission of digital messages over such channels. In a typical block code, an information message or sequence is split up into blocks, each block having a length of K bits. An encoder <NUM> at the first (transmitting) wireless communication device <NUM> then mathematically adds redundancy to the information message, resulting in codewords having a length of N, where N > K. Here, the code rate R is the ratio between the message length and the block length: i.e., R = K / N. Exploitation of this redundancy in the encoded information message is one key to reliability of the message, possibly enabling correction for bit errors that may occur due to the noise <NUM> or other signal propagation affects. That is, a decoder <NUM> at the second (receiving) wireless communication device <NUM> can take advantage of the redundancy to possibly recover the information message even though bit errors may occur, in part, due to the addition of noise to the channel, etc..

Many examples of such error correcting block codes are known to those of ordinary skill in the art, including Hamming codes, Bose-Chaudhuri-Hocquenghem (BCH) codes, turbo codes, tail-biting convolutional codes (TBCC), and low-density parity check (LDPC) codes, among others. Many existing wireless communication networks utilize such block codes, such as 3GPP LTE networks, which utilize turbo codes; and IEEE <NUM>. 11n Wi-Fi networks, which utilize LDPC codes. However, for future networks, a new category of block codes, called polar codes, presents a potential opportunity for reliable and efficient information transfer with improved performance relative to turbo codes and LDPC codes.

Polar codes are linear block error correcting codes. In general terms, channel polarization is generated with a recursive algorithm that defines polar codes. Polar codes are the first explicit codes that achieve the channel capacity of symmetric binary-input discrete memoryless channels. That is, polar codes achieve the channel capacity (the Shannon limit) or the theoretical upper bound on the amount of error-free information that can be transmitted on a discrete memoryless channel of a given bandwidth in the presence of noise.

However, even with the best error correcting codes, if the communication channel <NUM> experiences a deep fade, the bit error rate may exceed what can be compensated. Accordingly, many wireless communication networks utilize interleavers to further improve data reliability.

Interleavers may also be used in the coding process itself to provide extrinsic information for iterative decoding. For example, turbo codes may utilize a quadratic permutation polynomial (QPP) interleaver to support parallel decoding. Similarly, tail-biting convolutional codes may utilize a sub-block interleaver for the control channel. The sub-block interleaver includes a rectangular shaped matrix of rows and columns. There are typically thirty-two columns, but the number of rows is dependent upon the number of coded bits in a code block. The coded bits are fed into the sub-block interleaver on a row-by-row basis. The matrix is then rearranged using an inter-column permutation, after which the coded bits are read out on a column-by-column basis.

However, for polar codes with higher-order modulation (e.g., <NUM>-QAM or <NUM>-QAM), traditional interleaver designs, such as QPP interleavers or sub-block interleavers, fail to provide sufficient performance in terms of the Signal-to-Noise Ratio (SNR) and Block Error Rate (BLER), especially under Additive White Gaussian Noise (AWGN). Therefore, in accordance with aspects of the present disclosure, a new interleaver design, which may be utilized for polar codes or other suitable types of codes (e.g., turbo or TBCC), is provided. The interleaver design is based on a right isosceles triangle-shaped matrix or trapezoid-shaped matrix of rows and columns, where the number of columns varies between the rows. For example, a right isosceles triangle-shaped matrix may be designed with the length of the two equal sides set to the smallest integer P that satisfies the equation P*(P+<NUM>)/<NUM> ≥ N, where N is the number of coded bits in a code block.

In an exemplary operation of the interleaver, the coded bits of a code block may be fed into successive rows of the interleaver from top to bottom and read out of successive columns of the interleaver from left to right. Thus, the first coded bit in the first row is the first coded bit read out of the first column. With this interleaver design, the number of coded bits in each row decreases with the highest number of coded bits in the first row and the lowest number of coded bits in the last row. As such, the number of coded bits between adjacent coded bits in adjacent rows varies, and in particular, the number of coded bits between adjacent coded bits in adjacent rows decreases as the row number increases. For example, the number of coded bits between the left-most coded bit in the first row and the left-most coded bit in the second row is P, whereas the number of coded bits between the left-most coded bit in the second row and the left-most coded bit in the third row is P-<NUM>, and so on.

In some aspects of the present disclosure, after the last coded bit of the code block is fed into the interleaver, any remaining rows or portions thereof in the matrix may be filled with null values. When reading out the columns of the matrix, these null values may be skipped to read out only the coded bits. The interleaver design excluding the rows containing only null values may therefore be considered to be a trapezoid-shaped matrix.

In addition, the inter-column permutation step performed with the sub-block interleaver is removed to reduce complexity and latency. In some examples, the performance of this new interleaver design may be comparable to that of a random interleaver, and as such, is suitable for polar codes with higher-order modulation.

<FIG> is a block diagram illustrating an example of a hardware implementation for a wireless communication device <NUM> employing a processing system <NUM>. For example, the wireless communication device <NUM> may be a user equipment (UE), a base station, or any other suitable apparatus or means for wireless communication.

In accordance with various aspects of the disclosure, an element, or any portion of an element, or any combination of elements may be implemented with a processing system <NUM> that includes one or more processors <NUM>. Examples of processors <NUM> include microprocessors, microcontrollers, digital signal processors (DSPs), field programmable gate arrays (FPGAs), programmable logic devices (PLDs), state machines, gated logic, discrete hardware circuits, and other suitable hardware configured to perform the various functionality described throughout this disclosure. That is, the processor <NUM>, as utilized in a wireless communication device <NUM>, may be used to implement any one or more of the processes described below and illustrated in <FIG>.

In this example, the processing system <NUM> may be implemented with a bus architecture, represented generally by the bus <NUM>. The bus <NUM> may include any number of interconnecting buses and bridges depending on the specific application of the processing system <NUM> and the overall design constraints. The bus <NUM> links together various circuits including one or more processors (represented generally by the processor <NUM>), a memory <NUM>, and computer-readable media (represented generally by the computer-readable medium <NUM>). The bus <NUM> may also link various other circuits such as timing sources, peripherals, voltage regulators, and power management circuits, which are well known in the art, and therefore, will not be described any further. A bus interface <NUM> provides an interface between the bus <NUM> and a transceiver <NUM>. The transceiver <NUM> provides a means for communicating with various other apparatus over a transmission medium. Depending upon the nature of the apparatus, an optional user interface <NUM> (e.g., keypad, display, speaker, microphone, joystick) may also be provided. It should be understood that the user interface <NUM> may not be provided in some devices, such as a base station.

The computer-readable medium <NUM> may also be used for storing data that is manipulated by the processor <NUM> when executing software.

One or more processors <NUM> in the processing system may execute software. The software may reside on a computer-readable medium <NUM>. The computer-readable medium <NUM> may be a non-transitory computer-readable medium. A non-transitory computer-readable medium includes, by way of example, a magnetic storage device (e.g., hard disk, floppy disk, magnetic strip), an optical disk (e.g., a compact disc (CD) or a digital versatile disc (DVD)), a smart card, a flash memory device (e.g., a card, a stick, or a key drive), a random access memory (RAM), a read only memory (ROM), a programmable ROM (PROM), an erasable PROM (EPROM), an electrically erasable PROM (EEPROM), a register, a removable disk, and any other suitable medium for storing software and/or instructions that may be accessed and read by a computer. The computer-readable medium may also include, by way of example, a carrier wave, a transmission line, and any other suitable medium for transmitting software and/or instructions that may be accessed and read by a computer. The computer-readable medium <NUM> may reside in the processing system <NUM>, external to the processing system <NUM>, or distributed across multiple entities including the processing system <NUM>. The computer-readable medium <NUM> may be embodied in a computer program product. By way of example, a computer program product may include a computer-readable medium in packaging materials. Those skilled in the art will recognize how best to implement the described functionality presented throughout this disclosure depending on the particular application and the overall design constraints imposed on the overall system.

In some aspects of the disclosure, the processor <NUM> may include circuitry configured for various functions. For example, the processor <NUM> may include an encoder <NUM>, which may in some examples operate in coordination with encoding software <NUM> stored in the computer-readable storage medium <NUM>. The encoder <NUM> may be configured to code an information block to produce a code block of length N after puncturing. In some examples, the encoder <NUM> is a polar encoder. However, the encoder <NUM> is not limited to polar encoders and may include any suitable encoder, such as a turbo encoder, tail-biting convolutional encoder, or other type of encoder.

In examples where the encoder <NUM> is a polar encoder, the polar encoder <NUM> may be configured to polar code the information block to produce a polar code block having a length of N. For example, the information block may be represented as an information bit vector u = (u<NUM>, u<NUM>,. The polar encoder <NUM> may polar code the information bit vector to produce the polar code block as an encoded bit vector c = (c<NUM>, c<NUM>,. , cN) using a generating matrix GN = BNF⊗n, where BN is the bit-reversal permutation matrix for successive cancellation (SC) decoding (functioning in some ways similar to the interleaver function used by a turbo coder in LTE networks) and F⊗n is the nth Kronecker power of F. The basic matrix F may be represented as <MAT>. The matrix F⊗n is generated by raising the basic <NUM> x <NUM> matrix F by the nth Kronecker power. This matrix is a lower triangular matrix, in that all the entries above the main diagonal are zero. For example, the matrix of F⊗n may be expressed as:
<MAT>.

The polar encoder <NUM> may then generate the polar code block as:
<MAT>.

Thus, the information bit vector u may include a number (N) of original bits that may be polar coded by the generating matrix GN to produce a corresponding number (N) of coded bits in the polar code block c. In some examples, the information bit vector u may include a number of information bits, denoted K, and a number of frozen bits, denoted <IMG>. Frozen bits are bits that are set to a suitable predetermined value, such as <NUM> or <NUM>. Thus, the value of the frozen bits may generally be known at both the transmitting device and the receiving device. The polar encoder <NUM> may determine the number of information bits and the number of frozen bits based on the code rate R. For example, the polar encoder <NUM> may select a code rate R from a set of one or more code rates and select K = N x R bits in the information block to transmit information. The remaining (N - K) bits in the information block may then be fixed as frozen bits <IMG>.

In order to determine which information block bits to set as frozen bits, the polar encoder <NUM> may further analyze the wireless channel over which the polar code block may be sent. For example, the wireless channel for transmitting the polar code block may be divided into a set of sub-channels, such that each encoded bit in the polar code block is transmitted over one of the sub-channels. Thus, each sub-channel may correspond to a particular coded bit location in the polar code block (e.g., sub-channel-<NUM> may correspond to coded bit location containing coded bit c<NUM>). The polar encoder <NUM> may identify the K best sub-channels for transmitting the information bits and determine the original bit locations in the information block contributing to (or corresponding to) the K best sub-channels. For example, based on the generating matrix, one or more of the original bits of the information block may contribute to each of the coded bits of the polar code block. Thus, based on the generating matrix, the polar encoder <NUM> may determine K original bit locations in the information block corresponding to the K best sub-channels, designate the K original bit locations in the information block for information bits, and designate the remaining original bit locations in the information block for fixed bits.

In some examples, the polar encoder <NUM> may determine the K best sub-channels by performing density evolution or Gaussian approximation. Density evolution is generally known to those skilled in the art. Gaussian approximation is a lower complexity version of density evolution, and is also generally known to those skilled in the art. In general, the polar encoder <NUM> may perform density evolution or Gaussian approximation to calculate a respective bit error probability (BEP) and/or log likelihood ratio (LLR) for each of the for each of the original bit locations. For example, the LLRs of the coded bit locations are known from the sub-channel conditions (e.g., based on the respective SNRs of the sub-channels). Thus, since one or more of the original bits of the information block may contribute to each of the coded bits of the polar code block, the LLRs of each of the original bit locations may be derived from the known LLRs of the coded bit locations by performing density evolution or Gaussian approximation. Based on the calculated original bit location LLRs, the polar encoder <NUM> may sort the sub-channels and select the K best sub-channels (e.g., "good" sub-channels) to transmit the information bits.

The polar encoder <NUM> may then set the original bit locations of the information block corresponding to the K best sub-channels as including information bits and the remaining original bit locations corresponding to the N-K sub-channels (e.g., "bad" sub-channels) as including frozen bits. Bit-reversal permutation may then be performed by applying the bit-reversal permutation matrix BN described above to the N bits (including K information bits and N-K frozen bits) to produce a bit-reversed information block. The bit-reversal permutation effectively re-orders the bits of the information block. The bit-reversed information block may then be polar coded by the generating matrix GN to produce a corresponding number (N) of coded bits in the polar code block.

The processor <NUM> may further include an interleaver <NUM>, which may in some examples operate in coordination with interleaving software <NUM> stored in the computer-readable medium <NUM>. The interleaver <NUM> may also operate in coordination with the encoder <NUM> to interleave the coded bits in the code block to produce an interleaved code block. The encoder <NUM> may then transmit the interleaved code block via the transceiver <NUM>.

In various aspects of the present disclosure, the interleaver <NUM> includes a plurality of rows and columns, where the number of columns varies between rows. In some examples, the interleaver <NUM> includes a right isosceles triangle-shaped matrix or trapezoid-shaped matrix of rows and columns. In an embodiment according to the claimed invention, a right isosceles triangle-shaped matrix interleaver <NUM> includes two equal sides whose length is set to the smallest integer P that satisfies the equation P*(P+<NUM>)/<NUM> ≥ N, where N is the number of coded bits in the code block.

The interleaver <NUM> is configured to feed the coded bits of the code block into successive rows of the matrix, such that the first coded bit in the code block is the left-most coded bit in the first row. The interleaver <NUM> is further configured to read out the coded bits from successive columns of the matrix from left to right. Thus, the first coded bit in the first row is the first coded bit read out of the first column. With this interleaver design, the number of coded bits in each row decreases with the highest number of coded bits in the first row and the lowest number of coded bits in the last row. As such, the number of coded bits between adjacent coded bits in adjacent rows varies, and in particular, the number of coded bits between adjacent coded bits in adjacent rows decreases as the row number increases. For example, the number of coded bits between the left-most coded bit in the first row and the left-most coded bit in the second row is P, whereas the number of coded bits between the left-most coded bit in the second row and the left-most coded bit in the third row is P-<NUM>, and so on.

In an embodiment according to the claimed invention, after the last coded bit of the code block is fed into the matrix, the interleaver <NUM> is further configured to fill any remaining rows or portions thereof in the matrix with null values. In other not claimed examples, the null bits may be fed into the matrix first, followed by the coded bits. When reading out the columns of the matrix, the interleaver <NUM> is also configured to skip these null values to read out only the coded bits. If the null values are fed into the matrix after the coded bits, excluding the rows containing all null values in the matrix results in an interleaver <NUM> having a trapezoid-shaped matrix.

Further, the processor <NUM> may include a decoder <NUM>, which may in some examples operate in coordination with decoding software <NUM> stored in the computer-readable medium <NUM>. The decoder <NUM> may be configured to receive an interleaved code block via the transceiver <NUM>, de-interleave the interleaved code block based on the right isosceles triangle-shaped interleaver design described above to produce the code block, and decode the code block to produce the original information block. In some examples, the decoder <NUM> may be a polar decoder <NUM>. In other examples, the decoder <NUM> may include any suitable decoder, such as a turbo decoder, tail-biting convolutional decoder, or other type of decoder.

In examples where the decoder <NUM> is a polar decoder <NUM>, the polar decoder <NUM> may perform successive cancellation (SC) polar decoding or SC polar list decoding to decode the polar code block. For example, the polar decoder <NUM> may be configured to receive a noisy version of c, and to decode c or, equivalently, u, using a simple successive cancellation (SC) decoding algorithm. Successive cancellation decoding algorithms typically have a decoding complexity of O (N log N) and can achieve Shannon capacity when N is very large. However, for short and moderate block lengths, the error rate performance of polar codes significantly degrades.

Therefore, in some examples, the polar decoder <NUM> may utilize a SC-list decoding algorithm to improve the polar coding error rate performance. With SC-list decoding, instead of only keeping one decoding path (as in simple SC decoders), L decoding paths are maintained, where L><NUM>. At each decoding stage, the polar decoder <NUM> discards the least probable (worst) decoding paths and keeps only the L best decoding paths. For example, instead of selecting a value ui at each decoding stage, two decoding paths corresponding to either possible value of ui are created and decoding is continued in two parallel decoding threads (<NUM>*L). To avoid the exponential growth of the number of decoding paths, at each decoding stage, only the L most likely paths are retained. At the end, the polar decoder <NUM> will have a list of L candidates for <MAT>, out of which the most likely candidate is selected. Thus, when the polar decoder <NUM> completes the SC-list decoding algorithm, the polar decoder <NUM> returns a single information block.

<FIG> is a diagram illustrating an example of an interleaver design according to an embodiment of the claimed invention. In the embodiment shown in <FIG>, the interleaver <NUM> includes a right isosceles triangle-shaped matrix <NUM> of rows <NUM> and columns <NUM>. A code block including coded bits x(<NUM>) to x(N), with a length of N, is fed into successive rows <NUM> of the matrix, such that the first coded bit x(<NUM>) in the code block is the left-most coded bit in the first row <NUM>. The length of the first row <NUM> is set to smallest integer P that satisfies the equation P*(P+<NUM>)/<NUM> ≥ N. In addition, the length of the first column <NUM> is equal to the length of the first row <NUM>, and as such, is also set to P. Thus, the first row <NUM> includes coded bits x(<NUM>) to x(P).

With this interleaver <NUM> design, the number of coded bits in each row <NUM> decreases with the highest number of coded bits being in the first row and the lowest number of coded bits being in the last row. For example, the second row of the matrix includes coded bits x(P+<NUM>) to x(2P-<NUM>), the third row of the matrix includes coded bits x(2P) to x(3P-<NUM>), and so on. As such, the number of coded bits between adjacent coded bits in adjacent rows varies, and in particular, the number of coded bits between adjacent coded bits in adjacent rows decreases as the row number increases. For example, the number of coded bits between the left-most coded bit in the first row and the left-most coded bit in the second row is P, whereas the number of coded bits between the left-most coded bit in the second row and the left-most coded bit in the third row is P-<NUM>, and so on.

In an embodiment according to the claimed invention, after the last coded bit x(N) is fed into the matrix, null values (null) are inserted into any remaining rows or portions thereof. In some not claimed examples, the null values may be fed into the matrix <NUM> first, followed by the coded bits.

The coded bits may then be read out from successive columns <NUM> of the matrix <NUM> from left to right, skipping any null values. Thus, the first coded bit (left-most coded bit) in the first row is the first coded bit read out of the first column. In the example shown in <FIG>, the output is x(<NUM>), x(P+<NUM>), x(2P), x(3P-<NUM>),. , x(<NUM>), x(P+<NUM>), x(2P+<NUM>), x(N), x(P-<NUM>), x(2P-<NUM>), x(P), skipping any null values in the matrix. By excluding the rows containing all null values, the interleaver <NUM> design shown in <FIG> may be considered to be a trapezoid-shaped matrix.

<FIG> is a diagram illustrating an example operation <NUM> of polar coding and interleaving according to some embodiments. In <FIG>, an information block <NUM> is provided including N original bit locations <NUM>, each containing an original bit (u<NUM>, u<NUM>,. Each of the original bits corresponds to an information bit or a frozen bit. The information block <NUM> is received by a polar encoder <NUM>. The polar encoder <NUM> polar encodes the information block to produce a polar codeword <NUM> including N coded bit locations <NUM>, each containing a coded bit (c<NUM>, c<NUM>,.

The polar codeword <NUM> is received by an interleaver block <NUM>. The interleaver block <NUM> applies a right isosceles triangle-shaped or trapezoid-shaped interleaver matrix to the polar codeword <NUM> to interleave the coded bits from the polar codeword to produce an interleaved polar codeword <NUM>. Thus, at the output of the interleaver block <NUM> is an interleaved codeword <NUM> including N coded bit locations <NUM>, each including one of the coded bits (c<NUM>, c<NUM>,. , cN) in an interleaved order (cI<NUM>, cI<NUM>,. It should be noted that the polar encoder <NUM> may, in some examples, correspond to the polar encoder <NUM> and polar encoding software <NUM> shown and described above in connection with <FIG> or the polar encoder <NUM> shown and described above in connection with <FIG>. In addition, the interleaver block <NUM> may, in some examples, correspond to the interleaver <NUM> shown and described above in connection with <FIG> or the interleaver <NUM> and interleaving software <NUM> shown and described above in connection with <FIG>.

<FIG> is a flow chart illustrating an exemplary process <NUM> for interleaving coded bits according to some aspects of the present disclosure. In some examples, the process <NUM> may be implemented by a wireless communication device as described above and illustrated in <FIG>. In some examples, the process <NUM> may be implemented by any suitable means for carrying out the described functions.

At block <NUM>, the wireless communication device may encode an information block to produce a code block including a plurality of coded bits. In some examples, the information block may be encoded using polar coding. For example, the encoder <NUM> shown and described above in reference to <FIG> may encode the information block to produce the code block.

At block <NUM>, the wireless communication device may interleave the plurality of coded bits in the code block to produce an interleaved code block. The coded bits may be interleaved utilizing an interleaver including a plurality of rows and a plurality of columns, where the number of columns varies between the rows. In some examples, the interleaver includes a right isosceles triangle-shaped matrix or trapezoid-shaped matrix of rows and columns. With the right isosceles triangle-shaped matrix, the number of rows in the first column is equal to the number of columns in the first row, and is further selected based on the number of coded bits in the code block. For example, the number of rows in the first column may be set to smallest integer P that satisfies the equation P*(P+<NUM>)/<NUM> ≥ N, where N is the number of coded bits in the code block. The coded bits may be fed into successive rows of the interleaver and read out from successive columns of the interleaver, such that the first coded bit in the code block is the first coded bit read out of the interleaver. For example, the interleaver <NUM> shown and described above in reference to <FIG> may interleave the coded bits in the code block to produce the interleaved code block.

At block <NUM>, the wireless communication device may transmit the interleaved code block to a receiving wireless communication device over a wireless air interface. For example, the encoder <NUM>, together with the transceiver <NUM>, shown and described above in reference to <FIG> may transmit the interleaved code block to the receiving wireless communication device.

<FIG> is a flow chart illustrating another exemplary process <NUM> for interleaving coded bits according to some aspects of the present disclosure. In some examples, the process <NUM> may be implemented by a wireless communication device as described above and illustrated in <FIG>. In some examples, the process <NUM> may be implemented by any suitable means for carrying out the described functions.

At block <NUM>, the wireless communication device may provide a number of rows in a first column of an interleaver to equal the smallest integer P that satisfies the equation P*(P+<NUM>)/<NUM> ≥ N, where N is the number of coded bits in the code block. At block <NUM>, the wireless communication device may provide the number of columns in the first row of in the interleaver to equal the number of rows in the first column. At block <NUM>, the wireless communication device may provide the number of columns in the interleaver to vary between the rows of the interleaver. Such an interleaver design may produce, in some examples, a right isosceles triangle-shaped matrix or trapezoid-shaped matrix of rows and columns. For example, the interleaver <NUM> shown and described above in reference to <FIG> may provide the number of rows in the first column, the number of columns in the first row, and vary the number of columns between rows of a matrix corresponding to the interleaver <NUM>.

At block <NUM>, the wireless communication device may interleave the plurality of coded bits in the code block using the interleaver to produce an interleaved code block. The coded bits may be fed into successive rows of the interleaver and read out from successive columns of the interleaver, such that the first coded bit in the code block is the first coded bit read out of the interleaver. For example, the interleaver <NUM> shown and described above in reference to <FIG> may interleave the coded bits in the code block to produce the interleaved code block.

At block <NUM>, the wireless communication device may feed the coded bits into successive rows of an interleaver, starting with the first row, where the number of columns in the interleaver varies between the rows. In some examples, the interleaver includes a right isosceles triangle-shaped matrix or trapezoid-shaped matrix of rows and columns. For example, the interleaver <NUM> shown and described above in reference to <FIG> may feed the coded bits in the code block into the successive rows of the interleaver.

At block <NUM>, the wireless communication device may read out the coded bits from successive columns of the interleaver, starting with the first column, to produce an interleaved code block. For example, the interleaver <NUM> shown and described above in reference to <FIG> may read out the coded bits from successive columns of the interleaver.

At block <NUM>, the wireless communication device may insert null values into remaining rows of the interleaver after the coded bits are fed into the interleaver. For example, the interleaver <NUM> shown and described above in reference to <FIG> may insert the null values into the remaining rows of the interleaver.

At block <NUM>, the wireless communication device may read out the coded bits from successive columns of the interleaver, starting with the first column and skipping the null values, to produce an interleaved code block. For example, the interleaver <NUM> shown and described above in reference to <FIG> may read out the coded bits from successive columns of the interleaver.

At block <NUM>, the wireless communication device may insert null values into successive rows of a matrix corresponding to an interleaver, starting with the first row, where the number of columns in the interleaver varies between the rows. In some examples, the interleaver includes a right isosceles triangle-shaped matrix or trapezoid-shaped matrix of rows and columns. In some examples, the number of null values is equal to the number of elements in the matrix less the number of coded bits For example, the interleaver <NUM> shown and described above in reference to <FIG> may insert null values into the successive rows of the interleaver.

At block <NUM>, the wireless communication device may feed the coded bits into remaining rows of the interleaver after the null values are inserted into the interleaver. For example, the interleaver <NUM> shown and described above in reference to <FIG> may feed the coded bits into the remaining rows of the interleaver.

In one configuration, an apparatus configured for wireless communication (e.g., the wireless communication device <NUM> shown in <FIG> and/or the wireless communication device <NUM> shown in <FIG>) includes means for encoding an information block to produce a code block including a plurality of coded bits. The wireless communication device further includes means for interleaving the plurality of coded bits to produce an interleaved code block, where the means for interleaving includes a plurality of rows and a plurality of columns, and a number of the plurality of columns varies between the plurality of rows. The wireless communication device further includes means for transmitting the interleaved code block to a receiving wireless communication device over a wireless air interface.

In one aspect, the aforementioned means for encoding the information block may include the encoder <NUM> shown in <FIG>, the processor(s) <NUM> shown in <FIG>, the encoder <NUM> shown in <FIG>, and/or the polar encoder <NUM> shown in <FIG>. In another aspect, the aforementioned means for interleaving the coded bits may include the processor(s) <NUM> shown in <FIG>, the interleaver <NUM> shown in <FIG>, the interleaver <NUM> shown in <FIG> and/or the interleaver <NUM> shown in <FIG>. In another aspect, the aforementioned means for transmitting the interleaved code block may include the transceiver <NUM> in combination with the processor(s) <NUM> shown in <FIG>. In still another aspect, the aforementioned means may be a circuit or any apparatus configured to perform the functions recited by the aforementioned means.

Claim 1:
A method of wireless communication at a transmitting wireless communication device (<NUM>, <NUM>), comprising:
encoding (<NUM>, <NUM>, <NUM>, <NUM>) an information block using a polar encoder to produce a code block comprising a plurality of coded bits;
interleaving (<NUM>, <NUM>) the plurality of coded bits utilizing an interleaver to produce an interleaved code block, wherein the interleaver comprises a matrix of a plurality of rows and a plurality of columns, wherein a number of columns of the plurality of columns in each row of the plurality of rows decreases as the row number increases,
wherein a number of rows in a first column of the plurality of columns and a number of columns in a first row of the plurality of rows are equal to a smallest integer P that satisfies an equation P*(P+<NUM>)/<NUM>≥N, where N is a number of the plurality of coded bits in the code block, wherein interleaving the plurality of coded bits further comprises:
feeding (<NUM>) the plurality of coded bits into successive rows of the plurality of rows of the interleaver from top to bottom starting with a first coded bit in the first row of the plurality of rows;
inserting (<NUM>, <NUM>) one or more null values into remaining ones of the plurality of rows or portions thereof after the plurality of coded bits are fed into the interleaver; and
reading (<NUM>, <NUM>) out the plurality of coded bits from successive columns of the plurality of columns of the interleaver from left to right starting with the first coded bit in the first column of the plurality of columns,
wherein reading out the plurality of coded bits comprises skipping the one or more null values whereby the rows containing only null values are excluded such that reading out is from a trapezoid-shaped matrix;
modulating the interleaved code block using high order modulation to produce modulation symbols; and
transmitting (<NUM>, <NUM>, <NUM>, <NUM>, <NUM>) the modulation symbols to a receiving wireless communication device (<NUM>, <NUM>) over a wireless air interface.