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> discloses a method for encoding a reduced polar code. The method generally includes steps (A) to (C). Step (A) may generate the intermediate codeword by polar code encoding input data. Step (B) may remove one or more bits from one of (i) a first part of the intermediate codeword and (ii) a second part of the intermediate codeword. Step (C) may generate an output codeword by concatenating the first part of the intermediate codeword with the second part of the intermediate codeword after the bits are removed.

Various aspects of the disclosure provide for the generation of polar codewords with a variable block length utilizing puncturing. Some puncturing schemes consider punctured bits as unknown bits, and set the log likelihood ratio (LLR) for those bits to zero; while other puncturing schemes consider punctured bits as known bits, and set the LLR for those bits to infinity. Each of these puncturing schemes has been observed to provide benefits over the other under different circumstances, especially corresponding to different coding rates or different signal to noise ratios (SNRs). According to aspects of the present disclosure, both puncturing schemes are compared, and the puncturing scheme resulting in the better performance is utilized for puncturing polar codewords.

In one aspect, the disclosure provides a method for polar coding. The method includes generating a puncturing pattern including a plurality of punctured bit locations for puncturing corresponding coded bit locations in a polar codeword. The method further includes calculating a first log likelihood ratio (LLR) sum for an unknown-bit puncturing scheme by considering the coded bit locations corresponding to the punctured bit locations as unknown bits, calculating a second LLR sum for a known-bit puncturing scheme by considering the coded bit locations corresponding to the punctured bit locations as known bits, selecting between the unknown-bit puncturing scheme and the known bit puncturing scheme according to a greater LLR sum between the first LLR sum and the second LLR sum, polar coding an information block to produce the polar codeword, and puncturing the polar codeword using the puncturing pattern and based on the selected puncturing scheme to produce a punctured codeword having a codeword length other than a power of two.

Another aspect of the disclosure provides a method for polar decoding. The method includes receiving a polar codeword, determining whether punctured bits in the polar codeword are considered known bits or unknown bits, setting an initial log likelihood ratio (LLR) of each of the punctured bits as zero if the punctured bits are considered unknown bits, or as infinity if the punctured bits are considered known bits, and performing decoding of the received polar codeword.

Another aspect of the disclosure provides an apparatus configured for polar coding. The apparatus includes a processor, a memory communicatively coupled to the processor, and a transceiver communicatively coupled to the processor. The processor is configured to generate a puncturing pattern including a plurality of punctured bit locations for puncturing corresponding coded bit locations in a polar codeword. The processor is further configured to calculate a first log likelihood ratio (LLR) sum for an unknown-bit puncturing scheme by considering the coded bit locations corresponding to the punctured bit locations as unknown bits, calculate a second LLR sum for a known-bit puncturing scheme by considering the coded bit locations corresponding to the punctured bit locations as known bits, select between the unknown-bit puncturing scheme and the known bit puncturing scheme according to a greater LLR sum between the first LLR sum and the second LLR sum, polar code an information block to produce the polar codeword, and puncture the polar codeword using the puncturing pattern and based on the selected puncturing scheme to produce a punctured codeword having a codeword length other than a power of two.

Another aspect of the disclosure provides an apparatus configured for polar decoding. The apparatus includes a processor, a memory communicatively coupled to the processor, and a transceiver communicatively coupled to the processor. The processor is configured to receive a polar codeword, determine whether punctured bits in the polar codeword are considered known bits or unknown bits, set an initial log likelihood ratio (LLR) of each of the punctured bits as zero if the punctured bits are considered unknown bits, or as infinity if the punctured bits are considered known bits, and perform decoding of the received polar codeword.

Examples of additional aspects of the disclosure follow. In some aspects of the disclosure, the method further includes performing bit-reversal permutation on the puncturing pattern to produce a final puncturing pattern including final punctured bit locations different than the punctured bit locations. In some aspects of the disclosure, the final puncturing pattern is a uniform puncturing pattern.

In some aspects of the disclosure, the first LLR sum is calculated by setting a respective unknown-bit LLR for each coded bit location corresponding to one of the punctured bit locations to zero and determining a respective first coded bit LLR for remaining ones of the coded bit locations. In some aspects of the disclosure, the information block includes a plurality of original bit locations, and the first LLR sum is calculated by calculating respective first LLRs for each original bit location of the information block from the respective first coded bit LLRs and the respective unknown-bit LLRs by performing density evolution or Gaussian approximation, and calculating the first LLR sum based on the first LLRs.

In some aspects of the disclosure, each of the coded bit locations corresponds to a sub-channel and the polar codeword has an original codeword length of N. In some aspects of the disclosure, the method for polar coding further includes sorting the sub-channels based on the first LLRs, selecting K best sub-channels in accordance with the first LLRs, setting original bits of the information block corresponding to the K best sub-channels as information bits, and setting original bits of the information block corresponding to N-K sub-channels as frozen bits.

In some aspects of the disclosure, the second LLR sum is calculated by setting a respective known-bit LLR for each coded bit location corresponding to one of the punctured bit locations to infinity and determining a respective second coded bit LLR for remaining ones of the coded bit locations. In some aspects of the disclosure, the second LLR sum is calculated by calculating respective second LLRs for each original bit location of the information block from the respective second coded bit LLRs and the respective known-bit LLRs by performing density evolution or Gaussian approximation, and calculating the second LLR sum based on the second LLRs.

In some aspects of the disclosure, each of the coded bit locations corresponds to a sub-channel, the polar codeword has an original codeword length of N, and the punctured codeword has the codeword length of M. In some aspects of the disclosure, the method for polar coding further includes sorting the sub-channels based on the second LLRs, selecting K best sub-channels, excluding the sub-channels corresponding to the punctured bit locations, in accordance with the second LLRs, setting original bits of the information block corresponding to the K best sub-channels as information bits, setting original bits of the information block corresponding to the sub-channels corresponding to the punctured bit locations as frozen bits, and setting original bits of the information block corresponding to a remaining number of sub-channels as frozen bits, wherein the remaining number of sub-channels is equal to a difference between N-K and N-M sub-channels.

In some aspects of the disclosure, the method of polar coding further includes transmitting an explicit indication of the selected puncturing scheme, and transmitting the punctured polar codeword. In some aspects of the disclosure, puncturing of the polar codeword is performed during polar coding of the information block.

In some aspects of the disclosure, the puncturing pattern is generated with the punctured bit locations at an end of the puncturing pattern. In some aspects of the disclosure, the polar codeword includes an original codeword length of N, and the punctured codeword includes the codeword length of M. In some aspects of the disclosure, the method for polar coding further includes setting a last N-M original bits of the information block to zero.

In some aspects of the disclosure, the method for decoding further includes determining whether punctured bits are considered known bits or unknown bits by receiving an explicit indication of a utilized puncturing scheme selected from an unknown-bit puncturing scheme and a known bit puncturing scheme. In some aspects of the disclosure, the method for polar decoding further includes determining whether the punctured bits are considered known bits or unknown bits by receiving one or more parameters corresponding to channel coding of the polar codeword, and deriving whether the punctured bits are considered known bits or unknown bits in accordance with the one or more parameters. In some examples, the one or more parameters include a coding rate, the punctured bits are considered known bits if the coding rate is greater than a coding rate threshold, and the punctured bits are considered unknown bits if the coding rate is not greater than the coding rate threshold. In some examples, the coding rate threshold is ½.

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

The geographic region covered by the access network <NUM> may be divided into a number of cellular regions (cells), including macrocells <NUM>, <NUM>, and <NUM>, and a small cell <NUM>, each of which may include one or more sectors. Cells may be defined geographically (e.g., by coverage area) and/or may be defined in accordance with a frequency, scrambling code, etc. 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 mobile devices in a portion of the cell.

In general, a radio transceiver apparatus serves each cell. A radio transceiver apparatus is commonly referred to as a base station (BS) in many wireless communication systems, but 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, an eNode B, or some other suitable terminology.

In <FIG>, two high-power base stations <NUM> and <NUM> are shown in cells <NUM> and <NUM>; and a third high-power base station <NUM> is shown controlling a remote radio head (RRH) <NUM> in cell <NUM>. In this example, the cells <NUM>, <NUM>, and <NUM> may be referred to as macrocells, as the high-power base stations <NUM>, <NUM>, and <NUM> support cells having a large size. Further, a low-power base station <NUM> is shown in the small cell <NUM> (e.g., a microcell, picocell, femtocell, home base station, home Node B, home eNode B, etc.) which may overlap with one or more macrocells. In this example, the cell <NUM> may be referred to as a small cell, as the low-power base station <NUM> supports a cell having a relatively small size. It is to be understood that the access network <NUM> may include any number of wireless base stations and cells.

In some examples, the base stations may be interconnected to one another and/or to one or more other base stations or network nodes (not shown) in the access network <NUM> through various types of backhaul interfaces such as a direct physical connection, a virtual network, or the like using any suitable transport network.

The 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.

Within the present document, a "mobile" apparatus need not necessarily have a capability to move, and may be stationary. Some non-limiting 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, and a personal digital assistant (PDA). A mobile apparatus may additionally be an "Internet of things" (IoT) device such as an automotive or other transportation vehicle, a satellite radio, a global positioning system (GPS) device, a logistics controller, a drone, a multi-copter, a quad-copter, a smart energy or security device, municipal lighting, water, or other infrastructure; industrial automation and enterprise devices; consumer and wearable devices, such as eyewear, a wearable camera, a smart watch, a health or fitness tracker, a digital audio player (e.g., MP3 player), a camera, a game console, etc.; and digital home or smart home devices such as a home audio, video, and multimedia device, an appliance, a sensor, a vending machine, intelligent lighting, a home security system, a smart meter, etc..

Within the 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 low-power 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, the quadcopter <NUM> may be configured to function as a UE.

The air interface in the 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), 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), or other suitable multiplexing schemes.

Within the access network <NUM>, 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. Further, 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>.

For example, UE <NUM> is illustrated communicating with UEs <NUM> and <NUM>. In this example, the UE <NUM> is functioning as a scheduling entity, and UEs <NUM> and <NUM> utilize resources scheduled by the UE <NUM> for wireless communication. 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>. One issue in such a scheme that must be addressed to provide for reliable communication of the digital message, is to take into account the noise that affects the communication channel <NUM>.

Block codes, or error correcting codes are frequently used to provide reliable transmission of digital messages over such noisy 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 coding 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 the key to reliability of the message, enabling correction for any bit errors that may occur due to the noise. That is, a decoder <NUM> at the second (receiving) wireless communication device <NUM> 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.

Polar codes are linear block error correcting codes invented in <NUM> by Erdal Arikan, and currently known to those skilled in the art. 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.

Polar codes may be considered as block codes (N, K). While it would be flexible for an encoder <NUM> to be able to select the number of coded bits N, with polar codes, the codeword length N must be a power of <NUM> (e.g., <NUM>, <NUM>, <NUM>, etc.) because the original construction of a polarizing matrix is based on the Kronecker product of <MAT>. However, in a given communication system, it is generally not possible to guarantee that a resource can afford always to utilize this limited set of codeword lengths. To support the variable size of resources in a practical system, the block size of polar codes must be flexible to the resource size.

Puncturing is widely used to obtain length-compatible polar codes having a codeword whose block length is not a power of <NUM>. For example, to obtain a <NUM>-bit code word length, <NUM> bits may be punctured from a <NUM><NUM> = <NUM>-bit code word. According to various aspects of the present disclosure, puncturing may be utilized to obtain codewords of arbitrary length (e.g., lengths that are not necessarily a power of <NUM>).

When performing codeword puncturing, the selection of which bits to puncture (the puncturing pattern) is an important concern and can affect the efficiency of the algorithm. Even if it is possible, it is not desirable to perform an exhaustive search of all puncture patterns to find the optimal puncture pattern, due to the extensive computation complexity that would be required.

It has been known in the art to employ random puncturing patterns, among other various puncture patterns. Among the known puncturing patterns, a uniform puncturing pattern provides good performance. One example of a uniform puncturing pattern is described in <NPL>. Details of this algorithm are known to those of ordinary skill in the art and are not described in detail in the present disclosure.

Another aspect of a puncturing algorithm or puncturing scheme is how the decoder is to treat the punctured bits. In some examples of codeword puncturing, the punctured bits may be considered to be unknown bits. That is, the decoder may set the log-likelihood ratio (LLR) for the punctured bits to zero, indicating that the punctured bits are unknown. The LLR represents the probability of correctly decoding the bit and generally ranges from zero to one, with increasing probability as the LLR approaches one. One example of a puncturing scheme where the punctured bits are considered unknown bits is described in <NPL>. Details of this algorithm are known to those of ordinary skill in the art and are not described in detail in the present disclosure.

In other examples of codeword puncturing, the punctured bits may be considered to be known bits. That is, the decoder may set the LLR for the punctured bits to be very high (e.g., to infinity) indicating that the punctured bits have a known value of zero. The construction of polar codes using a puncturing scheme where the punctured bits are considered known bits was introduced by <NPL>. Details of this algorithm are known to those of ordinary skill in the art and are not described in detail in the present disclosure.

According to aspects of the present disclosure, it has been observed that, when the punctured bits are considered unknown bits, a puncturing scheme generally provides better performance than known-bit puncturing when utilizing lower coding rates (e.g., when the coding rate R is less than ½). On the other hand, considering the punctured bits as known bits generally provides better performance than unknown-bit puncturing when utilizing high coding rates (e.g., when the coding rate R is higher than ½). Furthermore, the performance of the encoder may additionally depend on other factors or parameters, such as the signal to noise ratio (SNR) experienced on the communication channel.

According to an aspect of the present invention, an encoder selects between such known-bit puncturing and unknown-bit puncturing in order to achieve the best performance in any conditions, independent of the coding rate or SNR being experienced.

<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, a user interface <NUM> (e.g., keypad, display, speaker, microphone, joystick) may also be provided.

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 a polar encoder <NUM>, which may in some examples operate in coordination with polar encoding software <NUM> stored in the computer-readable storage medium <NUM>. The polar encoder <NUM> may be configured to polar code an information block to produce a polar codeword having a codeword 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 codeword 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 2x2 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 codeword 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 codeword 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 fixed 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 coding rate R. For example, the polar encoder <NUM> may select a coding rate R from a set of one or more coding 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 codeword may be sent. For example, the wireless channel for transmitting the polar codeword may be divided into a set of sub-channels, such that each encoded bit in the polar codeword is transmitted over one of the sub-channels. Thus, each sub-channel may correspond to a particular coded bit location in the polar codeword (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 codeword. 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 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, and therefore the details thereof are not described herein. For example, construction of polar codes based on density evolution is described in <NPL>. Gaussian approximation is a lower complexity version of density evolution, and is also generally known to those skilled in the art. For example, construction of polar codes based on Gaussian approximation is described in <NPL>.

The polar encoder <NUM> performs 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 codeword, 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.

The polar encoder <NUM> is further configured to puncture the polar codeword to produce a punctured codeword. Puncturing is utilized to obtain codewords of arbitrary length (e.g., lengths that are not necessarily a power of <NUM>). In the invention, puncturing is performed using a puncturing pattern that identifies which coded bits to puncture. The puncturing pattern may be represented as a puncturing vector P = (P<NUM>, P<NUM>,. , PN) including pattern bits P at locations <NUM>-N. The value of each pattern bit location of the puncturing vector P determines whether a coded bit at a corresponding coded bit location in the coded bit vector c is punctured or kept. For example, if the value at a pattern bit location in the puncturing pattern is zero, the coded bit at the corresponding coded bit location in the polar codeword may be punctured (removed), whereas if the value is <NUM>, the coded bit at that coded bit location may be kept.

In various aspects of the disclosure, a uniform or quasi-uniform puncturing pattern may be utilized. However, those skilled in the art will recognize that nonuniform (e.g., random) puncturing may be utilized within the scope of the present disclosure. In some examples, the polar encoder <NUM> may generate the uniform or quasi-uniform puncturing pattern from an initial puncturing pattern including one or more initial punctured bit locations. An example of an initial puncturing pattern is one in which all of the elements have a value of <NUM> except for the last N-M elements, which have a value of <NUM>. Here, N is the codeword length, and N-M is the desired block length after puncturing. As a result of the bit-reversal permutation BN applied to the information block, in order to maintain correspondence between the puncturing pattern and the resulting polar codeword, bit-reversal permutation is also performed on the initial puncturing pattern to produce a final puncturing pattern that is similar to a uniform puncturing pattern. The punctured bit locations may be different in the final puncturing pattern than in the initial puncturing pattern based on the bit-reversal permutation applied. The final puncturing pattern functions as a mask, puncturing N-M coded bits of the polar codeword to which it is applied.

The polar encoder <NUM> may further be configured to utilize either an unknown-bit puncturing scheme or a known-bit puncturing scheme with the same puncturing pattern. In an unknown-bit puncturing scheme, the values of the punctured coded bits are unknown at the decoder, and therefore, the decoder may initialize the corresponding LLRs of the punctured bits to zero. In a known-bit puncturing scheme, the values of the punctured coded bits are known, and therefore, the decoder may initialize the corresponding LLRs of the punctured bits to infinity.

With an unknown-bit puncturing scheme, the polar encoder <NUM> may select the locations of the information bits and frozen bits based on the calculated LLRs, as described above. However, with a known puncturing scheme, the polar encoder <NUM> may further be configured to select the information bit locations and frozen bit locations in the information block based on not only the LLRs (or BEPs), but also on the puncturing pattern, to ensure that the values of the punctured bits are "known" to the receiver. For example, the polar encoder <NUM> may select the locations of the frozen bits such that the punctured bits are generated from only the frozen bits, and therefore, their values can be known to the receiver.

Using the above example of the initial puncturing pattern in which the last N-M elements have a value of <NUM>, the polar encoder <NUM> may also designate the last N-M elements of the information block as frozen bits, each having a known value (e.g., <NUM>). The remaining frozen bit locations (e.g., the difference between N-K and N-M, where (N-K) > (N-M) may be selected based on the LLRs, as described above. Thus, after polar coding and bit-reversal permutation, each of the coded bits at the punctured bit locations in the puncturing pattern may be obtained by using only the N-M frozen bits.

This may be more easily understood using the lower triangular generating matrix F⊗n shown above. For example, as can be seen above, in the last column, all the values are zero, except for the last row, which includes a <NUM>. Since the last original bit in the information block is set to <NUM> (e.g., as a frozen bit), the last column may be removed as it does not contribute to the values of the coded bits. In addition, if the last column is removed, then the last row may be removed as well. If the last column and the last row are removed, then the value of the corresponding punctured bit will also be zero. Upon removal of the last column and row, the values in the remaining last column are now are zero, except for the last row. Therefore, the process may be repeated by removing the remaining last column and last row. This applies to each removed column: when removed, the corresponding bottom row may also removed. This implies that the last N-M columns and rows may be removed to effect puncturing of the coded bits that would have been generated from the last N-M frozen bits. Because the puncture starts from the last column of the matrix and continues to the left one by one (e.g., based on the number of punctured bits), the value of the punctured bits will be known with values of zeros as long as the last N-M original bits of the information block are set as frozen bits with values of zeros.

Although in various aspects of the disclosure, the punctured codeword may be generated by modifying the generating matrix, as described above, this type of puncturing (e.g., puncturing as part of the polar coding) is typically more complex than performing puncturing after generation of the polar codeword. Therefore, the puncturing schemes discussed below assume that puncturing is performed after the generation of the polar codeword.

In various aspects of the disclosure, the processor <NUM> may further include puncturing scheme selection circuitry <NUM>, which may in some examples operate in coordination with puncturing scheme selection software <NUM> stored in the computer-readable medium <NUM>. The puncturing scheme selection software <NUM> may be configured to select between the unknown-bit puncturing scheme and the known-bit puncturing scheme and provide the selected puncturing scheme to the polar encoder <NUM> for use in polar coding and puncturing.

In some examples, the puncturing scheme selection circuitry <NUM> may calculate a respective LLR sum for each of the unknown-bit puncturing scheme and the known bit puncturing scheme and select the puncturing scheme with the greatest LLR sum. For example, the puncturing scheme selection circuitry <NUM> may calculate the LLR sum for the unknown-bit puncturing scheme by considering the coded bit locations corresponding to the final punctured bit locations as including unknown bits and setting the unknown-bit LLRs of each of those unknown bit locations to <NUM>. The LLR sum for the unknown-bit puncturing scheme may then be computed by performing density evolution or Gaussian approximation, as described above, to calculate the original bit location LLRs and determining the sum of the calculated original bit location LLRs.

Similarly, the puncturing scheme selection circuitry <NUM> may calculate the LLR sum for the known-bit puncturing scheme by considering the coded bit locations corresponding to the final punctured bit locations as including known bits and setting the initial LLRs of each of those known bit locations to infinity. The LLR sum for the known-bit puncturing scheme may then be computed by performing density evolution or Gaussian approximation, as described above, to calculate the original bit location LLRs and determining the sum of the calculated original bit location LLRs.

The puncturing scheme selection circuitry <NUM> may further be configured to provide the selected puncturing scheme to the receiving wireless communication device to enable the decoder at the receiving wireless communication device to initialize the values of the LLRs of the punctured bits with either <NUM> or infinity. In some examples, the puncturing scheme selection circuitry <NUM> may be configured to transmit an explicit indication of the selected puncturing scheme to the receiving wireless communication device. For example, a puncturing scheme indication may be transmitted, for example, over a control channel.

Further, the processor <NUM> may include a polar decoder <NUM>, which may in some examples operate in coordination with polar decoding software <NUM> stored in the computer-readable medium <NUM>. The polar decoder <NUM> may be configured to receive a punctured polar codeword and decode the punctured polar codeword to produce the original information block. In some examples, the polar decoder <NUM> may perform successive cancellation (SC) polar decoding or SC polar list decoding to decode the punctured polar codeword.

In various aspects of the disclosure, the polar decoder <NUM> may determining whether the punctured bits in the punctured polar codeword are considered known bits or unknown bits. If the punctured bits are considered unknown bits, the polar decoder <NUM> may set the LLR of each of the punctured bits to zero. However, if the punctured bits are considered known bits, the polar decoder <NUM> may set the LLR of each of the punctured bits to infinity.

In some examples, the polar decoder <NUM> may determine whether the punctured bits are considered known bits or unknown bits based on an explicit indication of the selected puncturing scheme from the transmitting wireless communication device. For example, the puncturing scheme indication may be received, for example, over a control channel.

In other examples, the polar decoder <NUM> may determine whether the punctured bits are considered known bits or unknown bits based on one or more parameters corresponding to channel coding of the punctured polar codeword. The polar decoder <NUM> may then derive whether the punctured bits are considered known bits or unknown bits in accordance with the one or more parameters. For example, the polar decoder <NUM> may utilize the coding rate to determine whether the punctured bits are considered known bits or unknown bits. In an example, the polar decoder <NUM> may determine that the punctured bits are considered known bits if the coding rate is greater than a coding rate threshold, and may determine that the punctured bits are considered unknown bits if the coding rate is not greater than the coding rate threshold. For example, the coding rate threshold may be ½.

<FIG> is a diagram illustrating an example operation <NUM> of polar coding and puncturing 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 a puncture block <NUM>. The puncture block <NUM> applies a puncturing pattern to the polar codeword to puncture (N-M) coded bits from the polar codeword to produce a polar codeword having a codeword length of L, where L = (N-M). Thus, at the output of the puncture block <NUM> is a punctured codeword <NUM> including L coded bit locations <NUM>, each including one of the non-punctured coded bits (c<NUM>, c<NUM>,. It should be noted that the polar encoder <NUM> and puncture block <NUM> may, in some examples, correspond to the polar encoder <NUM> and polar encoding software <NUM> shown and described above in connection with <FIG>.

An example operation of the puncture block <NUM> is shown in <FIG>. In <FIG>, an initial puncturing pattern <NUM> is generated including a plurality pattern bit locations <NUM>. Each of the pattern bit locations <NUM> corresponds to one of the coded bit locations <NUM> of the polar codeword <NUM> generated by the polar encoder <NUM> shown in <FIG>. The value of each pattern bit location <NUM> determines whether a coded bit at a corresponding coded bit location <NUM> in the polar codeword <NUM> is punctured or kept. For example, if the value at a pattern bit location in the puncturing pattern is zero, the coded bit at the corresponding coded bit location in the polar codeword may be punctured (removed), whereas if the value is <NUM>, the coded bit at that coded bit location may be kept. In the example shown in <FIG>, the value of the last N-M pattern bit locations <NUM> is set to zero.

As a result of the bit-reversal permutation applied to the information block when generating the polar codeword <NUM>, in order to maintain correspondence between the puncturing pattern <NUM> and the resulting polar codeword <NUM>, bit-reversal permutation may also be performed on the initial puncturing pattern <NUM> to produce a final puncturing pattern <NUM> that is similar to a uniform puncturing pattern. The final puncturing pattern <NUM> includes the same number of pattern bit locations <NUM> as the initial puncture pattern <NUM>, but as shown in <FIG>, the punctured bit locations may be different in the final puncturing pattern <NUM> than in the initial puncturing pattern <NUM> based on the bit-reversal permutation applied. The final puncturing pattern <NUM> may then be applied to the polar codeword <NUM> and function as a mask, puncturing N-M coded bits of the polar codeword <NUM> to produce the punctured polar codeword <NUM> having a codeword length of L. In the example shown in <FIG>, coded bits c<NUM> and cN-<NUM> are illustrated as being punctured, for simplicity.

<FIG> is a flow chart illustrating an exemplary process <NUM> for polar coding according to the present invention. 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 generates a puncturing pattern. In some examples, the wireless communication device may generate an initial puncturing pattern Pu = (<NUM><NUM><NUM> ··· <NUM><NUM><NUM> ··· <NUM>)N. The puncture pattern Pu is represented by a vector with all elements having a value of <NUM> except for the last N-M elements, which have a value of <NUM>. Here, N is the codeword length, and (N-M) is the desired block length after puncturing. As above, if a value in this vector is zero, then the coded bit at the corresponding coded bit location of the polar codeword will be punctured. If the value is <NUM>, then the coded bit at the corresponding coded bit location of the polar codeword will be kept. To account for bit-reversal permutation in the polar encoder, the wireless communication device also performs bit-reversal permutation on the initial puncturing pattern to produce a final puncturing pattern P. For example, the polar encoder <NUM> shown and described above in connection with <FIG> and/or the puncture block <NUM> shown and described above in connection with <FIG> and <FIG> may generate the puncturing pattern.

At block <NUM>, the wireless communication device calculates a first LLR sum for an unknown-bit puncturing scheme by considering the coded bit locations corresponding to the punctured bit locations as including unknown bits. The wireless communication device sets an initial LLR of each punctured coded bit location to zero, such that the punctured bits are considered unknown. The wireless communication device then performs density evolution or Gaussian approximation to calculate the LLRs of the original bit locations of the information block based on the LLRs of the punctured bit locations and the known LLRs of the other coded bit locations (e.g., non-punctured coded bit locations). The wireless communication device then calculates the first LLR sum for the unknown-bit puncturing scheme as the sum of the original bit location LLRs. For example, the puncturing scheme selection circuitry <NUM> shown and described above in connection with <FIG> may calculate the first LLR sum.

At block <NUM>, the wireless communication device calculates a second LLR sum for a known-bit puncturing scheme by considering the coded bit locations corresponding to the punctured bit locations as including known bits. The wireless communication device sets an initial LLR of each punctured coded bit location to infinity, such that the punctured bits are considered known. The wireless communication device then performs density evolution or Gaussian approximation to calculate the LLRs of the original bit locations of the information block based on the LLRs of the punctured bit locations and the known LLRs of the other coded bit locations (e.g., non-punctured coded bit locations). The wireless communication device then calculates the second LLR sum for the known-bit puncturing scheme as the sum of the original bit location LLRs. For example, the puncturing scheme selection circuitry <NUM> shown and described above in connection with <FIG> may calculate the first LLR sum.

At block <NUM>, the wireless communication device compares the first LLR sum with the second LLR sum, and selects the puncturing scheme corresponding to the larger sum. For example, the puncturing scheme selection circuitry <NUM> shown and described above in connection with <FIG> may select the puncturing scheme.

At block <NUM>, the wireless communication device polar codes an information block including information bits and frozen bit to produce a polar codeword. For example, the polar encoder <NUM> shown and described above in connection with <FIG> and/or the polar encoder <NUM> shown and described above in connection with <FIG> may polar code the information block. At block <NUM>, the wireless communication device punctures the polar codeword utilizing the final puncture pattern P, treating the punctured bits as known bits or unknown bits in accordance with which puncturing scheme resulted in the larger LLR sum, as described above. For example, the polar encoder <NUM> shown and described above in connection with <FIG> and/or the puncture block <NUM> shown and described above in connection with <FIG> and <FIG> may puncture the polar codeword to produce a punctured polar codeword having a codeword length other than a power of <NUM>.

<FIG> is a flow chart illustrating an exemplary process <NUM> for calculating the first LLR sum for an unknown-bit puncturing scheme according to the invention. 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 sets the initial LLRs of the punctured coded bit locations to zero. In addition, at block <NUM>, the wireless communication device determines the LLRs of the remaining coded bit locations (e.g., based on sub-channel conditions). For example, the puncturing scheme selection circuitry <NUM> shown and described above in connection with <FIG> may set the LLR's of the punctured coded bit locations to zero and determine the LLRs of the remaining bit locations.

At block <NUM>, the wireless communication device calculates the LLRs of the original bit locations of the information block by performing density evolution or Gaussian approximation. At block <NUM>, the wireless communication device then calculates the first LLR sum for the unknown-bit puncturing scheme from the original bit location LLRs. For example, the puncturing scheme selection circuitry <NUM> shown and described above in connection with <FIG> may calculate the original bit location LLRs and calculate the first LLR sum from the calculated original bit location LLRs.

In addition, after calculating the original bit location LLRs at block <NUM>, the process may proceed as indicated by node A to <FIG>, which illustrates an exemplary process <NUM> for determining the locations of the information bits and frozen bits in the information block. 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 sort the original bit location LLRs in ascending or descending order. In addition, at block <NUM>, the wireless communication device may select the K best sub-channels based on the sorted original bit location LLRs. In some examples, the K best sub-channels correspond to the K highest original bit location LLRs. For example, the polar encoder <NUM> shown and described above in connection with <FIG> and/or the polar encoder <NUM> shown and described above in connection with <FIG> may sort the original bit location LLRs and select the K best sub-channels therefrom.

At block <NUM>, the wireless communication device may set the original bits of the information block corresponding to the K best sub-channels ("good" sub-channels) as information bits. In addition, at block <NUM>, the wireless communication device may set the original bits of the information block corresponding to the (N-K) sub-channels ("bad" sub-channels) as frozen bits. In some examples, the wireless communication device may fix the frozen bits to the same value (e.g., <NUM> or <NUM>). For example, the polar encoder <NUM> shown and described above in connection with <FIG> and/or the polar encoder <NUM> shown and described above in connection with <FIG> may set the original bits of the information block as information bits or frozen bits.

<FIG> is a flow chart illustrating an exemplary process <NUM> for calculating the first LLR sum for a known-bit puncturing scheme according to the invention. 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 sets the initial LLRs of the punctured coded bit locations to infinity. In addition, at block <NUM>, the wireless communication device determines the LLRs of the remaining coded bit locations (e.g., based on sub-channel conditions). For example, the puncturing scheme selection circuitry <NUM> shown and described above in connection with <FIG> may set the LLR's of the punctured coded bit locations to infinity and determine the LLRs of the remaining bit locations.

In addition, after calculating the original bit location LLRs at block <NUM>, the process may proceed as indicated by node B to <FIG>, which illustrates an exemplary process <NUM> for determining the locations of the information bits and frozen bits in the information block. 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 sort the original bit location LLRs in ascending or descending order. In addition, at block <NUM>, the wireless communication device may select the K best sub-channels, excluding the sub-channels corresponding to the punctured bit locations, based on the sorted original bit location LLRs. In some examples, the K best sub-channels correspond to the K highest original bit location LLRs other than the sub-channels corresponding to the punctured bit locations. For example, the polar encoder <NUM> shown and described above in connection with <FIG> and/or the polar encoder <NUM> shown and described above in connection with <FIG> may sort the original bit location LLRs and select the K best sub-channels therefrom.

At block <NUM>, the wireless communication device may set the original bits of the information block corresponding to the K best sub-channels ("good" sub-channels) as information bits. In addition, at block <NUM>, the wireless communication device may set the original bits of the information block corresponding to the sub-channels that correspond to the punctured bit locations as frozen bits. Furthermore, at block <NUM>, the wireless communication device may set the original bits of the information block corresponding to the remaining "bad" sub-channels (e.g., the remaining number of sub-channels equal to the difference between N-K and N-M sub-channels) as frozen bits. In some examples, the wireless communication device may fix the frozen bits to the same value (e.g., <NUM> or <NUM>). For example, the polar encoder <NUM> shown and described above in connection with <FIG> and/or the polar encoder <NUM> shown and described above in connection with <FIG> may set the original bits of the information block as information bits or frozen bits.

Referring now to <FIG>, the designation of original bits of an information block as information bits or frozen bits is illustrated. In the example shown in <FIG>, an initial information block is an N-bit information block <NUM> including N initial bit locations <NUM>, each containing a respective original bit (u<NUM>, u<NUM>,. , uN-M, UN). A bit-reversal permutation may then be applied to the information block <NUM> to produce a bit-reversed information block <NUM> including N original bit locations <NUM> corresponding to the N initial bit locations <NUM> in the initial information block <NUM>. The bit-reversal permutation effectively re-orders the original bits of the information block <NUM>. For example, the original bit u<NUM> may be in a second initial bit location <NUM> in the information block <NUM> and in the last original bit location <NUM> of the bit-reversed information block <NUM>.

The bit-reversed information block <NUM> may then be provided to an LLR calculation block <NUM> to calculate the individual LLRs of each of the original bit locations <NUM> and the LLR sums for each of the puncturing schemes. The LLR calculation block <NUM> may be implemented, for example, in the polar encoder <NUM> or <NUM> shown and described above in connection with <FIG> and <FIG> and/or the puncturing scheme selection circuitry <NUM> shown and described above in connection with <FIG>. For example, to calculate the individual LLRs and LLR sum for either puncturing scheme, the LLR calculation block <NUM> may perform density evolution or Gaussian approximation to determine the individual LLRs for each of the original bit locations <NUM> based on the LLR values of the corresponding coded bit locations (not shown). For the unknown-bit puncturing scheme, the LLRs of each of the coded bit locations corresponding to the punctured bit locations are set to zero. For the known-bit puncturing scheme, the LLRs of each of the coded bit locations corresponding to the punctured bit locations are set to infinity. The LLR calculation block <NUM> may then calculate the LLR sums <NUM> for each of the puncturing schemes using the individual calculated LLRs for each of the original bit locations <NUM>.

In addition, the LLR calculation block <NUM> may provide the individual calculated original bit location LLRs to the polar encoder <NUM> to set each of the original bits in the bit-reversed information block <NUM> as an information bit or a frozen bit, as described above. Using the above example of a lower triangular generating matrix F⊗n, when utilizing known-bit puncturing, the last N-M original bits <NUM> of the initial information block <NUM> corresponding to the punctured bit locations may be set as frozen bits with values of zeros. Upon bit-reversal, the frozen bits may be in different original bit locations <NUM>, as shown in <FIG>. The polar encoder <NUM> may then receive the individual LLR calculations of the remaining unfrozen original bits from the LLR calculation block <NUM> and identify the information bits and other frozen bits from the individual LLRs. For example, the polar encoder <NUM> may identify original bit u<NUM> as an information bit and original bit u<NUM> as a frozen bit. Original bits uN-M. uN may also remain identified as frozen bits.

Referring now to <FIG>, a process <NUM> is illustrated for polar decoding according to some aspects of the 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 receive a polar codeword including one or more punctured bits. In some examples, the wireless communication device may receive a punctured polar codeword, and with knowledge of the puncturing pattern, identify the locations of the punctured bits in the polar codeword. For example, the polar decoder <NUM> shown and described above in connection with <FIG> may receive the polar codeword and determine the locations of the punctured bits.

At block <NUM>, the wireless communication device may determine whether punctured bits in the received polar codeword are to be treated as known bits or unknown bits. In various aspects of the disclosure, this determination may be explicit or implicit. For example, an explicit transmission may be made from the transmitting device to the receiving device, informing the decoder in the receiving device of which puncturing method is used. Any suitable transmission may be utilized for the explicit indication, e.g., being as simple as a single bit, with one value indicating that the punctured bits are to be treated as known bits, an another value indicating that the punctured bits are to be treated as unknown bits.

In another example, the treatment of the punctured bits may be determined according to a predefined relationship with one or more other coding parameters. That is, in channel coding, information such as the coding rate, the size of the information message, and the size of the codewords may be transmitted to the receiver. According to an aspect of the present disclosure, this information may provide means for the receiver to deduce the puncturing used from the other parameters. As one particular example, the puncturing method may be determined according to the coding rate. That is, in this example, if the coding rate R is greater than a threshold (e.g., ½), then the decoder may deduce that known bit puncturing is used; and if the coding rate R is not greater than the threshold, then the decoder may deduce that unknown bit puncturing is used. For example, the polar decoder <NUM> shown and described above in connection with <FIG> may determine whether the punctured bits are known bits or unknown bits.

At block <NUM>, the wireless communication device may set the initial LLR of the punctured bits as infinity or zero, according to which puncturing method is used, as determined at block <NUM>. At block <NUM>, the wireless communication device may perform polar decoding of the polar codeword. For example, the wireless communication device may perform successive cancellation (SC) decoding, known to those of ordinary skill in the art. Here, an SC decoder calculates the LLR of each coded bit in a recursive manner and obtains the original information block. For example, the polar decoder <NUM> shown and described above in connection with <FIG> may set the initial LLR of the punctured bits and perform polar decoding of the polar codeword.

<FIG> is a flow chart illustrating an exemplary process <NUM> for setting the initial LLRs of punctured bits of a received polar codeword 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 determine whether an explicit indication of the puncturing scheme utilized by the transmitter was received. If an explicit indication was received (Y branch of <NUM>), at block <NUM>, the wireless communication device may set the initial LLRs of the punctured bits based on the explicit indication. For example, the wireless communication device may set the initial LLRs of the punctured bits to zero if the unknown-bit puncturing scheme was used and to infinity if the known-bit puncturing scheme was used. For example, the polar decoder <NUM> shown and described above in connection with <FIG> may determine whether an explicit instruction was received, and if so, set the initial LLRs of the punctured bits accordingly.

If an explicit instruction was not received (N branch of <NUM>), at block <NUM>, the wireless communication device may determine the coding rate used for the polar codeword. At block <NUM>, the wireless communication device may determine whether the coding rate exceeds a coding rate threshold. In some examples, the coding rate threshold may be ½. For example, the polar decoder <NUM> shown and described above in connection with <FIG> may determine the coding rate and compare the coding rate with a coding rate threshold.

If the coding rate does exceed the coding rate threshold (Y branch of <NUM>), at block <NUM>, the wireless communication device may set the initial LLRs of the punctured bits to infinity in accordance with the known-bit puncturing scheme. However, if the coding rate does not exceed the coding rate threshold (N branch of <NUM>), at block <NUM>, the wireless communication device may set the initial LLRs of the punctured bits to zero in accordance with the unknown-bit puncturing scheme.

Claim 1:
A method of polar coding an information block, the method comprising:
generating (<NUM>) an initial puncturing pattern comprising a plurality of punctured bit locations for puncturing corresponding coded bit locations in a polar codeword (<NUM>);
calculating (<NUM>) a first log likelihood ratio, LLR, sum for an unknown-bit puncturing scheme by considering the coded bit locations corresponding to the punctured bit locations as comprising unknown bits, wherein calculating the first LLR sum comprises:
setting a respective unknown-bit LLR for each coded bit location corresponding to one of the punctured bit locations to zero;
determining a respective first coded bit LLR for remaining ones of the coded bit locations;
calculating respective first LLRs for each original bit location of the information block from the respective first coded bit LLRs and the respective unknown-bit LLRs by performing density evolution or Gaussian approximation; and
calculating the first LLR sum based on the first LLRs;
calculating (<NUM>) a second LLR sum for a known-bit puncturing scheme by considering the coded bit locations corresponding to the punctured bit locations as comprising known bits, wherein calculating the second LLR sum comprises:
setting a respective known-bit LLR for each coded bit location corresponding to one of the punctured bit locations to infinity;
determining a respective second coded bit LLR for remaining ones of the coded bit locations;
calculating respective second LLRs for each original bit location of the information block from the respective second coded bit LLRs and the respective known-bit LLRs by performing density evolution or Gaussian approximation; and
calculating the second LLR sum based on the second LLRs;
selecting (<NUM>) the unknown-bit puncturing scheme if the first LLR sum is greater than the second LLR sum, and selecting (<NUM>) the known bit puncturing scheme if the second LLR sum is greater than the first LLR sum;
polar coding (<NUM>) the information block to produce the polar codeword (<NUM>); and
puncturing (<NUM>) the polar codeword (<NUM>) using a final puncturing pattern and based on a selected puncturing scheme to produce a punctured codeword comprising a codeword length other than a power of two, the final puncturing pattern based on bit-reversal permutation on the initial puncturing pattern and comprising final punctured bit locations different than the punctured bit locations.