PROBABILISTIC AMPLITUDE SHAPING INCLUDING ENERGY SELECTION, COMPOSITION DETERMINATION, AND AMPLITUDE SYMBOL SEQUENCE DETERMINATION
20250286757 ยท 2025-09-11
Inventors
- Wei Liu (Beijing, CN)
- Thomas Joseph Richardson (South Orange, NJ)
- Liangming Wu (Beijing, CN)
- Changlong Xu (Beijing, CN)
- Ori Shental (Marlboro, NJ, US)
- Hao Xu (Beijing, CN)
Cpc classification
H04L25/03178
ELECTRICITY
International classification
Abstract
This disclosure provides methods, devices and systems for encoding data for wireless communication to achieve an amplitude distribution. One implementation includes a method in which probabilistic amplitude shaping is constrained by an energy value and a sequence composition. The implementation may include three phases. In a first phase, the energy value is determined. In a second phase, the sequence composition is determined. In a third phase, the output sequence is determined as constrained by the sequence composition. The methods generate output sequences defining amplitude symbols that are used to encode data for transmission.
Claims
1. A method for wireless communication by a wireless communication device, the method comprising: generating a plurality (k) of information bits, wherein k is an integer greater than 1; performing an encoding operation on the plurality of information bits, the encoding operation including: accessing a first plurality of cumulative sequence quantities, each cumulative sequence quantity of the first plurality of cumulative sequence quantities representing a quantity of symbol sequences of a length (n) and having at most a respective energy level; processing the first plurality of cumulative sequence quantities, including selecting a first energy level based at least in part on the plurality of information bits and the first plurality of cumulative sequence quantities; determining a composition of an output symbol sequence from among a first set of symbol sequences having the first energy level, including performing a plurality of iterations to identify a plurality of elements of the composition, a quantity of the plurality of iterations being related to a size of a symbol alphabet; and determining the output symbol sequence, including determining a plurality (n) of amplitude symbols of the output symbol sequence based at least in part on the composition and the plurality of information bits, wherein n is an integer greater than 1; and transmitting a wireless packet to at least one receiving device based on the output symbol sequence.
2. The method of claim 1, wherein each of the amplitude symbols is selected from the symbol alphabet having size m, the symbol alphabet defining a set of different amplitude symbols, wherein m is an integer greater than 1.
3. The method of claim 1, wherein selecting the first energy level comprises: performing a first function on the plurality of information bits, the first function generating a first number; computing a set of ratios, wherein each of the ratios is associated with a respective one of the first plurality of cumulative sequence quantities; and determining that the first number corresponds to a first one of the ratios, the first one of the ratios corresponding to the first energy level.
4. The method of claim 3, wherein the first number comprises a dyadic number.
5. The method of claim 1, further comprising: receiving a subsequent wireless packet from a transmitting wireless communication device, the subsequent wireless packet including information having a received symbol sequence of n amplitude symbols and a second energy level and defined by the symbol alphabet; and decoding the subsequent wireless packet, wherein decoding comprises: computing the second energy level, obtaining a second composition of the received symbol sequence by counting symbol occurrences within the subsequent wireless packet; performing a plurality (n) of decoding iterations, each decoding iteration including computing a plurality of transition probabilities and a decoding interval constrained by a prefix composition, and after n of the decoding iterations generating a binary expansion corresponding to a final decoding interval.
6. The method of claim 1, wherein identifying a first element (k.sub.m*) of the plurality of elements of the composition comprises: calculating a first number based at least in part on the plurality of information bits; accessing a plurality of sequence quantities, each one of the sequence quantities defining a set of all sequences having a length n minus km, an energy having been reduced by an amount proportional to k.sub.m, and a symbol alphabet excluding a first amplitude symbol, and using k.sub.m as a variable over a range of possible candidates for k.sub.m*; accessing a plurality of binomial coefficients; computing a plurality of transition probabilities based on the sequence quantities and the binomial coefficients; and determining that a first one of the transition probabilities corresponds to the first number, the first one of the transition probabilities corresponding to the first element (k.sub.m*) of the plurality of elements of the composition.
7. The method of claim 6, further comprising: generating a residual energy value in accordance with determining the first element (k.sub.m*) of the plurality of elements of the composition.
8. The method of claim 6, further comprising: generating a residual length value in accordance with determining the first element (k.sub.m*) of the plurality of elements of the composition.
9. The method of claim 6, further comprising: scaling the first number in accordance with determining the first element (k.sub.m*) of the plurality of elements of the composition.
10. The method of claim 6, further comprising: performing a second iteration to determine a second element (k.sub.m1*) of the plurality of elements of the composition, including: generating a residual energy value and a residual length value in accordance with determining the first element (k.sub.m*) of the plurality of elements of the composition; calculating a second number based on the plurality of information bits; accessing a second plurality of sequence quantities defining a set of all sequences having a second length of the residual length value minus k.sub.m1, a second energy equal to the residual energy value minus a second amount proportional to k.sub.m1, and a second symbol alphabet excluding the first amplitude symbol and a second amplitude symbol, using k.sub.m1 as a variable over a range of possible candidates for k.sub.m1*; accessing a second plurality of binomial coefficients; computing a second plurality of transition probabilities based on the second plurality of sequence quantities and the second plurality of binomial coefficients; and determining that a second one of the second plurality of transition probabilities corresponds to the second number, the second one of the transition probabilities corresponding to the second element (k.sub.m1*) of the plurality of elements of the composition.
11. The method of claim 1, wherein a first iteration of the plurality of iterations begins with a first subinterval of a first interval and defines a second subinterval, the first subinterval corresponding to the first set of symbol sequences, and the second subinterval corresponding to a second set of symbol sequences, the first subinterval having a length that is proportional to a first transition probability, the second set of symbol sequences corresponding to a reduction of the first set of symbol sequences to exclude ones of the symbol sequences that do not conform to a first element of the composition.
12. The method of claim 11, further comprising: scaling a first number according to the reduction of the first set of symbol sequences, wherein the first number is computed using the plurality of information bits.
13. The method of claim 11, further comprising: scaling the first subinterval to be a same size as the first interval.
14. The method of claim 1, wherein the encoding operation and the transmitting is performed by a user equipment (UE) or a wireless base station (BS).
15. (canceled)
16. A wireless communication device comprising: at least one modem; at least one processor communicatively coupled with the at least one modem; and at least one memory communicatively coupled with the at least one processor and storing processor-readable code that, when executed by the at least one processor in conjunction with the at least one modem, is configured to: generate a plurality of information bits; access a first plurality of cumulative sequence quantities, each cumulative sequence quantity of the first plurality of cumulative sequence quantities representing a quantity of symbol sequences of a length (n) and having at most a respective energy level; process the first plurality of cumulative sequence quantities, including selecting a first energy level based at least in part on the plurality of information bits and the first plurality of cumulative sequence quantities; determine a composition of an output symbol sequence from among a first set of symbol sequences having the first energy level, including performing a plurality of iterations to identify a plurality of elements of the composition, a quantity of the plurality of iterations being related to a size of a symbol alphabet; and determine the output symbol sequence, including determining a plurality (n) of amplitude symbols of the output symbol sequence based at least in part on the composition and the plurality of information bits; and transmit a wireless packet to at least one receiving device based on the output symbol sequence.
17. The wireless communication device of claim 16, wherein the processor-readable code to cause the wireless communication device to select the first energy level comprises processor-readable code to cause the wireless communication device to: perform a first function on the plurality of information bits, the first function generating a first number; compute a set of ratios, wherein each of the ratios is associated with a respective cumulative sequence quantity of the first plurality of cumulative sequence quantities; and determine that the first number corresponds to a first one of the ratios, the first one of the ratios corresponding to the first energy level.
18. The wireless communication device of claim 16, wherein the at least one processor in conjunction with the at least one modem, is further configured to: receive a subsequent wireless packet from a transmitting wireless communication device, the subsequent wireless packet including information having a received symbol sequence and a second energy level and defined by the symbol alphabet; and decode the subsequent wireless packet, wherein decoding comprises: computing the second energy level, obtaining a second composition of the received symbol sequence by counting symbol occurrences within the subsequent wireless packet; performing a plurality (n) of decoding iterations, each decoding iteration including computing a plurality of transition probabilities and a decoding interval constrained by a prefix composition, and after n of the decoding iterations generating a binary expansion corresponding to a final decoding interval.
19. The wireless communication device of claim 16, wherein the at least one processor in conjunction with the at least one modem, is further configured to: identify a first element (k.sub.m*) of the plurality of elements of the composition, including calculating a first number based at least in part on the plurality of information bits; access a plurality of sequence quantities, each one of the sequence quantities defining a set of all sequences having a length n minus k.sub.m, an energy having been reduced by an amount proportional to km, and a symbol alphabet excluding a first amplitude symbol, and using km as a variable over a range of possible candidates for k.sub.m*; access a plurality of binomial coefficients; compute a plurality of transition probabilities based on the sequence quantities and the binomial coefficients; and determine that a first one of the transition probabilities corresponds to the first number, the first one of the transition probabilities corresponding to the first element (k.sub.m*) of the plurality of elements of the composition.
20. The wireless communication device of claim 16, wherein a first iteration of the plurality of iterations begins with a first subinterval of a first interval and defines a second subinterval, the first subinterval corresponding to the first set of symbol sequences, and the second subinterval corresponding to a second set of symbol sequences, the first subinterval having a length that is proportional to a first transition probability, the second set of symbol sequences corresponding to a reduction of the first set of symbol sequences to exclude ones of the symbol sequences that do not conform to a first element of the composition.
21. (canceled)
22. (canceled)
23. (canceled)
24. (canceled)
25. A wireless communication device configured to encode a plurality (k) of information bits, the wireless communication device comprising: means for accessing a first plurality of cumulative sequence quantities, each cumulative sequence quantity of the first plurality of cumulative sequence quantities representing a quantity of symbol sequences of a length (n) and having at most a respective energy level; means for selecting a first energy level based at least in part on the plurality of information bits and the first plurality of cumulative sequence quantities; means for determining a composition of an output symbol sequence from among a first set of symbol sequences having the first energy level, including; means for determining a plurality (n) of amplitude symbols of the output symbol sequence based at least in part on the composition and the plurality of information bits; and means for transmitting a wireless packet to at least one receiving device based on the output symbol sequence.
26. (canceled)
27. (canceled)
28. (canceled)
29. (canceled)
30. (canceled)
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0011]
[0012]
[0013]
[0014]
[0015]
[0016]
[0017]
[0018]
[0019]
[0020]
[0021] Like reference numbers and designations in the various drawings indicate like elements.
DETAILED DESCRIPTION
[0022] The following description is directed to some particular implementations for the purposes of describing innovative aspects of this disclosure. However, a person having ordinary skill in the art will readily recognize that the teachings herein can be applied in a multitude of different ways. This disclosure relates generally to wireless communications systems, also referred to as wireless communications networks. In various aspects, the techniques and apparatus may be used for wireless communication networks such as code division multiple access (CDMA) networks, time division multiple access (TDMA) networks, frequency division multiple access (FDMA) networks, orthogonal FDMA (OFDMA) networks, single-carrier FDMA (SC-FDMA) networks, LTE networks, Global System for Mobile Communications (GSM) networks, 5.sup.th Generation (5G) or new radio (NR) networks, Institute of Electrical and Electronics Engineers (IEEE) 802.11 standards, as well as other communications networks. As described herein, the terms networks and systems may be used interchangeably.
[0023] In current wireless communication systems, higher-order modulation (e.g., 16 QAM, 64 QAM and 256 QAM) are used. The constellations in these systems are fixed and each constellation point is used with equal probability. Over an additive white Gaussian noise (AWGN) channel, the capacity is achievable if the input distribution is a Gaussian distribution. A difference between the signal-to-noise (SNR) to achieve a rate with a given coding and modulation scheme and the SNR at which an optimal capacity-achieving scheme could operate at the same rate is referred to as the shaping gap. For an AWGN channel, the shaping gap can be asymptotically equal to about 1.53 dB when the channel inputs are uniformly distributed. Existing techniques to reduce or close the shaping gap include geometric shaping and probabilistic shaping. Geometric shaping implements equiprobable signaling with Gaussian-like distributed constellation points. Probabilistic shaping employs equidistant constellation points and implements non-uniform (e.g., Gaussian-like) signal distribution.
[0024] Traditional approaches to probabilistic shaping include trellis shaping and shell mapping. Probabilistic amplitude shaping (PAS) is another technique to perform probabilistic shaping, and it may combine an outer layer of shaping with an inner layer of binary forward-error-correction (FEC) so that it can provide a low-complexity and flexible integration with existing bit-interleaved coded modulation (BICM) schemes. A PAS scheme may implement amplitude-shift keying (ASK) constellations, e.g., by providing quadrature amplitude modulation (QAM) constellations by mapping two ASK symbols to one QAM symbol. PAS may provide large shaping gain and inherent rate adaptation functionality.
[0025] This disclosure provides methods, devices, and systems for encoding data for wireless communication to achieve a desired amplitude distribution. A proposed arithmetic coding (AC) encoding may be used to perform distribution matching in a PAS scheme. One example includes a three-phase AC encoding method. In a first phase of the method, a wireless communication device determines an energy of an output sequence, such as by accessing a plurality of cumulative sequence quantities and then applying transition probabilities to those cumulative sequence quantities. The energy of the output sequence may be selected by applying a binary expansion of input bits to the transition probabilities. The second phase may include multiple iterations to determine a composition of the output sequence. The second phase is constrained by the energy from the first phase, and the plurality of iterations are performed one iteration per composition element. At the beginning of the third phase, the composition of the output sequence has been determined, but the ordering of amplitude symbols within the output sequence has not yet been determined. The third phase may use a multitude of further iterations, such as n iterations to determine an order of n amplitude symbols in the output sequence. The output sequence may then be used to transmit data. A proposed AC decoding can be used to perform distribution dematching in a PAS scheme.
[0026] Various implementations can be viewed as an efficient method to realize distribution matching and dematching. For instance, the various implementations may be more energy efficient by using energy as a constraint. Furthermore, the calculations of the first phase and second phase may reduce computing burden for calculations of the third phase, thereby reducing computing burden and power use overall.
[0027] An OFDMA network may implement a radio technology such as evolved UTRA (E-UTRA), Institute of Electrical and Electronics Engineers (IEEE) 802.11, IEEE 802.16, IEEE 802.20, flash-OFDM and the like. UTRA, E-UTRA, and GSM are part of universal mobile telecommunication system (UMTS). In particular, long term evolution (LTE) is a release of UMTS that uses E-UTRA. UTRA, E-UTRA, GSM, UMTS and LTE are described in documents provided from an organization named 3rd Generation Partnership Project (3GPP), and cdma2000 is described in documents from an organization named 3rd Generation Partnership Project 2 (3GPP2). These various radio technologies and standards are known or are being developed. For example, the 3rd Generation Partnership Project (3GPP) is a collaboration between groups of telecommunications associations that aims to define a globally applicable third generation (3G) mobile phone specification. 3GPP long term evolution (LTE) is a 3GPP project which was aimed at improving the UMTS mobile phone standard. The 3GPP may define specifications for the next generation of mobile networks, mobile systems, and mobile devices. The present disclosure is concerned with the evolution of wireless technologies from LTE, 4G, 5G, NR, and beyond with shared access to wireless spectrum between networks using a collection of new and different radio access technologies or radio air interfaces.
[0028] In particular, 5G networks contemplate diverse deployments, diverse spectrum, and diverse services and devices that may be implemented using an OFDM-based unified, air interface. To achieve these goals, further enhancements to LTE and LTE-A are considered in addition to development of the new radio technology for 5G NR networks. The 5G NR will be capable of scaling to provide coverage (1) to a massive Internet of things (IoTs) with a ULtra-high density (e.g., 1M nodes/km.sup.2), ultra-low complexity (e.g., 10 s of bits/sec), ultra-low energy (e.g., 10+ years of battery life), and deep coverage with the capability to reach challenging locations; (2) including mission-critical control with strong security to safeguard sensitive personal, financial, or classified information, ultra-high reliability (e.g., 99.9999% reliability), ultra-low latency (e.g., 1 ms), and users with wide ranges of mobility or lack thereof; and (3) with enhanced mobile broadband including extreme high capacity (e.g., 10 Tbps/km.sup.2), extreme data rates (e.g., multi-Gbps rate, 100+ Mbps user experienced rates), and deep awareness with advanced discovery and optimizations.
[0029] A 5G NR system may be implemented to use optimized OFDM-based waveforms with scalable numerology and transmission time interval (TTI); having a common, flexible framework to efficiently multiplex services and features with a dynamic, low-latency time division duplex (TDD)/frequency division duplex (FDD) design; and with advanced wireless technologies, such as massive multiple input, multiple output (MIMO), robust millimeter wave (mmWave) transmissions, advanced channel coding, and device-centric mobility. Scalability of the numerology in 5G NR, with scaling of subcarrier spacing, may efficiently address operating diverse services across diverse spectrum and diverse deployments. For example, in various outdoor and macro coverage deployments of less than 3GHz FDD/TDD implementations, subcarrier spacing may occur with 15 kHz, for example over 5, 10, 20 MHz, and the like bandwidth (BW). For other various outdoor and small cell coverage deployments of TDD greater than 3 GHz, subcarrier spacing may occur with 30 kHz over 80/100 MHz BW. For other various indoor wideband implementations, using a TDD over the unlicensed portion of the 5 GHz band, the subcarrier spacing may occur with 60 kHz over a 160 MHz BW. Finally, for various deployments transmitting with mmWave components at a TDD of 28 GHz, subcarrier spacing may occur with 120 kHz over a 500 MHz BW. In certain aspects, frequency bands for 5G NR are separated into two different frequency ranges, a frequency range one (FR1) and a frequency range two (FR2). FR1 bands include frequency bands at 7 GHz or lower (e.g., between about 410 MHz to about 7125 MHz). FR2 bands include frequency bands in mmWave ranges between about 24.25 GHz and about 52.6 GHz. The mmWave bands may have a shorter range, but a higher bandwidth than the FR1 bands. Additionally, 5G NR may support different sets of subcarrier spacing for different frequency ranges.
[0030] The scalable numerology of the 5G NR facilitates scalable TTI for diverse latency and quality of service (QoS) requirements. For example, shorter TTI may be used for low latency and high reliability, while longer TTI may be used for higher spectral efficiency. The efficient multiplexing of long and short TTIs to allow transmissions to start on symbol boundaries. 5G NR also contemplates a self-contained integrated subframe design with UL/downlink scheduling information, data, and acknowledgement in the same subframe. The self-contained integrated subframe supports communications in unlicensed or contention-based shared spectrum, adaptive UL/downlink that may be flexibly configured on a per-cell basis to dynamically switch between UL and downlink to meet the current traffic needs
[0031] Various other aspects and features of the disclosure are further described below. It should be apparent that the teachings herein may be embodied in a wide variety of forms and that any specific structure, function, or both being disclosed herein is merely representative and not limiting. Based on the teachings herein one of an ordinary level of skill in the art should appreciate that an aspect disclosed herein may be implemented independently of any other aspects and that two or more of these aspects may be combined in various ways. For example, an apparatus may be implemented or a method may be practiced using any number of the aspects set forth herein. In addition, such an apparatus may be implemented or such a method may be practiced using other structure, functionality, or structure and functionality in addition to or other than one or more of the aspects set forth herein. For example, a method may be implemented as part of a system, device, apparatus, and/or as instructions stored on a computer readable medium for execution on a processor or computer. Furthermore, an aspect may comprise at least one element of a claim.
[0032]
[0033] A BS 105 may provide communication coverage for a macro cell or a small cell, such as a pico cell or a femto cell, and/or other types of cell. A macro cell generally covers a relatively large geographic area (e.g., several kilometers in radius) and may allow unrestricted access by UEs with service subscriptions with the network provider. A small cell, such as a pico cell, would generally cover a relatively smaller geographic area and may allow unrestricted access by UEs with service subscriptions with the network provider. A small cell, such as a femto cell, would also generally cover a relatively small geographic area (e.g., a home) and, in addition to unrestricted access, may also provide restricted access by UEs having an association with the femto cell (e.g., UEs in a closed subscriber group (CSG), UEs for users in the home, and the like). A BS for a macro cell may be referred to as a macro BS. A BS for a small cell may be referred to as a small cell BS, a pico BS, a femto BS or a home BS. In the example shown in
[0034] The network 100 may support synchronous or asynchronous operation. For synchronous operation, the BSs may have similar frame timing, and transmissions from different BSs may be approximately aligned in time. For asynchronous operation, the BSs may have different frame timing, and transmissions from different BSs may not be aligned in time.
[0035] The UEs 115 are dispersed throughout the wireless network 100, and each UE 115 may be stationary or mobile. A UE 115 may also be referred to as a terminal, a mobile station, a subscriber unit, a station, or the like. A UE 115 may be a cellular phone, a personal digital assistant (PDA), a wireless modem, a wireless communication device, a handheld device, a tablet computer, a laptop computer, a cordless phone, a wireless local loop (WLL) station, or the like. In one aspect, a UE 115 may be a device that includes a Universal Integrated Circuit Card (UICC). In another aspect, a UE may be a device that does not include a UICC. In some aspects, the UEs 115 that do not include UICCs may also be referred to as IoT devices or internet of everything (IoE) devices. The UEs 115a-115d are examples of mobile smart phone-type devices accessing network 100. A UE 115 may also be a machine specifically configured for connected communication, including machine type communication (MTC), enhanced MTC (eMTC), narrowband IoT (NB-IoT) and the like. The UEs 115e-115h are examples of various machines configured for communication that access the network 100. The UEs 115i-115k are examples of vehicles equipped with wireless communication devices configured for communication that access the network 100. A UE 115 may be able to communicate with any type of the BSs, whether macro BS, small cell, or the like. In
[0036] In operation, the BSs 105a-105c may serve the UEs 115a and 115b using 3D beamforming and coordinated spatial techniques, such as coordinated multipoint (CoMP) or multi-connectivity. The macro BS 105d may perform backhaul communications with the BSs 105a-105c, as well as small cell, the BS 105f. The macro BS 105d may also transmits multicast services which are subscribed to and received by the UEs 115c and 115d. Such multicast services may include mobile television or stream video, or may include other services for providing community information, such as weather emergencies or alerts, such as Amber alerts or gray alerts.
[0037] The BSs 105 may also communicate with a core network. The core network may provide user authentication, access authorization, tracking, Internet Protocol (IP) connectivity, and other access, routing, or mobility functions. At least some of the BSs 105 (e.g., which may be an example of a gNB or an access node controller (ANC)) may interface with the core network through backhaul links (e.g., NG-C, NG-U, etc.) and may perform radio configuration and scheduling for communication with the UEs 115. In various examples, the BSs 105 may communicate, either directly or indirectly (e.g., through core network), with each other over backhaul links (e.g., X1, X2, etc.), which may be wired or wireless communication links.
[0038] The network 100 may also support communications with ultra-reliable and redundant links for devices, such as the UE 115e, which may be airborne. Redundant communication links with the UE 115e may include links from the macro BSs 105d and 105e, as well as links from the small cell BS 105f. Other machine type devices, such as the UE 115f (e.g., a thermometer), the UE 115g (e.g., smart meter), and UE 115h (e.g., wearable device) may communicate through the network 100 either directly with BSs, such as the small cell BS 105f, and the macro BS 105e, or in multi-action-size configurations by communicating with another user device which relays its information to the network, such as the UE 115f communicating temperature measurement information to the smart meter, the UE 115g, which is then reported to the network through the small cell BS 105f. The network 100 may also provide additional network efficiency through dynamic, low-latency TDD/FDD communications, such as V2V, V2X, C-V2X communications between a UE 115i, 115j, or 115k and other UEs 115, and/or vehicle-to-infrastructure (V2I) communications between a UE 115i, 115j, or 115k and a BS 105.
[0039] In some implementations, the network 100 utilizes OFDM-based waveforms for communications. An OFDM-based system may partition the system BW into multiple (K) orthogonal subcarriers, which are also commonly referred to as subcarriers, tones, bins, or the like. Each subcarrier may be modulated with data. In some aspects, the subcarrier spacing between adjacent subcarriers may be fixed, and the total number of subcarriers (K) may be dependent on the system BW. The system BW may also be partitioned into subbands. In other aspects, the subcarrier spacing and/or the duration of TTIs may be scalable.
[0040] In some aspects, the BSs 105 can assign or schedule transmission resources (e.g., in the form of time-frequency resource blocks (RB)) for downlink (DL) and uplink (UL) transmissions in the network 100. DL refers to the transmission direction from a BS 105 to a UE 115, whereas UL refers to the transmission direction from a UE 115 to a BS 105. The communication can be in the form of radio frames. A radio frame may be divided into a plurality of subframes or slots, for example, about 10. Each slot may be further divided into mini-slots. In a FDD mode, simultaneous UL and DL transmissions may occur in different frequency bands. For example, each subframe includes a UL subframe in a UL frequency band and a DL subframe in a DL frequency band. In a TDD mode, UL and DL transmissions occur at different time periods using the same frequency band. For example, a subset of the subframes (e.g., DL subframes) in a radio frame may be used for DL transmissions and another subset of the subframes (e.g., UL subframes) in the radio frame may be used for UL transmissions.
[0041] The DL subframes and the UL subframes can be further divided into several regions. For example, each DL or UL subframe may have pre-defined regions for transmissions of reference signals, control information, and data. Reference signals are predetermined signals that facilitate the communications between the BSs 105 and the UEs 115. For example, a reference signal can have a particular pilot pattern or structure, where pilot tones may span across an operational BW or frequency band, each positioned at a pre-defined time and a pre-defined frequency. For example, a BS 105 may transmit cell specific reference signals (CRSs) and/or channel state information-reference signals (CSI-RSs) to enable a UE 115 to estimate a DL channel. Similarly, a UE 115 may transmit sounding reference signals (SRSs) to enable a BS 105 to estimate a UL channel. Control information may include resource assignments and protocol controls. Data may include protocol data and/or operational data. In some aspects, the BSs 105 and the UEs 115 may communicate using self-contained subframes. A self-contained subframe may include a portion for DL communication and a portion for UL communication. A self-contained subframe can be DL-centric or UL-centric. A DL-centric subframe may include a longer duration for DL communication than for UL communication. A UL-centric subframe may include a longer duration for UL communication than for UL communication.
[0042] In some aspects, the network 100 may be an NR network deployed over a licensed spectrum. The BSs 105 can transmit synchronization signals (e.g., including a primary synchronization signal (PSS) and a secondary synchronization signal (SSS)) in the network 100 to facilitate synchronization. The BSs 105 can broadcast system information associated with the network 100 (e.g., including a master information block (MIB), remaining system information (RMSI), and other system information (OSI)) to facilitate initial network access. In some aspects, the BSs 105 may broadcast the PSS, the SSS, and/or the MIB in the form of SSBs and may broadcast the RMSI and/or the OSI over a physical downlink shared channel (PDSCH). The MIB may be transmitted over a physical broadcast channel (PBCH).
[0043] In some aspects, a UE 115 attempting to access the network 100 may perform an initial cell search by detecting a PSS from a BS 105. The PSS may enable synchronization of period timing and may indicate a physical layer identity value. The UE 115 may then receive a SSS. The SSS may enable radio frame synchronization, and may provide a cell identity value, which may be combined with the physical layer identity value to identify the cell. The PSS and the SSS may be located in a central portion of a carrier or any suitable frequencies within the carrier.
[0044] After receiving the PSS and SSS, the UE 115 may receive a MIB. The MIB may include system information for initial network access and scheduling information for RMSI and/or OSI. After decoding the MIB, the UE 115 may receive RMSI and/or OSI. The RMSI and/or OSI may include radio resource control (RRC) information related to random access channel (RACH) procedures, paging, control resource set (CORESET) for physical downlink control channel (PDCCH) monitoring, physical UL control channel (PUCCH), physical UL shared channel (PUSCH), power control, and SRS.
[0045] After obtaining the MIB, the RMSI and/or the OSI, the UE 115 can perform a random access procedure to establish a connection with the BS 105. In some examples, the random access procedure may be a four-step random access procedure. For example, the UE 115 may transmit a random access preamble and the BS 105 may respond with a random access response. The random access response (RAR) may include a detected random access preamble identifier (ID) corresponding to the random access preamble, timing advance (TA) information, a UL grant, a temporary cell-radio network temporary identifier (C-RNTI), and/or a backoff indicator. Upon receiving the random access response, the UE 115 may transmit a connection request to the BS 105 and the BS 105 may respond with a connection response. The connection response may indicate a contention resolution. In some examples, the random access preamble, the RAR, the connection request, and the connection response can be referred to as message 1 (MSG1), message 2 (MSG2), message 3 (MSG3), and message 4 (MSG4), respectively. In some examples, the random access procedure may be a two-step random access procedure, where the UE 115 may transmit a random access preamble and a connection request in a single transmission and the BS 105 may respond by transmitting a random access response and a connection response in a single transmission.
[0046] After establishing a connection, the UE 115 and the BS 105 can enter a normal operation stage, where operational data may be exchanged. For example, the BS 105 may schedule the UE 115 for UL and/or DL communications. The BS 105 may transmit UL and/or DL scheduling grants to the UE 115 via a PDCCH. The scheduling grants may be transmitted in the form of DL control information (DCI). The BS 105 may transmit a DL communication signal (e.g., carrying data) to the UE 115 via a PDSCH according to a DL scheduling grant. The UE 115 may transmit a UL communication signal to the BS 105 via a PUSCH and/or PUCCH according to a UL scheduling grant. The connection may be referred to as an RRC connection. When the UE 115 is actively exchanging data with the BS 105, the UE 115 is in an RRC connected state.
[0047] In an example, after establishing a connection with the BS 105, the UE 115 may initiate an initial network attachment procedure with the network 100. The BS 105 may coordinate with various network entities or fifth generation core (5GC) entities, such as an access and mobility function (AMF), a serving gateway (SGW), and/or a packet data network gateway (PGW), to complete the network attachment procedure.
[0048] In some aspects, the BS 105 may communicate with a UE 115 using HARQ techniques to improve communication reliability, for example, to provide a URLLC service. The BS 105 may schedule a UE 115 for a PDSCH communication by transmitting a DL grant in a PDCCH. The BS 105 may transmit a DL data packet to the UE 115 according to the schedule in the PDSCH. The DL data packet may be transmitted in the form of a transport block (TB). If the UE 115 receives the DL data packet successfully, the UE 115 may transmit a HARQ ACK to the BS 105. Conversely, if the UE 115 fails to receive the DL transmission successfully, the UE 115 may transmit a HARQ NACK to the BS 105. Upon receiving a HARQ NACK from the UE 115, the BS 105 may retransmit the DL data packet to the UE 115. The BS 105 and the UE 115 may also apply HARQ for UL communications using substantially similar mechanisms as the DL HARQ.
[0049] In some aspects, a UE 115 and a BS 105 may be capable of encoding and decoding information according to the three-phase AC encoding and decoding methods described herein, such as in
[0050]
[0051] The wireless communication device 200 can be, or can include, a chip, system on chip (SoC), chipset, package or device that includes one or more modems 202, for example, a 3GPP 4G LTE or 5G compliant modem. In some implementations, the one or more modems 202 (collectively the modem 202) additionally include a Wi-Fi (IEEE 802.11 compliant) modem. In some implementations, the wireless communication device 200 also includes one or more processors, processing blocks or processing elements 204 (collectively the processor 204) coupled with the modem 202. In some implementations, the wireless communication device 200 additionally includes one or more radios 206 (collectively the radio 206) coupled with the modem 202. In some implementations, the wireless communication device 200 further includes one or more memory blocks or elements 208 (collectively the memory 208) coupled with the processor 204 or the modem 202.
[0052] The modem 202 can include an intelligent hardware block or device such as, for example, an application-specific integrated circuit (ASIC), among other examples. The modem 202 is generally configured to implement a PHY layer, and in some implementations, also a portion of a MAC layer (for example, a hardware portion of the MAC layer). For example, the modem 202 is configured to modulate packets and to output the modulated packets to the radio 206 for transmission over the wireless medium. The modem 202 is similarly configured to obtain modulated packets received by the radio 206 and to demodulate the packets to provide demodulated packets. In addition to a modulator and a demodulator, the modem 202 may further include digital signal processing (DSP) circuitry, automatic gain control (AGC) circuitry, a coder, a decoder, a multiplexer and a demultiplexer. For example, while in a transmission mode, data obtained from the processor 204 may be provided to an encoder, which encodes the data to provide coded bits. The coded bits may then be mapped to a number N.sub.SS of spatial streams for spatial multiplexing or a number N.sub.STS of space-time streams for space-time block coding (STBC). The coded bits in the streams may then be mapped to points in a modulation constellation (using a selected MCS) to provide modulated symbols. The modulated symbols in the respective spatial or space-time streams may be multiplexed, transformed via an inverse fast Fourier transform (IFFT) block, and subsequently provided to the DSP circuitry (for example, for Tx windowing and filtering). The digital signals may then be provided to a digital-to-analog converter (DAC). The resultant analog signals may then be provided to a frequency upconverter, and ultimately, the radio 206. In implementations involving beamforming, the modulated symbols in the respective spatial streams are precoded via a steering matrix prior to their provision to the IFFT block.
[0053] While in a reception mode, the DSP circuitry is configured to acquire a signal including modulated symbols received from the radio 206, for example, by detecting the presence of the signal and estimating the initial timing and frequency offsets. The DSP circuitry is further configured to digitally condition the signal, for example, using channel (narrowband) filtering and analog impairment conditioning (such as correcting for I/Q imbalance), and by applying digital gain to ultimately obtain a narrowband signal. The output of the DSP circuitry may then be fed to the AGC, which is configured to use information extracted from the digital signals, for example, in one or more received training fields, to determine an appropriate gain. The output of the DSP circuitry also is coupled with a demultiplexer that demultiplexes the modulated symbols when multiple spatial streams or space-time streams are received. The demultiplexed symbols may be provided to a demodulator, which is configured to extract the symbols from the signal and, for example, compute the logarithm likelihood ratios (LLRs) for each bit position of each subcarrier in each spatial stream. The demodulator is coupled with the decoder, which may be configured to process the LLRs to provide decoded bits. The decoded bits may then be provided to the MAC layer (the processor 204) for processing, evaluation or interpretation.
[0054] The radio 206 generally includes at least one radio frequency (RF) transmitter (or transmitter chain) and at least one RF receiver (or receiver chain), which may be combined into one or more transceivers. For example, each of the RF transmitters and receivers may include various analog circuitry including at least one power amplifier (PA) and at least one low-noise amplifier (LNA), respectively. The RF transmitters and receivers may, in turn, be coupled to one or more antennas. For example, in some implementations, the wireless communication device 200 can include, or be coupled with, multiple transmit antennas (each with a corresponding transmit chain) and multiple receive antennas (each with a corresponding receive chain). The symbols output from the modem 202 are provided to the radio 206, which then transmits the symbols via the coupled antennas. Similarly, symbols received via the antennas are obtained by the radio 206, which then provides the symbols to the modem 202.
[0055] The processor 204 can include an intelligent hardware block or device such as, for example, a processing core, a processing block, a central processing unit (CPU), a microprocessor, a microcontroller, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a programmable logic device (PLD) such as a field programmable gate array (FPGA), discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. The processor 204 processes information received through the radio 206 and the modem 202, and processes information to be output through the modem 202 and the radio 206 for transmission through the wireless medium. For example, the processor 204 may implement a control plane and at least a portion of a MAC layer configured to perform various operations related to the generation, transmission, reception and processing of packets. In some implementations, the MAC layer is configured to generate packets for provision to the PHY layer for coding, and to receive decoded information bits from the PHY layer for processing as packets. The MAC layer may further be configured to allocate time and frequency resources, for example, for OFDMA, among other operations or techniques. In some implementations, the processor 204 may generally control the modem 202 to cause the modem to perform various operations described above.
[0056] The memory 208 can include tangible storage media such as random-access memory (RAM) or read-only memory (ROM), or combinations thereof. The memory 208 also can store non-transitory processor-or computer-executable software (SW) code containing instructions that, when executed by the processor 204, cause the processor to perform various operations described herein for wireless communication, including the generation, transmission, reception and interpretation of frames or packets. For example, various functions of components disclosed herein, or various blocks or steps of a method, operation, process or algorithm disclosed herein, can be implemented as one or more modules of one or more computer programs.
[0057]
[0058]
General Context for Probabilistic Amplitude Shaping
[0059]
[0060] The receiver chain 520 includes a distribution dematcher 521, a demapper 522, FEC decoder 523, and bitwise logarithm likelihood ratio (LLR) demapper 524. Example implementations provide three-phase AC encoding and three-phase AC decoding methods. In some examples, the three-phase AC encoding methods may be performed using the distribution matcher 511, and the three-phase AC decoding methods may be performed using the distribution dematcher 521.
[0061] The example of ={1,3, . . . , 2.sup.M1}. The n(M1) amplitude bits and the n information bits together constitute the n(M1+) bits as input to the systematic FEC encoder 513, which then generates n(1) parity bits. The n(1) parity bits together with the n information bits are converted to n sign bits and are pointwise multiplied with the n amplitudes from the output of the distribution matcher 511. The distribution matching (DM) rate is R.sub.dm=k/n, the systematic forward-error-correction (FEC) code rate is R.sub.c=(M1+)/M, and the transmission rate is R.sub.t=R.sub.dm+, where n is a number of additional information bits added for FEC.
[0062] The present example uses a fixed-to-fixed DM at the distribution matcher 511 to map a length-k bit sequence to a length-n amplitude sequence, and it induces a non-uniform marginal distribution over the amplitude symbols {1, 3, . . . , 2.sup.M1}. The k bits are typically assumed to be independent and identically distributed (i.i.d.) with the uniform distribution. However, the non-uniform distribution over the amplitude symbols is expected to be closer to the capacity-achieving distribution than the uniform one, e.g., being more Gaussian-like or being a Maxwell-Boltzmann distribution in the AWGN setting.
Symbol Terminologies and Nomenclatures
[0063] Before getting into examples of arithmetic coding (AC) being performed, it is instructive to look at mathematical functions that may be applied to data for the purpose of transmitting and receiving encoded data. The following paragraphs introduce concepts that underpin the three-phase AC encoding and decoding methods described with respect to
[0064] For example, an alphabet may define possible amplitude symbols, and it may be given the symbolic notation .sub.m. For example, if m>1 is an integer, then
m={a.sub.1, a.sub.2, . . . , a.sub.m} is a symbol alphabet of size m. Examples impose an ordering < on the alphabet
m such that a.sub.i<a.sub.i+1 for each i, i.e., a.sub.1<a.sub.2<.Math. .Math. .Math. <a.sub.m. For a given m and for each integer t between 1 and m,
.sub.t is the subset of
.sub.m consisting of symbol a.sub.i for all it. In other words,
.sub.t={a.sub.i
.sub.m|it} expresses a general relation between alphabet
.sub.m and alphabets
.sub.t for tm.
[0065] An example application of an alphabet is in the context of amplitude-shift keying (ASK) constellations. One example includes the symbol (i.e., amplitude) alphabet .sub.m={1, 3, . . . , 2.sup.M1} so that m=2.sup.M1 and {1, 1}
.sub.m corresponds to a 2.sup.Mary ASK alphabet (this means that m depends on a modulation order). For instance, for 8-ASK, M=3 and the alphabets
.sub.4={1, 3, 5, 7},
.sub.3={1, 3,5},
.sub.2={1, 3} and
.sub.1={1}.
[0066] A sequence over .sub.m and having length n is an ordered n-tuple, each element of which takes values in
.sub.m. Disclosure herein may refer to sequences over
.sub.m and having length n. By over
.sub.m it is meant each element (i.e., symbol) of an involved sequence belongs to the alphabet
.sub.m. In one example sequence, m=2 and n =4, and the symbol sequences of length 4 over
.sub.2={1, 3}. In some example wireless applications, m may be relatively small while n may be relatively large.
[0067] A composition k of length m and over {0, 1, . . . , n} is an ordered m-tuple k=(k.sub.1, k.sub.2, . . . , k.sub.m), all elements of which are nonnegative and sum up to n. Given a composition k, k.sub.i(k) is the element of k along coordinate i. In other words, k.sub.i(k) is the i-th element of k. Given a composition k, examples described herein may denote by n(k) the sum of all elements of k. Given a sequence s of length n over .sub.m, the composition of s is an ordered m-tuple, k(s)=(k.sub.1(s), k.sub.2(s), . . . , k.sub.m(s)), where for each i, k.sub.i(s) is the number of occurrences of a.sub.i
.sub.m in the sequence s. An illustrative example of a sequence includes s=(1, 1, 3, 1), and the prefix s.sub.1.sup.2=(1, 1). The composition of sequence s=(1, 1, 3, 1) is k(s) =(3, 1). The element 3 indicates three occurrences of the symbol amplitude 1 in the sequence. The element 1 indicates one occurrence of the symbol amplitude 3 in the sequence. The number of sequences having composition (3, 1) is given by the multinomial coefficient:
[0068] The sequences over .sub.2 and having composition (3, 1) are (1, 1, 1, 3), (1, 1, 3, 1), (1, 3, 1, 1) and (3, 1, 1, 1). Of course, these examples of an alphabet, sequence, and a composition are for illustration, and it is understood that the scope of embodiments is not limited to any size of alphabet or size of sequence.
[0069] Energy of a symbol is another concept within the embodiments described herein. For instance, each different symbol may correspond to a different energy. Given an alphabet .sub.m of size m, examples denote by E(a.sub.i) the energy of symbol a.sub.i for each i. In this example, symbol energies are distinct and assumed for any i{1, 2, . . . , m1} that the following relation holds true: 0E(a.sub.i)<E(a.sub.i+1).
[0070] One example of symbol energy includes ASK constellations. In such cases, examples may take .sub.m={1, 3, . . . , 2.sup.M1} so that m=2.sup.M1 and {1, 1}
.sub.m corresponds to a 2.sup.M-ary ASK alphabet so that m depends on a modulation order. In such an example, a.sub.i=2i1 so that a.sub.1=1, a.sub.2=3, . . . , a.sub.m=2.sup.M1. There is a squared relationship between a symbol and its corresponding energy, as in Examples 1,2 below: [0071] Example 1: for each i, the energy E(a.sub.i) of symbol a.sub.i satisfies:
[0073] There is relation between E(a.sub.i) in Example 1 and E(a.sub.i) in Example 2. Specifically, if 8i(i1)/2 +1=(2i1).sup.2, then E(a.sub.i) in Example 2 only involves a rescaling of E(a.sub.i) in Example 1. Put another way, 8 times E(a.sub.i) in Example 2 plus 1 is equal to E(a.sub.i) in Example 1.
[0074] As noted above, a given symbol corresponds to an energy. Therefore, a sequence of symbols also corresponds to an energy. Given an alphabet .sub.m of size m, there is a sequence, s=(s.sub.1, s.sub.2, . . . , s.sub.n), each element of which takes values in
.sub.m. The energy of the sequence s, denoted by E(s), may be defined as the accumulation, i.e., summation, of all symbol energies of symbols belong to the sequence s. For example, the energy E(s) of the sequence s may be determined in accordance with the following Equation (4):
[0075] Examples may denote by s.sub.1.sup.t the prefix (s.sub.1, s.sub.2, . . . , s.sub.t) of s so that the sequence s is also denoted by s.sub.1.sup.n. The energy of the prefix s.sub.1.sup.t is E(s.sub.1.sup.t)=.sub.t=1.sup.tE(s.sub.i).
[0076] The examples herein denote a cardinality of all sequences having an energy E and a length n as (n, E). E and n are nonnegative integers. The total number of sequences over .sub.m having length n and energy E is denoted by N.sup.[m](n, E). When the underlying size m is clear from the context, N(n, E) can be used as a proxy.
[0077] The examples herein denote a cardinality of all sequences having an energy smaller than or equal to E and a length n as N.sub.c(n, E). As noted above, .sub.m={a.sub.1, a.sub.2, . . . , a.sub.m} is a finite symbol alphabet of size m, and symbol a.sub.i has energy E(a.sub.i). The number N.sub.c.sup.[m](n, E) is a quantity of symbol sequences over
.sub.m and each sequence having length n and energy at most equal to E. When the underlying size m is clear from the context, N.sub.c(n, E) can be used as a proxy.
[0078] The number N.sub.c(n, E) is a cumulative sequence quantity that can be calculated using recursion. For example, for each n1, N.sub.c(n, E) satisfies the recursion of Equation (5). The recursion of Equation (5) has an initialization N.sub.c(0, E)=.sub.[0,)(E), where
denotes the indicator function of the set [0, ):
[0079] The examples below use N(n, E) and N.sub.c(n, E) (as well as other concepts) to perform encoding. The examples below may refer to N(n, E) as a sequence quantity and may refer to N.sub.c(n, E) as a cumulative sequence quantity.
The Three-Phase AC Encoding Method
[0080] In a scenario in which (m, n, ) is the set of all symbol sequences of length n and over
.sub.m, each sequence has energy at most equal to . In other words, for any s.sub.1.sup.n
(m, n, ), the following is true: E(s.sub.1.sup.n). The cardinality of the set
(m, n, ), i.e., the number of sequences in
(m, n, ), is given by
[0081] When the underlying size m is clear from the context, N.sub.c(n, ) can be written as a proxy for N.sub.c.sup.[m](n, ).
[0082] The maximum energy depends on .sub.m and n. For example, if the minimum symbol energy and the maximum symbol energy are respectively E(a.sub.1) and E(a.sub.m), then the minimum energy and the maximum energy of a length-n symbol sequence over
.sub.m are respectively equal to nE(a.sub.1) and nE(a.sub.m), which respectively gives the smallest and the largest meaningful . A particular form of is n, where is between E(a.sub.1) and E(a.sub.m) and n is the sequence length.
[0083] In one example, can be taken as the average symbol energy, i.e., =.sub.i=1.sup.mE(a.sub.i)/m and can be taken as a function of e.sup.v, where v is the parameter of a Maxwell-Boltzmann distribution. The three-phase AC encoding method does not rely on any specific choice of .
[0084] Some methods described herein include efficient ways to encode (e.g., map) length-k bit sequences into length-n sequences in (m, n, ) and to guarantee unique decodability.
[0085] The input to a given operation of the three-phase AC encoding method is k information bits. The value of k may be determined so that k is the largest integer such that the following is true:
[0086] A k-bit sequence (u.sub.1, u.sub.2, . . . , u.sub.k) of information bits may be interpreted as the dyadic number x[0, 1) with the binary expansion 0. u.sub.1u.sub.2 . . . u.sub.k. The dyadic number may be calculated using a function, such as:
[0087] The dyadic number x, alphabet .sub.m, sequence length n and maximum energy are available for the three-phase AC encoding method described herein.
[0088] The output of a given operation of the three-phase AC encoding method is a length-n sequence of amplitude symbols. The operation of the three-phase AC encoding method maps the sequence (u.sub.1, u.sub.2, . . . , u.sub.k) to a length-n symbol sequence s=(s.sub.1, s.sub.2, . . . , s.sub.n) in (m, n, ). The choice of k guarantees that the mapping is injective.
[0089] Each of the three phases may be performed by a wireless communication device, such as those discussed above with respect to
[0090] In the second phase (or Phase 2), and based on E, the wireless communication device determines the composition k*=(k*.sub.1, . . . , k*.sub.m) of the output sequence; this is done in m2 iterations. In each iteration, the wireless communication device determines k* along a coordinate; i.e., a single element of k* is determined in each iteration. The second phase may also include accessing (e.g., computing or approximating or table-looking-up) a plurality of N sequence quantities and binomial coefficients.
[0091] Further actions in the second phase may include computing ratios based on these N sequence quantities and binomial coefficients such that each such ratio is proportional to the product of an N sequence quantity and a binomial coefficient. The determination of each element of k* is based on the ratios and the (scaled) input x. Once an element is determined in an iteration, the wireless communication device may perform a scaling operation related to x and update of the residual length and the residual energy. In some examples, the decrementing of residual length is equal to the determined element of k* in a given iteration. The decrement of residual energy may be equal to the product of the determined element of k* and the corresponding symbol energy.
[0092] Based on k* and output from Phase 2, the third phase (or Phase 3) determines the symbols of the output sequence sequentially in n iterations. In other words, Phase 2 may include determining the elements of the composition of the output sequence. However, there may be multiple output sequence candidates having the same composition. Phase 3 may determine the output symbols and their order, thereby determining the output symbol itself.
[0093]
[0094] Before the first phase begins, it is assumed that the device performing the encoding has received a plurality (k) of information bits, wherein k is an integer greater than 1, such as shown in
[0095] The first phase may also include processing the cumulative sequence quantities, including selecting a first energy level based at least in part on the plurality of information bits and the cumulative sequence quantities. As described below, processing the N.sub.c cumulative sequence quantities may include calculating ratios, each of those ratios representing a transition probability, and then determining a ratio that corresponds to the value of the dyadic number x. As noted above, the dyadic number may be determined from the plurality of information bits.
[0096] The first phase of encoding determines a number E between 0 and . The number E specifies the energy of the output sequence and it is selected according to:
[0097] The determination of E using the above condition can be realized by a bisection method of the interval [0, 1), since N.sub.c is increasing in its second argument. The first phase effectively partitions the set (m, n, ) into subsets, with each subset having all sequences that have equal energy, and each subset corresponding to a subinterval of the interval [0, 1).
[0098] The dyadic number x falls within the interval [0, 1) (shown as interval 610) and in fact falls within one of the subintervals within the interval. The wireless communication device selects the interval that includes the value of the dyadic number. In this example, the wireless communication device selects subinterval 601, which corresponds to all sequences in (m, n, ) that has energy equal to E, and its length is proportional to N.sub.c(n, E)N.sub.c(n, E1)=N(n, E). Phase 2 begins with the energy equal to E.
[0099] Then, the dyadic number x is scaled to x according to:
[0100] .sub.m, each sequence of which has energy equal to a distinct
, denoted here as {m, n,
}. The partitioning of the unit interval [0, 1) corresponds to the disjoint union property:
[0101] Phase 2 begins with the energy having been selected and the number x having been scaled.
[0102] The second phase of encoding initializes j=0, n.sub.0=n, E.sub.0=E and x.sub.0=x with E and x determined in the first phase of encoding. The second phase of encoding iterates the following until (and including) j=m3. In other words, the iteration described below is an iteration j, where j starts from 0 and serves as indexing the number of iterations performed so far. There is a sequential manner that is captured by j.
[0103] The iteration j includes computing the ratios (transition probabilities) p(.Math.|mj, n.sub.j, E.sub.j) according to:
in which k.sub.mj is a nonnegative integer within a range specified according to the rounding operation of the following Equation (13):
[0104] The rounding operation is applied to a number and the number is rounded down to the nearest integer. For example, 3.6=3. A range refers to a set of integers from 0 to a rounded-down number; i.e., the left-hand side of Equation (13) and the right-hand side of Equation (13). E.sub.j in Equation (13) is the residual energy at the beginning of iteration j (e.g., after performing the first j1 iterations).
[0105] The iteration j includes determining k*.sub.mj such that x.sub.j belongs to an interval with left-closed and right-open boundaries of the following form:
[0106] The iteration j includes updating the value of x by scaling x.sub.j to x.sub.j+1 according to:
[0107] The iteration j includes updating the residual length n.sub.j+1=n.sub.jk.sub.mj and the residual energy E.sub.j+1=E.sub.jk*.sub.mjE(a.sub.mj).
[0108] The iteration j includes increasing j by 1, and this completes iteration j.
[0109] The above iterations of the second phase sequentially determine k*.sub.m, k*.sub.m1, . . . , k*.sub.3, which specifies the number of occurrences of the symbols a.sub.m, a.sub.m1, . . . , a.sub.3 that will appear in the output sequence s, respectively. The first element k*.sub.1 of k* and the second element k*.sub.2 of k* are subsequently determined by the length and energy conditions. In other words, by the end of the last iteration, n.sub.m2 is the residual length and E.sub.m2 is the residual energy, which means that k*.sub.1+k*.sub.2=n.sub.m2 and that k*.sub.1E(a.sub.1)+k*.sub.2E(a.sub.2)=E.sub.m2. Therefore, the final two composition elements k*.sub.1 and k*.sub.2 may be determined algebraically by solving these two equations. Alternatively, various embodiments may perform m iterations, though that may in some instances be more computationally intensive than performing m2 iterations and then solving algebraically for the final two composition elements.
[0110] The second phase of encoding effectively considers the partitioning of the set {m, n, E}.sub.= of all sequences in (m, n, ){m, n, }, such that each sequence in {m, n, E}.sub.= has energy equal to E, where E is determined in the first phase of encoding.
[0111] For 0jm3, {k.sub.mj+1, . . . , k.sub.m; m, n, E} _ is the set of all sequences in {m, n, E}.sub.= such that the number of occurrences of symbol a.sub.i for each such sequence is equal to k.sub.i. This holds for all i{mj+1, . . . , m}.
[0112] Iteration j corresponds to the set {k*.sub.mj+1, . . . , k*.sub.m; m, n, E}.sub.=. In other words, at the beginning of iteration j, the elements k*.sub.mj+1, . . . , k*.sub.mof the composition k* have been determined (which are sequentially done during the first j1 iterations). Iteration j considers partitioning of {k*.sub.mj+1, . . . , k*.sub.m; m, n, E}.sub.= into subsets of the form {k.sub.mj, k*.sub.mj+1, . . . , k*.sub.m; m, n, E}.sub.=.
[0113] The ratio of the cardinality of {k.sub.mj, k*.sub.mj+1, . . . , k*.sub.m; m, n, E}.sub.= over that of {k*.sub.mj+1, . . . , k*.sub.m; m, n, E}.sub.= is p(k.sub.mj|mj, n.sub.j, E.sub.j). That is, the ratio satisfies:
[0114]
[0115]
[0116] The ratio of the cardinality of {k.sub.m; m, n, E}.sub.= over the cardinality of {m, n, E}.sub.= is referred to as a transition probability. The transition probability has a particular form involving a binomial coefficient and two particular N sequence quantities:
[0117] When determining the first element of the composition in the first iteration of Phase 2, j is initialized as j=0. The sequence quantities are of the form:
[0118] In Equation (19), km is the variable. The N sequence quantity in Equation (19) defines a set of all sequences over alphabet .sub.m1={a.sub.1, a.sub.2, . . . , a.sub.m1} such that each such sequence in the set has length nk.sub.m and energy Ek.sub.mE(a.sub.m). The alphabet
.sub.m1 that corresponds to the first iteration excludes the symbol a.sub.m, the number of occurrences of which (k.sub.m) is under determination during the first iteration.
[0119] When determining the first composition element in the first iteration of Phase 2, the transition probabilities are proportional to the cardinality of the set {k.sub.m; m, n, E}.sub.=, where k.sub.m is the variable. This set represents the set of all sequences over alphabet .sub.m, with each such sequence having length n and energy equal to E, while the number of occurrences of symbol a.sub.m is equal to k.sub.m.
[0120] The cardinality corresponding to a k.sub.m is computed as follows. An observer may think of n positions in total (like n holes) with a task to fill in symbols from .sub.m. Among these n positions, k.sub.m positions are first chosen and made to correspond to a.sub.m. The number of ways to choose k.sub.m positions out of n is given by the binomial coefficient
This corresponds to the extra condition that each sequence in the set {k.sub.m; m, n, E}.sub.= must have k.sub.m symbol a.sub.m.
[0121] After these k.sub.m positions have been chosen, it is analogous to these positions being peeled off. Hence, the Phase 2 may be termed a peeling method. There are n.sub.km positions left, and these correspond to sequences over .sub.m1={a.sub.1, a.sub.2, . . . , a.sub.m1} such that each sequence has length nk.sub.m and each sequence has energy Ek.sub.mE(a.sub.m).
[0122]
[0123]
and multiple sequence quantities, e.g., N.sup.[m1](nk.sub.m, Ek.sub.mE(a.sub.m)). In this iteration, k.sub.m denotes an integer in the first range. Each binomial coefficient corresponds to a respective integer in the first range and each sequence quantity corresponds to a respective integer in the first range as well. The wireless communication device may further compute a first plurality of transition probabilities in accordance with Equation (12), e.g.,
[0124] Each transition probability corresponds to a respective integer in the first range. For example, the transition probability p(k.sub.m|m, n, E) corresponds to an integer k.sub.m in the first range. The wireless communication device may partition a scaled subinterval 901a into multiple subintervals based at least in part on the first plurality of transition probabilities. Each subinterval corresponds to a respective transition probability, and the length of each subinterval is equal to a respective transition probability. For example, the subinterval corresponding to p(k.sub.m|m, n, E) is [.sub.=0.sup.k.sup.
[0125] The wireless communication device may further identify a subinterval 902a of the scaled subinterval 901a using the number x in Equation (10) and the multiple subintervals (labelled 1-5 in
[0126] In a subsequent iteration (j=1) wherein m>2, the wireless communication device may identify a second range of nonnegative integers in accordance with Equation (13). The second range may include any integer between 0 and E1/E(a.sub.m1). The wireless communication device may determine multiple binomial coefficients, e.g.,
and multiple sequence quantities, e.g., N.sup.[m2](n.sub.1k.sub.m1, E.sub.1k.sub.m1E(a.sub.m1)). Here, k.sub.m1 denotes an integer in the second range. Each binomial coefficient corresponds to a respective integer in the second range and each sequence quantity corresponds to a respective integer in the second range as well. The wireless communication device may further compute a second plurality of transition probabilities in accordance with Equation (12); for example,
[0127] Each transition probability corresponds to a respective integer in the second range. For example, the transition probability p(k.sub.m1|m1, n.sub.1, E.sub.1) corresponds to an integer k.sub.m1 in the second range. The wireless communication device may partition the scaled subinterval 901b into multiple subintervals based at least in part on the second plurality of transition probabilities. Each subinterval corresponds to a respective transition probability, and the length of each subinterval is equal to a respective transition probability. For example, the subinterval corresponding to p(k.sub.m1|m1, n.sub.1, E.sub.1) is [.sub.=0.sup.k.sup.
[0128] The wireless communication device may further identify a subinterval 902b of the scaled subinterval 901b using the second number x.sub.1 and the multiple subintervals, and the identifying is in accordance with Equation (14). That is, the number x.sub.1 is in the subinterval 902b; or put another way, the number x.sub.1 corresponds to a second transition probability that the subinterval 902b corresponds to. The wireless communication device may identify the integer that the second transition probability corresponds to. That integer is set to be a second element k*.sub.m1 of the composition k*. The wireless communication device may further apply a scaling operation to the number x.sub.1 in accordance with Equation (15). Additionally, the wireless communication device may apply a scaling operation on the subinterval 902b. The wireless communication device may update the residual length and the residual energy such that n.sub.2=n.sub.1k*.sub.m1 and E.sub.2=E.sub.1k.sub.m1E(a.sub.m1).
[0129] That ends the iteration in which j=1. The iterations continue through j=m2, at which point algebraic means may be used to determine the final two composition elements.
[0130] The value N.sub.c.sup.[m](n, ) for general
used in the first phase of encoding can be accessed by the wireless communication device. In this example,
denotes a nonnegative integer smaller than or equal to , and m, n and correspond to
(m, n, ), which is the set of all sequences generated using the alphabet
.sub.m, each sequence having a length n, and having an energy that may be less than or equal to (e.g., at most) . The value N.sup.[m](n,
) may be accessed by one or more ways. In a first example, the value may be computed exactly and directly, e.g., using the recursive definition. In a second example, the value may be accessed in a look-up table storing such values. In a third example, the value may be approximated by an approximation method, in which case the approximate value may be denoted by
(n,
). In the third case, the first phase of encoding replaces the exact values with approximate values, and selects the number E according to:
[0131] Accessing the N sequence quantities in Phase 2 of encoding may be performed similarly. The value N.sup.[m](n, ) for general m, n and
used in the second phase of encoding can be accessed by the wireless communication device. In this example, m is an integer such that 1mm; n is a non-negative integer smaller than or equal to n;
is a non-negative integer smaller than or equal to . Equation (12) (and Equation (23)) show that Phase 2 of encoding computes or approximates transition probabilities, where {circumflex over (N)}.sup.[m](n,
) is used for a multiple of m, n,
values. In another words, m, n,
may be viewed as 3 variables of N. The value N.sup.[m](n,
) may be accessed by one or more ways. In a first example, the value may be computed exactly and directly, e.g., using the recursive definition. In a second example, the value may be accessed in a look-up table storing such values. In a third example, the value may be approximated by an approximation method, in which case the approximate value is denoted by {circumflex over (N)}.sup.[m](n,
). In the third case, the second phase computes the transition probabilities using the approximate values. For example, the transition probability corresponding to an integer k.sub.mj may be denoted by {circumflex over (p)}(k.sub.mj|mj, n.sub.j, E.sub.j) and may be computed in accordance with the following Equation (23):
[0132] In Equation (23), k.sub.mj and
[0133] At the end of Phase 2, there is a known energy E, a known length n, and a known composition k*=(k*.sub.1, . . . , k*.sub.m). Phase 3 works within those constraints to determine an order of the amplitude symbols within the output sequence.
[0134] Phase 3 includes n iterations to determine n amplitude symbols, one amplitude symbol per iteration, of the output sequence. Phase 3 uses transition probabilities p and a number z at each iteration, as shown below.
[0135] The third phase of encoding initializes t=0, k.sub.0=(0, 0, . . . , 0).sup.m and z.sub.0=x.sub.m2. The third phase of encoding iterates the following until (and including) t=n1.
[0136] For each possible i{1, 2, . . . , m}, an iteration t computes the transition probability p(k.sub.t.fwdarw.K.sub.t+e.sub.i) in accordance with the following. If k.sub.i(k*)<k.sub.i(k.sub.t), then the iteration t determines the transition probability p(k.sub.t.fwdarw.k.sub.t+e.sub.i) to be equal to 0. If k.sub.i(k*) k.sub.i(k.sub.t), then the iteration t determines the transition probability p(k.sub.t.fwdarw.k.sub.t+e.sub.i) in accordance with:
[0137] In Equation (24) and in examples described herein, e.sub.i denotes the m-tuple in .sup.m such that the i-th element of e.sub.i is equal to 1 and the j-th element of e.sub.i is equal to 0 for any ji.
[0138] The iteration t determines jj.sub.t+1{1,2, . . . , m} such that:
[0139] The iteration t then outputs symbol s.sub.t+1 by setting s.sub.t+1=a.sub.j and scales z.sub.t to z.sub.t+1 according to:
[0140] The iteration t then updates the prefix composition k.sub.t+1=k.sub.t+e.sub.j, increases t by 1, and this completes iteration t. Further iterations are performed (if any iterations remain).
[0141]
[0142] At action 1001, the wireless communication device generates a plurality (k) of information bits. In this example, k is an integer greater than 1.
[0143] Actions 1002-1003 correspond to Phase 1 of the encoding method. Specifically, at action 1002, the wireless communication device accesses a first plurality of values. Each of the plurality of values represents a quantity of symbol sequences of length (n) and having at most a respective energy level. For example, the wireless communication device may calculate a plurality of N.sub.c cumulative sequence quantities.
[0144] At action 1003, the wireless communication device processes the cumulative sequence quantities. In one example, the wireless communication device may select a first energy level based at least in part on the plurality of information bits and the first plurality of cumulative sequence quantities (N.sub.c). Selecting the first energy level may include generating a first number (x) by performing a first function, computing a set of ratios that are associated with respective values of the first plurality of cumulative sequence quantities, and using the first number to select a first one of the ratios that corresponds to the first energy level. The ratios may be computed based on the cumulative sequence quantities N.sub.c such that each ratio is proportional to an N.sub.c cumulative sequence quantity.
[0145] Action 1003 may also include a scaling operation for the first number.
[0146] Action 1004 corresponds to Phase 2 of the encoding method. Action 1004 includes determining a composition of an output symbol sequence from among a first set of symbol sequences (e.g., {m, n, E}.sub.=) having the first energy level, including performing a plurality of iterations to identify a plurality of elements of the composition. A quantity (m) of the plurality of iterations is related to a size of a symbol alphabet (.sub.m) to which the first set of symbol sequences belongs. For instance, some embodiments may include a number of iterations equal to m minus 2 and then determining the final two elements algebraically. As explained above a composition k of length m and over {0, 1, . . . , n} is an ordered m-tuple k=(k.sub.1, k.sub.2, . . . , k.sub.m), all elements of which are nonnegative and sum up to n.
[0147] A first iteration of action 1004 may include calculating a first number (x) based at least in part on the plurality of information bits. The first iteration may also include accessing a plurality of sequence quantities (e.g., a plurality of N sequence quantities), each one of the sequence quantities defining a set of all sequences having a length n minus a variable k.sub.m, an energy having been reduced by an amount proportional to the variable k.sub.m, and a symbol alphabet excluding a first amplitude symbol, using k.sub.m over a range of possible candidates for a first element. The first iteration may also include accessing a plurality of binomial coefficients and computing a plurality of transition probabilities based on the sequence quantities N and the binomial coefficients. The transition probabilities may include ratios based on these N sequence quantities and binomial coefficients such that each such ratio is proportional to the product of an N sequence quantity and a binomial coefficient; the determination of each element of k* is based on the ratios and the first number x. The element determined in the first iteration may be denoted as km*.
[0148] In this example, the first iteration begins with a first subinterval of a first interval, the first interval corresponding to the set {m, n, }. The first iteration defines a second subinterval from the first subinterval. The first subinterval corresponds to the first set of symbol sequences, and the second subinterval corresponds to a second set of symbol sequences {k.sub.m; m, n, E}.sub.=. The first subinterval has a length that is proportional to a first transition probability, and the second set of symbol sequences corresponds to a reduction of the first set of symbol sequences to exclude ones of the symbol sequences that do not conform to a first element of the composition. The next iteration may then repeat by scaling the first number again, generating a residual energy value and a residual length value, and calculating the transition probabilities constrained by the residual energy value and the residual length value. For instance, in a second iteration, k.sub.m1 may denote the variable used to access the sequence quantities, and k.sub.m1* may denote the determined element.
[0149] At action 1005, the wireless communication device determines the output symbol sequence, and this corresponds to Phase 3 of the encoding method. Action 1005 may include determining a plurality (n) of amplitude symbols of the output symbol sequence based at least in part on the composition and the plurality of information bits. For instance, the wireless communication device may perform n iterations, one iteration for each amplitude symbol of the output symbol sequence. For instance, in the examples above, the wireless communication device performs n iterations, using a number z, and updating a prefix composition with each iteration.
[0150] At action 1006, the wireless communication device transmits a wireless packet to at least one receiving device based on the output symbol sequence. For instance, the output symbol sequence may be enhanced by forward error correction, converted into constellation points, and transmitted wirelessly to the receiving device.
[0151] At action 1007, the wireless communication device may decode a subsequently received wireless data packet. An example of decoding is described below.
The Three-Phase AC Decoding Method
[0152] Various implementations also include decoding received amplitude symbols, performed, e.g., by a wireless communication device that receives a data packet encoded according to the three-phase AC encoding method. For instance, the input of decoding may include a length-n symbol sequence s=(s.sub.1, s.sub.2, . . . , s.sub.n) encoded by the three-phase AC encoding method is received and available for decoding. The sequence s has length n and energy at most , and each element of s is from the alphabet .sub.m. The alphabet
.sub.m and the maximum energy are available for decoding.
[0153] The three-phase AC decoding maps the sequence s to a length-k bit sequence (,
, . . . ,
) as an estimate of the information bit sequence (u.sub.1, u.sub.2, . . . , u.sub.k). The choice of k satisfies the same condition as described above with respect to encoding and, thus, guarantees unique decodability. As with the encoding, decoding may also be performed in three phases.
[0154] The first phase of decoding forms an initial estimate (x.sub.0 and
[0155] For instance, based on the sequence s=(s.sub.1, s.sub.2, . . . , s.sub.n), the first phase of decoding obtains the energy E of the sequence s according to
[0156] Then, the device computes x.sub.0 and
[0157] Once the device has computed x.sub.0 and
[0158] The second phase of decoding (or decoding phase 2) forms refined estimates (x.sub.j and
[0159] The second phase of decoding iterates the following until (and including) j=m3.
[0160] Based on the sequence s=(s.sub.1, s.sub.2, . . . , s.sub.n) and the alphabet .sub.m, an iteration j of the second phase of decoding first determines:
[0161] The iteration j then computes the ratios (transition probabilities) p (.Math.|mj, n.sub.j, E.sub.j) according to:
[0162] The iteration j then updates x.sub.j and
[0163] The iteration j updates the residual length n.sub.j+1=n.sub.jk.sub.mj and the residual energy E.sub.j+1=E.sub.jk.sub.mjE(a.sub.mj) and increases j by 1, and this completes iteration j. Further iterations are performed (if any iterations remain). The output of the second phase of decoding is the composition k*=(k*.sub.1, . . . , k*.sub.m).
[0164] The third phase of decoding (or decoding phase 3) provides a final estimate (,
, . . . ,
) of the information bits. This is done sequentially in n iterations and is based on the composition k* and the refined estimates x.sub.m2 and
[0165] The third phase of decoding then initializes t=0, z.sub.0=x.sub.m2 and
[0166] For each possible i{1, 2, . . . , m}, an iteration t computes the transition probability p(k.sub.t.fwdarw.k.sub.t+e.sub.i) in accordance with the following. If k.sub.i(k*)<k.sub.i(k.sub.t), then the iteration t determines the transition probability p(k.sub.t.fwdarw.k.sub.t+e.sub.i) to be equal to 0. If k.sub.i(k*)k.sub.i(k.sub.t), then the iteration t determines the transition probability p(k.sub.t.fwdarw.k.sub.t+e.sub.i) in accordance with:
[0167] Then the iteration t determines jj.sub.t+1{1,2, . . . , m} such that a.sub.j=s.sub.t+1; i.e., s.sub.t+1 in the received sequence s is a.sub.j. The iteration t then updates the numbers z.sub.j and
[0168] The iteration t updates the prefix composition k.sub.t+1=k.sub.t+e.sub.j, increases t by 1, and this completes iteration t.
[0169] The output bit sequence (,
, . . . ,
) is determined as follows. If
Variation on the Three-Phase AC Encoding and Decoding Methods
[0170] In the examples above, the three-phase AC encoding method began by determining an energy E, and the three-phase AC decoding method began with an assumption that the encoding used E. However, another variation may include Phase 1 of encoding to map bit sequences to symbol sequences such that the energy of each symbol sequence is in a subset of {0, 1, 2, . . . , }. More precisely, a set is introduced where ={.sub.1, .sub.2, . . . , !.sub.K}, and where .sub.j{0, 1, 2, . . . , } for each j and .sub.1<.sub.2<.Math. .Math. .Math. <.sub.K. (m, n, ) denotes the set of all sequences over
.sub.m and having length n, each sequence of which has energy belonging to . In this variation example,
(m, n, ) is a subset of
(m, n, ). The variation allows for mapping bit sequences to symbol sequences having identical energy.
[0171] During Phase 1 of encoding for this variation, |(m, n, )| denotes the cardinality of
(m, n, ), and the input bit length k is determined as the largest integer such that the following is true:
[0172] The first phase of encoding selects E=.sub.j such that:
[0173] Then, x is scaled to x according to
[0174] This ends the first phase of encoding in this variation, and the second phase and the third phase of encoding are performed similarly to the three-phase AC encoding method described above.
[0175] For decoding in the variation, the first phase of decoding receives a sequence s and obtains the energy E of the sequence s according to E=E(s)=.sub.l=1.sup.nE(s.sub.l). Then, the decoding selects the index j such that E=.sub.j, where .sub.j . Then, the decoding computes x.sub.0 and
[0176] The second phase and the third phase of decoding are performed similarly as decoding described above.
[0177] A special case of the variation is when K=1 (i.e., a single energy target), and in this case, .sub.1=. In this case, the first phase of encoding and decoding can be omitted. Phase 2 of encoding in this variation (involving m2 iterations) takes as input t=0, n.sub.t=n, E.sub.t=.sub.1 and x.sub.t=x. Phase 2 of decoding in this variation (involving m2 iterations) takes as input t=0, n.sub.t=n, E.sub.t=E, x.sub.0=0 and
Clauses
[0178] Various implementations may be described by the following numbered clauses:
[0179] 1. A method for wireless communication by a wireless communication device, the method comprising: [0180] generating a plurality (k) of information bits, wherein k is an integer greater than 1; [0181] performing an encoding operation on the plurality of information bits, the encoding operation including: [0182] accessing a first plurality of cumulative sequence quantities, each cumulative sequence quantity of the first plurality of cumulative sequence quantities representing a quantity of symbol sequences of a length (n) and having at most a respective energy level; [0183] processing the first plurality of cumulative sequence quantities, including selecting a first energy level based at least in part on the plurality of information bits and the first plurality of cumulative sequence quantities; [0184] determining a composition of an output symbol sequence from among a first set of symbol sequences having the first energy level, including performing a plurality of iterations to identify a plurality of elements of the composition, a quantity of the plurality of iterations being related to a size of a symbol alphabet; and [0185] determining the output symbol sequence, including determining a plurality (n) of amplitude symbols of the output symbol sequence based at least in part on the composition and the plurality of information bits, wherein n is an integer greater than 1; and [0186] transmitting a wireless packet to at least one receiving device based on the output symbol sequence.
[0187] 2. The method of clause 1, wherein each of the amplitude symbols is selected from the symbol alphabet having size m, the symbol alphabet defining a set of different amplitude symbols, wherein m is an integer greater than 1.
[0188] 3. The method of any of clauses 1-2, wherein selecting the first energy level comprises: [0189] performing a first function on the plurality of information bits, the first function generating a first number; [0190] computing a set of ratios, wherein each of the ratios is associated with a respective one of the first plurality of cumulative sequence quantities; and [0191] determining that the first number corresponds to a first one of the ratios, the first one of the ratios corresponding to the first energy level.
[0192] 4. The method of clause 3, wherein the first number comprises a dyadic number.
[0193] 5. The method of any of clauses 1-4, further comprising: [0194] receiving a subsequent wireless packet from a transmitting wireless communication device, the subsequent wireless packet including information having a received symbol sequence of n amplitude symbols and a second energy level and defined by the symbol alphabet; and [0195] decoding the subsequent wireless packet, wherein decoding comprises: computing the second energy level, obtaining a second composition of the received symbol sequence by counting symbol occurrences within the subsequent wireless packet; performing a plurality (n) of decoding iterations, each decoding iteration including computing a plurality of transition probabilities and a decoding interval constrained by a prefix composition, and after n of the decoding iterations generating a binary expansion corresponding to a final decoding interval.
[0196] 6. The method of any of clauses 1-5, wherein identifying a first element (km*) of the plurality of elements of the composition comprises: [0197] calculating a first number based at least in part on the plurality of information bits; [0198] accessing a plurality of sequence quantities, each one of the sequence quantities defining a set of all sequences having a length n minus km, an energy having been reduced by an amount proportional to km, and a symbol alphabet excluding a first amplitude symbol, and using km as a variable over a range of possible candidates for km *; [0199] accessing a plurality of binomial coefficients; [0200] computing a plurality of transition probabilities based on the sequence quantities and the binomial coefficients; and [0201] determining that a first one of the transition probabilities corresponds to the first number, the first one of the transition probabilities corresponding to the first element of the composition.
[0202] 7. The method of clause 6, further comprising: [0203] generating a residual energy value in accordance with determining the first element of the composition.
[0204] 8. The method of clause 6, further comprising: [0205] generating a residual length value in accordance with determining the first element of the composition.
[0206] 9. The method of clause 6, further comprising: [0207] scaling the first number in accordance with determining the first element of the composition.
[0208] 10. The method of clause 6, further comprising: [0209] performing a second iteration to determine a second element (k.sub.m1*) of the plurality of elements of the composition, including: [0210] generating a residual energy value and a residual length value in accordance with determining the first element of the composition; [0211] calculating a second number based on the plurality of information bits; [0212] accessing a second plurality of sequence quantities defining a set of all sequences having a second length of the residual length value minus k.sub.m1, a second energy equal to the residual energy value minus a second amount proportional to k.sub.m1, and a second symbol alphabet excluding the first amplitude symbol and a second amplitude symbol, using k.sub.m1 as a variable over a range of possible candidates for k.sub.m1*; [0213] accessing a second plurality of binomial coefficients; [0214] computing a second plurality of transition probabilities based on the second plurality of sequence quantities and the second plurality of binomial coefficients; and [0215] determining that a second one of the second plurality of transition probabilities corresponds to the second number, the second one of the transition probabilities corresponding to the second element.
[0216] 11. The method of any of clauses 1-10, wherein a first iteration of the plurality of iterations begins with a first subinterval of a first interval and defines a second subinterval, the first subinterval corresponding to the first set of symbol sequences, and the second subinterval corresponding to a second set of symbol sequences, the first subinterval having a length that is proportional to a first transition probability, the second set of symbol sequences corresponding to a reduction of the first set of symbol sequences to exclude ones of the symbol sequences that do not conform to a first element of the composition.
[0217] 12. The method of clause 11, further comprising: [0218] scaling a first number according to the reduction of the first set of symbol sequences, wherein the first number is computed using the plurality of information bits.
[0219] 13. The method of clause 11, further comprising: [0220] scaling the first subinterval to be a same size as the first interval.
[0221] 14. The method of any of clauses 1-13, wherein the encoding operation and the transmitting is performed by a user equipment (UE).
[0222] 15. The method of any of clauses 1-14, wherein the encoding operation and the transmitting is performed by a wireless base station (BS).
[0223] 16. A wireless communication device comprising: [0224] at least one modem; [0225] at least one processor communicatively coupled with the at least one modem; and [0226] at least one memory communicatively coupled with the at least one processor and storing processor-readable code that, when executed by the at least one processor in conjunction with the at least one modem, is configured to: [0227] generate a plurality of information bits; [0228] access a first plurality of cumulative sequence quantities, each cumulative sequence quantity of the first plurality of cumulative sequence quantities representing a quantity of symbol sequences of a length (n) and having at most a respective energy level; [0229] process the first plurality of cumulative sequence quantities, including selecting a first energy level based at least in part on the plurality of information bits and the first plurality of cumulative sequence quantities; [0230] determine a composition of an output symbol sequence from among a first set of symbol sequences having the first energy level, including performing a plurality of iterations to identify a plurality of elements of the composition, a quantity of the plurality of iterations being related to a size of a symbol alphabet; and [0231] determine the output symbol sequence, including determining a plurality (n) of amplitude symbols of the output symbol sequence based at least in part on the composition and the plurality of information bits; and [0232] transmit a wireless packet to at least one receiving device based on the output symbol sequence.
[0233] 17. The wireless communication device of clause 16, wherein the processor-readable code to cause the wireless communication device to select the first energy level comprises processor-readable code to cause the wireless communication device to:
[0234] perform a first function on the plurality of information bits, the first function generating a first number;
[0235] compute a set of ratios, wherein each of the ratios is associated with a respective cumulative sequence quantity of the first plurality of cumulative sequence quantities; and [0236] determine that the first number corresponds to a first one of the ratios, the first one of the ratios corresponding to the first energy level.
[0237] 18. The wireless communication device of any of clauses 16-17, wherein the at least one processor in conjunction with the at least one modem, is further configured to: [0238] receive a subsequent wireless packet from a transmitting wireless communication device, the subsequent wireless packet including information having a received symbol sequence and a second energy level and defined by the symbol alphabet; and [0239] decode the subsequent wireless packet, wherein decoding comprises: computing the second energy level, obtaining a second composition of the received symbol sequence by counting symbol occurrences within the subsequent wireless packet; performing a plurality (n) of decoding iterations, each decoding iteration including computing a plurality of transition probabilities and a decoding interval constrained by a prefix composition, and after n of the decoding iterations generating a binary expansion corresponding to a final decoding interval.
[0240] 19. The wireless communication device of any of clauses 16-18, wherein the at least one processor in conjunction with the at least one modem, is further configured to: [0241] identify a first element (km*) of the plurality of elements of the composition, including calculating a first number based at least in part on the plurality of information bits; [0242] access a plurality of sequence quantities, each one of the sequence quantities defining a set of all sequences having a length n minus km, an energy having been reduced by an amount proportional to km, and a symbol alphabet excluding a first amplitude symbol, and using km as a variable over a range of possible candidates for k.sub.m*; [0243] access a plurality of binomial coefficients; [0244] compute a plurality of transition probabilities based on the sequence quantities and the binomial coefficients; and [0245] determine that a first one of the transition probabilities corresponds to the first number, the first one of the transition probabilities corresponding to the first element of the composition.
[0246] 20. The wireless communication device of any of clauses 16-19, wherein a first iteration of the plurality of iterations begins with a first subinterval of a first interval and defines a second subinterval, the first subinterval corresponding to the first set of symbol sequences, and the second subinterval corresponding to a second set of symbol sequences, the first subinterval having a length that is proportional to a first transition probability, the second set of symbol sequences corresponding to a reduction of the first set of symbol sequences to exclude ones of the symbol sequences that do not conform to a first element of the composition.
[0247] 21. A non-transitory computer-readable medium having program code recorded thereon for wireless communication by a wireless communication device, the program code comprising: [0248] code for generating a plurality of information bits; [0249] code for selecting a first energy level based at least in part on the plurality of information bits; [0250] code for determining a composition of an output symbol sequence from among a first set of symbol sequences having the first energy level, including performing a plurality of iterations to identify a plurality of elements of the composition, a quantity of the plurality of iterations being related to a size of a symbol alphabet; [0251] code for determining a plurality of amplitude symbols of the output symbol sequence based at least in part on the composition and the plurality of information bits; and [0252] code for transmitting a wireless packet to at least one receiving device based on the output symbol sequence.
[0253] 22. The non-transitory computer-readable medium of clause 21, wherein the code for selecting the first energy level comprises: [0254] code for accessing a first plurality of cumulative sequence quantities, each cumulative sequence quantity of the first plurality of cumulative sequence quantities representing a quantity of symbol sequences of a length (n) and having at most a respective energy level; [0255] code for processing the first plurality of cumulative sequence quantities, including selecting the first energy level based at least in part on the plurality of information bits and the first plurality of cumulative sequence quantities.
[0256] 23. The non-transitory computer-readable medium of any of clauses 21-22, wherein the code for determining the composition comprises code for identifying a first element (k.sub.m*) of the plurality of elements of the composition including: [0257] code for calculating a first number based at least in part on the plurality of information bits; [0258] code for accessing a plurality of sequence quantities, each one of the sequence quantities defining a set of all sequences having a length n minus km, an energy having been reduced by an amount proportional to km, and a symbol alphabet excluding a first amplitude symbol, and using km as a variable over a range of possible candidates for k.sub.m*; [0259] code for accessing a plurality of binomial coefficients; [0260] code for computing a plurality of transition probabilities based on the sequence quantities and the binomial coefficients; and [0261] code for determining that a first one of the transition probabilities corresponds to the first number, the first one of the transition probabilities corresponding to the first element of the composition.
[0262] 24. The non-transitory computer-readable medium of any of clauses 21-23, further comprising: [0263] code for receiving a subsequent wireless packet from a transmitting wireless communication device, the subsequent wireless packet including information having a received symbol sequence and a second energy level and defined by the symbol alphabet; and [0264] code for decoding the subsequent wireless packet, wherein decoding comprises: computing the second energy level, obtaining a second composition of the received symbol sequence by counting symbol occurrences within the subsequent wireless packet; performing a plurality of decoding iterations, each decoding iteration including computing a plurality of transition probabilities and a decoding interval constrained by a prefix composition, and after n of the decoding iterations generating a binary expansion corresponding to a final decoding interval.
[0265] 25. A wireless communication device configured to encode a plurality (k) of information bits, the wireless communication device comprising: [0266] means for accessing a first plurality of cumulative sequence quantities, each cumulative sequence quantity of the first plurality of cumulative sequence quantities representing a quantity of symbol sequences of a length (n) and having at most a respective energy level; [0267] means for selecting a first energy level based at least in part on the plurality of information bits and the first plurality of cumulative sequence quantities; [0268] means for determining a composition of an output symbol sequence from among a first set of symbol sequences having the first energy level, including; [0269] means for determining a plurality (n) of amplitude symbols of the output symbol sequence based at least in part on the composition and the plurality of information bits; and [0270] means for transmitting a wireless packet to at least one receiving device based on the output symbol sequence.
[0271] 26. The wireless communication device of clause 25, wherein the means for determining the composition comprises: [0272] means for performing a plurality of iterations to identify a plurality of elements of the composition, a quantity of the plurality of iterations being related to a size of a symbol alphabet.
[0273] 27. The wireless communication device of clause 26, further comprising means for identifying a first element (k.sub.m*) of the plurality of elements of the composition, comprising: [0274] means for calculating a first number based at least in part on the plurality of information bits; [0275] means for accessing a plurality of sequence quantities, each one of the sequence quantities defining a set of all sequences having a length n minus k.sub.m, an energy having been reduced by an amount proportional to k.sub.m, and a symbol alphabet excluding a first amplitude symbol, and using km as a variable over a range of possible candidates for k.sub.m*; [0276] means for accessing a plurality of binomial coefficients; [0277] means for computing a plurality of transition probabilities based on the sequence quantities and the binomial coefficients; and [0278] means for determining that a first one of the transition probabilities corresponds to the first number, the first one of the transition probabilities corresponding to the first element of the composition.
[0279] 28. The wireless communication device of clause 26, wherein a first iteration of the plurality of iterations begins with a first subinterval of an interval and defines a second subinterval, the first subinterval corresponding to the first set of symbol sequences, and the second subinterval corresponding to a second set of symbol sequences, the first subinterval having a length that is proportional to a first transition probability, the second set of symbol sequences corresponding to a reduction of the first set of symbol sequences to exclude ones of the symbol sequences that do not conform to a first element of the composition.
[0280] 29. The wireless communication device of any of clauses 25-28, wherein the means for selecting the first energy level comprises: [0281] means for performing a first function on the plurality of information bits, the first function generating a first number; [0282] means for computing a set of ratios, wherein each of the ratios is associated with a respective cumulative sequence quantity of the first plurality of cumulative sequence quantities; and [0283] means for determining that the first number corresponds to a first one of the ratios, the first one of the ratios corresponding to the first energy level.
[0284] 30. The wireless communication device of any of clauses 25-29, further comprising: [0285] means for receiving a subsequent wireless packet from a transmitting wireless communication device, the subsequent wireless packet including information having a received symbol sequence and a second energy level and defined by a symbol alphabet; and [0286] means for decoding the subsequent wireless packet, wherein decoding comprises: computing the second energy level, obtaining a second composition of the received symbol sequence by counting symbol occurrences within the subsequent wireless packet; performing a plurality (n) of decoding iterations, each decoding iteration including computing a plurality of transition probabilities and a decoding interval constrained by a prefix composition, and after n of the decoding iterations generating a binary expansion corresponding to a final decoding interval.
[0287] As used herein, or is used intended to be interpreted in the inclusive sense, unless otherwise explicitly indicated. For example, a or b may include a only, b only, or a combination of a and b. As used herein, a phrase referring to at least one of or one or more of a list of items refers to any combination of those items, including single members. For example, at least one of: a, b, or c is intended to cover the examples of: a only, b only, c only, a combination of a and b, a combination of a and c, a combination of b and c, and a combination of a and b and c.
[0288] The various illustrative components, logic, logical blocks, modules, circuits, operations and algorithm processes described in connection with the implementations disclosed herein may be implemented as electronic hardware, firmware, software, or combinations of hardware, firmware or software, including the structures disclosed in this specification and the structural equivalents thereof. The interchangeability of hardware, firmware and software has been described generally, in terms of functionality, and illustrated in the various illustrative components, blocks, modules, circuits and processes described above. Whether such functionality is implemented in hardware, firmware or software depends upon the particular application and design constraints imposed on the overall system.
[0289] Various modifications to the implementations described in this disclosure may be readily apparent to persons having ordinary skill in the art, and the generic principles defined herein may be applied to other implementations without departing from the spirit or scope of this disclosure. Thus, the claims are not intended to be limited to the implementations shown herein, but are to be accorded the widest scope consistent with this disclosure, the principles and the novel features disclosed herein.
[0290] Additionally, various features that are described in this specification in the context of separate implementations also can be implemented in combination in a single implementation. Conversely, various features that are described in the context of a single implementation also can be implemented in multiple implementations separately or in any suitable subcombination. As such, although features may be described above as acting in particular combinations, and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.
[0291] Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. Further, the drawings may schematically depict one or more example processes in the form of a flowchart or flow diagram. However, other operations that are not depicted can be incorporated in the example processes that are schematically illustrated. For example, one or more additional operations can be performed before, after, simultaneously, or between any of the illustrated operations. In some circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the implementations described above should not be understood as requiring such separation in all implementations, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.