Fixed-length stochastic amplitude shaping
By encoding wireless data with non-uniform amplitude distributions, the method addresses the channel capacity limitations in noisy wireless channels, achieving optimal encoding and maintaining fixed packet lengths to enhance communication efficiency.
Patent Information
- Application Number
- JP2022546516
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-02-01
- Filing Date
- 2021-02-02
- Publication Date
- 2026-01-16
- Estimated Expiration
- 2041-02-02
AI Technical Summary
Real-world wireless channels face limitations in channel capacity due to noise, and high MCSs like 1024-QAM and 4096-QAM require high signal-to-noise ratios that are difficult to achieve, leading to a gap between achievable capacity and the Shannon limit.
Perform a first encoding operation on fixed-length information blocks to shape symbol amplitudes with a non-uniform distribution, such as a Gaussian distribution, using prefix encoding to iteratively adjust bit patterns, and add padding or signaling bits to maintain a fixed block length.
This approach bridges the gap between actual channel capacity and the Shannon limit, enabling optimal encoding and maintaining a fixed packet length, allowing the MAC layer to determine padding without additional shaping operations, and supporting variable coding rates.
Smart Images

Figure 0007801231000003 
Figure 0007801231000004 
Figure 0007801231000005
Abstract
Description
[Technical Field]
[0001] The present disclosure relates generally to wireless communications, and more particularly to encoding data to achieve a non-uniform amplitude distribution using fixed-length information blocks. [Background technology]
[0002] A wireless local area network (WLAN) may be formed by one or more access points (APs), which provide a shared wireless communication medium for use by several client devices, also called stations (STAs). The basic element of a WLAN, which conforms to the Institute of Electrical and Electronics Engineers (IEEE) 802.11 family of standards, is a basic service set (BSS) managed by the AP. Each BSS is identified by a basic service set identifier (BSSID) advertised by the AP. The AP periodically broadcasts beacon frames to enable any STA within wireless range of the AP to establish or maintain a communication link with the WLAN.
[0003] Transmitting and receiving devices may support the use of various modulation and coding schemes (MCS) for transmitting and receiving data to optimally utilize wireless channel conditions, e.g., to increase throughput, reduce latency, or impose various quality of service (QoS) parameters. For example, existing technology supports the use of up to 1024-QAM, with 4096-QAM (also known as "4k QAM") also expected to be implemented. 1024-QAM and 4096-QAM, among other MCS, involve the use of low-density parity check (LDPC) coding. LDPC coding operations may be performed on data bits of a code block, e.g., to add redundancy for forward error correction (FEC). Summary of the Invention [Problem to be solved by the invention]
[0004] Real-world wireless channels typically contain noise, which constrains the maximum rate at which data can be communicated. The Shannon-Hartley theory establishes an upper bound or constraint (called the "Shannon limit") that represents a link's absolute channel capacity, i.e., the maximum amount of error-free information per unit time that can be transmitted over a particular bandwidth in the presence of noise. Unfortunately, the channel capacity achievable with LDPC coding falls far short of the Shannon limit, even for high MCSs. Additionally, a high signal-to-noise ratio (SNR) is required to be able to use high MCSs, including 1024-QAM and 4096-QAM, but the SNR required for such high MCSs can be difficult to obtain. [Means for solving the problem]
[0005] The systems, methods, and devices of the present disclosure each have several innovative aspects, no single one of which is solely responsible for the desirable attributes disclosed herein.
[0006] One innovative aspect of the subject matter described in this disclosure can be implemented as a method of wireless communication. The method may be performed by a wireless communication device and includes the steps of obtaining a first information block including a fixed number (N1) of information bits, and receiving a number (L S performing a first encoding operation on one or more of the information bits to produce L amplitude-shaped bits; S The amplitude-shaped bits are then transferred to a certain number (L US a step of arranging the information bits into a second information block containing L S and L USis less than or equal to a fixed amount (N2); selectively adding one or more padding bits to the second information block such that a length of the second information block is N2; adding one or more signaling bits to the second information block indicating the number of amplitude-shaped bits in the second information block; performing a second encoding operation on the second information block to produce one or more codewords, each codeword including a respective subset of the bits of the second information block and one or more parity bits resulting from the second encoding operation; arranging the subset of the bits of the second information block and the parity bits into a plurality of symbols, each symbol having an amplitude based on the respective bit arranged in the symbol, and the first encoding operation produces amplitude-shaped bits such that the amplitudes of the plurality of symbols have a non-uniform distribution; and transmitting a wireless packet including the plurality of symbols to at least one receiving device.
[0007] In some implementations, performing the first encoding operation may include iteratively selecting, from a look-up table (LUT), a pattern of bit values that matches the subset of information bits, where the LUT stores a plurality of patterns of bit values corresponding to a respective plurality of patterns of amplitude-shaped bits, and the plurality of patterns of amplitude-shaped bits includes a pattern of amplitude-shaped bits that corresponds to the selected pattern of bit values. In some implementations, the iterative selection of the pattern of bit values further comprises, for each iteration, selecting a first pattern of bit values that matches the first subset of information bits. S and L US In some implementations, the iterative selection of patterns of bit values may further comprise determining whether the sum of L is greater than N2 by selecting a first pattern of bit values. S and L USis greater than N2, aborting the first encoding operation without selecting the first pattern of bit values.
[0008] In some other implementations, the iterative selection of patterns of bit values further comprises selecting a first pattern of bit values to S and L US is greater than N2, selecting a second pattern of bit values that matches a second subset of the information bits to generate L S and L US In some aspects, the second subset of information bits may be larger than the first subset of information bits. In some implementations, the iterative selection of the pattern of bit values may further include determining whether the sum of L S and L US In some implementations, the addition of one or more signaling bits may include a step of determining that the resulting sum of N is less than or equal to N, and then a step of determining that the resulting sum of N is less than or equal to N. In some implementations, the addition of one or more signaling bits may include a step of determining that the resulting sum of N is less than or equal to N, and the step of determining that the resulting sum of N is less than or equal to N. PAM ), determining an estimated number of amplitude-shaped bits associated with the wireless packet based on the length of each pattern of amplitude-shaped bits in the LUT, and determining a number of symbols (L) associated with the estimated number of amplitude-shaped bits. EST ), wherein the one or more signaling bits are PAM and L EST represents a value equal to the difference between
[0009] In some other implementations, the addition of one or more signaling bits increases the number of symbols associated with the amplitude-shaped bits (L PAM ), wherein the one or more signaling bits are L PAMIn some other implementations, the addition of one or more signaling bits represents a value equal to the number of symbols associated with the amplitude-shaped bits (L PAM ), determining an average number of amplitude-shaped bits that can be coded based on the first coding operation under N1 information bits, and determining a number of symbols (L MEAN ), wherein the one or more signaling bits are PAM and L MEAN In some other implementations, adding one or more signaling bits may include determining a number of symbols associated with information bits in the second information block, wherein the one or more signaling bits represent a value equal to the number of symbols associated with information bits in the second information block. Furthermore, in some implementations, the one or more signaling bits may represent a value equal to the number of padding bits included in the second information block.
[0010] Another innovative aspect of the subject matter described in this disclosure may be implemented in a wireless communication device. In some implementations, the wireless communication device may include at least one modem, at least one processor communicatively coupled to the at least one modem, and at least one memory communicatively coupled to the at least one processor and storing processor-readable code. In some implementations, execution of the processor-readable code by the at least one processor causes the wireless communication device to perform operations, including obtaining a first information block including a fixed number (N1) of information bits, and S performing a first encoding operation on one or more of the information bits to produce L amplitude-shaped bits; S The amplitude-shaped bits are then transferred to a certain number (L US ) information bits into a second information block containing LS and L US is less than or equal to a fixed amount (N2); selectively adding one or more padding bits to the second information block such that a length of the second information block is N2; adding one or more signaling bits to the second information block indicating the number of amplitude-shaped bits in the second information block; performing a second encoding operation on the second information block to produce one or more codewords, each codeword including a respective subset of the bits of the second information block and one or more parity bits resulting from the second encoding operation; arranging the subset of the bits of the second information block and the parity bits into a plurality of symbols, each symbol having an amplitude based on the respective bit arranged in the symbol, the first encoding operation producing amplitude-shaped bits such that the amplitudes of the plurality of symbols have a non-uniform distribution; and transmitting a wireless packet including the plurality of symbols to at least one receiving device.
[0011] Another innovative aspect of the subject matter described in this disclosure may be implemented as a method of wireless communication. The method may be performed by a wireless communication device and may include the steps of: receiving a wireless packet including a plurality of symbols having a plurality of amplitudes, the plurality of symbols representing a plurality of codeword bits, the plurality of amplitudes having a non-uniform distribution; arranging the plurality of codeword bits into one or more codewords; performing a first decoding operation on the one or more codewords to produce one or more respective decoded codeblocks, each decoded codeblock including a plurality of decoded codeword bits and one or more parity bits; arranging the plurality of decoded codeword bits into an information block having a fixed length (N2); detecting one or more signaling bits of the information block based on the fixed length N2 of the information block; and determining a certain number (L) of the information block in accordance with values associated with the one or more signaling bits. S identifying a number (L DS performing a second decoding operation on the amplitude-shaped bits to produce L deshaped bits; DS and based on the fixed length (N1) associated with the decoded information block, a certain number (L US and arranging the deshaped and unshaped bits into a decoded information block having a fixed length N1.
[0012] In some implementations, the amplitude-shaped bits may represent the most significant bits (MSBs) of the information block. US and L DS may be equal to N2. In some implementations, the method further comprises: USIn some implementations, the discarded bits may represent least significant bits (LSBs) of the information block.
[0013] In some implementations, performing the second decoding operation may include selecting, from a LUT, a pattern of deshaped bits that matches the subset of amplitude-shaped bits, where the LUT stores a plurality of patterns of deshaped bits corresponding to a respective plurality of patterns of amplitude-shaped bits, where the plurality of deshaped bits includes the selected pattern of deshaped bits. In some implementations, determining the number of amplitude-shaped bits includes determining an estimated number of amplitude-shaped bits associated with the wireless packet based on a length of each pattern of amplitude-shaped bits in the LUT; and determining a number of symbols (L) associated with the estimated number of amplitude-shaped bits. EST ) and determining L EST and the number of symbols (L) associated with amplitude-shaped bits based on the difference between the PAM ) and determining L PAM and determining a number of amplitude-shaped bits associated with the
[0014] In some other implementations, determining the number of amplitude-shaped bits includes determining the number of symbols (L) associated with the amplitude-shaped bits based on values associated with one or more signaling bits. PAM ) and determining L PAMIn some other implementations, determining the number of amplitude-shaped bits may include determining an average number of amplitude-shaped bits that are decodable based on the second decoding operation under the N information bits, and determining a number of symbols (L) associated with the average number of amplitude-shaped bits. MEAN ) and determining L MEAN and the number of symbols (L) associated with amplitude-shaped bits based on the difference between the PAM ) and determining L PAM Furthermore, in some implementations, determining the number of amplitude-shaped bits may include determining the number of padding bits to be included in the information block based on values associated with one or more signaling bits; US , and determining the number of amplitude-shaped bits based on the number of padding bits.
[0015] Another innovative aspect of the subject matter described in this disclosure may be implemented in a wireless communication device. In some implementations, the wireless communication device may include at least one modem, at least one processor communicatively coupled to the at least one modem, and at least one memory communicatively coupled to the at least one processor and storing processor-readable code. In some implementations, execution of the processor-readable code by at least one processor causes a wireless communication device to perform operations, the operations including receiving a wireless packet including a plurality of symbols having a plurality of amplitudes, the plurality of symbols representing a plurality of codeword bits, the plurality of amplitudes having a non-uniform distribution; arranging the plurality of codeword bits into one or more codewords; performing a first decoding operation on the one or more codewords to produce one or more respective decoded code blocks, each decoded codeblock including a plurality of decoded codeword bits and one or more parity bits; arranging the plurality of decoded codeword bits into an information block having a fixed length (N2); detecting one or more signaling bits of the information block based on the fixed length N2 of the information block; and determining a certain number (L) of the information block among the signaling bits based on values associated with the one or more signaling bits. S ) amplitude-shaped bits and a certain number (L DS performing a second decoding operation on the amplitude-shaped bits to produce L deshaped bits; DS and based on the fixed length (N1) associated with the decoded information block, a certain number (L US and arranging the deshaped and unshaped bits into a decoded information block having a fixed length N1.
[0016] The details of one or more implementations of the subject matter described in this disclosure are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages will become apparent from the description, drawings, and claims. It should be noted that the relative dimensions of the following figures may not be drawn to scale. [Brief explanation of the drawings]
[0017] [Figure 1] 1 is a pictorial diagram of an exemplary wireless communication network. [Figure 2A] 1 illustrates an exemplary protocol data unit (PDU) that can be used for communication between an access point (AP) and several stations (STAs). [Figure 2B] 2B illustrates exemplary fields in the PDU of FIG. 2A. [Figure 3] FIG. 1 is a block diagram of an example wireless communication device. [Figure 4A] FIG. 1 is a block diagram of an exemplary access point (AP). [Figure 4B] FIG. 1 is a block diagram of an exemplary station (STA). [Figure 5] 1 is a flowchart illustrating an example process for wireless communication supporting amplitude shaping, according to some implementations. [Figure 6A] FIG. 10 is a flow diagram for supporting amplitude shaping, according to some implementations. [Figure 6B] FIG. 10 is a flow diagram for supporting amplitude shaping, according to some implementations. [Figure 7] FIG. 1 illustrates an exemplary look-up table (LUT) that supports amplitude shaping, according to some implementations. [Figure 8] 1 is a flowchart illustrating an example process for wireless communication supporting amplitude shaping, according to some implementations. [Figure 9A] FIG. 10 is a flow diagram for supporting amplitude shaping, according to some implementations. [Figure 9B] FIG. 10 is a flow diagram for supporting amplitude shaping, according to some implementations. [Figure 10] FIG. 10 is another diagram of a flow for supporting amplitude shaping, according to some implementations. [Figure 11] 1A-1C illustrate example sequences of amplitude bits that may be encoded using amplitude shaping, according to some implementations. [Figure 12A] FIG. 1 illustrates an exemplary pre-amplitude shaping information block, according to some implementations. [Figure 12B] FIG. 1 illustrates an exemplary post-amplitude shaping information block, according to some implementations. [Figure 13] FIG. 10 is another diagram of a flow for supporting amplitude shaping, according to some implementations. [Figure 14] 1 is a flowchart illustrating an example process for wireless communication supporting amplitude shaping, according to some implementations. [Figure 15] 1 is a flowchart illustrating an example process for wireless communication supporting amplitude shaping, according to some implementations. [Figure 16] FIG. 1 is a block diagram of an exemplary wireless communication device, according to some implementations. [Figure 17] FIG. 1 is a block diagram of an exemplary wireless communication device, according to some implementations. DETAILED DESCRIPTION OF THE INVENTION
[0018] Like reference numbers and designations in the various drawings indicate like elements.
[0019] The following description is directed to some specific implementations for purposes of illustrating innovative aspects of the present disclosure. However, those skilled in the art will readily recognize that the teachings herein can be applied in many different ways. The described implementations can be implemented in any device, system, or network capable of transmitting and receiving radio frequency (RF) signals in accordance with, among other things, one or more of the Institute of Electrical and Electronics Engineers (IEEE) 802.11 standard, the IEEE 802.15 standard, the Bluetooth® standard as defined by the Bluetooth Special Interest Group (SIG), or the Long Term Evolution (LTE), 3G, 4G, or 5G (New Radio (NR)) standards promulgated by the 3rd Generation Partnership Project (3GPP®). The described implementations may be implemented in any device, system, or network capable of transmitting and receiving RF signals according to one or more of the following technologies or techniques: code division multiple access (CDMA), time division multiple access (TDMA), frequency division multiple access (FDMA), orthogonal FDMA (OFDMA), single-carrier FDMA (SC-FDMA), single-user (SU) multiple-input multiple-output (MIMO), and multi-user (MU) MIMO. The described implementations may also be implemented using other wireless communication protocols or RF signals suitable for use in one or more of a wireless personal area network (WPAN), a wireless local area network (WLAN), a wireless wide area network (WWAN), or an internet of things (IoT) network.
[0020] Various aspects relate generally to encoding data for wireless communications to achieve a desired amplitude distribution, and more particularly to performing a first encoding operation on information bits of a fixed-length information block to shape the amplitudes of the resulting symbols so that the amplitudes have a non-uniform distribution. In some aspects of the non-uniform distribution, the probability associated with each amplitude generally increases with decreasing amplitude. For example, the non-uniform distribution of the symbol amplitudes may be approximately Gaussian. In some aspects, the first encoding operation is or includes a prefix encoding operation that maps one or more patterns of information bits to one or more patterns of amplitude-shaped bits such that the probability associated with encoding the information bits into symbols with smaller amplitudes is higher than the probability associated with encoding the information bits into symbols with larger amplitudes. In some aspects, the first encoding operation may also achieve the fixed-length information block at its output, at least in part, by iteratively encoding the information bits until the number of amplitude-shaped bits combined with the number of unshaped bits is equal to or exceeds a maximum payload length.
[0021] Particular implementations of the subject matter described in this disclosure may be implemented to achieve one or more of the following potential advantages: In some implementations, the described techniques may be used to bridge the gap between the channel capacity actually achieved by a transmitting device and the theoretical Shannon limit, for example, by encoding the amplitude so that the resulting amplitude distribution is approximately Gaussian. In this implementation, the packet length may be kept at a fixed size without forcing the amplitude shaping operation to maintain a fixed coding rate. By maintaining a fixed information block length before and after amplitude shaping, aspects of the present disclosure may enable a medium access control (MAC) layer to determine the number of padding bits to be added to an information block (to produce an integer number of symbols) without having to first perform an amplitude shaping operation. Furthermore, by adhering to a variable coding rate for the amplitude shaping operation, aspects of the present disclosure may support optimal encoding of the amplitude-shaped bits.
[0022] 1 shows a block diagram of an exemplary wireless communication network 100. According to some aspects, the wireless communication network 100 may be an example of a wireless local area network (WLAN), such as a Wi-Fi network (hereinafter referred to as WLAN 100). For example, the WLAN 100 may be a network implementing at least one of the IEEE 802.11 wireless communication protocol standards (such as those defined by the IEEE 802.11-2016 specification or amendments thereto, including, but not limited to, 802.11ah, 802.11ad, 802.11ay, 802.11ax, 802.11az, 802.11ba, and 802.11be). The WLAN 100 may include multiple wireless communication devices, such as an access point (AP) 102 and multiple stations (STAs) 104. Although only one AP 102 is shown, the WLAN network 100 may also include multiple APs 102.
[0023] Each of the STAs 104 may also be referred to as a mobile station (MS), a mobile device, a mobile handset, a wireless handset, an access terminal (AT), a user equipment (UE), a subscriber station (SS), or a subscriber unit, among other possibilities. The STAs 104 may represent a variety of devices, such as a mobile phone, a personal digital assistant (PDA), other handheld device, a netbook, a notebook computer, a tablet computer, a laptop, a display device (e.g., a TV, a computer monitor, a navigation system, among other possibilities), a music or other audio or stereo device, a remote control device (a “remote”), a printer, a kitchen or other home appliance, a key fob (e.g., for a passive keyless entry and start (PKES) system), among other possibilities.
[0024] A single AP 102 and the associated set of STAs 104 may be referred to as a basic service set (BSS), which is managed by the respective AP 102. In addition, FIG. 1 shows an example coverage area 106 of an AP 102, which may represent a basic service area (BSA) of the WLAN 100. The BSS may be identified to users by a service set identifier (SSID) and to other devices by a basic service set identifier (BSSID), which may be the medium access control (MAC) address of the AP 102. The AP 102 periodically broadcasts a beacon frame (“beacon”) containing the BSSID to enable any STAs 104 within wireless range of the AP 102 to “associate” or reassociate with the AP 102 to establish or maintain a respective communication link 108 (hereinafter also referred to as a “Wi-Fi link”). For example, the beacon may include an identification of the primary channel used by each AP 102, as well as a timing synchronization function for establishing or maintaining timing synchronization with the AP 102. The APs 102 may provide access to external networks to various STAs 104 in the WLAN via their respective communication links 108.
[0025] The AP 102 and the STAs 104 can function and communicate (via their respective communication links 108) in accordance with the IEEE 802.11 family of wireless communication protocol standards (such as those defined by the IEEE 802.11-2016 specification or amendments thereto, including, but not limited to, 802.11ah, 802.11ad, 802.11ay, 802.11ax, 802.11az, 802.11ba, and 802.11be). These standards define WLAN radios and baseband protocols for the PHY and medium access control (MAC) layers. The AP 102 and the STAs 104 send and receive wireless communications (hereinafter also referred to as “Wi-Fi communications”) between each other in the form of Physical Layer Convergence Protocol (PLCP) Protocol Data Units (PPDUs). The APs 102 and STAs 104 in the WLAN 100 may transmit PPDUs over an unlicensed spectrum, which may be a portion of the spectrum that includes frequency bands traditionally used by Wi-Fi technology, such as the 2.4 GHz band, the 5 GHz band, the 60 GHz band, the 3.6 GHz band, and the 700 MHz band. Some implementations of the APs 102 and STAs 104 described herein may also communicate in other frequency bands, such as the 6 GHz band, which may support both licensed and unlicensed communications. The APs 102 and STAs 104 may also be configured to communicate over other frequency bands, such as shared licensed frequency bands, in which multiple operators may have licenses to operate in the same or one or more overlapping frequency bands.
[0026] 2A illustrates an exemplary protocol data unit (PDU) 200 usable for wireless communication between an AP and several STAs. For example, the PDU 200 may be configured as a PPDU. As shown, the PDU 200 includes a PHY preamble 202 and a PHY payload 204. For example, the preamble 202 may include a legacy portion that itself includes a legacy short training field (L-STF) 206, which may consist of two BPSK symbols, a legacy long training field (L-LTF) 208, which may consist of two BPSK symbols, and a legacy signal field (L-SIG) 210, which may also consist of two BPSK symbols. The legacy portion of the preamble 202 may be configured in accordance with the IEEE 802.11a wireless communication protocol standard. The preamble 202 may also include a non-legacy portion that includes one or more non-legacy fields 212 that conform to an IEEE wireless communication protocol, such as, for example, an IEEE 802.11ac, 802.11ax, 802.11be, or later wireless communication protocol standard.
[0027] The L-STF 206 generally enables a receiving device to perform automatic gain control (AGC) and coarse timing and frequency estimation. The L-LTF 208 generally enables a receiving device to perform fine timing and frequency estimation, and also enables a receiving device to perform an initial estimation of the wireless channel. The L-SIG 210 generally enables a receiving device to determine the time length of a PDU and use the determined time length to avoid transmission on the PDU. For example, the L-STF 206, the L-LTF 208, and the L-SIG 210 may be modulated according to a binary phase shift keying (BPSK) modulation scheme. The payload 204 may be modulated according to a BPSK modulation scheme, a quadrature BPSK (Q-BPSK) modulation scheme, a quadrature amplitude modulation (QAM) modulation scheme, or another suitable modulation scheme. The payload 204 may include a PSDU that includes a data field (DATA) 214, which may carry higher layer data, for example in the form of a Medium Access Control (MAC) Protocol Data Unit (MPDU) or an Aggregated MPDU (A-MPDU).
[0028] 2B shows an example L-SIG 210 in the PDU 200 of FIG. 2A. The L-SIG 210 includes a data rate field 222, spare bits 224, a length field 226, parity bits 228, and a tail field 230. The data rate field 222 indicates the data rate (note that the data rate indicated in the data rate field 212 may not be the actual data rate of the data carried in the payload 204). The length field 226 indicates the length of the packet, e.g., in units of symbols or bytes. The parity bits 228 may be used to detect bit errors. The tail field 230 includes tail bits that may be used by a receiving device to abort the operation of a decoder (e.g., a Viterbi decoder). A receiving device may use the data rate and length indicated in the data rate field 222 and the length field 226 to determine the time length of the packet, e.g., in units of microseconds (μs) or other time units.
[0029] 3 shows a block diagram of an example wireless communication device 400. In some implementations, the wireless communication device 300 may be an example of a device for use in a STA, such as one of the STAs 104 described with reference to FIG. 1. In some implementations, the wireless communication device 300 may be an example of a device for use in an AP, such as the AP 102 described with reference to FIG. 1. The wireless communication device 300 may transmit (or output for transmission) and receive wireless communications (e.g., in the form of wireless packets). For example, a wireless communication device may be configured to send and receive packets in the form of physical layer convergence protocol (PLCP) protocol data units (PPDUs) and medium access control (MAC) protocol data units (MPDUs) that conform to IEEE 802.11 wireless communication protocol standards, such as those defined by the IEEE 802.11-2016 specification or amendments thereto, including, but not limited to, 802.11ah, 802.11ad, 802.11ay, 802.11ax, 802.11az, 802.11ba, and 802.11be.
[0030] The wireless communication device 300 may be or include a chip, system-on-chip (SoC), chipset, package, or device that includes one or more modems 302, such as Wi-Fi (IEEE 802.11 compliant) modems. In some implementations, the one or more modems 302 (collectively “modems 302”) additionally include a WWAN modem (e.g., a 3GPP 4G LTE or 5G compliant modem). In some implementations, the wireless communication device 300 also includes one or more radios 304 (collectively “radios 304”). In some implementations, the wireless communication device 306 further includes one or more processors, processing blocks, or processing elements 306 (collectively “processors 306”) and one or more memory blocks or elements 308 (collectively “memory 308”).
[0031] The modem 302 may include an intelligent hardware block or device, such as, for example, an application specific integrated circuit (ASIC), among other possibilities. The modem 302 is generally configured to implement a PHY layer. For example, the modem 302 is configured to modulate packets and output the modulated packets to the radio 304 for transmission over a wireless medium. The modem 302 is similarly configured to obtain modulated packets received by the radio 304 and demodulate the packets to provide demodulated packets. In addition to a modulator and demodulator, the modem 302 may further include digital signal processing (DSP) circuitry, an automatic gain control (AGC), a coder, a decoder, a multiplexer, and a demultiplexer. For example, while in a transmit mode, data obtained from the processor 306 is provided to the coder, which encodes the data to provide coded bits. The coded bits are then mapped (using a selected MCS) to points in a modulation constellation to provide modulated symbols. The modulated symbols are then divided into a number (N SS ) spatial streams or some number (N STS The modulated symbols in each spatial stream may be mapped to a number of space-time streams (number of space-time streams). The modulated symbols in each spatial stream or space-time stream may then be multiplexed, transformed via an inverse fast Fourier transform (IFFT) block, and subsequently provided to a DSP circuit for TX windowing and filtering. The digital signal may then be provided to a digital-to-analog converter (DAC). The resulting analog signal may then be provided to a frequency upconverter and ultimately to the radio 304. In an implementation with beamforming, the modulated symbols in each spatial stream are precoded via a steering matrix before being provided to the IFFT block.
[0032] During receive mode, the digital signal received from the radio 304 is provided to a DSP circuit, which is configured to acquire the received signal, for example, by detecting the presence of a signal and estimating an initial timing and frequency offset. The DSP circuit is further configured to digitally condition the digital signal, for example, by using channel (narrowband) filtering, analog impairment adjustment (such as correcting I / Q imbalance), and applying a digital gain to ultimately obtain a narrowband signal. The output of the DSP circuit may then be provided to an AGC, which is configured to use information extracted from the digital signal to determine an appropriate gain, for example, in one or more received training fields. The output of the DSP circuit is also coupled to a demodulator, which is configured to extract modulated symbols from the signal and, for example, calculate a log-likelihood ratio (LLR) for each bit position of each subcarrier in each spatial stream. The demodulator is coupled to a decoder, which may be configured to process the LLRs to provide decoded bits. The decoded bits from all of the spatial streams are then provided to a demultiplexer for demultiplexing. The demultiplexed bits may then be descrambled and provided to the MAC layer (processor 306) for processing, evaluation, or interpretation.
[0033] The radio 304 typically 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, the RF transmitter and receiver may each include various DSP circuits, including at least one power amplifier (PA) and at least one low-noise amplifier (LNA). The RF transmitter and receiver may then be coupled to one or more antennas. For example, in some implementations, the wireless communication device 300 may include or be coupled to multiple transmit antennas (each with a corresponding transmit chain) and multiple receive antennas (each with a corresponding receive chain). Symbols output from the modem 302 are provided to the radio 304, which then transmits the symbols via the coupled antenna. Similarly, symbols received via the antennas are obtained by the radio 304, which then provides the symbols to the modem 302.
[0034] The processor 306 may include, for example, a processing core, processing block, central processing unit (CPU), microprocessor, microcontroller, intelligent hardware block or device, such as a digital signal processor (DSP), application specific integrated circuit (ASIC), programmable logic device (PLD) such as 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 306 processes information received through the radio 304 and modem 302 and information to be output through the modem 302 and radio 304 for transmission over the wireless medium. For example, the processor 306 may implement a control plane and MAC layer configured to perform various operations related to the generation and transmission of MPDUs, frames, or packets. The MAC layer is configured to perform or facilitate frame encoding and decoding, spatial multiplexing, space-time block coding (STBC), beamforming, and OFDMA resource allocation, among other operations or techniques. In some implementations, the processor 306 may generally control the modem 302 to cause the modem to perform the various operations described above.
[0035] The memory 304 may include a tangible storage medium, such as a random access memory (RAM) or a read-only memory (ROM), or a combination thereof. The memory 304 may also store non-transitory processor or computer-executable software (SW) code, including instructions that, when executed by the processor 306, cause the processor to perform various operations described herein for wireless communication, including generating, transmitting, receiving, and interpreting MPDUs, frames, or packets. For example, various functions of the components disclosed herein, or various blocks or steps of the methods, operations, processes, or algorithms disclosed herein, may be implemented as one or more modules of one or more computer programs.
[0036] 4A shows a block diagram of an example AP 402. For example, the AP 402 may be an example implementation of the AP 102 described with reference to FIG. 1. The AP 402 includes a wireless communication device (WCD) 410 (although the AP 402 itself may also be generally referred to as a wireless communication device as used herein). For example, the wireless communication device 410 may be an example implementation of the wireless communication device 300 described with reference to FIG. 3. The AP 402 also includes multiple antennas 420 coupled with the wireless communication device 410 for transmitting and receiving wireless communications. In some implementations, the AP 402 additionally includes an application processor 430 coupled with the wireless communication device 410 and a memory 440 coupled with the application processor 430. The AP 402 further includes at least one external network interface 450 that enables the AP 402 to communicate with a core network or a backhaul network to gain access to external networks, including the Internet. For example, the external network interface 450 may include one or both of a wired (e.g., Ethernet) network interface and a wireless network interface (such as a WWAN interface). Some of the aforementioned components may communicate with others of the components directly or indirectly via at least one bus. The AP 402 further includes a housing that encloses the wireless communication device 410, the application processor 430, the memory 440, and at least a portion of the antenna 420 and the external network interface 450.
[0037] 4B shows a block diagram of an exemplary STA 404. For example, the STA 404 may be an exemplary implementation of the STA 104 described with reference to FIG. 1. The STA 404 includes a wireless communication device 415 (although the STA 404 itself may also be generally referred to as a wireless communication device as used herein). For example, the wireless communication device 415 may be an exemplary implementation of the wireless communication device 300 described with reference to FIG. 3. The STA 404 also includes one or more antennas 425 coupled with the wireless communication device 415 for transmitting and receiving wireless communications. The STA 404 additionally includes an application processor 435 coupled with the wireless communication device 415, and a memory 445 coupled with the application processor 435. In some implementations, the STA 404 further includes a user interface (UI) 455 (e.g., a touchscreen or keypad) and a display 465, which may be integrated with the UI 455 to form a touchscreen display. In some implementations, the STA 404 may further include one or more sensors 475, such as, for example, one or more inertial sensors, accelerometers, temperature sensors, barometric pressure sensors, or altitude sensors. Some of the aforementioned components may communicate with others of the components directly or indirectly via at least one bus. The STA 404 further includes a housing that encloses the wireless communication device 415, the application processor 435, the memory 445, and at least a portion of the antenna 425, the UI 455, and the display 465.
[0038] Transmitting and receiving devices may support the use of various modulation and coding schemes (MCSs) for transmitting and receiving data to optimally utilize wireless channel conditions, e.g., to increase throughput, reduce latency, or impose various quality of service (QoS) parameters. For example, existing technology supports the use of up to 1024-QAM, and 4096-QAM (also referred to as "4k QAM") is also expected to be implemented. 1024-QAM and 4096-QAM, among other MCSs, involve the use of low-density parity-check (LDPC) coding. For example, the PHY layer of a transmitting device may receive one or more MPDUs or A-MPDUs from the MAC layer of the transmitting device in the form of a PSDU. The PSDU may be arranged into multiple code blocks, each of which contains primary information (or "systematic information") in the form of information bits that represent part or all of one or more of the MPDUs. Some of the information bits (also referred to herein as "amplitude bits") in the code block are used to determine the amplitude of symbols to be modulated and transmitted to the receiving device. An LDPC encoding operation may be performed on the information bits in a code block to encode the data bits, for example, to add redundancy for forward error correction. Because LDPC encoding is an example of systematic encoding, the LDPC encoding operation does not modify the data bits; rather, the amplitude bits output from the LDPC encoder are the same as the amplitude bits input to the LDPC encoder. In other words, the values of the amplitude bits used for modulation are derived directly from the initial code block.
[0039] Generally, real-world wireless channels contain noise that imposes a limit on the maximum rate at which data can be communicated. The Shannon-Hartley theory establishes an upper bound or constraint (called the "Shannon limit") that represents the absolute channel capacity of a link, i.e., the maximum amount of error-free information per unit time that can be transmitted over a particular bandwidth in the presence of noise. Equation (1) below shows one expression of the Shannon-Hartley theory: C=B log2(1+SNR) (1)
[0040] In equation (1), C represents the channel capacity in bits per second, B represents the bandwidth in hertz, and SNR represents the signal-to-noise ratio, defined as the ratio of the average received signal power to the average power of noise and interference. Unfortunately, the channel capacity achievable with LDPC coding is significantly different from the Shannon limit, even for high MCS. In addition, a high SNR is required to be able to use high MCS, including 1024-QAM and 4096-QAM, but it can be difficult to obtain the SNR required for such high MCS.
[0041] Various aspects relate generally to encoding data for wireless communications to achieve a desired amplitude distribution, and more particularly to performing a first encoding operation on information bits of a fixed-length information block to shape the amplitudes of the resulting symbols so that the amplitudes have a non-uniform distribution. In some aspects of the non-uniform distribution, the probability associated with each amplitude generally increases with decreasing amplitude. For example, the non-uniform distribution of the symbol amplitudes may be approximately Gaussian. In some aspects, the first encoding operation is or includes a prefix encoding operation that maps one or more patterns of information bits to one or more patterns of amplitude-shaped bits such that the probability associated with encoding the information bits into symbols with smaller amplitudes is higher than the probability associated with encoding the information bits into symbols with larger amplitudes. In some aspects, the first encoding operation may also achieve a fixed-length information block at its output, at least in part, by iteratively encoding the information bits until the number of amplitude-shaped bits combined with the number of unshaped bits is equal to or greater than a maximum payload length.
[0042] Particular implementations of the subject matter described in this disclosure may be implemented to achieve one or more of the following potential advantages. In some implementations, the described techniques may be used to bridge the gap between the channel capacity actually achieved by a transmitting device and the theoretical Shannon limit, for example, by encoding the amplitude so that the resulting amplitude distribution is approximately Gaussian. In this implementation, the packet length may be kept at a fixed size without forcing the amplitude shaping operation to maintain a fixed coding rate. By maintaining a fixed information block length before and after amplitude shaping, aspects of the present disclosure may enable the MAC layer to determine the number of padding bits to be added to the information block (yielding an integer number of symbols) without having to first perform an amplitude shaping operation. Furthermore, by adhering to a variable coding rate for the amplitude shaping operation, aspects of the present disclosure may support optimal encoding of the amplitude-shaped bits.
[0043] FIG. 5 shows a flowchart illustrating an example process 500 for wireless communication supporting amplitude shaping, according to some implementations. The operations of process 500 may be performed by a transmitting device or components thereof as described herein. For example, process 500 may be performed by a wireless communication device such as wireless communication device 300 described with reference to FIG. 3. In some implementations, process 500 may be performed by a wireless communication device operating as or within an AP, such as one of APs 102 and 402 described with reference to FIGS. 1 and 4A, respectively. In some other implementations, process 500 may be performed by a wireless communication device operating as or within a STA, such as one of STAs 104 and 404 described with reference to FIGS. 1 and 4B, respectively.
[0044] At block 502, the wireless communication device performs a first encoding operation on the plurality of amplitude bits to generate a plurality of amplitude-shaped bits indicating amplitudes of a plurality of symbols. In some implementations, the first encoding operation encodes the plurality of amplitude bits to generate a plurality of amplitude-shaped bits such that the amplitudes have a non-uniform distribution. At block 504, the wireless communication device performs a second encoding operation on the plurality of amplitude-shaped bits to generate a codeword including the plurality of amplitude-shaped bits and a plurality of parity bits based at least in part on the plurality of amplitude-shaped bits. At block 506, the wireless communication device arranges the plurality of amplitude-shaped bits and the plurality of parity bits into a plurality of symbols, the respective amplitudes of each of the symbols being based at least in part on the respective amplitude-shaped bits arranged in the symbol. At block 508, the wireless communication device transmits the plurality of symbols on the plurality of subcarriers in a wireless packet to at least one receiving device.
[0045] In some implementations, the execution of the first encoding operation at block 502 (also referred to herein as an “amplitude shaping encoding operation” or simply “amplitude shaping operation”) encodes a plurality of amplitude bits to generate a plurality of amplitude-shaped bits such that the uneven distribution of symbol amplitudes is such that the probability associated with each amplitude generally increases with decreasing amplitude. For example, the uneven distribution may be approximately a Gaussian distribution centered about the central point (0,0) of the modulation constellation. As described above, such amplitude shaping may be used to increase the SNR and channel capacity, enabling greater throughput.
[0046] In some implementations, before performing the first encoding operation in block 502, the MAC layer of the wireless communication device generates an A-MPDU including multiple MPDUs. Each MPDU includes multiple data bits, including multiple information bits (also referred to as “payload bits”) and multiple control bits or multiple signaling bits (e.g., MAC signaling bits). The first encoding operation may be performed in block 502 on all or a subset of the data bits in the MPDU. For example, the information bits in each MPDU may be or include multiple bits (amplitude bits) to be used to determine the amplitude of a symbol. In some implementations, the first encoding operation may be performed in block 502 only on the amplitude bits. Additionally, in some implementations, to reduce complexity or due to the resulting effective coding rate, it may be sufficient or advantageous to perform the first encoding operation in block 502 only on, for example, the most significant bits (MSBs) of the amplitude bits (e.g., if 4 bits are normally used to encode the amplitude component of a symbol, the number of MSBs may be 3 for each symbol). In such an implementation, the first encoding operation is not performed on the remaining least significant bits (LSBs) of the magnitude bits.
[0047] Based on the MCS selected for transmission, the PHY layer may package the data bits in the MDPU (either before or after performing the first encoding operation in block 502) into a code block to be transmitted using M symbols. Each of the M symbols ultimately includes a set of n amplitude bits that indicate at least one amplitude of the symbol. In some implementations, the first n / 2 bits of the set of n amplitude bits for each symbol may indicate a first amplitude component of the symbol's amplitude along the real axis of the modulation constellation, and the second n / 2 bits of the set of n amplitude bits for each of the M symbols may indicate a second amplitude component of the symbol's amplitude along the imaginary axis of the modulation constellation. Thus, 2 of the first (real) amplitude components of each symbol may ben / 2 There may be 2 possible first amplitude levels, 2 of the second (imaginary) amplitude component of each symbol. n / 2 There may be two possible second amplitude levels.
[0048] Each of the M symbols may further include a code bit for each of the amplitude components that indicates the sign of the respective amplitude. For example, when using QAM, the first code bit of the code bit pair for each QAM symbol may indicate whether the respective first amplitude component (in-phase (i) component) along the real axis is positive or negative, and the second code bit of the code bit pair may indicate whether the respective second amplitude component (quadrature (q) component) along the imaginary axis is positive or negative. Thus, the first and second amplitude components together provide the overall amplitude of the respective QAM symbol, and the first and second code bits together indicate the quadrant of the modulation constellation in which the overall amplitude falls. For example, when using 1024-QAM, each symbol may include 10 coded bits, with the first four of the bits indicating a first (real) amplitude, another four of the bits indicating a second (imaginary) amplitude, another one of the bits indicating the sign (positive or negative) of the first amplitude, and another one of the bits indicating the sign (positive or negative) of the second amplitude.
[0049] 6A and 6B show a diagram of a flow 600 that supports amplitude shaping according to some implementations. For example, the flow 600 may illustrate aspects of the process 500. In the example shown, an information block 602 is provided to a pre-shaping parser 604 to obtain a plurality of amplitude bits on which a shaping encoder 610 performs a first encoding operation in block 502. For example, the pre-shaping parser 604 may separate or split the amplitude bits 706 from the sign bit 608 in the information block 602. In some implementations, the parser also separates or splits the amplitude bits into an MSB 606a and an LSB 606b. In some implementations, the plurality of amplitude bits provided to the shaping encoder 610 includes only the MSB 606a of the amplitude bits 706. In some other implementations, the plurality of amplitude bits may include all of the amplitude bits 706. In the example shown, the shaping encoder 610 performs a first encoding operation on the MSBs 606 a in block 502 to generate amplitude-shaped bits 612 .
[0050] In some implementations, to perform the first encoding operation in block 502, particularly to obtain a set of n amplitude bits (eight in the 1024-QAM example) indicating the first and second amplitude components, the pre-shaping parser 604 (or the shaping encoder 610 itself) may further parse the plurality of amplitude bits (e.g., the MSBs 606a) into a first stream of amplitude bits that, when coded, define the first amplitude component of the symbol and a second stream of amplitude bits that, when coded, define the second amplitude component of the symbol. For example, in some implementations, a QAM flow is implemented via two independent pulse amplitude modulation (PAM) flows. In some such implementations, the shaping encoder 610 may concurrently perform a first encoding operation on the first stream of amplitude bits to provide a first PAM symbol stream and independently perform a first encoding operation on the second stream of amplitude bits to provide a second PAM symbol stream (which may ultimately be combined with the first PAM symbol stream to obtain a QAM symbol stream).
[0051] In some implementations, performing the first encoding operation in block 502 adds redundancy to a plurality of amplitude bits (the MSBs 606a in the example of FIGS. 6A and 6B) to generate the amplitude-shaped bits 612 such that the amplitude-shaped bits 612 include more bits than the plurality of amplitude bits input to the shaping encoder 610. By adding redundancy, the shaping encoder 610 may encode the MSBs 606a to generate the amplitude-shaped bits 612 such that the amplitudes of the associated symbols have a non-uniform distribution, and in particular, a distribution such as a Gaussian distribution, such that the probability associated with each amplitude generally increases with decreasing amplitude.
[0052] In some implementations, the first encoding operation performed in block 502 is or includes a prefix encoding operation. In some such implementations, performing the prefix encoding operation in block 502 includes encoding two bits of various lengths for each symbol of the M symbols and for each of the first (real) amplitude component and the second (imaginary) amplitude component. b / 2 The method includes comparing one or more patterns of the set of patterns to the bits of the plurality of amplitude bits input to the shaping encoder 610. Again, in such an implementation, if the plurality of amplitude bits provided to the shaping encoder 706 includes all of the data bits in the code block, then b equals n. However, if the plurality of amplitude bits comprises fewer data bits than all of the data bits in the code block, for example, only the MSBs 606a of the amplitude bits 706, then b may equal the number of MSBs of the n bits for each symbol. Each of the patterns in the set of patterns may be 2 b / 2 The first two possible (real) amplitude levels or b / 2 A set of patterns may be associated with each of a number of possible second (imaginary) amplitude levels. In this way, each of the amplitude levels is associated with a respective probability of occurrence associated with a probability density function. In some implementations, the set of patterns and the associated probability density function are based on the Huffman algorithm. In some implementations, the probability density function is a binomial distribution, i.e., all probabilities in the probability density function are negative powers of two.
[0053] For example, the shaping encoder 610 may input bits of the plurality of amplitude bits (e.g., the MSB 606a) into a look-up table (LUT) that includes a set of patterns that implement a probability density function. In some such implementations, the shaping encoder 610 includes a first LUT for determining a first (real) amplitude component of the first PAM symbol stream based on the first stream of amplitude bits, and a second LUT for determining a second (imaginary) component of the second PAM symbol stream based on the second stream of amplitude bits. In some implementations, the first and second LUTs may initially be identical. However, as described below, the first and second LUTs may each be independently dynamically adjusted or replaced with a more desirable LUT as the prefix encoding operation progresses in block 502.
[0054] 7 shows an exemplary LUT 700 that supports amplitude shaping, according to some implementations. In the example shown, the LUT 700 includes eight rows 702a-702h, each row representing a pattern of bit values corresponding to a respective one of eight amplitude levels associated with a probability density function. For example, the first row 702a associated with the first (lowest) amplitude level includes a first pattern of bit values 00 associated with a probability of occurrence of 1 / 4; the second row 702b associated with the second amplitude level includes a second pattern of bit values 01 associated with a probability of occurrence of 1 / 4; the third row 702c associated with the third amplitude level includes a third pattern of bit values 111 associated with a probability of occurrence of 1 / 8; the fourth row 702d associated with the fourth amplitude level includes a fourth pattern of bit values 100 associated with a probability of occurrence of 1 / 8; and the fifth row 702e associated with the fourth amplitude level includes a fourth pattern of bit values 112 associated with a probability of occurrence of 1 / 8. The fifth row 702e, associated with an amplitude of 1 / 8, contains a fifth pattern of bit values 101 associated with a probability of occurrence of 1 / 8; the sixth row 702f, associated with the sixth amplitude level, contains a sixth pattern of bit values 1101 associated with a probability of occurrence of 1 / 16; the seventh row 702g, associated with the seventh amplitude level, contains a seventh pattern of bit values 11000 associated with a probability of occurrence of 1 / 32; and the eighth row 702h, associated with the eighth (highest) amplitude level, contains an eighth pattern of bit values 11001 associated with a probability of occurrence of 1 / 32.
[0055] In some implementations, performing the prefix encoding operation in block 502 further includes identifying a match between a bit (e.g., MSB 606a) of the plurality of amplitude bits and one of the patterns. For example, the shaping encoder 610 may compare consecutive bits of the plurality of amplitude bits with the patterns in the LUT 700. In general, with each additional matching data bit input to the LUT 700, the number of potential matching patterns decreases until only one of the patterns remains, and that remaining pattern is selected by the shaping encoder 610. In other words, the shaping encoder 610 may compare the number of next consecutive input bits of each stream of amplitude bits with one, some, or all of the respective patterns in the LUT 700 in block 502. For example, the shaping encoder 610 may compare the first two bits to one or both of the patterns in rows 702a and 702b, the first three bits to one, two, or all of the patterns in rows 702c, 702d, and 702e, the first four bits to the pattern in row 702f, or the first five bits to one or both of the patterns in rows 702g and 702h. In response to finding a match, the shaping encoder 610 may output a set of b / 2 amplitude-shaped bits 612 for each PAM symbol indicating the amplitude level associated with the respective pattern. In some implementations, the shaping encoder 610 may generally output the average number of amplitude-shaped bits 612 per PAM symbol as defined in equation (2) below.
[0056]
number
[0057] In equation (2), p kwhere k is the probability associated with each number k of input data bits. For example, based on the probability density function associated with LUT 700, the number of amplitude-shaped bits 612 output per PAM symbol is 2.6875 bits. That is, the effective coding rate for encoding eight different amplitude levels is reduced from the normally required 3 to 2.6875 as a result of amplitude shaping.
[0058] As described above, after performing a first encoding operation on a plurality of amplitude bits (e.g., MSBs 606a) in block 502 to generate amplitude-shaped bits 612, a second encoding operation may then be performed on the amplitude-shaped bits 612 in block 504. For example, a second encoder 616 may receive a code block including the amplitude-shaped bits 612 and perform a second encoding operation in block 504 on the code block to generate a codeword 618 including a second plurality of coded data bits 620. In the example shown, the second encoder 616 performs the second encoding operation of block 504 on the amplitude-shaped bits 612 (based on the MSBs 606a) as well as the LSBs 606b and the sign bit 608. Additionally, in implementations in which a shaping encoder generates signaling bits 614, such signaling bits may also be input to the second encoder 616 and encoded in the second encoding operation of block 504.
[0059] In some implementations, the second encoder 616 is a systematic encoder that performs the systematic encoding operation of block 504 such that the bits output from the second encoder 616 match those input to the second encoder. For example, in some such implementations, the second encoding operation performed is or includes a low-density parity-check (LDPC) encoding operation (and thus the second encoder 616 may hereinafter be referred to as an “LDPC encoder 616”). Thus, the resulting second plurality of coded data bits 620 may include the amplitude-shaped bits 612, the LSB 606b, the sign bit 608, and the signaling bits 614.
[0060] Performing the LDPC encoding operation in block 504 adds redundancy to the data, for example, by generating a plurality of parity bits 622 based on the amplitude-shaped bits 612, the LSBs 606b, the code bit 608, and the signaling bits 614. The parity bits 622 add redundancy to the data, for example, for forward error correction purposes, without altering the data. Thus, for each code block input to the LDPC encoder 616, the resulting codeword 618 includes a systematic portion that includes the amplitude-shaped bits 612, the LSBs 606b, the code bit 608, and the signaling bits 614 (collectively a second plurality of coded data bits 620) and a parity portion that includes the parity bits 622.
[0061] Upon performing the second encoding operation of block 504 to generate a codeword 618, the wireless communications device may order (or “arrange”) the bits of the second plurality of coded data bits 620 and the plurality of parity bits 622 into M (e.g., QAM) symbols 626 at block 506, such that each symbol includes a set of n bits indicating an amplitude within a modulation constellation. For example, as shown in FIG. 6B, an ordering (or “reordering”) module 624 may receive the codeword 618 and arrange bits from the amplitude shaped bits 612, LSBs 606b, sign bits 608, and parity bits 622 into M symbols 626. In some such implementations, the ordering module 624 receives and reorders the amplitude shaped bits 612, LSBs 606b, sign bits 608, and parity bits 622 associated with both the first and second PAM symbol streams into a single QAM symbol stream. In one 1024-QAM example where each symbol 626 includes 10 bits including n=8 magnitude bits, of which b=6 are MSBs, the alignment module 624 may take, from the codeword 618, for each of the symbols 626, a set of three magnitude bits from the amplitude shaped bits 612 encoded from the first stream of magnitude bits, as well as an magnitude bit from the LSB 606b associated with the first stream of magnitude bits, to obtain a first (real) magnitude component. Similarly, the alignment module 624 may take, from the codeword 618, for each of the symbols 626, a set of three magnitude bits from the amplitude shaped bits 612 encoded from the second stream of magnitude bits, as well as an magnitude bit from the LSB 606b associated with the second stream of magnitude bits, to obtain a second (imaginary) magnitude component.
[0062] As described above, each of the symbols 626 may further include a pair of code bits that indicate one of four quadrants in the modulation constellation in which the amplitude is located. In some implementations, the alignment module 624 may attempt to capture all of the code bits needed for the symbol 626 from the parity bits 622. As described above, because the code bits do not affect the power, it may generally be satisfactory to perform the amplitude shaping operation only on the amplitude bits 706, and in some implementations, only on the MSBs 606a. For example, based on the selected MCS, the shaping encoder 610 knows how many parity bits will be generated by the LDPC encoder 616 per code block. Thus, the shaping encoder 610 knows whether some data bits need to be used for code bits before the first encoding operation. For example, depending on the LDPC coding rate and QAM constellation size, it may be possible for all of the parity bits 622, as well as some unshaped data bits (e.g., the code bits 608), to be used as code bits in the symbol 626. This may be desirable because it means that the amplitudes of all M symbols 626 can be shaped. If dedicated code bits 608 are needed, they may be parsed from the remainder of the code block before the first encoding operation and passed directly to the LDPC encoder 616, as described above. Alternatively, the number of parity bits 622 may be greater than the number of code bits needed for the symbols 626, so some parity bits 622 must be used as amplitude bits for the symbols 626. In such cases, the shaping encoder 610 may not be able to perform the first encoding operation, and therefore amplitude shaping, on all amplitude components for all of the symbols 626 in block 502. Therefore, the achievable SNR gain may be reduced.
[0063] At block 508, the wireless communication device transmits M symbols 626 on multiple subcarriers in a wireless packet to a receiving device. In some implementations, to transmit each of the symbols 626 at block 510, a constellation mapper (e.g., a QAM mapper) 628 maps each of the symbols 626 to a point in a (e.g., QAM) modulation constellation, e.g., to obtain a complex representation 630 indicating the amplitude and phase of the symbol 626. In some implementations, the constellation mapper 628 includes multiple constellation mappers, one for each of multiple streams of symbols 626.
[0064] In some implementations, the alignment module 624 may also include a spatial stream parser that parses the symbols 626 into multiple spatial streams. In some such implementations, the spatial stream parser parses the amplitude shaped bits 612, LSB 606b, sign bit 608, and parity bits 622 separately for each spatial stream to ensure that the bits are properly placed into symbols in the different spatial streams. In some implementations, the alignment module 624 additionally includes multiple bandwidth segment parsers that parse the symbols 626 from the spatial streams into different bandwidth segments (e.g., different 80 MHz subchannels of a 160 MHz or 320 MHz bonded channel). After spatial stream parsing and bandwidth segment parsing (if performed), each different stream of parsed symbols 626 may be provided to a respective one of constellation mappers that map the symbols to points in a modulation constellation to obtain a respective stream of complex representations 630.
[0065] The modulator 632 may then modulate subcarriers of the bandwidth segment of the wireless channel based on the amplitude and phase indicated by the complex representation 630 to generate modulated symbols 634, which are then transmitted to a receiving device via a combined transmit chain and antenna. For example, continuing with the example presented above, after constellation mapping, the stream of complex representations 630 may be provided to respective tone mappers of the modulator 632, which map the complex representations to respective subcarriers (or “tones”) of the wireless channel. In some implementations, the modulator 632 further includes a bandwidth segment deparser that deparses the different bandwidth segment streams into multiple spatial streams of symbols. The spatial streams may then be provided to a spatial multiplexer that performs spatial mapping on the symbols. The spatially mapped streams may then be provided to a transform block that, for example, performs an inverse discrete Fourier transform on the symbols in each stream. The resulting symbols may then be provided to analog and RF blocks for transmission. In some implementations, to ensure uniform average transmit power, the analog and RF block may apply a power scaling factor to the modulated symbols 634 in block 508 before transmission over the wireless channel based on the amount of amplitude shaping performed in the first encoding operation.
[0066] In some implementations, the wireless communication device may generate a wireless packet in the form of a PPDU that includes a PHY layer preamble before a PSDU payload that includes modulated symbols 634. The wireless communication device may transmit or output for transmission (hereinafter used interchangeably with “transmit”) the wireless packet to a receiving device using any suitable technique, including SU-MIMO, MU-MIMO, and OFDMA techniques that comply with one or more of the IEEE 802.11 family of wireless communication protocol standards (such as those defined by the IEEE 802.11-2016 specification or amendments thereto, including, but not limited to, 802.11ax and 802.11be). In some implementations, the wireless channel may be a 20 MHz, 40 MHz, 80 MHz, 160 MHz, or 320 MHz channel that includes one or more contiguous or non-contiguous portions.
[0067] 8 shows a flowchart illustrating an example process 800 for wireless communication supporting amplitude shaping, according to some implementations. The operations of process 800 may be implemented by a receiving device or components thereof as described herein. For example, process 800 may be performed by a wireless communication device such as wireless communication device 300 described with reference to FIG. 3. In some implementations, process 800 may be performed by a wireless communication device operating as or within an AP, such as one of APs 102 and 402 described with reference to FIGS. 1 and 4A, respectively. In some other implementations, process 800 may be performed by a wireless communication device operating as or within a STA, such as one of STAs 104 and 404 described with reference to FIGS. 1 and 4B, respectively.
[0068] At block 802, a wireless communication device receives a wireless packet including multiple modulated symbols on multiple subcarriers. Each received symbol includes a set of amplitude bits indicating the amplitude of the symbol. In some implementations, the amplitudes of the demodulated symbols have a non-uniform distribution. Each received symbol further includes at least one code bit indicating a quadrant in a modulation constellation in which the respective amplitude is located. At block 804, the wireless communication device rearranges the set of amplitude bits and code bits for all of the symbols into at least a plurality of amplitude-shaped bits and a plurality of parity bits. At block 806, the wireless communication device performs a first decoding operation on the at least a plurality of amplitude-shaped bits based on the plurality of parity bits to generate a first plurality of decoded data bits. At block 808, the wireless communication device performs a second decoding operation on the first plurality of decoded data bits to generate a plurality of unshaped amplitude bits.
[0069] 9A and 9B show diagrams of a flow 900 that supports amplitude shaping according to some implementations. For example, flow 900 may illustrate aspects of process 800. Process 800 and flow 900 are further presented below with respect to process 500 and flow 600 described with reference to FIGS. 6-9. For example, in some implementations, a wireless communication device receives, at block 802, a wireless packet 902 that includes a plurality of modulated symbols 634 that were transmitted from a transmitting wireless communication device at block 508 of process 500.
[0070] In some implementations, the demodulator 904 may receive the modulated symbols 634 via a coupled antenna and receive chain and demodulate the subcarriers based on the detected amplitude and phase in block 802 to generate demodulated symbols in the form of complex representations 906 that indicate the symbol amplitudes and phases, ideally identical to the complex representations 630. For example, the demodulator 904 may include analog and RF blocks that receive the wireless packet 902 and modulated symbols via multiple spatial streams spanning multiple tones in one or more bandwidth segments via one or more coupled antennas. The received symbols may then be provided to a transform block of the demodulator 904 that performs, for example, a discrete Fourier transform on the symbols in the streams. In some implementations, the demodulator 632 further includes a bandwidth segment parser that parses the different bandwidth segment streams. A tone demapper of the demodulator 632 may then demap the tones to obtain multiple spatial streams (if any) for each of the bandwidth segments.
[0071] A constellation demapper (e.g., a QAM demapper) 908 may then demap the complex representations 906 from each point in the (e.g., QAM) modulation constellation to obtain demodulated symbols 910. For example, continuing with the example presented above, the resulting stream of complex representations 906 may be provided to respective constellation demappers that provide respective spatial streams of demodulated symbols 910. Each of the demodulated symbols 910 ultimately includes a set of n amplitude bits that indicate the amplitude of the symbol. As described above in connection with process 500 and flow 600, the first n / 2 bits of the set of n amplitude bits for each demodulated symbol 910 may indicate a first amplitude component of the symbol's amplitude along the real axis of the modulation constellation, and the second n / 2 bits of the set of n amplitude bits for each demodulated symbol 910 may indicate a second amplitude component of the symbol's amplitude along the imaginary axis of the modulation constellation. Thus, the first (real) amplitude component 2n / 2 2 potential first amplitude levels, and 2 potential second (imaginary) amplitude components of each demodulated symbol 910 n / 2 There are potential second amplitude levels. As explained above, each of the demodulated symbols 910 may further include a sign bit for each of the amplitude components that indicates the sign of the respective amplitude.
[0072] As described above, at block 804, the wireless communication device rearranges the set of amplitude bits and code bits for all of the symbols into at least a plurality of amplitude-shaped bits and a plurality of parity bits. For example, the amplitude-shaped bits may include the MSB 606a. In some such examples, the set of amplitude bits may further include a plurality of unshaped bits, including, for example, the LSB 608. In some implementations, the demodulated symbols 910 may further include a plurality of code bits or signaling bits. In some implementations, the rearrangement module 912 may receive the demodulated symbols 910, including all of the amplitude bits (including the amplitude-shaped bits and any unshaped bits) and the parity bits, and reassemble them into codewords 914. For example, continuing with the example presented above, the rearrangement module 912 may also include a plurality of bandwidth segment deparsers that deparse the symbols 910 from their respective bandwidth segment streams. In some implementations, the rearrangement module 912 may also include a spatial stream deparser that deparses the symbols in the resulting spatial streams into a single stream of bits. As described above, rearrangement module 912 may then rearrange the bits from the demodulated symbols into codewords 914.
[0073] As described above, in block 806, the wireless communication device performs a first decoding operation on at least a plurality of amplitude-shaped bits based on a plurality of parity bits to generate a first plurality of decoded data bits. For example, as shown in FIG. 9B, a first decoder 916 may receive a codeword 914 and perform a first decoding operation on the codeword 914 in block 808 to provide at least a first plurality of decoded data bits based on the amplitude-shaped bits. The first decoder 916 may be a systematic decoder (e.g., an LDPC decoder) that attempts to decode the amplitude bits with the aid of the parity bits. As described above, the codeword 914 may also include unshaped amplitude bits (e.g., LSBs or sign bits). Thus, based on decoding the codeword 914, the first decoder 916 may output a decoded code block including decoded amplitude-shaped bits (e.g., MSBs) 918, decoded LSBs 920, decoded sign bits 922, and decoded signaling bits 924.
[0074] As described above, the wireless communication device performs a second decoding operation at block 808 on the amplitude-shaped bits 918 to generate unshaped amplitude bits. In some implementations, the shaping decoder 926 performs a second decoding operation (also referred to herein as an “amplitude de-shaping operation”) to remove redundancy from the amplitude-shaped bits 918 and generate unshaped amplitude bits 928 such that the number (numerical quantity) of unshaped amplitude bits 928 is less than the number of amplitude-shaped bits 918. In some implementations where the plurality of decoded data bits includes unshaped bits (e.g., LSBs 920, sign bits 922, or signaling bits 924), the second decoding operation is performed only on the amplitude-shaped bits 918 at block 808. The amplitude de-shaping operation undoes the corresponding amplitude shaping operation performed at the transmitting device such that the amplitude associated with each symbol returns to a substantially uniform distribution.
[0075] In some implementations, the second decoding operation performed in block 808 is or includes a prefix decoding operation. For example, the shaping decoder 926 may perform a prefix decoding operation in block 808 that is essentially the inverse of the prefix encoding operation described with reference to block 502 of process 500. As described above, in some implementations, the performance of the prefix decoding operation may be parallelized.
[0076] In the shown example, the deparser 930 reassembles the deshaped bits (e.g., MSBs) 928 and any LSBs 920 or sign bits 922 into one or more information blocks 932. The information blocks 932 may then be processed by a MAC layer of the wireless communication device to decode the corresponding MPDU.
[0077] As described above, the amplitude shaping encoding operation adds redundancy to the amplitude bits input to the shaping encoder, specifically, so that the number of amplitude-shaped bits output from the shaping encoder is greater than the number of amplitude bits input to the shaping encoder. Because the amplitude shaping encoding operation encodes fewer information bits to obtain the same number of symbols as could conventionally be achieved, the amplitude shaping encoding operation results in a reduction in the effective coding rate of the MPDU. Because the number of amplitude-shaped bits output from the shaping encoder may be content-dependent (depending on the values of the bits input to the shaping encoder), the effective coding rate of the shaping encoder may inherently be variable. In addition, as described above, the number of amplitude-shaped bits output from the shaping encoder may also vary. For example, when using a prefix encoding operation to perform amplitude shaping, the number of amplitude-shaped bits output from the shaping encoder may be variable.
[0078] The variable coding rate of the prefix encoding operation causes the number of amplitude-shaped bits in a packet to vary depending on the input sequence of information bits. Variable packet length can lead to complications or undesirable results in the transmission or reception of wireless packets. For example, an error in a small portion of one MPDU can cause bit-level boundary misalignment in other MPDUs. In addition, the MAC layer must know the total number of payload bits (or APEP length) to determine the number of padding bits to add to the information block to produce an integer number of symbols. In some implementations, the MAC layer may determine the packet length after performing the amplitude shaping operation and signal the packet length to the PHY layer. In some other implementations, the PHY layer may adjust the coding rate of the amplitude shaping operation to maintain a fixed rate.
[0079] Aspects of the present disclosure may further improve upon the integration of probability amplitude shaping with existing versions of the IEEE 802.11 standard by combining a fixed pre-amplitude shaping information block length with a fixed post-amplitude shaping information block length. More specifically, in this implementation, packet lengths may be kept at a fixed size without forcing the amplitude shaping operation to maintain a fixed coding rate. As used herein, the term "fixed" refers to a known quantity that does not change or fluctuate across multiple information blocks. By maintaining a fixed information block length before and after amplitude shaping, aspects of the present disclosure may enable the MAC layer to determine the number of padding bits to be added to an information block (yielding an integer number of symbols) without having to first perform an amplitude shaping operation. Furthermore, by adhering to a variable coding rate for the amplitude shaping operation, aspects of the present disclosure may support optimal encoding of amplitude-shaped bits.
[0080] In some implementations, the transmitting device may achieve a fixed amplitude-shaped information block length (N) by imposing a condition on the maximum payload length that can be attributed, at least in part, to the amplitude shaping operation. More specifically, the shaping encoder may iteratively encode the information bits of the pre-amplitude-shaping information block until the condition is met or exceeded. In other words, the amplitude shaping operation may stop or terminate if additional iterations of the shaping operation cause the number of amplitude-shaped bits combined with the number of unshaped bits to exceed the maximum payload length. In some aspects, the maximum payload length may be equal to N. If the resulting number of amplitude-shaped bits plus the number of unshaped bits is less than N, the transmitting device may add one or more padding bits to the amplitude-shaped information block to meet the fixed block length requirement. In some implementations, the transmitting device may further add one or more signaling bits to the amplitude-shaped information block to indicate to the receiving device the number of amplitude-shaped bits in the information block.
[0081] 10 shows another diagram of a flow 1000 that supports amplitude shaping, according to some implementations. For example, flow 1000 may be another implementation of flow 600 illustrated in FIG. 6A. In the example of FIG. 10, an information block (also referred to as a pre-amplitude shaping information block) 1010 is provided as input to a parser 1020. In some implementations, the information block 1010 may have a fixed length (N1). Every wireless packet or PSDU may include one or more information blocks 1010 of length N1 by implementing flow 1000.
[0082] The parser 1020 may be an example of the pre-shaping parser 604 of FIG. 6A. In some implementations, the parser 1020 may separate or divide the information block 1010 into a number of amplitude bits 1022 and a number of unshaped bits 1024. For example, the amplitude bits 1022 may correspond to the MSBs of the information block 1010, and the unshaped bits 1024 may correspond to the LSBs of the information block 1010. In some implementations, the parser 1020 may parse a fixed number of unshaped bits 1024 to be used, for example, as sign bits in subsequent QAM mapping. The amplitude bits 1022 are provided to a shaping encoder 1030. The unshaped bits 1024 are provided directly to the padder 1040, bypassing the shaping encoder 1030.
[0083] The shaping encoder 1030 may be an example of the shaping encoder 610 of FIG. 6A . Thus, the shaping encoder 1030 may encode one or more of the amplitude bits 1022 to generate amplitude-shaped bits 1032 such that the amplitudes of the associated symbols have a non-uniform distribution. In some applications, the distribution may be such that the probability associated with each amplitude generally increases with decreasing amplitude (such as a Gaussian distribution). In some implementations, the shaping encoder 1010 is or includes a prefix encoder. As described above, performing the prefix encoding operation may include comparing a sequence of consecutive amplitude bits 1022 with one or more patterns of bit values of a set of bit value patterns having non-uniform lengths. The bit value patterns may be defined such that each of the bit value patterns has an associated probability of occurrence in the sequence of amplitude bits 1022, such that a bit value pattern associated with a relatively low symbol amplitude has a relatively higher probability of occurrence than a bit value pattern associated with a relatively high symbol amplitude.
[0084] Table 1 shows an exemplary look-up table (LUT) that may be used by shaping encoder 1030 to implement a prefix encoding operation configured for 4096-QAM. For example, referring to Table 1, there are 32 patterns of amplitude-shaped bits that may be output by shaping encoder 1030. Each pattern of amplitude-shaped bits may consist of a 5-bit value that represents the magnitude of either the in-phase (I) or quadrature (Q) component of the amplitude of the associated symbol. Each pattern of amplitude-shaped bits is associated with a respective symbol amplitude. For example, there are 32 different potential patterns of amplitude-shaped bits and associated amplitude level values ranging from 1 to 63 (odd numbers only).
[0085] [Table 1]
[0086] As shown in Table 1, there are 32 possible patterns of amplitude bits that can be input to the shaping encoder 1030. Each pattern of amplitude bits has a probability of occurrence associated with a probability density function (PMF), where PMF = [8, 8, 8, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1] / 128. For example, referring to equation (2), the prefix encoding table above (Table 1) has an effective coding rate of 0.9500. However, the actual coding rate may vary depending on the value of the amplitude bits 1022. For example, a 4-bit input sequence "0011" may be encoded as a 5-bit output sequence "10000," resulting in a coding rate less than 1. On the other hand, a 7-bit input sequence "1100001" may be encoded as a 5-bit output sequence "00000," resulting in a coding rate greater than 1. As explained above, variable packet lengths may lead to complications or undesirable results in the transmission or reception of wireless packets.
[0087] In some implementations, the shaping encoder 1030 may iteratively encode the sequence of amplitude bits 1022 until the resulting number of payload bits (including the amplitude shaped bits 1032, the unshaped bits 1024, and any remaining amplitude bits 1022 not yet encoded by the shaping encoder 1030) is greater than or equal to the maximum payload length (N2). More specifically, in each iteration, the shaping encoder 1030 selects another sequence of amplitude bits 1022 that matches a pattern of bit values in the prefix LUT and determines whether encoding the selected sequence of amplitude bits 1022 would cause the total number of payload bits to exceed the maximum payload length. In some implementations, if additional iterations would cause the total number of payload bits to exceed the maximum payload length, the shaping encoder 1030 may stop or terminate the prefix encoding operation without encoding the selected sequence of amplitude bits 1022. In some other implementations, if additional iterations of the prefix encoding operation cause the total number of payload bits to exceed the maximum payload length, the shaping encoder 1030 may scan one or more additional bit values of the remaining amplitude bits 1022 to determine whether encoding another sequence of amplitude bits 1022 would cause the total number of payload bits to meet the maximum payload length requirement.
[0088] FIG. 11 shows an example sequence of amplitude bits 1100 that may represent the next seven bits ("0001000") provided as input to shaping encoder 1030. Encoding the first four bits ("0001") of sequence 1100 may yield five amplitude-shaped bits (corresponding to the output pattern "10011" in Table 1) while leaving three unshaped bits. This results in a total of eight payload bits being output by shaping encoder 1030 in response to input sequence 1100. If the iterative encoding operation can only support an additional seven payload bits before reaching the maximum payload length, shaping encoder 1030 may not be able to encode the first four bits of sequence 1100. However, encoding the last six bits ("001000") of sequence 1100 may leave only one unshaped bit while yielding five amplitude-shaped bits (corresponding to the output pattern "00111" in Table 1). This causes only six payload bits to be output by shaping encoder 1030 in response to input sequence 1100. As a result, by scanning three additional bits of input sequence 1100, shaping encoder 1030 can encode a larger number of amplitude-shaped bits while still complying with the maximum payload length requirement.
[0089] At the conclusion or termination of the prefix encoding operation, the shaping encoder 1030 may provide the amplitude-shaped bits 1032 and any unshaped bits 1034 (corresponding to the remaining amplitude bits 1022 not encoded by the shaping encoder 1030) to the padder 1040. Additionally, the shaping encoder 1030 may output one or more signaling bits 1036 indicating the length or number of the amplitude-shaped bits 1032. In some implementations, the signaling bits 1036 may have a value representing the number of amplitude-shaped bits 1032. In some other implementations, the value of the signaling bits 1036 may be compressed to reduce signaling overhead. As described above, multiple amplitude-shaped bits 1032 are used to represent the amplitude of a single PAM symbol. For example, in a 4096-QAM configuration, a codeword of length 1944 may be encoded using 324 PAM symbols. The number of shaped PAM symbols (or PAM symbols configured to have a non-uniform amplitude distribution) depends on the number of amplitude-shaped bits 1032 in the codeword. However, the number of shaped PAM symbols (L PAM ) is the number of amplitude-shaped bits (L US ) smaller than (L PAM <L US ) In some implementations, the shaping encoder 1030 determines the number of shaped PAM symbols (L) associated with the 1032 amplitude-shaped bits. PAM ) can be determined, and L PAM , and outputs one or more signaling bits 1036 having a value representing:
[0090] In some other implementations, the shaping encoder 1030 may generate a mean or average number of shaped PAM symbols (L) that may be represented by 1032 amplitude-shaped bits. MEAN) can be determined, and L PAM and L MEAN It is possible to output one or more signaling bits 1036 having a value representing the difference between L MEAN To determine L, the shaping encoder 1030 may first determine an average number of amplitude-shaped bits that can be coded via a particular prefix coding operation under N information bits. For example, the average number of amplitude-shaped bits may correspond to the number of amplitude-shaped bits that can be coded from N information (or amplitude) bits based on the effective coding rate of the prefix coding table. The shaping encoder 1030 then determines L based on the number of PAM symbols associated with the average number of amplitude-shaped bits. MEAN can be calculated.
[0091] In some other implementations, the shaping encoder 1030 determines the maximum number of shaped PAM symbols (L) that can be represented by 1032 of amplitude-shaped bits. MAX ) can be determined, and L PAM and L MAX It is possible to output one or more signaling bits 1036 having a value representing the difference between L MAX To determine L, the shaping encoder 1030 may first determine the maximum number of amplitude-shaped bits that can be coded via a particular prefix coding operation under N information bits. The shaping encoder 1030 may then determine L based on the number of PAM symbols associated with the maximum number of amplitude-shaped bits. MAX Alternatively, shaping encoder 1030 may calculate L as the number of PAM symbols associated with the total number of unshaped bits (including the unshaped bits 1024 output by parser 1020 and any unshaped bits 1034 output by shaping encoder 1030). PAM and L MAX The difference between the two can be determined.
[0092] In some other implementations, the shaping encoder 1030 determines the estimated number of shaped PAM symbols (L) associated with 1032 of amplitude-shaped bits based on a reverse lookup of a prefix encoding table. EST ) can be determined, and L PAM and L EST For example, a reverse lookup of a prefix coding table may correspond to a decoding operation performed on the payload bits (including the amplitude shaped bits 1032, the unshaped bits 1024, and any additional unshaped bits 1034). EST To determine L, assuming that each of the payload bits may be provided as an input to a corresponding prefix decoder, the shaping encoder 1030 may first determine an estimated number of amplitude-shaped bits that may be decoded as a result of a prefix decoding operation performed on the payload bits. The shaping encoder 1030 may then calculate L based on the number of PAM symbols associated with the estimated number of amplitude-shaped bits. EST can be calculated.
[0093] Further, in some implementations, the shaping encoder 1030 may determine the number of padding bits to be added to the payload bits to meet certain conditions and output one or more signaling bits 1036 having a value representing the number of padding bits. In some implementations, the padding bits may be added to bring the total number of payload bits to the maximum payload length. Thus, the shaping encoder 1030 may determine the number of padding bits as the number of bits that fall short of the maximum payload length after adding the number of amplitude-shaped bits 1032, the number of unshaped bits 1024, and any remaining unshaped bits 1034. Because the payload bits have a fixed length (N) and the unshaped bits 1024 also have a fixed length, the number of amplitude-shaped bits 1032 may be determined by subtracting the number of unshaped bits 1024 and the number of padding bits from the total number of payload bits.
[0094] The padder 1040 aggregates or combines the amplitude-shaped bits 1032, the unshaped bits 1024, and any remaining unshaped bits 1034 into an amplitude-shaped information block 1050. In some implementations, the information block 1050 is configured to have a fixed length equal to the maximum payload length (N2). Thus, the padder 1040 may selectively add one or more padding bits 1052 to the information block 1050 as needed to achieve the maximum payload length. The padding bits 1052 may comprise all-zero values or repetitions of one or more payload bits. The padder 1040 may further add signaling bits 1036 to the end of the information block 1050 (e.g., at the LSB bit position). Note that while the number of signaling bits 1036 may be a fixed amount, they may not count toward the maximum payload length (N2). In other words, the padder 1040 may ignore the signaling bits 1036 when determining how many padding bits 1052 (if necessary) to add to the information block 1050. The resulting amplitude-shaped information block 1050 may be provided as input to a systematic encoder 1060.
[0095] Systematic encoder 1060 may be an example of systematic encoder 616 of FIG. 6A. Thus, systematic encoder 1060 may perform a systematic encoding operation on information block 1050 such that the bits output from systematic encoder 1060 match the bits input to systematic encoder 1060. In some implementations, systematic encoder 1060 is or includes an LDPC encoder. For each code block input to systematic encoder 1060, systematic encoder 1060 generates a codeword 1070 that includes a systematic portion 1072 and a parity portion 1074. Systematic portion 1072 includes information block 1050. Parity portion 1074 includes some parity bits that add redundancy to codeword 1070 and may be used in decoding codeword 1070. The codeword 1070 may then be mapped to one or more QAM symbols, as described with respect to FIG. 6B. For example, the codeword 1070 may correspond to the codeword 618 input to the alignment module 624.
[0096] In some implementations, the systematic encoder 1060 may generate multiple codewords 1070 for a given packet. For example, the bits of the pre-amplitude-shaping information block 1010 are divided into a number (N CW The length of the information block 1010 may therefore be a multiple (n1 times) of the length of the codeword (where N1=n1*N CW ). The bits of the amplitude shaping information block 1050 may be similarly coded or distributed over that number of codewords. Thus, the length of the information block 1050 may be another multiple (n times) of the codeword length (where N = n * N CWIn this manner, flow 1000 may be used to generate multiple codewords for a single wireless packet while maintaining a fixed pre-amplitude shaping information block length (N1) and a fixed post-amplitude shaping information block length (N2).
[0097] 12A shows an exemplary pre-amplitude shaping information block 1200 according to some implementations. In some implementations, the information block 1200 may be an example of the pre-amplitude shaping information block 1010 of FIG. 10. The information block 1200 has a fixed length (N1) and includes a number of shaped amplitude bits 1202 and a number of unshaped information bits 1206. In some implementations, the information block 1200 may also include a number of unshaped amplitude bits 1204. FIG. 12B shows an exemplary post-amplitude shaping information block 1210 according to some implementations. In some implementations, the information block 1210 may be an example of the post-amplitude shaping information block 1050 of FIG. 10. The information block 1210 has a fixed length and includes a number of shaped payload bits 1212, a number of unshaped payload bits 1216, and a number of signaling bits 1219. In some implementations, the information block 1210 may also include a number of additional unshaped payload bits 1214. In some other implementations, the information block 1210 may also include a number of padding bits 1218.
[0098] 10, the parser 1020 may separate the information block 1010 into a number of amplitude bits 1022 and a number of unshaped bits 1024. The unshaped bits 1024 may correspond to the unshaped information bits 1206 of the pre-amplitude shaping information block 1200, and the unshaped information bits 1206 may correspond to the unshaped payload bits 1216 of the amplitude shaping information block 1210. Thus, the unshaped information bits 1206 (and the unshaped payload bits 1216) may have a fixed length, for example, corresponding to a fixed number of LSBs of the information block 1200. The amplitude bits 1022 may include the shaped amplitude bits 1202 and the unshaped amplitude bits 1204 (if any) of the information block 1200. More specifically, the shaped amplitude bits 1202 may correspond to a subset of the amplitude bits 1022 that are encoded by the shaping encoder 1030 into amplitude shaped bits 1032. The amplitude shaped bits 1032 may correspond to the shaped payload bits 1212 of the amplitude shaped information block 1210. The unshaped amplitude bits 1204 include any remaining amplitude bits 1022 that are not encoded by the shaping encoder 1030. More specifically, the unshaped amplitude bits 1204 may correspond to any unshaped bits 1034 output by the shaping encoder 1030. Thus, the unshaped amplitude bits 1204 may be passed directly to the amplitude shaped information block 1210, e.g., as additional unshaped payload bits 1214.
[0099] As described with respect to FIG. 10 , the shaping encoder 1030 may iteratively encode the amplitude bits 1022 until the resulting number of payload bits reaches or exceeds a maximum payload length. The maximum payload length may correspond to the fixed length (N2) of the payload portion of the amplitude shaped information block 1210. As a result of this condition on the encoding operation, the shaped amplitude bits 1202 and the unshaped amplitude bits 1204 may have variable lengths depending on the actual bit values of the amplitude bits 1022. Similarly, the shaped payload bits 1212 and the additional unshaped payload bits 1214 may also have variable lengths. However, it should be noted that the number of unshaped amplitude bits 1204 translates directly into the number of additional unshaped payload bits 1214. Therefore, the total number of unshaped payload bits 1214 and 1216 in the amplitude shaped information block 1210 (L US ) is equal to the sum of the number of unshaped amplitude bits 1204 and the number of unshaped information bits 1206 in the pre-amplitude shaping information block 1200. However, the number of shaped payload bits 1212 in the post-amplitude shaping information block 1210 (L S ) is the number of shaped amplitude bits 1202 in the pre-amplitude shaping information block 1200 (N1-L US ) may differ from
[0100] As described with respect to FIG. 10 , the padder 1040 may selectively add one or more padding bits 1052 to the amplitude-shaped information block 1050 to meet the fixed length requirement. The padding bits 1052 may correspond to the padding bits 1218 of the amplitude-shaped information block 1210. Thus, the padding bits 1218 may be added to the payload bits 1212-1216, if necessary, to extend the length of the payload portion of the amplitude-shaped information block 1210 to a fixed length (N2). More specifically ... S+L US ) may have a variable length.
[0101] As described with respect to FIG. 10, the shaping encoder 1030 may also output one or more signaling bits 1036 indicating the number of amplitude-shaped bits 1032 in the amplitude-shaped information block 1050. The signaling bits 1036 may correspond to the signaling bits 1039 of the amplitude-shaped information block 1210. In some implementations, the signaling bits 1036 may indicate the maximum number of shaped payload bits 1212 that may be included in the information block 1210 (the value of N or L). S A fixed length (L) depending on the number of bit values required to specify or otherwise indicate SIG ) In some aspects, the signaling bits 1219 may have a value that represents the number of shaped payload bits 1212. In some other aspects, one or more compression techniques may be used to reduce the number of signaling bits 1219 used to indicate the number of shaped payload bits 1212 (as described with respect to FIG. 10 ).
[0102] FIG. 13 shows another diagram of a flow 1300 that supports amplitude shaping according to some implementations. For example, flow 1300 may be another implementation of flow 900 shown in FIG. 9B. In the example of FIG. 13, a received codeword 1310 is provided as input to a systematic decoder 1320. The codeword 1310 includes a systematic portion 1312 and a parity portion 1314. The codeword 1310 may be unmapped from one or more QAM symbols as described with respect to FIG. 9A. For example, the codeword 1310 may correspond to the codeword 914 output by the rearrangement module 912.
[0103] Systematic decoder 1320 may be an example of systematic decoder 916 of FIG. 9B. Thus, systematic decoder 1320 may perform a systematic decoding operation on codeword 1310 such that the bits output from systematic decoder 1320 match the bits input to systematic decoder 1320. More specifically, systematic decoder 1320 may reverse or undo the systematic encoding performed by systematic encoder 1060 of FIG. 10. In some implementations, systematic decoder 1320 is or includes an LDPC decoder that attempts to decode or recover the bits of systematic portion 1312 with the aid of parity bits 1314. The decoded bits of systematic portion 1312 may be output by systematic decoder 1320 as information block 1330. The information block 1330 is a fixed number (L) that is used to indicate the number of amplitude-shaped bits contained in the information block 1330. SIG In some implementations, the information block 1330 may contain N+L signaling bits 1332. SIG ), where N2 is the length of the payload portion of the information block 1330. The information block 1330 is provided as input to a parser 1340.
[0104] The parser 1340 may separate or divide the information block 1330 into a number of amplitude-shaped bits 1342 and a number of unshaped bits 1344. For example, the amplitude-shaped bits 1342 may correspond to the MSBs of the information block 1330, and the unshaped bits 1344 may correspond to the LSBs of the information block 1330. The parser 1340 may determine the number of amplitude-shaped bits 1342 to parse from the information block 1330 based at least in part on the value of the signaling bits 1332. The amplitude-shaped bits 1342 are provided to the shaping decoder 1350. The remaining unshaped bits 1344 are provided directly to the deparser 1360, bypassing the shaping decoder 1350. In some implementations, the signaling bits 1332 may be included in the unshaped bits 1344 passed to the deparser 1360. In some other implementations, the parser 1340 may remove or ignore the signaling bits 1332 after determining the length of the amplitude-shaped bits 1342.
[0105] In some implementations, the signaling bits 1332 may have a value that represents the number of amplitude shaped bits 1342. In some other implementations, the value of the signaling bits 1332 may be compressed (such as described with respect to FIG. 10). For example, the signaling bits 1332 may have a value that is based at least in part on the number of PAM symbols associated with the amplitude shaped bits 1342. In some implementations, the signaling bits 1332 may have a value that is based at least in part on the number of shaped PAM symbols associated with the amplitude shaped bits 1342 (L PAM ) can have a value representing L PAM The number of amplitude shaped bits 1342 included in the information block 1330 may be determined based on the number of bits associated with the information block 1330 .
[0106] In some other implementations, the signaling bit 1332 is PAMand the mean or average number of shaped PAM symbols that can be represented by the amplitude shaped bit 1342 (L MEAN ) The parser 1340 calculates L by first determining the number of amplitude-shaped bits that are codable via a particular prefix coding operation given a fixed number (N1) of information bits. MEAN For example, L MEAN may correspond to the number of amplitude-shaped bits that can be coded from the N information bits based on the effective coding rate of the prefix coding table. MEAN and L based on the difference between the values of signaling bit 1332 PAM Calculate L PAM The information block 1330 may determine the number of amplitude shaped bits 1342 included in the information block 1330 based on the number of bits associated with the .
[0107] In some other implementations, the signaling bit 1332 is PAM and the maximum number of shaped PAM symbols (L) that can be represented by the amplitude shaped bits 1342. MAX ) The parser 1340 may calculate L by first determining the maximum number of amplitude-shaped bits that can be coded via a particular prefix coding operation under N information bits. MAX The parser 1340 may then determine L based on the number of PAM symbols associated with the maximum number of amplitude-shaped bits. MAX The parser 1340 may further calculate L MAX and L based on the difference between the values of signaling bit 1332 PAM Calculate L PAM The information block 1330 may determine the number of amplitude shaped bits 1342 included in the information block 1330 based on the number of bits associated with the .
[0108] In some other implementations, the signaling bit 1332 is PAMand the estimated number of shaped PAM symbols associated with the amplitude-shaped bit 1342 (L EST ) The parser 1340 calculates L by first determining an estimated number of amplitude-shaped bits that can be decoded by the shaping decoder 1350 based on the N payload bits, assuming that each payload bit can be provided as an input to the shaping decoder 1350. EST The parser 1340 may then determine L based on the estimated number of amplitude-shaped bits and the number of PAM symbols associated with them. EST The parser 1340 may further calculate L EST and L based on the difference between the values of signaling bit 1332 PAM Calculate L PAM The information block 1330 may determine the number of amplitude shaped bits 1342 included in the information block 1330 based on the number of bits associated with the .
[0109] Further, in some implementations, the signaling bits 1332 may have a value representing the number of padding bits included in the information block 1330. As described above, the payload portion of the information block 1330 has a fixed length (N), and the number of unshaped payload bits in the information block 1330 is also fixed. Thus, the parser 1340 may determine the number of amplitude-shaped bits 1342 included in the information block 1330 by subtracting the number of padding bits and the fixed number of unshaped bits from the length of the payload portion of the information block 1330. As shown in FIG. 12B, after subtracting the number of padding bits 1218 and the number of unshaped payload bits 1216 from N, the remaining bits may include some unshaped payload bits 1214 in addition to the shaped payload bits 1212. However, by applying the same conditions or constraints to the prefix decoding operation as those that apply to the prefix encoding operation, the shaping decoder 1350 may perform amplitude de-shaping only on the shaped payload bits 1212. In other words, the unshaped payload bits 1214 may bypass the amplitude de-shaping operation even if they are provided to the shaping decoder 1350.
[0110] The shaping decoder 1350 may be an example of the shaping decoder 926 of Figure 9B. Thus, the shaping decoder 1350 may perform an amplitude de-shaping operation on the amplitude-shaped bits 1342 to recover a number of de-shaped bits 1352. More specifically, the shaping decoder 1350 may reverse or undo the amplitude shaping performed by the shaping encoder 1030 of Figure 10. In some implementations, the shaping decoder 1350 is or includes a prefix decoder. For example, the shaping decoder 1350 may perform a prefix decoding operation that is essentially the inverse of the prefix encoding operation performed by the shaping encoder 1030 described with respect to Figure 10. In some implementations, the shaping decoder 1350 may iteratively decode the amplitude-shaped bits 1342 until the number of obtained information bits (including the de-shaped bits 1352, the unshaped bits 1344, and any remaining amplitude-shaped bits 1342 that have not yet been decoded by the shaping decoder 1350) is equal to a fixed amount (N1).
[0111] 9B . In some implementations, the deparser 1360 may reassemble or combine the deshaped bits 1352 and the unshaped bits 1344 (and any remaining amplitude-shaped bits 1342 not decoded by the shaping decoder 1350) into a decoded information block 1362 having a fixed length (N1). In some aspects, the unshaped bits 1344 may include one or more padding bits 1345. In some other aspects, the unshaped bits 1344 may also include signaling bits 1332. The signaling bits 1332 and the padding bits 1345 (if any) may correspond to the LSBs of the decoded information block 1362 during the reassembly process. In some implementations, the deparser 1360 may remove any signaling bits 1332 or padding bits 1345 from the decoded information block 1362, for example, by reducing the length of the information block 1362 to N. The decoded information block 1362 may then be processed by a MAC layer of a wireless communication device implementing flow 1300 to decode the corresponding MDPU.
[0112] 14 shows a flowchart illustrating an example process 1400 for wireless communication supporting amplitude shaping, according to some implementations. In some implementations, the process 1400 may be performed by a wireless communication device operating as or within a network node, such as one of the STAs 104 or 404 described above with reference to FIGS. 1 and 4B, respectively. In some other implementations, the process 1400 may be performed by a wireless communication device operating as or within an AP, such as one of the APs 102 or 402 described above with reference to FIGS. 1 and 4A, respectively.
[0113] In some implementations, process 1400 begins at block 1402 by obtaining a first information block containing a fixed number (N1) of information bits. At block 1404, process 1400 determines a number (L S The method begins by performing a first encoding operation on one or more of the information bits, yielding L amplitude-shaped bits. In some implementations, performing the first encoding operation may include iteratively selecting, from a LUT, a pattern of bit values that matches a subset of the information bits, where the LUT stores a plurality of patterns of bit values corresponding to a respective plurality of patterns of amplitude-shaped bits, and the plurality of patterns of amplitude-shaped bits includes a pattern of amplitude-shaped bits that corresponds to the selected pattern of bit values. In some implementations, the iterative selection of patterns of bit values further comprises, for each iteration, selecting a first pattern of bit values that matches the first subset of the information bits to produce L amplitude-shaped bits. S and L US is greater than N2.
[0114] In some implementations, the iterative selection of patterns of bit values further comprises selecting a first pattern of bit values to generate a L S and L US In some other implementations, the iterative selection of the pattern of bit values may further include aborting the first encoding operation without selecting the first pattern of bit values in response to determining that the sum of L is greater than N. S and L US is greater than N2, selecting a second pattern of bit values that matches a second subset of the information bits to generate L S and L US In some aspects, the second subset of information bits may be larger than the first subset of information bits. In some implementations, the iterative selection of the pattern of bit values may further include determining whether the sum of LS and L US is less than or equal to N2, aborting the first encoding operation in response to selecting the second pattern of bit values.
[0115] At block 1406, the process 1400 S The amplitude-shaped bits are then transferred to a certain number (L US ) into a second information block containing L S and L US is less than or equal to a fixed amount (N2). At block 1408, process 1400 proceeds to selectively add one or more padding bits to the second information block such that the length of the second information block is equal to N2. At block 1410, process 1400 proceeds to add one or more signaling bits to the second information block that indicate the number of amplitude-shaped bits in the second information block. In some implementations, the addition of one or more signaling bits increases the number of symbols associated with amplitude-shaped bits (L PAM ), determining an estimated number of amplitude-shaped bits associated with the wireless packet based on the length of each pattern of amplitude-shaped bits in the LUT, and determining a number of symbols (L) associated with the estimated number of amplitude-shaped bits. EST ), wherein the one or more signaling bits are PAM and L EST represents a value equal to the difference between
[0116] In some other implementations, the addition of one or more signaling bits increases the number of symbols associated with the amplitude-shaped bits (L PAM ), wherein the one or more signaling bits are L PAMIn some other implementations, the addition of one or more signaling bits represents a value equal to the number of symbols associated with the amplitude-shaped bits (L PAM ), determining an average number of amplitude-shaped bits that can be coded based on the first coding operation under N1 information bits, and determining a number of symbols (L MEAN ), wherein the one or more signaling bits are PAM and L MEAN In some other implementations, adding one or more signaling bits may include determining a number of symbols associated with information bits in the second information block, wherein the one or more signaling bits represent a value equal to the number of symbols associated with information bits in the second information block. Furthermore, in some implementations, the one or more signaling bits may represent a value equal to the number of padding bits included in the second information block.
[0117] At block 1412, process 1400 proceeds to performing a second encoding operation on the second information block, producing one or more codewords, each codeword including a respective subset of the bits of the second information block and one or more parity bits resulting from the second encoding operation. At block 1414, process 1400 proceeds to arranging the subset of the bits of the second information block and the parity bits into a plurality of symbols, each symbol having an amplitude based on the respective bits arranged in the symbol, the first encoding operation producing amplitude-shaped bits such that the amplitudes of the plurality of symbols have a non-uniform distribution. At block 1416, process 1400 proceeds to transmitting a wireless packet including the plurality of symbols to at least one receiving device.
[0118] 15 shows a flowchart illustrating an example process 1500 for wireless communication supporting amplitude shaping, according to some implementations. In some implementations, process 1500 may be performed by a wireless communication device operating as or within a network node, such as one of the STAs 104 or 504 described above with reference to FIGS. 1 and 5B, respectively. In some other implementations, process 1500 may be performed by a wireless communication device operating as or within an AP, such as one of the APs 102 or 502 described above with reference to FIGS. 1 and 5A, respectively.
[0119] In some implementations, process 1500 begins at block 1502 by receiving a wireless packet including a plurality of symbols having a plurality of amplitudes, the plurality of symbols representing a plurality of codeword bits, the plurality of amplitudes having a non-uniform distribution. At block 1504, process 1500 proceeds to arranging the plurality of codeword bits into one or more codewords. At block 1506, process 1500 proceeds to performing a first decoding operation on one or more codewords to produce one or more respective decoded codeblocks, each decoded codeblock including a plurality of decoded codeword bits and one or more parity bits. At block 1508, process 1500 proceeds to arranging the plurality of decoded codeword bits into an information block having a fixed length (N2). At block 1510, process 1500 proceeds to detecting one or more signaling bits of the information block based on the fixed length N2 of the information block.
[0120] At block 1512, the process 1500 determines the number of amplitude-shaped bits (L) in the information block based on values associated with one or more signaling bits. S) In some implementations, the amplitude shaped bits may represent the MSBs of the information block. At block 1514, the process 1500 proceeds to identify a number (L DS and proceeding to perform a second decoding operation on the amplitude-shaped bits, yielding a subset of the amplitude-shaped bits. In some implementations, performing the second decoding operation may include selecting, from a LUT, a pattern of deshaped bits that matches the subset of the amplitude-shaped bits, wherein the LUT stores a plurality of patterns of deshaped bits corresponding to a respective plurality of patterns of amplitude-shaped bits, and the plurality of deshaped bits includes the selected pattern of deshaped bits.
[0121] In some implementations, determining the number of amplitude-shaped bits includes determining an estimated number of amplitude-shaped bits associated with the wireless packet based on the length of each pattern of amplitude-shaped bits in the LUT, and determining a number of symbols (L) associated with the estimated number of amplitude-shaped bits. EST ) and determining L EST and the number of symbols (L) associated with amplitude-shaped bits based on the difference between the PAM ) and determining L PAM In some other implementations, determining the number of amplitude-shaped bits may include determining the number of symbols (L) associated with the amplitude-shaped bits based on values associated with one or more signaling bits. PAM ) and determining L PAM and determining a number of amplitude-shaped bits associated with the
[0122] In some other implementations, determining the number of amplitude-shaped bits includes determining an average number of amplitude-shaped bits that can be decoded based on the second decoding operation given the N information bits, and determining a number of symbols (L) associated with the average number of amplitude-shaped bits. MEAN ) and determining L MEAN and the number of symbols (L) associated with amplitude-shaped bits based on the difference between the PAM ) and determining L PAM Furthermore, in some implementations, determining the number of amplitude-shaped bits may include determining the number of padding bits to be included in the information block based on values associated with one or more signaling bits; US , and determining the number of amplitude-shaped bits based on the number of padding bits.
[0123] At block 1516, the process 1500 calculates the number of deshaped bits L DS and based on the fixed length (N1) associated with the decoded information block, a certain number (L US In some implementations, the L US and L DS The sum of L may be equal to N2. US One or more bits in excess of N may be discarded from the information block. In some implementations, the discarded bits may represent the LSBs of the information block. At block 1518, process 1500 proceeds to arrange the deshaped and unshaped bits into a decoded information block having a fixed length N1.
[0124] Figure 16 shows a block diagram of an example wireless communication device 1600 according to some implementations. In some implementations, the wireless communication device 1600 is configured to perform the process 1400 described above with respect to Figure 14. The wireless communication device 1600 may be an example implementation of the wireless communication device 300 described above with reference to Figure 3. For example, the wireless communication device 1600 may be a chip, an SoC, a chipset, a package, or a device including at least one processor and at least one modem (e.g., a Wi-Fi (IEEE 802.11) modem or a cellular modem).
[0125] The wireless communication device 1600 includes a receiving component 1610, a communications manager 1620, and a transmitting component 1630. The communications manager 1620 further includes a first block configuration component 1621, a pulse amplitude encoding component 1622, a second block configuration component 1623, a padding component 1624, a signaling bit generation component 1625, a systematic encoding component 1626, and a symbol configuration component 1627. One or more portions of the components 1621-1627 may be implemented at least in part in hardware or firmware. In some implementations, at least some of the components 1621-1627 are implemented at least in part as software stored in a memory (e.g., memory 308). For example, one or more portions of the components 1621-1627 may be implemented as non-transitory instructions (or “code”) executable by a processor (e.g., processor 306) to perform the functions or operations of the respective components.
[0126] The receiving component 1610 is configured to receive RX signals from one or more other wireless communication devices over a wireless channel. The communications manager 1620 is configured to control or manage communications with one or more other wireless communication devices. In some implementations, the first block configuration component 1621 may obtain a first information block including a fixed number (N1) of information bits, and the pulse amplitude encoding component 1622 may encode a number (L S ) amplitude-shaped bits, and the second block configuration component 1623 may perform a first encoding operation on one or more of the information bits, producing L S The amplitude-shaped bits are then transferred to a certain number (L US ) information bits, and S and L USthe sum of N is less than or equal to a fixed amount (N), the padding component 1624 may selectively add one or more padding bits to the second information block such that the length of the second information block is N, the signaling bit generation component 1625 may add one or more signaling bits to the second information block indicating the number of amplitude-shaped bits in the second information block, the systematic encoding component 1626 may perform a second encoding operation on the second information block to produce one or more codewords, each codeword including a respective subset of the bits of the second information block and one or more parity bits resulting from the second encoding operation, and the symbol construction component 1627 may arrange the subset of the bits of the second information block and the parity bits into multiple symbols, each symbol having an amplitude based on the respective bit arranged in the symbol, the first encoding operation producing amplitude-shaped bits such that the amplitudes of the multiple symbols have a non-uniform distribution. The transmitting component 1630 is configured to transmit the TX signal to one or more other wireless communication devices. In some implementations, the TX signal may represent a wireless packet that includes multiple symbols.
[0127] Figure 17 shows a block diagram of an example wireless communication device 1700 according to some implementations. In some implementations, the wireless communication device 1700 is configured to perform the process 1500 described above with reference to Figure 15. The wireless communication device 1700 may be an example implementation of the wireless communication device 300 described above with reference to Figure 3. For example, the wireless communication device 1700 may be a chip, an SoC, a chipset, a package, or a device that includes at least one processor and at least one modem (e.g., a Wi-Fi (IEEE 802.11) modem or a cellular modem).
[0128] The wireless communication device 1700 includes a receiving component 1710, a communications manager 1720, and a transmitting component 1730. The communications manager 1720 further includes a codeword construction component 1721, a systematic decoding component 1722, a first block construction component 1723, a signaling bit detection component 1724, a shaped bit identification component 1725, a pulse amplitude decoding component 1726, an unshaped bit parsing component 1727, and a second block construction component 1728. Portions of one or more of the components 1721-1728 may be implemented at least in part in hardware or firmware. In some implementations, at least some of the components 1721-1728 are implemented at least in part as software stored in a memory (e.g., memory 308). For example, portions of one or more of the components 1721-1728 may be implemented as non-transitory instructions (or “code”) executable by a processor (e.g., processor 306) to perform the functions or operations of the respective components.
[0129] The receiving component 1710 is configured to receive an RX signal over a wireless channel from one or more other wireless communication devices. In some implementations, the RX signal may represent a wireless packet including multiple symbols having multiple amplitudes, the multiple symbols representing multiple codeword bits, and the multiple amplitudes having an uneven distribution. The communications manager 1720 is configured to control or manage communications with one or more other wireless communication devices. In some implementations, the codeword construction component 1721 may arrange multiple codeword bits into one or more codewords, the systematic decoding component 1722 may perform a first decoding operation on the one or more codewords to produce one or more respective decoded code blocks, each decoded code block including multiple decoded codeword bits and one or more parity bits, the first block construction component 1723 may arrange the multiple decoded codeword bits into an information block having a fixed length (N), the signaling bit detection component 1724 may detect one or more signaling bits of the information block based on the fixed length N of the information block, and the shaped bit identification component 1725 may identify a certain number (L S ) amplitude shaped bits, and the pulse amplitude decoding component 1726 may identify a number (L DS The unshaped bits component 1727 may perform a second decoding operation on the amplitude-shaped bits, yielding L (number of unshaped bits), and the unshaped bits component 1727 may perform a second decoding operation on the amplitude-shaped bits, yielding L (number of unshaped bits). DS and based on the fixed length (N1) associated with the decoded information block, a certain number (L USThe second block construction component 1728 may parse the unshaped bits (number of bits), and the second block construction component 1728 may arrange the unshaped bits and unshaped bits into a decoded information block having a fixed length N1. The transmission component 1730 may transmit the decoded information block to one or more other wireless communication devices. The device is configured to transmit a TX signal to the device.
[0130] 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 encompass the possibilities of a only, b only, c only, a and b combined, a and c combined, b and c combined, and a, b, and c combined.
[0131] The various illustrative components, logic, logic blocks, modules, circuits, operations, and algorithmic 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 herein and their structural equivalents. The interchangeability of hardware, firmware, and software is generally described in terms of functionality and is illustrated in the various exemplary components, blocks, modules, circuits, and processes described above. Whether such functionality is implemented as hardware, firmware, or software depends on the particular application and design constraints imposed on the overall system.
[0132] Example implementations are described in the following numbered clauses. 1. A method for wireless communication by a wireless communication device, comprising: obtaining a first information block containing a fixed number (N1) of information bits; A certain number (L Sperforming a first encoding operation on one or more of the information bits to produce a number of amplitude-shaped bits; L S The amplitude-shaped bits are then transferred to a certain number (L US a step of arranging the information bits into a second information block containing L S and L US is less than or equal to a fixed amount (N2); selectively adding one or more padding bits to the second information block so that the length of the second information block is equal to N2; adding one or more signaling bits to the second information block indicating the number of amplitude shaped bits in the second information block; performing a second encoding operation on the second information block to produce one or more code words, each code word including a respective subset of the bits of the second information block and one or more parity bits resulting from the second encoding operation; arranging a subset of the bits of the second information block and the parity bits into a plurality of symbols, each symbol having an amplitude based on a respective bit arranged in the symbol, and wherein the first encoding operation produces amplitude-shaped bits such that the amplitudes of the plurality of symbols have a non-uniform distribution; transmitting a wireless packet including the plurality of symbols to at least one receiving device. 2. performing a first encoding operation, 10. The method of claim 1, comprising the step of iteratively selecting, from a look-up table (LUT), a pattern of bit values that matches a subset of the information bits, the LUT storing a plurality of patterns of bit values corresponding to a respective plurality of patterns of amplitude-shaped bits, the plurality of patterns of amplitude-shaped bits including patterns of amplitude-shaped bits that correspond to the selected patterns of bit values. 3. The repeated selection of patterns of bit values For each iteration, L is generated by selecting a first pattern of bit values that matches a first subset of information bits. S and L US 3. The method of any of clauses 1 or 2, comprising determining whether the sum of is greater than N2. 4. The repeated selection of patterns of bit values further The first pattern of bit values is selected to S and L US is greater than N2, aborting the first encoding operation without selecting the first pattern of bit values. 5. The repeated selection of patterns of bit values further The first pattern of bit values is selected to S and L US is greater than N2, selecting a second pattern of bit values that matches a second subset of the information bits to generate L S and L US 4. The method of any of clauses 1 to 3, including the step of determining whether the sum of 6. The method of any of clauses 1 to 3 or 5, wherein the second subset of information bits is larger than the first subset of information bits. 7. The repeated selection of patterns of bit values further L S and L US selecting a second pattern of bit values in place of the first pattern of bit values in response to determining that the resulting sum of and a step of aborting the first encoding operation in response to selecting the second pattern of bit values. 8. The addition of one or more signaling bits The number of symbols associated with the amplitude-shaped bits (L PAM ) and determining an estimated number of amplitude-shaped bits associated with the wireless packet based on a length of each pattern of amplitude-shaped bits in the LUT; The estimated number of amplitude-shaped bits and the associated number of symbols (L EST ), wherein one or more signaling bits are determined to be L PAM and L EST 8. The method of any of clauses 1 to 7, comprising the steps of: 9. The addition of one or more signaling bits The number of symbols associated with the amplitude-shaped bits (L PAM ), and determining whether one or more signaling bits are L PAM Any of the methods in clauses 1 to 7, representing a value equal to 10. The addition of one or more signaling bits The number of symbols associated with the amplitude-shaped bits (L PAM ) and determining an average number of amplitude-shaped bits that are codable based on the first encoding operation under the N1 information bits; The average number of amplitude-shaped bits and the associated number of symbols (L MEAN ), wherein one or more signaling bits are determined to be L PAM and L MEAN 8. The method of any of clauses 1 to 7, comprising the steps of: 11. The addition of one or more signaling bits 8. The method of any of clauses 1 to 7, including determining a number of symbols associated with information bits in the second information block, wherein the one or more signaling bits represent a value equal to the number of symbols associated with information bits in the second information block. 12. The method of any of clauses 1 to 7, wherein the one or more signaling bits represent a value equal to the number of padding bits included in the second information block. 13. A wireless communication device, comprising: At least one modem; at least one processor communicatively coupled to the at least one modem; 13. A wireless communication device comprising: at least one memory communicatively coupled to at least one processor and storing processor-readable code, the processor-readable code being configured, when executed by the at least one processor in conjunction with at least one modem, to perform any one or more of the methods of clauses 1 to 12. 14. A method for wireless communication by a wireless communication device, comprising: receiving a wireless packet including a plurality of symbols having a plurality of amplitudes, the plurality of symbols representing a plurality of codeword bits, the plurality of amplitudes having a non-uniform distribution; arranging the plurality of codeword bits into one or more codewords; performing a first decoding operation on one or more codewords to produce one or more respective decoded code blocks, each decoded code block including a plurality of decoded codeword bits and one or more parity bits; arranging the plurality of decoded codeword bits into an information block having a fixed length (N2); detecting one or more signaling bits of the information block based on a fixed length N2 of the information block; The number of amplitude-shaped bits (L) in the information block is determined based on the value associated with one or more signaling bits. S ) and A certain number (L DSperforming a second decoding operation on the amplitude-shaped bits to produce (number of) deshaped bits; Number of unshaped bits L DS and the fixed length (N1) associated with the decoded information block, a certain number (L US parsing the unshaped bits; and arranging the deshaped and unshaped bits into a decoded information block having a fixed length N1. 15. The method of clause 14, wherein the amplitude-shaped bit represents the most significant bit (MSB) of the information block. 16. L US and L DS the sum of which is equal to N2, either method of clause 14 or 15. 17. L US 17. The method of any of clauses 14 to 16, further comprising the step of discarding one or more bits of the information block in excess of 18. Any of the methods of clauses 14 to 17, wherein the discarded bits represent the least significant bits (LSBs) of the information block. 19. Performing a second decryption operation comprises: 19. The method of any of clauses 14 to 18, comprising selecting a pattern of deshaped bits that matches the subset of amplitude-shaped bits from a look-up table (LUT), the LUT storing a plurality of patterns of deshaped bits corresponding to a respective plurality of patterns of amplitude-shaped bits, the plurality of deshaped bits comprising the selected pattern of deshaped bits. 20. Identifying the number of amplitude-shaped bits determining an estimated number of amplitude-shaped bits associated with the wireless packet based on a length of each pattern of amplitude-shaped bits in the LUT; The estimated number of amplitude-shaped bits and the associated number of symbols (LEST ) and L EST and the value associated with one or more signaling bits, the number of symbols (L PAM ) and L PAM and determining a number of amplitude shaped bits associated with the 21. Identifying the number of amplitude-shaped bits Based on the value associated with one or more signaling bits, the number of symbols associated with the amplitude-shaped bits (L PAM ) and L PAM and determining a number of amplitude shaped bits associated with the 22. Identifying the number of amplitude-shaped bits determining an average number of amplitude-shaped bits that are decodable based on the second decoding operation under the N1 information bits; The average number of amplitude-shaped bits and the associated number of symbols (L MEAN ) and L MEAN and the value associated with one or more signaling bits, the number of symbols (L PAM ) and L PAM and determining a number of amplitude shaped bits associated with the 23. Identifying the number of amplitude-shaped bits determining a number of padding bits to be included in the information block based on values associated with one or more signaling bits; N2, L USand determining the number of amplitude-shaped bits based on the number of padding bits. 24. A wireless communication device, comprising: At least one modem; at least one processor communicatively coupled to the at least one modem; 24. A wireless communication device comprising: at least one memory communicatively coupled to at least one processor and storing processor-readable code, the processor-readable code being configured, when executed by the at least one processor in conjunction with at least one modem, to perform any one or more of the methods of clauses 14 to 23.
[0133] Various modifications of the implementations described in this disclosure may be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other implementations without departing from the spirit or scope of the present 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 novel features disclosed herein.
[0134] In addition, various features described herein in the context of separate implementations may also be implemented in combination in a single implementation. Conversely, various features described in the context of a single implementation may also be implemented in multiple implementations separately or in any suitable subcombination. Thus, although features may be described above as working in a particular combination and may even initially be claimed as such, one or more features from the claimed combination may, in some cases, be deleted from that combination, and the claimed combination may be directed to a subcombination or a variation of the subcombination.
[0135] Similarly, while operations are shown in the figures in a particular order, this should not be understood as requiring such operations to be performed in the particular order or sequentially shown, or that all of the illustrated operations be performed, to achieve desirable results. Furthermore, the figures may generally depict one or more exemplary processes in the form of a flowchart or flow diagram. However, other operations not shown may be incorporated into the generally depicted exemplary process. For example, one or more additional operations may be performed before, after, simultaneously with, or between any of the depicted operations. In some situations, multitasking and parallel processing may be advantageous. Furthermore, the separation of various system components in the above-described implementations should not be understood as requiring such separation in all implementations, and it should be understood that the described program components and systems may generally be integrated together in a single software product or packaged in multiple software products. [Explanation of symbols]
[0136] 102 Access Points 104 stations 106 coverage areas 108 Communication Links 202 Preamble 204 PHY payload 206 L-STF 208 L-LTF .210 L-SIG 212 Non-Legacy Fields 214 Data Fields 222 Data Rate Field 224 spare bits 226 Length Field 228 parity bits 230 Tailfield 300, 400 Wireless communication devices 302 modem 304 Wireless 306 processors 308 memory 402 AP 404 STA 410 WCD 415 Wireless Communication Devices 420 Antenna 425 Antenna 430 Application Processor 435 Application Processor 440 memory 445 memory 450 external network interface 455 User Interface 465 Display 475 Sensors 602 Information Block 604 Preshaping Parser 606a MSB 606b LSB 610 Shaping Encoder 612 amplitude-shaped bits 614 signaling bits 616 Second Encoder 618 Codeword 620 coded data bits 622 parity bits 624 Array Module 626 Symbol 628 Constellation Mapper 630 Complex Number Representation 632 Modulator 634 demodulated symbols 700 LUT 902 Wireless Packets 904 Demodulator 906 Complex Number Representation 908 Constellation Reverse Mapper 910 Demodulated Symbols 912 Rearrangement Module 914 Codeword 916 First Decoder 918 Amplitude-Shaped Bits 920 LSB 922 sign bits 924 signaling bits 926 Shaping Decoder 928 unshaped amplitude bits 930 Depasa 932 Information Block 1010 Information Block 1020 Parser 1022 amplitude bits 1024 unshaped bits 1030 Shaping Encoder 1032 amplitude-shaped bits 1034 unshaped bits 1036 signaling bits 1040 Padar 1050 Information Block 1052 padding bits 1060 Systematic Encoder 1070 Codewords 1072 Systematic Part 1074 parity part 1200 Information Block 1202 shaped amplitude bits 1204 unshaped amplitude bits 1206 unshaped information bits 1210 Information Block 1212 shaped payload bits 1214 unshaped payload bits 1216 unshaped payload bits 1218 padding bits 1219 signaling bits 1310 Codeword 1312 Systematic Part 1314 Parity part 1320 Systematic Decoder 1330 Information Block 1332 signaling bits 1340 Parser 1342 amplitude-shaped bits 1344 unshaped bits 1345 padding bits 1350 Shaping Decoder 1352 unshaped bits 1360 Depasa 1362 Information Block
Claims
1. 1. A method for wireless communication by a wireless communication device, comprising: obtaining a first information block containing a fixed number (N1) of information bits; A certain number (L S performing a first encoding operation on one or more of the information bits to generate amplitude-shaped bits; Said L S a certain number (L US a step of arranging the information bits into a second information block including the information bits, Said L US the information bits are bits among the N1 information bits on which the first encoding operation is not performed, L S and L US is less than or equal to a fixed amount (N2); selectively adding one or more padding bits to the second information block so that the length of the second information block is equal to N2; adding to said second information block one or more signaling bits indicating the number of amplitude shaped bits in said second information block; performing a second encoding operation on the second information block to generate one or more codewords, each codeword comprising a respective subset of bits of said second information block and one or more parity bits resulting from said second encoding operation; arranging the subset of bits of the second information block and the parity bits into a plurality of symbols, each symbol having an amplitude based on a respective bit located in the symbol; generating the amplitude-shaped bits such that the amplitudes of the symbols have a non-uniform distribution; transmitting a wireless packet including the plurality of symbols to at least one receiving device; A method comprising:
2. said performing said first encoding operation: iteratively selecting from a look-up table (LUT) a pattern of bit values that matches the subset of information bits; the LUT stores a plurality of patterns of bit values corresponding to a respective plurality of patterns of amplitude-shaped bits; The method of claim 1 , wherein the plurality of patterns of amplitude-shaped bits includes the patterns of amplitude-shaped bits that correspond to the selected patterns of bit values.
3. said iterative selection of said patterns of bit values comprising: For each iteration, the selection of a first pattern of bit values that matches the first subset of information bits results in L S and L US determining whether the sum of The iterative selection of the patterns of bit values further comprises: Selection of the first pattern of bit values results in L S and L US is greater than N2, aborting the first encoding operation without selecting the first pattern of bit values; or The iterative selection of the patterns of bit values further comprises: Selection of the first pattern of bit values results in L S and L US is greater than N2, said selecting a second pattern of bit values that matches a second subset of said information bits results in L S and L US determining whether the sum is less than or equal to N2; the second subset of information bits is larger than the first subset of information bits, or The iterative selection of the patterns of bit values further comprises: L S and L US selecting the second pattern of bit values in place of the first pattern of bit values in response to determining that the resulting sum is less than or equal to N2; terminating the first encoding operation in response to selecting the second pattern of bit values; The method of claim 2, comprising:
4. said adding of said one or more signaling bits further comprising: The number of symbols associated with the amplitude-shaped bits (L PAM ) and determining an estimated number of amplitude-shaped bits associated with the wireless packet based on a length of each pattern of amplitude-shaped bits in the LUT; The number of symbols associated with the estimated number of amplitude-shaped bits (L EST ), wherein the one or more signaling bits are PAM and L EST represents the difference between the step and The method of claim 2, comprising:
5. adding one or more signaling bits The number of symbols associated with the amplitude-shaped bits (L PAM ), wherein said one or more signaling bits are L PAM step representing a value equal to, or The number of symbols associated with the amplitude-shaped bits (L PAM ) and determining an average number of amplitude-shaped bits that are codable based on the first coding operation under N1 information bits; The number of symbols associated with said average number of amplitude-shaped bits (L MEAN ), wherein the one or more signaling bits are PAM and L MEAN and a step of representing a value equal to the difference between The method of claim 1.
6. determining a number of symbols associated with said information bits in said second information block, said one or more signaling bits representing a value equal to the number of symbols associated with said information bits in said second information block; 2. The method of claim 1, wherein the one or more signaling bits represent a value equal to a number of padding bits included in the second information block.
7. 1. A wireless communication device, comprising: At least one modem; at least one processor communicatively coupled to the at least one modem; at least one memory communicatively coupled to the at least one processor and storing processor-readable code; wherein the processor readable code, when executed by the at least one processor in conjunction with the at least one modem, Obtaining a first information block containing a fixed number (N1) of information bits; A certain number (L S performing a first encoding operation on one or more of the information bits to generate a number of amplitude-shaped bits; Said L S a certain number (L US L S and L US is equal to or less than a fixed amount (N2), and the L US information bits are bits among the N1 information bits that are not subjected to the first encoding operation; selectively adding one or more padding bits to the second information block so that the length of the second information block is equal to N2; adding one or more signaling bits to the second information block indicating the number of amplitude-shaped bits in the second information block; performing a second encoding operation on the second information block to generate one or more codewords; each codeword comprising a respective subset of bits of said second information block and one or more parity bits resulting from said second encoding operation; arranging the subset of bits of the second information block and the parity bits into a plurality of symbols; each symbol having an amplitude based on a respective bit located in the symbol; the first encoding operation produces the amplitude-shaped bits such that the amplitudes of the plurality of symbols have a non-uniform distribution; transmitting a wireless packet including the plurality of symbols to at least one receiving device; 1. A wireless communication device configured to:
8. 1. A method for wireless communication by a wireless communication device, comprising: receiving a wireless packet comprising a plurality of symbols having a plurality of amplitudes; the plurality of symbols representing a plurality of codeword bits; the plurality of amplitudes having a non-uniform distribution; arranging the plurality of codeword bits into one or more codewords; performing a first decoding operation on the one or more codewords to generate one or more respective decoded code blocks; each decoded code block including a plurality of decoded codeword bits and one or more parity bits; arranging the plurality of decoded codeword bits into an information block having a fixed length (N2); detecting one or more signaling bits of the information block based on the fixed length N2 of the information block; Based on the value associated with the one or more signaling bits, a number of amplitude-shaped bits (L S ) and A certain number (L DS performing a second decoding operation on the amplitude-shaped bits to generate (number of) deshaped bits; The number of unshaped bits L DS and a fixed length (N1) associated with the decoded information block, a certain number (L US parsing the unshaped bits; arranging the deshaped bits and the unshaped bits into the decoded information block having the fixed length N1; A method comprising:
9. 9. The method of claim 8, wherein the amplitude-shaped bits represent most significant bits (MSBs) of the information block.
10. L US and L DS The method of claim 8, wherein the sum of is equal to N1.
11. L US and discarding one or more bits of the information block in excess of The method of claim 10.
12. said performing said second decoding operation: selecting, from a look-up table (LUT), a pattern of unshaped bits that matches the subset of amplitude-shaped bits; the LUT stores a plurality of patterns of unshaped bits corresponding to a respective plurality of patterns of amplitude-shaped bits; 9. The method of claim 8, wherein the plurality of patterns of deshaped bits includes the selected pattern of deshaped bits.
13. said determining said number of amplitude shaped bits comprises: determining an estimated number of amplitude-shaped bits associated with the wireless packet based on a length of each pattern of amplitude-shaped bits in the LUT; The number of symbols associated with the estimated number of amplitude-shaped bits (L EST ) and L EST and the value associated with the one or more signaling bits, the number of symbols (L PAM ) and L PAM determining the number of amplitude-shaped bits associated with The method of claim 12, comprising:
14. said determining said number of amplitude shaped bits comprises: Based on the value associated with the one or more signaling bits, a number of symbols (L PAM ) and L PAM determining the number of amplitude-shaped bits associated with or determining an average number of amplitude-shaped bits that are decodable based on the second decoding operation given the N1 information bits; The number of symbols associated with said average number of amplitude-shaped bits (L MEAN ) and L MEAN and the value associated with the one or more signaling bits, the number of symbols (L PAM ) and L PAM and determining the number of amplitude-shaped bits associated with The method of claim 8.
15. 1. A wireless communication device, comprising: At least one modem; at least one processor communicatively coupled to the at least one modem; at least one memory communicatively coupled to the at least one processor and storing processor-readable code; wherein the processor readable code, when executed by the at least one processor in conjunction with the at least one modem, receiving a wireless packet including a plurality of symbols having a plurality of amplitudes; the plurality of symbols representing a plurality of codeword bits; the plurality of amplitudes have a non-uniform distribution; arranging said plurality of codeword bits into one or more codewords; performing a first decoding operation on the one or more codewords to generate one or more respective decoded code blocks; each decoded code block includes a plurality of decoded codeword bits and one or more parity bits; arranging the plurality of decoded codeword bits into an information block having a fixed length (N2); Detecting one or more signaling bits of the information block based on the fixed length N2 of the information block; Based on the value associated with the one or more signaling bits, a number of amplitude-shaped bits (L S ) and A certain number (L DS performing a second decoding operation on the amplitude-shaped bits to generate (number of) deshaped bits; The number of unshaped bits L DS and a fixed length (N1) associated with the decoded information block, a certain number (L US ) unshaped bits, Arranging the deshaped bits and the unshaped bits into the decoded information block having the fixed length N1.
1. A wireless communication device configured to:
Citation Information
Patent Citations
A method for generating optical signal, and associated optical transmitter and optical receiver
EP3547572A1
Partition based distribution matcher for probabilistic constellation shaping
US10069519B1
Partial probabilistic signal shaping
US10200231B1
Multi-code probabilistic signal shaping using frequency-division multiplexing
US20190158238A1