Probability Amplitude Shaping and Forward Error Control Coding

By shaping symbol amplitudes with a non-uniform distribution and combining prefix encoding with LDPC coding, the solution enhances wireless channel capacity and spectral efficiency, addressing the limitations of existing LDPC coding in achieving high MCSs.

JP7815193B2Active Publication Date: 2026-02-17QUALCOMM INC
View PDF 9 Cites 0 Cited by

Patent Information

Application Number
JP2023184074
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2021-01-04
Filing Date
2023-10-26
Publication Date
2026-02-17
Estimated Expiration
2041-01-05

AI Technical Summary

Technical Problem

Real-world wireless channels face limitations in channel capacity due to noise, with LDPC coding falling short of the Shannon limit, and high MCSs like 1024-QAM and 4096-QAM requiring high signal-to-noise ratios that are difficult to achieve.

Method used

Implement a first encoding operation to shape symbol amplitudes with a non-uniform distribution, followed by LDPC coding, to enhance coding rates and approach the Shannon limit, using a prefix encoding operation with an effective coding rate greater than 0.5 and LDPC coding rates of 7/8 or 5/6.

Benefits of technology

The solution bridges the gap between actual channel capacity and the theoretical Shannon limit, achieving peak spectral efficiency and improving communication throughput.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007815193000012
    Figure 0007815193000012
  • Figure 0007815193000013
    Figure 0007815193000013
  • Figure 0007815193000014
    Figure 0007815193000014
Patent Text Reader

Abstract

To obtain SNRs needed for high MCSs.SOLUTION: This disclosure relates to performing a first encoding operation on data bits of a code block to shape the amplitudes of resultant symbols such that the amplitudes have a non-uniform distribution. In some aspects, the probabilities associated with the respective amplitudes generally increase with decreasing amplitude. For example, the non-uniform distribution of the amplitudes of the symbols may be approximately Gaussian. In some aspects, the first encoding operation is or includes a prefix encoding operation having an effective coding rate greater than 0.94 and less than 1. The first encoding operation is followed by a second encoding operation that also adds redundancy but does not alter data bits themselves. In some aspects, the second encoding operation is or includes a low-density parity-check (LDPC) encoding operation associated with a coding rate greater than 5 / 6.SELECTED DRAWING: Figure 12
Need to check novelty before this filing date? Find Prior Art

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. [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 communications device and may include: performing a first encoding operation on a plurality of information bits to generate a plurality of amplitude-shaped bits; ordering the plurality of amplitude-shaped bits into a plurality of code blocks, each code block having a number (M) of bits including one or more of the plurality of amplitude-shaped bits; performing a second encoding operation on the plurality of code blocks to generate a plurality of respective code words, each code word having a number (L) of bits including one or more amplitude-shaped bits of a respective code block and one or more parity bits resulting from the second encoding operation, where M / L>5 / 6; ordering the one or more amplitude-shaped bits and one or more parity bits of each of the plurality of code words into a plurality of symbols, each symbol having an amplitude based on the respective amplitude-shaped bits ordered in the symbol, the first encoding operation generating a plurality of 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, M / L = 7 / 8. In some implementations, the first encoding operation has an effective coding rate that is greater than or equal to 0.5 and less than 1. In some implementations, the first encoding operation is not performed on the plurality of unshaped information bits, and the M bits of each code block further include one or more of the plurality of unshaped bits.

[0008] In some implementations, performing the first encoding operation includes 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 respective plurality of patterns of amplitude-shaped bits, and the plurality of amplitude-shaped bits includes patterns of amplitude-shaped bits corresponding to the selected patterns of bit values. In some aspects, each of the plurality of patterns of amplitude-shaped bits may represent a respective amplitude level having a probability of occurrence based on a probability mass function (PMF). In some other aspects, each of the plurality of patterns of amplitude-shaped bits may represent two or more amplitude levels having a probability of occurrence based on the PMF.

[0009] In some implementations, the second encoding operation is based on a low-density parity check (LDPC) code. In some aspects, the LDPC code may have a coding rate equal to 7 / 8. In some other aspects, the LDPC code may have a coding rate equal to 5 / 6. In some implementations, performing the second encoding operation includes encoding M bits of each code block as a respective number (N) of codeword bits based on the LDPC code and puncturing a number (K) of codeword bits associated with each code block such that L=NK. In some aspects, M=1620, N=1944, and K≧90. In some other aspects, M=1701, N=2106, and K=162. In some implementations, puncturing is not performed on the amplitude-shaped bits.

[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 includes: performing a first encoding operation on a plurality of information bits to generate a plurality of amplitude-shaped bits; ordering the plurality of amplitude-shaped bits into a plurality of code blocks, each code block having a number (M) of bits including one or more of the plurality of amplitude-shaped bits; and performing a second encoding operation on the plurality of code blocks to generate a plurality of respective code words, each code word resulting from one or more amplitude-shaped bits of a respective code block and the second encoding operation. the first encoding operation has a number (L) of bits including one or more parity bits corresponding to the amplitude-shaped bits of each of the plurality of codewords, where M / L>5 / 6; and arranging the one or more amplitude-shaped bits and the one or more parity bits of each of the plurality of codewords into a plurality of symbols, each symbol having an amplitude based on a respective amplitude-shaped bit arranged in the symbol, the first encoding operation generating a plurality of 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 communications. The method may be performed by a wireless communications device and may include 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 a plurality of code blocks, each code block including a number (L) of codeword bits; performing a first decoding operation on the plurality of code blocks to generate a plurality of respective codewords, each codeword having a number (M) of bits including a plurality of amplitude-shaped bits and a plurality of parity bits, where M / L>5 / 6, and the plurality of amplitude-shaped bits of each codeword indicate amplitudes of respective symbols of the plurality of symbols; and performing a second decoding operation on the plurality of amplitude-shaped bits of each codeword to generate a plurality of respective unshaped bits for each of the plurality of codewords.

[0012] In some implementations, M / L=7 / 8. In some implementations, the first decoding operation is based on an LDPC code. In some aspects, the LDPC code may have a coding rate equal to 7 / 8. In some other aspects, the LDPC code may have a coding rate equal to 5 / 6.

[0013] In some implementations, the second decoding operation inverts the prefix encoding operation having an effective coding rate greater than or equal to 0.5 and less than 1. In some implementations, performing the second decoding operation includes selecting, from a LUT, a pattern of unshaped bits that matches a plurality of amplitude-shaped bits of a respective codeword of the plurality of codewords, wherein the LUT stores a plurality of patterns of unshaped bits corresponding to the respective plurality of patterns of amplitude-shaped bits, and the plurality of unshaped bits includes the selected pattern of unshaped bits. In some aspects, each of the plurality of patterns of amplitude-shaped bits may represent a respective amplitude of a plurality of amplitudes having a probability of occurrence based on the PMF. In some other aspects, each of the plurality of patterns of amplitude-shaped bits may represent two or more amplitudes of a plurality of amplitudes having a probability of occurrence based on the PMF.

[0014] 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 the wireless communication device to perform 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 an uneven distribution; ordering the plurality of codeword bits into a plurality of code blocks, each code block including a number (L) of codeword bits; performing a first decoding operation on the plurality of code blocks to generate a plurality of respective codewords, each codeword having a number (M) of bits including a plurality of amplitude-shaped bits and a plurality of parity bits, where M / L>5 / 6, and the plurality of amplitude-shaped bits of each codeword indicate an amplitude of a respective symbol of the plurality of symbols; and performing a second decoding operation on the plurality of amplitude-shaped bits of each codeword to generate a plurality of respective de-shaped bits for each of the plurality of codewords.

[0015] 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]

[0016] [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. 10 illustrates another exemplary PDU that can be used for communication between an AP and several STAs. [Figure 4] FIG. 1 is a block diagram of an example wireless communication device. [Figure 5A] FIG. 1 is a block diagram of an exemplary access point (AP). [Figure 5B] FIG. 1 is a block diagram of an exemplary station (STA). [Figure 6] 1 is a flowchart illustrating an example process for wireless communication supporting amplitude shaping, according to some implementations. [Figure 7A] FIG. 10 is a flow diagram for supporting amplitude shaping, according to some implementations. [Figure 7B] FIG. 10 is a flow diagram for supporting amplitude shaping, according to some implementations. [Figure 8A] FIG. 10 illustrates an example distribution of amplitude values ​​that support amplitude shaping, according to some implementations. [Figure 8B] FIG. 10 illustrates an example distribution of amplitude values ​​that support amplitude shaping, according to some implementations. [Figure 8C] FIG. 10 illustrates an example distribution of amplitude values ​​that support amplitude shaping, according to some implementations. [Figure 8D] FIG. 10 illustrates an example distribution of amplitude values ​​that support amplitude shaping, according to some implementations. [Figure 9] FIG. 1 illustrates an exemplary look-up table (LUT) that supports amplitude shaping, according to some implementations. [Figure 10]1 is a flowchart illustrating an example process for wireless communication supporting amplitude shaping, according to some implementations. [Figure 11A] FIG. 10 is a flow diagram for supporting amplitude shaping, according to some implementations. [Figure 11B] FIG. 10 is a flow diagram for supporting amplitude shaping, according to some implementations. [Figure 12] FIG. 10 is another diagram of a flow for supporting amplitude shaping, according to some implementations. [Figure 13] FIG. 1 illustrates an example parity check matrix for a low-density parity-check (LDPC) code, according to some implementations. [Figure 14A] FIG. 1 illustrates an exemplary circulant permutation matrix. [Figure 14B] FIG. 1 illustrates an exemplary circulant permutation matrix. [Figure 14C] FIG. 1 illustrates an exemplary circulant permutation matrix. [Figure 15] 1 is a flowchart illustrating an example process for wireless communication supporting amplitude shaping, according to some implementations. [Figure 16] 1 is a flowchart illustrating an example process for wireless communication supporting amplitude shaping, according to some implementations. [Figure 17] FIG. 1 is a block diagram of an exemplary wireless communication device, according to some implementations. [Figure 18] FIG. 1 is a block diagram of an exemplary wireless communication device, according to some implementations. DETAILED DESCRIPTION OF THE INVENTION

[0017] Like reference numbers and designations in the various drawings indicate like elements.

[0018] 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.

[0019] 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 data bits of a code block to shape the amplitudes of resulting symbols so that the amplitudes have a non-uniform distribution. In some aspects, 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 having an effective coding rate greater than 0.94 but less than 1. For example, the first encoding operation may add redundancy to the input data bits by increasing the overall number of data bits. The first encoding operation is followed by a second encoding operation, which also adds redundancy but does not modify the data bits themselves. In some aspects, the second encoding operation is or includes a low-density parity-check (LDPC) encoding operation associated with a coding rate greater than 5 / 6, such as 7 / 8.

[0020] 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 amplitudes such that the resulting amplitude distribution is approximately Gaussian. In this implementation, the spectral efficiency of wireless communications is affected by the coding rate of the first encoding operation as well as the coding rate of the second encoding operation. As described above, the first encoding operation has an effective coding rate of less than 1. By combining the first encoding operation with a second encoding operation having a coding rate of 7 / 8, aspects of the present disclosure may achieve an overall coding rate of approximately 5 / 6 (which enables peak spectral efficiency according to existing versions of the IEEE 802.11 standard).

[0021] 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.

[0022] 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.

[0023] 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.

[0024] To establish a communication link 108 with an AP 102, each of the STAs 104 is configured to perform passive or active scanning operations (“scans”) on frequency channels in one or more frequency bands (e.g., the 2.4 GHz, 5 GHz, 6 GHz, or 60 GHz bands). To perform passive scanning, the STAs 104 listen for beacons, which are transmitted by the respective APs 102 at regular time intervals called target beacon transmit times (TBTTs) (measured in time units (TUs), where one TU may equal 1024 microseconds (μs)). To perform active scanning, the STAs 104 generate probe requests, transmit them sequentially on each channel to be scanned, and listen for probe responses from the APs 102. Each STA 104 may be configured to identify or select an AP 102 to associate with and perform authentication and association operations to establish a communication link 108 with the selected AP 102 based on scanning information obtained through passive or active scanning. The AP 102 assigns an association identifier (AID) to the STA 104 at the end of the association operation, and the AP 102 uses the AID to track the STA 104.

[0025] As a result of the increasing ubiquity of wireless networks, a STA 104 may have the opportunity to select one of many BSSs within range of the STA or to select from among multiple APs 102 that together form an extended service set (ESS) that includes multiple connected BSSs. The extended network stations associated with the WLAN 100 may be connected to a wired or wireless distribution system that may allow multiple APs 102 to be connected, such as in an ESS. Thus, the STA 104 may be covered by more than one AP 102 and may associate with different APs 102 at different times for different transmissions. In addition, after associating with an AP 102, the STA 104 may also be configured to periodically scan its surroundings to find a more suitable AP 102 to associate with. For example, a STA 104 that is moving relative to its associated AP 102 may perform a “roaming” scan to find another AP 102 that has more desirable network characteristics, such as a stronger received signal strength indicator (RSSI) or a lower traffic load.

[0026] In some cases, the STAs 104 may form a network without any other equipment other than the AP 102 or the STAs 104 themselves. One example of such a network is an ad hoc network (or wireless ad hoc network). Alternatively, an ad hoc network may be referred to as a mesh network or a peer-to-peer (P2P) network. In some cases, the ad hoc network may be implemented within a larger wireless network, such as a WLAN 100. In such an implementation, the STAs 104 may be able to communicate with each other through the AP 102 using the communication link 108, but the STAs 104 may also communicate with each other directly via a direct wireless link 110. In addition, two STAs 104 may communicate via the direct communication link 110 regardless of whether both STAs 104 are associated with and served by the same AP 102. In such an ad hoc system, one or more of the STAs 104 may assume the role filled by the AP 102 in a BSS. Such a STA 104 may be referred to as a group owner (GO) and may coordinate transmissions within the ad hoc network. Examples of direct wireless links 110 include Wi-Fi Direct connections, connections established by using Wi-Fi Tunneled Direct Link Setup (TDLS) links, and other P2P group connections.

[0027] 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 900 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.

[0028] Each frequency band may include multiple subbands or frequency channels. For example, PPDUs compliant with the IEEE 802.11n, 802.11ac, and 802.11ax standard amendments may be transmitted over the 2.4 GHz and 5 GHz bands, each divided into multiple 20 MHz channels. Thus, these PPDUs are transmitted over physical channels with a minimum bandwidth of 20 MHz, but larger channels can be formed through channel bonding. For example, PPDUs may be transmitted over physical channels with bandwidths of 40 MHz, 80 MHz, 160 MHz, or 320 MHz by bonding multiple 20 MHz channels together.

[0029] Each PPDU is a composite structure that includes a PHY preamble and a payload in the form of a PLCP service data unit (PSDU). Information provided in the preamble can be used by a receiving device to decode subsequent data in the PSDU. In cases where the PPDU is transmitted over bonded channels, the preamble field can be duplicated and transmitted on each of the multiple component channels. The PHY preamble can include both a legacy portion (or "legacy preamble") and a non-legacy portion (or "non-legacy preamble"). The legacy preamble can be used for packet detection, automatic gain control, and channel estimation, among other applications. The legacy preamble can also generally be used to maintain compatibility with legacy devices. The format of the non-legacy portion of the preamble, its coding, and the information provided therein are based on the specific IEEE 802.11 protocol to be used to transmit the payload.

[0030] 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.

[0031] 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).

[0032] 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.

[0033] 3 illustrates another exemplary PDU 350 usable for wireless communications between an AP and several STAs. The PDU 350 may be used for MU-OFDMA or MU-MIMO transmissions. The PDU 350 includes a PHY preamble including a legacy portion 352 and a non-legacy portion 354. The PDU 350 may further include a PHY payload 356, e.g., after the preamble in the form of a PSDU including a DATA field 374. The legacy portion 352 includes an L-STF 358, an L-LTF 360, and an L-SIG 362. The non-legacy portion 354 of the preamble and the DATA field 374 may be formatted as a High Efficiency (HE) WLAN preamble and frame, respectively, in accordance with the IEEE 802.11ax amendment to the IEEE 802.11 wireless communications protocol standard. The non-legacy portion 354 includes a repeating legacy signal field (RL-SIG) 364, a first HE signal field (HE-SIG-A) 366, a second HE signal field (HE-SIG-B) 368 encoded separately from HE-SIG-A 366, an HE short training field (HE-STF) 370, and several HE long training fields (HE-LTF) 372. Like L-STF 358, L-LTF 360, and L-SIG 362, the information in RL-SIG 364 and HE-SIG-A 366 may be replicated and transmitted in each of the 20 MHz component channels in cases involving the use of bonded channels. In contrast, HE-SIG-B 368 may be unique to each 20 MHz channel and may be targeted to a specific STA 104.

[0034] The RL-SIG 364 may indicate to the HE-compatible STAs 104 that the PPDU is an HE PPDU. The AP 102 may use the HE-SIG-A 366 to identify multiple STAs 104 and inform them that the AP has scheduled UL or DL ​​resources for them. The HE-SIG-A 366 may be decoded by each HE-compatible STA 104 served by the AP 102. The HE-SIG-A 366 contains information usable by each identified STA 104 to decode the associated HE-SIG-B 368. For example, the HE-SIG-A 366 may indicate the frame format, including the location and length of the HE-SIG-B 368, the available channel bandwidth, and the modulation and coding scheme (MCS), among other possibilities. The HE-SIG-A 366 may also contain HE WLAN signaling information usable by STAs 104 other than the identified STAs 104.

[0035] The HE-SIG-B368 may carry STA-specific scheduling information, such as per-user MCS values ​​and per-user RU allocation information. In the context of DL MU-OFDMA, such information allows each STA 104 to identify and decode the corresponding RU in the associated data field. Each HE-SIG-B368 includes a common field and at least one STA-specific (“user-specific”) field. The common field may indicate, among other possibilities, the RU distribution to multiple STAs 104, indicate the allocation of RUs in the frequency domain, which RUs are allocated for MU-MIMO transmissions, which RUs correspond to MU-OFDMA transmissions, and the number of users in the allocation. The common field may be encoded with common bits, CRC bits, and tail bits. The user-specific field may be assigned to a specific STA 104 and used to schedule specific RUs and indicate the scheduling to other WLAN devices. Each user-specific field may include multiple user block fields (which may be followed by padding). Each user block field may include two user fields that contain information for two respective STAs to decode the respective RU payloads in the DATA field 374.

[0036] As described above, the AP 102 and the STAs 104 may support multi-user (MU) communications, i.e., simultaneous transmissions from one device to each of multiple devices (e.g., multiple simultaneous downlink (DL) communications from the AP 102 to corresponding STAs 104), or simultaneous transmissions from multiple devices to a single device (e.g., multiple simultaneous uplink (UL) transmissions from corresponding STAs 104 to the AP 102). To support MU transmissions, the AP 102 and the STAs 104 may utilize multi-user multiple-input multiple-output (MU-MIMO) and multi-user orthogonal frequency division multiple access (MU-OFDMA) techniques.

[0037] In a MU-OFDMA scheme, the available frequency spectrum of a wireless channel may be divided into multiple resource units (RUs), each containing several different frequency subcarriers (“tones”). Different RUs may be allocated or assigned by the AP 102 to different STAs 104 at a particular time. The size and distribution of the RUs may be referred to as the RU allocation. In some implementations, RUs may be allocated at 2 MHz intervals, so the smallest RU may contain 26 tones, consisting of 24 data tones and 2 pilot tones. As a result, in a 20 MHz channel, up to 9 RUs (such as a 2 MHz, 26-tone RU) may be allocated (as some tones are reserved for other purposes). Similarly, in a 160 MHz channel, up to 74 RUs may be allocated. Larger RUs with 52 tones, 106 tones, 242 tones, 484 tones, and 996 tones may also be allocated. For example, adjacent RUs may be separated by a null subcarrier (such as a DC subcarrier) to reduce interference between adjacent RUs, reduce DC offset in the receiver, and avoid leakage of the transmit center frequency.

[0038] For UL MU transmissions, the AP 102 may transmit a trigger frame to initiate and synchronize UL MU-OFDMA or UL MU-MIMO transmissions from multiple STAs 104 to the AP 102. Such a trigger frame may thus enable multiple STAs 104 to simultaneously transmit UL traffic to the AP 102. The trigger frame may address one or more STAs 104 through their respective association identifiers (AIDs) and may assign each AID (and thus each STA 104) one or more RUs that can be used to transmit UL traffic to the AP 102. The AP may also designate one or more random access (RA) RUs that unscheduled STAs 104 may contend for.

[0039] 4 shows a block diagram of an example wireless communication device 400. In some implementations, the wireless communication device 400 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 400 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 400 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.

[0040] The wireless communication device 400 may be or include a chip, system-on-chip (SoC), chipset, package, or device that includes one or more modems 402, such as Wi-Fi (IEEE 802.11-compliant) modems. In some implementations, the one or more modems 402 (collectively “modems 402”) additionally include a WWAN modem (e.g., a 3GPP 4G LTE or 5G-compliant modem). In some implementations, the wireless communication device 400 also includes one or more radios 404 (collectively “radios 404”). In some implementations, the wireless communication device 406 further includes one or more processors, processing blocks, or processing elements 406 (collectively “processors 406”) and one or more memory blocks or elements 408 (collectively “memory 408”).

[0041] The modem 402 may include an intelligent hardware block or device, such as, for example, an application specific integrated circuit (ASIC), among other possibilities. The modem 402 is generally configured to implement a PHY layer. For example, the modem 402 is configured to modulate packets and output the modulated packets to the radio 404 for transmission over a wireless medium. The modem 402 is similarly configured to obtain modulated packets received by the radio 404 and demodulate the packets to provide demodulated packets. In addition to a modulator and demodulator, the modem 402 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 406 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 404. 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.

[0042] During receive mode, the digital signal received from the radio 404 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 406) for processing, evaluation, or interpretation.

[0043] The radio 404 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 400 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 402 are provided to the radio 404, which then transmits the symbols via the coupled antenna. Similarly, symbols received via the antennas are obtained by the radio 404, which then provides the symbols to the modem 402.

[0044] The processor 406 may include, for example, an intelligent hardware block or device, such as a processing core, processing block, central processing unit (CPU), microprocessor, microcontroller, 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 406 processes information received through the radio 404 and modem 402 and information to be output through the modem 402 and radio 404 for transmission over a wireless medium. For example, the processor 406 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 406 may generally control the modem 402 to cause the modem to perform the various operations described above.

[0045] The memory 404 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 404 may also store non-transitory processor or computer-executable software (SW) code, including instructions that, when executed by the processor 406, 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.

[0046] 5A shows a block diagram of an example AP 502. For example, the AP 502 may be an example implementation of the AP 102 described with reference to FIG. 1. The AP 502 includes a wireless communication device (WCD) 510 (although the AP 502 itself may also be generally referred to as a wireless communication device as used herein). For example, the wireless communication device 510 may be an example implementation of the wireless communication device 4000 described with reference to FIG. 4. The AP 502 also includes multiple antennas 520 coupled with the wireless communication device 510 for transmitting and receiving wireless communications. In some implementations, the AP 502 additionally includes an application processor 530 coupled with the wireless communication device 510 and a memory 540 coupled with the application processor 530. The AP 502 further includes at least one external network interface 550 that enables the AP 502 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 550 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 502 further includes a housing that encloses the wireless communication device 510, the application processor 530, the memory 540, and at least a portion of the antenna 520 and the external network interface 550.

[0047] 5B shows a block diagram of an exemplary STA 504. For example, the STA 504 may be an exemplary implementation of the STA 104 described with reference to FIG. 1. The STA 504 includes a wireless communication device 515 (although the STA 504 itself may also be generally referred to as a wireless communication device as used herein). For example, the wireless communication device 515 may be an exemplary implementation of the wireless communication device 400 described with reference to FIG. 4. The STA 504 also includes one or more antennas 525 coupled with the wireless communication device 515 for transmitting and receiving wireless communications. The STA 504 additionally includes an application processor 535 coupled with the wireless communication device 515, and a memory 545 coupled with the application processor 535. In some implementations, the STA 504 further includes a user interface (UI) 555 (e.g., a touchscreen or keypad) and a display 565, which may be integrated with the UI 555 to form a touchscreen display. In some implementations, the STA 504 may further include one or more sensors 575, 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 504 further includes a housing that encloses the wireless communication device 515, the application processor 535, the memory 545, and at least a portion of the antenna 525, the UI 555, and the display 565.

[0048] 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.

[0049] 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) 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.

[0050] Various implementations generally relate to encoding data for wireless communications to achieve a desired amplitude distribution. More specifically, some implementations relate to performing a first encoding operation on information bits from one or more MPDUs to shape the amplitudes of the resulting symbols so that the amplitudes have a non-uniform distribution. In some implementations 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 implementations, the first encoding operation is or includes an arithmetic encoding operation, a prefix encoding operation, or other encoding operation that adds redundancy to input information bits by expanding the number of information bits. As described above, in certain implementations, redundancy is added such that the probability associated with encoding input data bits into symbols with smaller amplitudes is greater than the probability associated with encoding input data bits into symbols with larger amplitudes. In some implementations, the first encoding operation is followed by a second encoding operation, e.g., an LDPC encoding operation, which also adds redundancy but does not modify the information bits themselves.

[0051] 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 amplitudes such that the resulting amplitude distribution is approximately Gaussian. Some implementations also enable tracking of MPDU boundaries to facilitate successful decoding by a receiving device. Additionally or alternatively, some implementations enable determination of the packet length after performing amplitude shaping, which allows the transmitting device to determine the number of padding bits to add to the payload and signal the packet length to the receiving device so that the receiving device can determine the time length of the packet.

[0052] FIG. 6 shows a flowchart illustrating an example process 600 for wireless communication supporting amplitude shaping, according to some implementations. The operations of process 600 may be performed by a transmitting device or components thereof as described herein. For example, process 600 may be performed by a wireless communication device such as wireless communication device 400 described with reference to FIG. 4. In some implementations, process 600 may be performed by a wireless communication device operating as or within an AP, such as one of APs 102 and 502 described with reference to FIGS. 1 and 5A, respectively. In some other implementations, process 600 may be performed by a wireless communication device operating as or within a STA, such as one of STAs 104 and 504 described with reference to FIGS. 1 and 5B, respectively.

[0053] At block 602, 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 604, 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 606, 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 608, the wireless communication device transmits the plurality of symbols on the plurality of subcarriers in a wireless packet to at least one receiving device.

[0054] In some implementations, the execution of the first encoding operation at block 602 (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.

[0055] In some implementations, before performing the first encoding operation in block 602, 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 602 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 602 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 602 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.

[0056] 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 602) 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.

[0057] 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.

[0058] 7A and 7B show a diagram of a flow 700 that supports amplitude shaping according to some implementations. For example, the flow 700 may illustrate aspects of the process 600. In the example shown, an information block 702 is provided to a pre-shaping parser 704 to obtain a plurality of amplitude bits on which a shaping encoder 710 performs a first encoding operation in block 602. For example, the pre-shaping parser 704 may separate or split the amplitude bits 706 from the sign bit 708 in the information block 702. In some implementations, the parser also separates or splits the amplitude bits into an MSB 706a and an LSB 706b. In some implementations, the plurality of amplitude bits provided to the shaping encoder 710 includes only the MSB 706a 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 710 performs a first encoding operation on the MSBs 706 a in block 602 to generate amplitude-shaped bits 712 .

[0059] In some implementations, to perform the first encoding operation in block 602, 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 704 (or the shaping encoder 710 itself) may further parse the plurality of amplitude bits (e.g., the MSBs 706a) 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 710 may, in parallel, perform the first encoding operation on the first stream of amplitude bits to provide a first PAM symbol stream and independently perform the 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).

[0060] In some implementations, performing the first encoding operation in block 602 adds redundancy to a plurality of amplitude bits (MSBs 706a in the example of FIGS. 7A and 7B) to generate amplitude-shaped bits 712 such that the amplitude-shaped bits 712 include more bits than the plurality of amplitude bits input to shaping encoder 710. By adding redundancy, shaping encoder 710 may encode MSBs 706a to generate amplitude-shaped bits 712 such that the amplitudes of 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.

[0061] In some implementations, the first encoding operation performed in block 602 is or includes an arithmetic encoding operation. In some such implementations, performing the arithmetic encoding operation in block 602 involves dividing the first distribution of M first (real) amplitudes into 2 b / 2 bins, each of which has 2 b / 2 The arithmetic coding operation also generates a second distribution of M second (imaginary) amplitudes, each of which is associated with one of the M possible amplitude levels and has an associated size (e.g., the size is equal to the number of instances of the amplitude of each amplitude level in the bin). b / 2 bins, each of which has 2 b / 2 7. b is associated with each one of the possible amplitude levels and has an associated size (e.g., the size is equal to the number of amplitude instances of each amplitude level in the bin). In such an implementation, if the plurality of amplitude bits provided to the shaping encoder 706 includes all of the amplitude bits in the code block, then b is equal to n. However, if the plurality of amplitude bits comprises fewer than all of the data bits in the code block, e.g., only the MSBs 706a of the amplitude bits 706, then b may be equal to the number of MSBs of the n bits for each symbol (e.g., for 1024-QAM, when n is equal to 8, b may be equal to 6, such that three of the four amplitude bits for the real amplitude component are selected for the first encoding operation, and three of the four amplitude bits for the imaginary amplitude component are selected for the first encoding operation).

[0062] In some implementations, to achieve a non-uniform distribution of amplitudes, the bin sizes in the first distribution are initially non-uniform, and the bin sizes in the second distribution are initially non-uniform. To achieve a non-uniform distribution such that the probability associated with each amplitude generally increases with decreasing amplitude, the size of at least the lowest bin in each of the first and second distributions is configured to be larger than the size of at least the highest bin in each one of the first and second distributions. However, as described below, during the arithmetic coding operation performed in block 602, the bin sizes may change dynamically as amplitudes are selected from the bins.

[0063] 8A-8D show an example distribution 800 of amplitude values ​​that supports amplitude shaping, according to some implementations. For example, distribution 800 may be an example of each of a first distribution of amplitudes along a real axis and a second distribution of amplitudes along an imaginary axis used when performing an arithmetic coding operation in block 602. In FIGS. 8A-8D, distribution 800 includes M instances of amplitudes arranged in four bins 802, 804, 806, and 808. In other words, the lowest bin 802 includes several selectable amplitudes that all have a first lowest amplitude level, the second lowest bin 804 includes several selectable amplitudes that all have a second amplitude level, the second highest bin 806 includes several selectable amplitudes that all have a third amplitude level, and the highest bin 808 includes several selectable amplitudes that all have a fourth highest amplitude level.

[0064] As explained above, the probability associated with each amplitude value generally decreases with increasing amplitude. To achieve this, the size of at least the lowest bin 802 is greater than the size of at least the highest bin 808. In the example shown, the sizes of the associated bins 802, 804, 806, and 808 are different, so that the probabilities associated with each of the amplitude levels are different. Indeed, in the example shown, the second-lowest bin 804 is smaller than the lowest bin 802, the second-highest bin 806 is smaller than the second-lowest bin 804, and the highest bin 808 is smaller than the second-highest bin 806. To further illustrate, if 100 symbols are to be encoded by the first encoding operation in block 602 (i.e., M equals 100), the first bin may have, for example, 50 amplitude instances having a first amplitude level, the second bin may have, for example, 25 amplitude instances of the second amplitude level, the third bin may have, for example, 15 amplitude instances of the third amplitude level, and the fourth bin may have, for example, 10 amplitude instances of the fourth amplitude level. Because the size of each of the bins is defined by the respective number of amplitude instances of each amplitude level that may be selected from the bin, the probability associated with each amplitude level decreases with increasing amplitude.

[0065] 6 and 7, the execution of the arithmetic coding operation in block 602 includes, for each symbol of the M symbols, selecting a first (real) amplitude from one of the bins in a first distribution for a first amplitude component and selecting a second (imaginary) amplitude from one of the bins in a second distribution for a second amplitude component. For example, during the arithmetic coding operation in block 602, the shaping encoder 710 may select either the upper half or the lower half of the distribution from the first distribution (and thus for the real amplitude component) based on the value of the first bit of the first stream of amplitude bits. Similarly, the shaping encoder 710 may select either the upper half or the lower half of the distribution from the second distribution (and thus for the imaginary amplitude component) based on the value of the first bit of the second stream of amplitude bits. For example, turning to FIG. 8B, the shaping encoder 710 may select the upper half UH of the distribution 800 if the first bit (e.g., MSB 706a) of the amplitude bits 706 has a value of "1," and may select the lower half LH if the first bit has a value of "0." In the example shown in FIG. 8B, the first bit has a value of 1, and as a result, the shaping encoder 710 selects the upper half UH. In this manner, each input data bit for a given one of the first and second streams of amplitude bits defines a binary selection. In other words, the amplitude distribution associated with each amplitude component is reduced by a factor of two, with each additional input data bit per symbol being provided by a respective stream of amplitude bits.

[0066] In response to selecting the upper half UH or the lower half LH of each distribution, the arithmetic coding operation performed in block 602 may further include determining whether the selected half of the distribution is within a single one of the bins of the respective distribution. In response to determining that the selected half is within a single one of the bins, the shaping encoder 710 may output a set of bits indicating an amplitude level for each real or imaginary amplitude component. For example, the shaping encoder 710 may output b / 2 amplitude-shaped bits 712 for each PAM symbol to indicate a respective amplitude level associated with a single bin (again, b may be equal to n if the first encoding operation is performed on all of the data bits; otherwise, b may be equal to the number of MSBs). In such a case, only one input data bit may be encoded for each PAM symbol.

[0067] However, in response to determining that the selected half is not within a single one of the bins, the shaping encoder 710 determines the value of the next bit in the respective stream of amplitude bits to be encoded. Because only one amplitude can be selected from each of the first and second distributions for each symbol, the shaping encoder 710 may need to determine the value of at least one subsequent bit in the respective stream of amplitude bits to be encoded before an amplitude selection can be made from the respective distribution. For example, as shown in FIG. 8B, the number of possible amplitudes is reduced to amplitudes that are within the upper half UH of the distribution 800 based on the value of the first bit, but amplitudes can still be selected from any of the bins 804, 806, and 808. Only the lowest bin 802 is excluded from the possible amplitudes that can be selected because it is located entirely within the lower half LH of the distribution 800. Therefore, the shaping encoder 710 requires more information (at least one subsequent data bit in each stream) to select an amplitude and thereby encode each input data bit.

[0068] For example, in response to determining that the selected half is not within a single one of the bins, the shaping encoder 710 may then select either the upper quarter UQ (upper half of the selected half) or the lower quarter LQ (lower half of the selected half) based on the value of the second bit of the respective stream of amplitude bits. In response to selecting the upper quarter UQ or the lower quarter LQ of the respective distribution, the arithmetic coding operation performed in block 602 may further include determining whether the selected resulting quarter of the distribution is within a single one of the bins of the respective distribution. In response to determining that the selected quarter is within a single one of the bins, the shaping encoder 710 may output a set of bits indicating an amplitude level for each real or imaginary component. For example, the shaping encoder 710 may output b / 2 amplitude shaped bits 712 for each PAM symbol, indicating each amplitude level associated with a single bin. In such a case, two input data bits are encoded for each PAM symbol.

[0069] On the other hand, in response to determining that the selected quarter is not within a single bin of the bins, the shaping encoder 710 determines the value of the next bit in each stream of amplitude bits to be encoded before an amplitude selection can be made from the respective distribution. For example, as shown in FIG. 8C , the number of possible amplitudes is reduced to amplitudes in the lower quarter LQ of the distribution 800 based on the value of the second bit, but amplitudes can still be selected from either bins 804 and 806. Only the lowest bin 802 and the highest bin 808 are excluded from the possible amplitudes that can be selected. Therefore, the shaping encoder 710 requires more information (at least one next data bit in each stream) to select an amplitude and thereby encode each input data bit.

[0070] For example, in response to determining that the selected quarter is not within a single one of the bins, the shaping encoder 710 may then select either an upper eighth UE (the upper half of the selected quarter) or a lower eighth LE (the lower half of the selected quarter) based on the value of the third bit of the respective stream of amplitude bits. In response to selecting an upper eighth UE or a lower eighth LE of the respective distribution, the arithmetic coding operation performed in block 602 may further include determining whether the selected resulting eighth of the distribution is within a single one of the bins of the respective distribution. In response to determining that the selected eighth is within a single one of the bins, the shaping encoder 710 may output a set of bits indicating an amplitude level for each real or imaginary component. For example, the shaping encoder 710 may output b / 2 amplitude shaped bits 712 for each PAM symbol to indicate each amplitude level associated with a single bin. For example, as shown in FIG. 8D, the number of possible amplitudes is reduced to amplitudes within the lower eighth LE of the distribution 800 based on the value of the third bit. Because the lower eighth LE lies only within a single bin 804, the shaving encoder 710 selects an amplitude from bin 804. In such a case, three input data bits are encoded for each PAM symbol. This process can continue as long as additional bits are needed to select one of the bins to converge to a single amplitude.

[0071] In some implementations, to ensure that each amplitude in each distribution is selected exactly once, when the amplitudes are encoded, the shaving encoder 710 removes each instance of the amplitude from each bin, thereby reducing the respective bit size (in other words, the shaving encoder 710 implements the diagram without replacement). In this way, after an amplitude is selected from a bin, the relative probability of selecting an amplitude from each of the bins changes. In some such implementations, all M amplitudes can be generated exactly once, because the size of each of the bins at the end of the arithmetic coding operation in block 602 is 0 (because all of the bins have been emptied through selection). In this way, a constant number of amplitude-shaped bits 712 and a constant number (M) of output symbols can always result from the arithmetic coding operation in block 602.

[0072] As described above, the number of amplitude bits actually needed to encode the M amplitudes needed for the M symbols may vary based on the specific values ​​of the amplitude bits. For example, in some cases, based on the values ​​of the amplitude bits, there may be no more bits left in the code block among the amplitude bits, but there may still be amplitude instances remaining in one or more of the bins. In some such implementations, the shaping encoder 710 may add zero padding bits to the input information block or code block 702 to obtain enough bits to encode to obtain M symbols in the first encoding operation of block 602.

[0073] In some other implementations, the total size of all of the bins in each distribution at the start of the arithmetic coding operation in block 602 may be greater than M. In this way, the efficiency of the arithmetic coding operation may be improved because there are more potential amplitudes to choose from and more bits can be coded for the same number of amplitudes.

[0074] In some implementations, performing the arithmetic coding operation in block 602 further comprises measuring or monitoring the total power of symbols obtained during the arithmetic coding operation and dynamically adjusting the size of one or more of the bins in one or both of the first distribution and the second distribution based on the total power (and consequently modifying the relative probabilities associated with the amplitude levels). For example, a power measure for the total power may be obtained by tracking selected amplitudes or the sum of the squares of selected amplitudes. For example, if the shaping encoder 710 receives or otherwise determines that the total power exceeds a first threshold, the shaping encoder 710 may reduce the size of one or more of the bins with the highest amplitude levels. This reduces the number of symbols with high amplitude levels and consequently reduces the total power. On the other hand, if the shaping encoder 710 determines that the total power is below a second threshold (which may be the same as or different from the first threshold), the shaping encoder 710 may increase the size of one or more of the bins with high amplitude levels. This increases the number of symbols with high amplitude levels, so more bits can be coded into the higher amplitude symbols, which may increase the efficiency of the arithmetic coding operation.

[0075] In some other implementations, the first encoding operation performed in block 602 is or includes a prefix encoding operation. In some such implementations, performing the prefix encoding operation in block 602 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 / 2The method further 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 710. 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 than all of the data bits in the code block, e.g., only the MSBs 706a 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 mass function. In some implementations, the set of patterns and the associated probability mass function are based on the Huffman algorithm. In some implementations, the probability mass function is a binomial distribution, i.e., all probabilities in the probability mass function are negative powers of two.

[0076] For example, the shaping encoder 710 may input bits of the plurality of amplitude bits (e.g., MSB 706a) into a lookup table (LUT) containing a set of patterns that implement a probability mass function. In some such implementations, the shaping encoder 710 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 602.

[0077] 9 shows an exemplary LUT 900 that supports amplitude shaping, according to some implementations. In the example shown, the LUT 900 includes eight rows 902a-902h, each row indicating a pattern of bit values ​​corresponding to a respective one of eight amplitude levels associated with a probability mass function. For example, the first row 902a 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 902b 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 902c 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 902d 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 902e 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 902e associated with the amplitude of 1 contains a fifth pattern of bit values ​​101 associated with a probability of occurrence of 1 / 8, the sixth row 902f 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 902g 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 902h associated with the eighth (highest) amplitude level contains an eighth pattern of bit values ​​11001 associated with a probability of occurrence of 1 / 32.

[0078] In some implementations, performing the prefix encoding operation in block 602 further includes identifying a match between a bit (e.g., MSB 706a) of the plurality of amplitude bits and one of the patterns. For example, the shaping encoder 710 may compare consecutive bits of the plurality of amplitude bits with the patterns in the LUT 900. In general, with each additional matching data bit input to the LUT 900, the number of potential matching patterns decreases until only one of the patterns remains, and that remaining pattern is selected by the shaping encoder 710. In other words, the shaping encoder 710 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 900 in block 602. For example, the shaping encoder 710 may compare the first two bits to one or both of the patterns in rows 902a and 902b, the first three bits to one, two, or all of the patterns in rows 902c, 902d, and 902e, the first four bits to the pattern in row 902f, or the first five bits to one or both of the patterns in rows 902g and 902h. In response to finding a match, the shaping encoder 710 may output a set of b / 2 amplitude-shaped bits 712 for each PAM symbol indicating the amplitude level associated with the respective pattern. In some implementations, the shaping encoder 710 may generally output the average number of amplitude-shaped bits 712 per PAM symbol as defined in equation (2) below.

[0079]

number

[0080] In equation (2), p kwhere k is the probability associated with each number k of input data bits. For example, based on the probability mass function associated with LUT 900, the number of amplitude-shaped bits 712 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.

[0081] In some implementations, unlike general arithmetic coding operations, the execution of the prefix coding operation may be parallelized. Among various benefits, such parallelization may enable the use of a lower clock rate or achieve a higher data rate. For example, in some implementations, the pre-shaping parser 704 or the shaping encoder 710 itself may separate or split multiple amplitude bits into separate streams of amplitude bits (e.g., in a round-robin manner) and perform an independent prefix coding operation on each stream of amplitude bits in parallel. Continuing with the example above, in some such implementations, the pre-shaping parser 704 may further split a first stream of amplitude bits for a first PAM symbol stream into m parallel data streams. Similarly, the pre-shaping parser 704 may further split a second stream of amplitude bits for a second PAM symbol stream into m parallel data streams. The shaping encoder 710 may include 2m prefix encoders to encode 2m streams in parallel. However, depending on the value of the particular amplitude bits, each prefix encoder may have between 0 and K−1 leftover bits from its respective stream (where K is the size in bits of the largest pattern in each LUT). In some implementations, to encode the leftover bits, the shaping encoder 710 identifies the leftover bits from each of the m prefix encoding operations for each amplitude component, concatenates the leftover bits, and adds padding bits to the concatenated leftover bits (if necessary to fully encode the symbol) so that all of the leftover bits from each of the first and second streams of amplitude bits are encoded into a respective PAM symbol.

[0082] As described above, after performing a first encoding operation on a plurality of amplitude bits (e.g., MSBs 706a) in block 602 to generate amplitude-shaped bits 712, a second encoding operation may then be performed on the amplitude-shaped bits 712 in block 604. For example, a second encoder 716 may receive a code block including the amplitude-shaped bits 712 and perform a second encoding operation in block 604 on the code block to generate a codeword 718 including a second plurality of coded data bits 720. In the example shown, the second encoder 716 performs the second encoding operation of block 604 on the amplitude-shaped bits 712 (based on the MSBs 706a) as well as the LSBs 706b and the sign bit 708. Additionally, in implementations in which a shaping encoder generates signaling bits 714, such signaling bits may also be input to the second encoder 716 and encoded in the second encoding operation of block 604.

[0083] In some implementations, the second encoder 716 is a systematic encoder that performs the systematic encoding operation of block 604 such that the bits output from the second encoder 716 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 716 may hereinafter be referred to as an “LDPC encoder 716”). Thus, the resulting second plurality of coded data bits 720 may include amplitude-shaped bits 712, LSBs 706b, sign bits 708, and signaling bits 714.

[0084] Performing the LDPC encoding operation in block 604 adds redundancy to the data, for example, by generating a plurality of parity bits 722 based on the amplitude-shaped bits 712, the LSBs 706b, the code bits 708, and the signaling bits 714. The parity bits 722 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 716, the resulting codeword 718 includes a systematic portion that includes the amplitude-shaped bits 712, the LSBs 706b, the code bits 708, and the signaling bits 714 (collectively a second plurality of coded data bits 720) and a parity portion that includes the parity bits 722.

[0085] Upon performing the second encoding operation of block 604 to generate a codeword 718, the wireless communications device may arrange (or “order”) the bits of the second plurality of coded data bits 720 and the plurality of parity bits 722 into M (e.g., QAM) symbols 726 at block 606, such that each symbol includes a set of n bits indicating an amplitude within a modulation constellation. For example, as shown in FIG. 7B, an ordering (or “reordering”) module 724 may receive the codeword 718 and order the bits from the amplitude shaped bits 712, LSBs 706b, code bits 708, and parity bits 722 into M symbols 726. In some such implementations, the ordering module 724 receives and reorders the amplitude shaped bits 712, LSBs 706b, code bits 708, and parity bits 722 associated with both the first PAM symbol stream and the second PAM symbol stream into a single QAM symbol stream. In one 1024-QAM example where each symbol 726 includes 10 bits including n=8 magnitude bits, of which b=6 are MSBs, the alignment module 724 may take, from the codeword 718, for each of the symbols 726, a set of three magnitude bits from the amplitude shaped bits 712 encoded from the first stream of magnitude bits, as well as the magnitude bit from the LSB 706b associated with the first stream of magnitude bits, to obtain a first (real) magnitude component. Similarly, the alignment module 724 may take, from the codeword 718, for each of the symbols 726, a set of three magnitude bits from the amplitude shaped bits 712 encoded from the second stream of magnitude bits, as well as the magnitude bit from the LSB 706b associated with the second stream of magnitude bits, to obtain a second (imaginary) magnitude component.

[0086] As described above, each of the symbols 726 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 724 may attempt to capture all of the code bits needed for the symbol 726 from the parity bits 722. As described above, because the code bits do not affect 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 706a. For example, based on the selected MCS, the shaping encoder 710 knows how many parity bits will be generated by the LDPC encoder 716 per code block. Thus, the shaping encoder 710 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, all of the parity bits 722, as well as some unshaped data bits (e.g., the code bits 708), may be able to be used as code bits in the symbol 726. This may be desirable because it means that the amplitudes of all M symbols 726 can be shaped. If dedicated code bits 708 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 716, as described above. Alternatively, the number of parity bits 722 may be greater than the number of code bits needed for the symbols 726, so some parity bits 722 must be used as amplitude bits for the symbols 726. In such cases, the shaping encoder 710 may not be able to perform the first encoding operation, and therefore amplitude shaping, on all amplitude components for all of the symbols 726 in block 602. Therefore, the achievable SNR gain may be reduced.

[0087] At block 608, the wireless communication device transmits M symbols 726 on multiple subcarriers in a wireless packet to a receiving device. In some implementations, to transmit each of the symbols 726 at block 610, a constellation mapper (e.g., a QAM mapper) 728 maps each of the symbols 726 to a point in a (e.g., QAM) modulation constellation, e.g., to obtain a complex representation 730 indicating the amplitude and phase of the symbol 726. In some implementations, the constellation mapper 728 includes multiple constellation mappers, one for each of multiple streams of symbols 726.

[0088] In some implementations, the alignment module 724 may also include a spatial stream parser that parses the symbols 726 into multiple spatial streams. In some such implementations, the spatial stream parser parses the amplitude shaped bits 712, LSB 706b, sign bit 708, and parity bits 722 separately for each spatial stream to ensure that the bits are properly aligned to the symbols in the different spatial streams. In some implementations, the alignment module 724 additionally includes multiple bandwidth segment parsers that parse the symbols 726 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 726 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 730.

[0089] The modulator 732 may then modulate subcarriers of the bandwidth segment of the wireless channel based on the amplitude and phase indicated by the complex representation 730 to generate modulated symbols 734, 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 730 may be provided to respective tone mappers of the modulator 732, which map the complex representations to respective subcarriers (or “tones”) of the wireless channel. In some implementations, the modulator 732 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 734 in block 608 before transmission over the wireless channel based on the amount of amplitude shaping performed in the first encoding operation.

[0090] 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 734. 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.

[0091] In some implementations, the wireless communication device may also transmit an indication of the first encoding operation to the receiving device in the same wireless packet including the modulated symbols 734 at block 608. For example, the wireless communication device may transmit the indication in a preamble of the wireless packet, such as in a signaling field (e.g., in an ETH-SIG field such as the EHT-SIG-A field or the EHT-SIG-C field). In some such implementations, the wireless communication device may transmit an MCS field (which may be in the EHT-SIG-A field) in the preamble of the packet that indicates the coding rate (e.g., LDPC coding rate), modulation (e.g., QAM) constellation size, and one or more indications of the first encoding operation to be used in performing the second encoding operation at block 604. In some other implementations, the one or more indications of the first encoding operation may be transmitted in a second signaling field separate from the MCS field (e.g., in another subfield within the EHT-SIG-A or EHT-SIG-C). In some implementations, the MCS field or the second signaling field also includes an indication of a power scaling factor to be applied to the symbols modulated in block 608. In some implementations, the MCS field or the second signaling field may further indicate the size of the code block (or an indication of the size and number of code blocks for a group of code blocks) input to shaping encoder 710 on which the first encoding operation was performed in block 602. In some other implementations, one or both of the power scaling factor and the code block size may be signaled implicitly.

[0092] To indicate the first coding operation, the MCS field or the second signaling field may include a first bit indicating whether the first coding operation has been performed and one or more second bits indicating one or more amplitude shaping parameters associated with the first coding operation that define the uneven amplitude distribution. In other words, the amplitude shaping parameters may define the amount of shaping associated with the amplitude and the probability shaping rate. For example, the probability shaping parameters may include an indication of a probability mass function associated with the first coding operation for each MCS. In some specific examples, the amplitude shaping parameters may include information regarding the size and amplitude levels associated with bins used in an arithmetic coding operation or information regarding a LUT used in a prefix coding operation. As described above, the MCS field or the second signaling field may also include signaling bits.

[0093] FIG. 10 shows a flowchart illustrating an example process 1000 for wireless communication supporting amplitude shaping, according to some implementations. The operations of process 1000 may be performed by a receiving device or components thereof as described herein. For example, process 1000 may be performed by a wireless communication device such as wireless communication device 400 described with reference to FIG. 4. In some implementations, process 1000 may be performed by a wireless communication device operating as or within an AP, such as one of APs 102 and 502 described with reference to FIGS. 1 and 5A, respectively. In some other implementations, process 1000 may be performed by a wireless communication device operating as or within a STA, such as one of STAs 104 and 504 described with reference to FIGS. 1 and 5B, respectively.

[0094] At block 1002, 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 1004, 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 1006, 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 1008, 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.

[0095] 11A and 11B show diagrams of a flow 1100 that supports amplitude shaping according to some implementations. For example, flow 1100 may illustrate aspects of process 1000. Process 1000 and flow 1100 are further presented below with respect to process 600 and flow 700 described with reference to FIGS. 6-9. For example, in some implementations, a wireless communication device receives, at block 1002, a wireless packet 1102 that includes a plurality of modulated symbols 734 that were transmitted from a transmitting wireless communication device at block 608 of process 600.

[0096] In some implementations, the demodulator 1104 may receive the modulated symbols 734 via a coupled antenna and receive chain and demodulate the subcarriers based on the detected amplitude and phase in block 1002 to generate demodulated symbols in the form of complex representations 1106 that indicate the symbol amplitudes and phases, ideally identical to the complex representations 730. For example, the demodulator 1104 may include analog and RF blocks that receive the wireless packet 1102 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 1104 that performs, for example, a discrete Fourier transform on the symbols in the streams. In some implementations, the demodulator 732 further includes a bandwidth segment parser that parses the different bandwidth segment streams. A tone demapper of the demodulator 732 may then demap the tones to obtain multiple spatial streams (if any) for each of the bandwidth segments.

[0097] A constellation demapper (e.g., a QAM demapper) 1108 may then demap the complex representations 1106 from each point in the (e.g., QAM) modulation constellation to obtain demodulated symbols 1110. For example, continuing with the example presented above, the resulting stream of complex representations 1106 may be provided to respective constellation demappers that provide respective spatial streams of demodulated symbols 1110. Each of the demodulated symbols 1110 ultimately includes a set of n amplitude bits that indicate the amplitude of the symbol. As described above in connection with process 600 and flow 700, the first n / 2 bits of the set of n amplitude bits for each demodulated symbol 1110 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 1110 may indicate a second amplitude component of the symbol's amplitude along the imaginary axis of the modulation constellation. Therefore, the first (real) amplitude component 2 n / 2 2 potential first amplitude levels, and 2 potential second (imaginary) amplitude components of each demodulated symbol 1110. n / 2 There are potential second amplitude levels. As explained above, each of the demodulated symbols 1110 may further include a sign bit for each of the amplitude components that indicates the sign of the respective amplitude.

[0098] As described above, at block 1004, 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 706a. In some such examples, the set of amplitude bits may further include a plurality of unshaped bits, including, for example, the LSB 708. In some implementations, the demodulated symbols 1110 may further include a plurality of code bits or signaling bits. In some implementations, the rearrangement module 1112 may receive the demodulated symbols 1110, including all of the amplitude bits (including the amplitude-shaped bits and any unshaped bits) and the parity bits, and reassemble them into codewords 1114. For example, continuing with the example presented above, the rearrangement module 1112 may also include a plurality of bandwidth segment deparsers that deparse the symbols 1110 from respective bandwidth segment streams. In some implementations, the reordering module 1112 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, the reordering module 1112 may then reorder the bits from the demodulated symbols into codewords 1114.

[0099] As described above, in block 1006, 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. 11B, a first decoder 1116 may receive a codeword 1114 and perform a first decoding operation on the codeword 1114 in block 1008 to provide at least a first plurality of decoded data bits based on the amplitude-shaped bits. The first decoder 1116 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 1114 may also include unshaped amplitude bits (e.g., LSBs or sign bits). Thus, based on decoding the codeword 1114, the first decoder 1116 may output a decoded code block including decoded amplitude-shaped bits (e.g., MSBs) 1118, decoded LSBs 1120, decoded code bits 1122, and decoded signaling bits 1124.

[0100] As described above, the wireless communication device performs a second decoding operation in block 1008 on the amplitude-shaped bits 1118 to generate unshaped amplitude bits. In some implementations, the shaping decoder 1126 performs a second decoding operation (also referred to herein as an “amplitude de-shaping operation”) to remove redundancy from the amplitude-shaped bits 1118 and generate unshaped amplitude bits 1128 such that the number (numerical quantity) of unshaped amplitude bits 1128 is less than the number of amplitude-shaped bits 1118. In some implementations where a plurality of decoded data bits includes unshaped bits (e.g., LSBs 1120, sign bits 1122, or signaling bits 1124), the second decoding operation is performed only on the amplitude-shaped bits 1118 in block 1008. 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.

[0101] In some implementations, the second decoding operation performed in block 1008 is or includes an arithmetic decoding operation. For example, the shaping decoder 1126 may perform an arithmetic decoding operation in block 1008 that is essentially the inverse of the arithmetic encoding operation described with reference to block 602 of process 600. In some other implementations, the second decoding operation performed in block 1008 is or includes a prefix decoding operation. For example, the shaping decoder 1126 may perform a prefix decoding operation in block 1008 that is essentially the inverse of the prefix encoding operation described with reference to block 602 of process 600. As described above, in some implementations, the execution of the prefix decoding operation may be parallelized.

[0102] In the shown example, the deparser 1130 reassembles the deshaped bits (e.g., MSBs) 1128 and any LSBs 1120 or sign bits 1122 into one or more information blocks 1132. The information blocks 1132 may then be processed by a MAC layer of the wireless communication device to decode the corresponding MPDU.

[0103] As described above, in some implementations, the wireless communication device may also receive an indication of the second decoding operation from the transmitting device in block 1002 in the same wireless packet 1102 that includes the modulated symbols. For example, the wireless communication device may receive the indication in a preamble of the wireless packet 1102, such as in a signaling field (e.g., in an ETH-SIG field such as the EHT-SIG-A field or the EHT-SIG-C field). As described above, the preamble may include an MCS field (which may be in the EHT-SIG-A field) that indicates one or more indications of a coding rate (e.g., an LDPC coding rate required by the LDPC decoder 1116 to perform the LDPC decoding operation in block 1006), a modulation (e.g., QAM) constellation size, and the second decoding operation. In some other implementations, the one or more indications of the second decoding operation may be received in a second signaling field separate from the MCS field (e.g., in another subfield within EHT-SIG-A or EHT-SIG-C). For example, the MCS field or the second signaling field may include a first bit indicating whether a first encoding (amplitude shaping) operation was performed by the transmitting device and one or more second bits indicating one or more amplitude shaping parameters associated with the first encoding operation that define an uneven distribution of amplitudes.

[0104] As described above, the MCS field or the second signaling field may also include an indication of a power scaling factor applied to the modulated symbols for use by the demodulator 1104 in descaling the modulated symbols. As further described above, the MCS field or the second signaling field may indicate the size of the code block (or an indication of the size and number of code blocks for a group of code blocks) on which the first encoding (amplitude shaping) operation was performed by the transmitting device. In some other implementations, one or both of the power scaling factor and the code block size may be signaled implicitly.

[0105] As described with respect to process 600, flow 700, distribution 800, and LUT 900, respectively, described with respect to Figures 6, 7A, 7B, 8A-8D, and 9, the amplitude shaping encoding operation specifically adds redundancy to the amplitude bits input to the shaping encoder 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 can be content-dependent (depending on the values ​​of the bits input to the shaping encoder), the effective coding rate of the shaping encoder can be inherently variable. Additionally, as described above, the number of amplitude-shaped bits output from the shaping encoder can also vary. For example, unlike some of the arithmetic coding operations described herein, when using a prefix coding operation to perform amplitude shaping, the number of amplitude-shaped bits output from the shaping encoder may be variable.

[0106] Existing versions of the IEEE 802.11 standard allow for peak spectral efficiency (for MCS13) at a coding rate of 5 / 6. That is, six bits of coded data can be transmitted for every five bits of useful information. Some wireless communication devices may achieve peak spectral efficiency through LDPC encoding using a rate 5 / 6 LDPC code. For example, a wireless communication device operating in accordance with an existing version of the IEEE 802.11 standard may generate LDPC codewords of length 1944 bits at a coding rate of 5 / 6. The LDPC encoding process generates 324 parity bits for every 1620 information bits. Although smaller codeword lengths (less than 1944 bits) are also available for existing versions of the IEEE 802.11 standard, generally, the coding gain is higher with longer codeword lengths.

[0107] In this implementation, the spectral efficiency is affected by the coding rate of the systematic encoding operation (such as that performed by systematic encoder 716 of FIG. 7A) as well as the coding rate of the probability amplitude shaping operation (such as that performed by shaping encoder 710 of FIG. 7A). As explained above, the probability amplitude shaping operation has an effective coding rate of less than 1. When the amplitude shaping operation is combined with the systematic encoding operation defined by the existing IEEE 802.11 standard (such as a rate 5 / 6 LDPC code), the overall effective coding rate is less than 5 / 6.

[0108] Aspects of the present disclosure may improve spectral efficiency when performing amplitude shaping by combining an amplitude shaping operation with a systematic encoding operation having a coding rate greater than 5 / 6. In some implementations, the amplitude shaping operation may be or include prefix encoding having an effective coding rate greater than 0.94 but less than 1. In some aspects, peak spectral efficiency may be achieved (or maintained) by combining an amplitude shaping operation having an effective coding rate of 0.95 with a systematic encoding operation having a coding rate of 7 / 8. For example, with reference to FIG. 7A, the shaping encoder 710 may perform a prefix encoding operation having an effective coding rate of 0.95, and the systematic encoder 716 may perform an LDPC encoding operation having an effective coding rate of 7 / 8. As a result, the flow 700 may achieve an overall coding rate of approximately 5 / 6. In other words, the flow 700 may generate six codeword bits (of the codeword 718) for every five information bits (of the information block 702).

[0109] In some implementations, a systematic coding operation may achieve an effective coding rate of 7 / 8 using an LDPC code that originally had a coding rate of 7 / 8. In other words, a generator matrix implementing a rate 7 / 8 LDPC code may generate 8 codeword bits for every 7 information bits. For example, the generator matrix may encode an information block containing 1701 information bits into a length-1944 LDPC codeword (by adding 243 parity bits to the information block). In some prefix coding implementations configured for 4096-QAM, there may be 32 different sequences or patterns of amplitude bits corresponding to 32 respective amplitude levels for the in-phase (I) or quadrature (Q) components of the associated symbol. Each pattern of amplitude bits may be 5 bits in length. Thus, a length-1944 codeword may be encoded using 324 PAM amplitudes (1944 codeword bits / (5 amplitude bits + 1 code bit) = 324 PAM amplitudes). Since 1701 systematic bits are encoded and transmitted with each LDPC codeword, 1620 of the systematic bits may be used to shape all 324 PAM amplitudes (324 PAM amplitudes * 5 amplitude bits / shaped amplitude = 1620), and the remaining 81 unshaped systematic bits may be reused as code bits. Assuming that the prefix coding operation has an effective coding rate of 0.95, the overall effective coding rate of the system is (1620 * 0.95 + 81) / 1944 = 5 / 6.

[0110] In some other implementations, the systematic coding operation may achieve an effective coding rate of 7 / 8 by puncturing one or more codeword bits generated by an LDPC code originally having a coding rate less than 7 / 8. In some aspects, a higher effective coding rate may be achieved by puncturing one or more bits of an LDPC codeword generated using a legacy LDPC code (such as those defined by existing versions of the IEEE 802.11 standard). For example, a rate 7 / 8 codeword may be derived by puncturing 93 bits of a rate 5 / 6 codeword of length 1944. Another example is puncturing 96 bits of a rate 5 / 6 codeword of length 1944, resulting in a coding rate approaching 7 / 8. Puncturing 96 bits may be performed when it is desired that the number of punctured bits is a multiple of the bits in a modulation symbol (for 4096QAM, each QAM symbol carries 12 bits). Yet another example is puncturing 90 bits of a rate 5 / 6 codeword of length 1944, resulting in 7.5 QAM punctured symbols (for 4096QAM). Effectively, 15 QAM symbols are punctured for every two codewords. As will be explained in more detail with respect to Figure 12, the punctured bits may include information bits, parity bits, or any combination thereof.

[0111] In some other aspects, a higher effective coding rate may be achieved by puncturing one or more bits of a generated LDPC codeword that is optimized for a higher code rate (such as rate 7 / 8). For example, a new LDPC code may be optimized to encode a larger number of parity bits for a given codeword length (compared to legacy LDPC codes). In some implementations, the number of parity bits generated using a new LDPC code may cause the resulting codeword to exceed the desired codeword length. For example, an LDPC encoding process may add 405 parity bits to an information block containing 1701 information bits, resulting in a codeword of length 2106 (when the desired codeword length is 1944). Therefore, to achieve the desired effective coding rate, one or more bits of the resulting codeword may be punctured. As described in more detail with respect to FIG. 12, the punctured bits may include information bits, parity bits, or any combination thereof.

[0112] FIG. 12 shows another diagram of a flow 1200 that supports amplitude shaping, according to some implementations. For example, flow 1200 may be another implementation of flow 700 illustrated in FIG. 7A. In the example of FIG. 12, an information block 1202 is provided to a shaping encoder 1210. In some implementations, a subset of bits 1204 (unshaped information bits or LSBs) of information block 1202 may be provided directly to systematic encoder 1220 as unshaped information bits, thereby bypassing shaping encoder 1210. For example, the subset of bits 1204 may be parsed from information block 1202 by a pre-shaping parser (such as pre-shaping parser 704 of FIG. 7A). As a result, shaping encoder 1210 may receive only the subset of bits of information block 1202. In some aspects, the number of bits 1204 transmitted directly to the systematic encoder 1220 may depend on the puncturing operation performed by the codeword puncturer 1240. In some other implementations, each bit of the information block 1202 may be provided to the shaping encoder 1210.

[0113] 7A. Thus, the shaping encoder 1210 may encode one or more bits of the information block 1202 to generate amplitude-shaped bits 1212 such that the amplitudes of the associated symbols have a non-uniform distribution, and in particular, a distribution such that the probability associated with each amplitude generally increases with decreasing amplitude (such as a Gaussian distribution). In some implementations, the shaping encoder 1210 is or includes a prefix encoder having an effective coding rate of approximately 0.95.

[0114] As described above, performing the prefix encoding operation may include comparing a sequence of consecutive bits of the information block 1202 to one or more patterns of bit values ​​of a set of bit value patterns having unequal lengths. More specifically, the bit value patterns may be defined such that each of the bit value patterns has an associated probability of occurrence in the information block 1202, such that bit value patterns associated with relatively low symbol amplitudes have a relatively higher probability of occurrence than bit value patterns associated with relatively high symbol amplitudes. In some implementations configured for 4096-QAM, there may be up to 32 potential sequences of information bits that may be input to the shaping encoder 1210 for the prefix encoding operation.

[0115] For example, as shown in Table 1-4, there are 32 sequences or patterns of amplitude bits that can be output by the shaping encoder 1210. Each sequence of amplitude bits can 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 sequence of amplitude bits is associated with a respective symbol amplitude. For example, there are 32 different potential sequences of amplitude bits and associated amplitude level values ​​ranging from 1 to 63 (odd numbers only).

[0116] [Table 1]

[0117] As shown in Table 1, there are 32 potential sequences of information bits that can be input to shaping encoder 1210. In this example, each sequence of amplitude bits has a probability of occurrence associated with a probability mass function (PMF), 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 effective coding rate of the prefix coding table can be derived by dividing the average number of amplitude-shaped bits (number of bits) by the length of each sequence of amplitude bits (5). Therefore, the above prefix coding table (Table 1) has an effective coding rate of 0.9500.

[0118] [Table 2]

[0119] As shown in Table 2, there are 30 potential sequences of information bits that can be input to shaping encoder 1210. In this example, each sequence of amplitude bits has a probability of occurrence associated with a PMF, which is PMF = [8, 8, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0] / 128. The above prefix encoding table (Table 2) has an effective coding rate of 0.9500.

[0120] [Table 3]

[0121] As shown in Table 3, there are 31 potential sequences of information bits that can be input to shaping encoder 1210. In this example, each sequence of amplitude bits has a probability of occurrence associated with a PMF, which is PMF = [8, 8, 8, 8, 8, 8, 8, 8, 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, 0] / 128. The above prefix encoding table (Table 3) has an effective coding rate of 0.9469.

[0122] [Table 4]

[0123] As shown in Table 4, there are 31 potential sequences of information bits that can be input to shaping encoder 1210. In this example, each sequence of amplitude bits has a probability of occurrence associated with a PMF, where PMF = [8, 8, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 1, 1, 0] / 128. The above prefix encoding table (Table 4) has an effective coding rate of 0.9531.

[0124] Although 4096QAM may use five bits to encode each amplitude level, aspects of the present disclosure recognize that not all five bits need to be amplitude shaped to achieve an effective coding rate of approximately 0.95. As shown in Table 5-7, an effective coding rate approaching 0.95 may be achieved by shaping only four of the five bits (the MSBs). In other words, each unique sequence of information bits may be mapped to a respective four-bit sequence of amplitude bits. The remaining bit (the LSB) is not used in amplitude shaping and may be used to determine the corresponding amplitude level associated with the amplitude-shaped sequence of bits. As shown in Tables 8 and 9, an effective coding rate of approximately 0.95 may also be achieved by shaping only three of the five bits (the MSBs). In other words, each unique sequence of information bits may be mapped to a respective three-bit sequence of amplitude bits. The remaining two bits (LSBs) are not used in amplitude shaping and may be used to determine the corresponding amplitude level associated with the sequence of amplitude-shaped bits.

[0125] [Table 5]

[0126] As shown in Table 5, there are 16 potential sequences of information bits that can be input to the shaping encoder 1210. Each sequence of information bits is mapped to a 4-bit sequence of amplitude bits. Each sequence of amplitude bits (MSBs) is further associated with two amplitude levels. Therefore, the remaining unshaped bits (LSBs) can be used to distinguish between the two amplitude levels. In this example, each sequence of amplitude bits has a probability of occurrence associated with a PMF, where PMF = [8, 8, 8, 8, 4, 4, 4, 4, 4, 4, 2, 2, 1, 1, 1, 1] / 64. The above prefix coding table (Table 5) has a native coding rate of 0.9219. The effective coding rate (R eff ) may be determined as a function of the number of amplitude shaped bits (MSBs), the number of unshaped amplitude bits (LSBs), and the original coding rate (R).

[0127]

number

[0128] Therefore, the above prefix coding table (Table 5) has an effective coding rate of 0.9375 ((4*0.9219+1) / 5=0.9375).

[0129] [Table 6]

[0130] As shown in Table 6, there are 16 potential sequences of information bits that can be input to the shaping encoder 1210. Each sequence of information bits is mapped to a 4-bit sequence of amplitude bits. Each sequence of amplitude bits (MSBs) is further associated with two amplitude levels. Thus, the remaining unshaped bits (LSBs) can be used to distinguish between the two amplitude levels. In this example, each sequence of amplitude bits has a probability of occurrence associated with a PMF, which is PMF=[8, 8, 8, 8, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 1, 1] / 64. The above prefix coding table (Table 6) has a native coding rate of 0.9297 and an effective coding rate of 0.9438.

[0131] [Table 7]

[0132] As shown in Table 7, there are 16 potential sequences of information bits that can be input to shaping encoder 1210. Each sequence of information bits is mapped to a 4-bit sequence of amplitude bits. Each sequence of amplitude bits (MSBs) is further associated with two amplitude levels. Thus, the remaining unshaped bits (LSBs) can be used to distinguish between the two amplitude levels. In this example, each sequence of amplitude bits has a probability of occurrence associated with a PMF, which is PMF=[8, 8, 8, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 1, 1] / 64. The above prefix coding table (Table 7) has a native coding rate of 0.9453 and an effective coding rate of 0.9562.

[0133] [Table 8]

[0134] As shown in Table 8, there are eight potential sequences of information bits that can be input to the shaping encoder 1210. Each sequence of information bits is mapped to a 3-bit sequence of amplitude bits. Each sequence of amplitude bits (MSBs) is further associated with four amplitude levels. Therefore, the remaining two unshaped bits (LSBs) can be used to distinguish between the four amplitude levels. In this example, each sequence of amplitude bits has a probability of occurrence associated with a PMF, where PMF = [8, 8, 4, 4, 4, 2, 1, 1] / 32. The above prefix coding table (Table 8) has a native coding rate of 0.8958 and an effective coding rate of 0.9375.

[0135] [Table 9]

[0136] As shown in Table 9, there are eight potential sequences of information bits that can be input to shaping encoder 1210. Each sequence of information bits is mapped to a 3-bit sequence of amplitude bits. Each sequence of amplitude bits (MSBs) is further associated with four amplitude levels. Therefore, the remaining two unshaped bits (LSBs) can be used to distinguish between the four amplitude levels. In this example, each sequence of amplitude bits has a probability of occurrence associated with a PMF, where PMF = [8, 4, 4, 4, 4, 4, 2, 2] / 32. The above prefix coding table (Table 9) has an original coding rate of 0.9583 and an effective coding rate of 0.9751. Note that the input sequence of information bits in any of Tables 1-9 can be inverted (by replacing 1s with 0s and 0s with 1s) to obtain a new prefix coding table with the same PMF as the corresponding table.

[0137] After matching the sequence of information bits with one of the bit value patterns in the prefix encoding table, the shaping encoder 1210 may then output a sequence of amplitude bits 1212 associated with the bit value pattern. For example, assume that the next four information bits to be encoded by the shaping encoder 1210 are 0110. Based on this sequence of information bits, the shaping encoder 1210 may identify the pattern 0110 in a LUT that includes a set of bit value patterns. For example, the LUT may implement Table 1. The shaping encoder 1210 may then map the pattern 0110 to a corresponding sequence of amplitude bits having a pattern 10010, which has an associated amplitude level of 7, and output the sequence of amplitude bits to the systematic encoder 1220.

[0138] Systematic encoder 1220 may be an example of systematic encoder 716 of FIG. 7A. Thus, systematic encoder 1220 may perform a systematic encoding operation on a sequence of magnitude bits 1212 such that the bits output from systematic encoder 1220 match the bits input to systematic encoder 1220. In some implementations, systematic encoder 1220 is or includes an LDPC encoder. Thus, for each code block input to systematic encoder 1220, systematic encoder 1220 generates a resultant codeword 1230 that includes a systematic portion 1232 and a parity portion 1234. The systematic portion includes magnitude bits 1212 as well as any LSBs, sign bits, or signaling bits (not shown for simplicity) that may be included with the code block input to systematic encoder 1220. Parity portion 1234 includes a number of parity bits that add redundancy to codeword 1230 and may be used in decoding codeword 1230 .

[0139] In some implementations, systematic encoder 1220 may generate codeword 1230 using a legacy LDPC code (such as that described by existing versions of the IEEE 802.11 standard) having a coding rate of 5 / 6. For example, systematic encoder 1220 may receive a 1620-bit code block as input and output a codeword of length 1944. As described above, peak spectral efficiency may be achieved at a coding rate of 5 / 6. However, because the amplitude shaping operation has an effective coding rate less than 1, the resulting codeword 1230 output by systematic encoder 1220 (which implements a rate 5 / 6 LDPC code) has an overall coding rate less than 5 / 6. In some implementations, the effective coding rate of systematic encoder 1220 may be improved (or enhanced) through puncturing. For example, codeword 1230 may be provided as input to codeword puncturer 1240.

[0140] Codeword puncturer 1240 may puncture one or more bits of codeword 1230 to generate a punctured codeword 1250 that is substantially shorter in length than input codeword 1230. More specifically, punctured codeword 1250 may include some punctured bits 1252 that are not transmitted or coded into QAM symbols. Referring to FIG. 7B , for example, punctured bits 1252 may be excluded from codeword 718 input to alignment module 724. For example, when systematic encoder 1220 uses a legacy LDPC code, codeword puncturer 1240 may puncture 93 bits of resulting codeword 1230. Thus, of the total 1944 codeword bits, only 1851 of the codeword bits may be transmitted or coded into QAM symbols. As a result, punctured codeword 1250 has an effective coding rate equal to 1620 / 1851 = 0.875 (or 7 / 8). Punctured bits 1252 are treated as erasures and can thereby be corrected or restored by an LDPC decoder at a receiving device. In some implementations, punctured bits 1252 may include information bits, parity bits, or any combination thereof.

[0141] As explained above, the number of punctured bits 1252 can be a function of the modulation order, such that the number of punctured bits is a multiple of half the number of bits carried by the QAM symbol. Assuming a legacy LDPC code, another example is to puncture 96 bits of the 1944 codeword bits, resulting in a punctured codeword of length 1848. The effective coding rate of the punctured codeword is 1620 / 1848 = 0.8766 (which is close to rate 7 / 8). Puncturing 96 bits can be implemented when it is desired that the number of punctured bits be a multiple of the bits in a modulation symbol (for 4096QAM, each QAM symbol carries 12 bits). Yet another example is to puncture 90 bits of a rate 5 / 6 codeword of length 1944, resulting in 7.5 QAM punctured symbols (for 4096QAM). Effectively, 15 QAM symbols are punctured for every two codewords.

[0142] In some other implementations, the systematic encoder 1220 may generate the codewords 1230 using a new LDPC code (also referred to herein as a “non-legacy LDPC code”) that is optimized for a higher coding rate. For example, a non-legacy LDPC code may be optimized to encode a larger number of parity bits for a given codeword length (compared to a legacy LDPC code). In some implementations, the non-legacy LDPC code may be based on a quasi-cyclic (QC) parity check matrix. Such a code may be referred to as a QC LDPC code. A parity check matrix for a QC LDPC code may be represented by a base matrix and an augmented submatrix for augmenting the elements of the base matrix. Each submatrix of the parity check matrix may correspond to an all-zeros matrix or a cyclic permutation matrix (also referred to as a “cyclic matrix”) with a cyclic weight of 1 or greater. In a cyclic permutation matrix with a cyclic weight of 1, each row and each column of the cyclic permutation matrix may contain only one zero element.

[0143] FIG. 13 shows an example parity check matrix 1300 for an LDPC code. In some implementations, the parity check matrix 1300 may be optimized for rate 7 / 8 LDPC codewords. For example, referring to FIG. 12, the parity check matrix 1300 (or a generator matrix based on the parity check matrix 1300) may be used by a systematic encoder 1220 to generate a codeword 1230. More specifically, the systematic encoder 1220 may use the parity check matrix 1300 to generate a number of parity bits for a certain number (M) of information bits of an input code block. The parity bits are added to the systematic bits to generate a certain number (L) of codeword bits representing the codeword 1230. An LDPC decoder may use the same parity check matrix 1300 to validate and correct individual bits of a received codeword. More specifically, the LDPC decoder may validate and correct individual bits of a received codeword based on the following condition: H c T = 0 (H represents the parity check matrix 1300, and c is a vector representing the codeword) is satisfied, it may be determined that the received codeword is a valid codeword.

[0144] In some implementations, the parity check matrix 1300 may correspond to a base matrix of a QC LDPC code. As shown in FIG. 13, the base matrix includes 5 rows (denoted with the subscript “R”) and 26 columns (denoted with the subscript “C”). The intersection of each row and each column of the parity check matrix 1300 is a submatrix of dimension ZxZ. For example, each “−1” entry in the parity check matrix 500 may be expanded into an all-zero submatrix, and each “P” entry in the parity check matrix 500 may be expanded into a cyclic permutation matrix with a cyclic weight greater than or equal to 1. As shown in FIG. 13, the all-zero submatrix is ​​located at the intersection of row 1 with each of columns 1, 2, 9, 10, 16, 21, 23, 24, and 26, at the intersection of row 2 with each of columns 8, 12, 14, 18, 20, 24, 25, and 26, at the intersection of row 3 with each of columns 3, 6, 13, 17, 19, 22, and 26, at the intersection of row 4 with each of columns 4, 5, 7, 11, 15, 22, 23, and 26, and at the intersection of row 5 with each of columns 1 to 20 and 22 to 24 of the parity check matrix 1300.

[0145] In some implementations, each cyclic permutation matrix P of the parity check matrix 1300 may have a cyclic weight equal to 1. In other words, each row and each column of the cyclic permutation matrix P contains only one non-zero value (equal to 1). FIG. 14A shows an example 3x3 cyclic permutation matrix 1400 with a cyclic weight equal to 1 and a rotation of size 0. Note that the cyclic permutation matrix 1400 is a 3x3 identity matrix. FIG. 14B shows an example 3x3 cyclic permutation matrix 1410 with a cyclic weight equal to 1 and a rotation of size 1. For example, referring to FIG. 14A, the cyclic permutation matrix 1410 may be generated by shifting or “rotating” each column of the cyclic permutation matrix 1400 to the right by one column. FIG. 14C shows an example 3x3 cyclic permutation matrix 1420 with a cyclic weight equal to 1 and a rotation of size 2. For example, referring to FIG. 14A, a circulant permutation matrix 1420 may be generated by shifting or rotating each column of the circulant permutation matrix 1400 to the right by two columns.

[0146] In some implementations, each entry in parity check matrix 1300 may correspond to a submatrix of dimension 81 x 81 (Z = 81). Systematic encoder 1220 may use parity check matrix 1300 (or a generator matrix based on parity check matrix 1300) to encode 1701 information bits into an LDPC codeword of length 1944, achieving a code rate of 7 / 8, for example. However, the encoding process generates 405 parity bits for each 1701 information bits, resulting in a total of 2106 codeword bits. Therefore, codeword puncturer 1240 may puncture 162 codeword bits of the 2106-bit codeword such that the resulting punctured codeword has an effective length of 1944. In some implementations, punctured codeword bits 1252 may consist of 162 information bits. In some other implementations, the punctured codeword bits 1252 may include 81 parity bits and 81 information bits. Still further, in some implementations, the punctured codeword bits 1252 may include any number of information bits, parity bits, or a combination thereof. When one or more information bits are punctured from a 2106-bit long codeword, the resulting punctured code may be referred to as "quasi-systematic," where the number of systematic bits is less than the number of information bits.

[0147] As described above, the punctured codeword bits 1252 are not transmitted or encoded into QAM symbols. Thus, the punctured codeword bits 1252 do not affect the amplitude level of the QAM symbols and therefore cannot be used for amplitude shaping. In some implementations, the operation or configuration of the shaping encoder 1210 may depend at least in part on the number and type of the punctured codeword bits 1252. For example, when the shaping encoder 1220 generates 405 parity bits for every 1701 information bits using a non-legacy LDPC code (such as that described with respect to FIG. 13 ) and the codeword puncturer 1240 punctures 162 of the information bits, up to 1539 bits (referred to herein as “systematic bits”) of the 1701 bits input to the systematic encoder 1220 may be used for amplitude shaping. In other words, a pre-shaping parser (such as pre-shaping parser 704 of FIG. 7A) may parse at least 162 bits from information block 1202 to be provided directly to systematic encoder 1220 as a subset of bits 1204.

[0148] In an implementation in which shaping encoder 1210 uses a sequence of five amplitude bits to represent each amplitude level (such as those shown in Table 1-4), 1535 of the 1539 systematic bits can be shaped or output by shaping encoder 1210. The remaining four systematic bits are insufficient for amplitude shaping and can therefore be used as code bits. The four unshaped systematic bits are combined with the 162 punctured bits to yield a total of 166 unshaped information bits. Meanwhile, the 1535 shaped bits result in 1535 / 5 = 307 shaped PAM amplitudes. Because a length-1944 codeword contains 324 PAM amplitudes, 17 of the PAM amplitudes are unshaped. Assuming that systematic encoder 1210 has an effective coding rate of 0.95, the overall effective coding rate of the system is (1535*0.95+166) / 1944=0.8355, which is slightly more than the coding rate of 5 / 6.

[0149] Aspects of the present disclosure recognize that by reducing the number of amplitude bits required for shaping, more of the PAM amplitude can be shaped. For example, in an implementation in which the shaping encoder 1210 uses a sequence of four amplitude bits to represent each amplitude level (such as that shown in Table 5-7), only 1296 of the 1539 systematic bits are required to shape all 324 PAM amplitudes (324 PAM amplitudes * 4 MSBs / shaped amplitude = 1296). This leaves 243 systematic bits unshaped. The 243 unshaped systematic bits are combined with the 162 punctured bits to yield a total of 409 unshaped information bits. Assuming that the systematic encoder 1210 has an effective coding rate of 0.95, the overall effective coding rate of the system is (1296*0.95+409) / 1944=0.8437.

[0150] As described above, the punctured codeword bits 1252 are treated as deleted portions and therefore may be recovered or corrected through a conventional LDPC decoding process using the same LDPC code as the systematic encoder 1220. Accordingly, the flow 1100 described above with respect to Figures 11A and 11B may be used to decode the punctured codeword 1250. Specifically, the systematic decoder 1116 may decode the received codeword 1114 using the same LDPC code as used by the systematic encoder 1220. Furthermore, the shaping decoder 1126 may decode (or unshape) the amplitude-shaped bits 1118 using the same prefix coding table as used by the shaping encoder 1210.

[0151] 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.

[0152] In some implementations, process 1500 begins at block 1502 by performing a first encoding operation on a plurality of information bits, generating a plurality of amplitude-shaped bits. In some implementations, the first encoding operation has an effective coding rate that is greater than or equal to 0.5 and less than 1. In some implementations, the first encoding operation is not performed on the plurality of unshaped information bits, and the M bits of each code block further include one or more of the plurality of unshaped information bits.

[0153] In some implementations, performing the first encoding operation includes selecting, from a 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 respective plurality of patterns of amplitude-shaped bits, and the plurality of amplitude-shaped bits includes patterns of amplitude-shaped bits that correspond to the selected patterns of bit values. In some aspects, each of the plurality of patterns of amplitude-shaped bits may represent a respective amplitude level having a probability of occurrence based on the PMF. In some other aspects, each of the plurality of patterns of amplitude-shaped bits may represent two or more amplitude levels having probabilities of occurrence based on the PMF.

[0154] At block 1504, process 1500 proceeds to arrange the plurality of amplitude-shaped bits into a plurality of code blocks, each code block having a number (M) of bits including one or more of the plurality of amplitude-shaped bits. At block 1506, process 1500 proceeds to perform a second encoding operation on the plurality of code blocks to generate a plurality of respective code words, each code word having a number (L) of bits including one or more amplitude-shaped bits of the respective code block and one or more parity bits resulting from the second encoding operation, where M / L>5 / 6. In some implementations, M / L=7 / 8. In some implementations, the second decoding operation is based on an LDPC code. In some aspects, the LDPC code may have a coding rate equal to 7 / 8. In some other aspects, the LDPC code may have a coding rate equal to 5 / 6.

[0155] In some implementations, performing the second encoding operation includes encoding the M bits of each code block as a respective number (N) of codeword bits based on an LDPC code and puncturing a number (K) of codeword bits associated with each code block such that L = N K. In some aspects, M = 1620, N = 1944, and K > 90. In some other aspects, M = 1701, N = 2106, and K = 162. In some implementations, puncturing is not performed on the amplitude-shaped bits.

[0156] At block 1508, process 1500 proceeds to arranging the one or more amplitude-shaped bits and one or more parity bits of each of the plurality of codewords into a plurality of symbols, each symbol having an amplitude based on the respective amplitude-shaped bit arranged in the symbol, the first encoding operation generating a plurality of amplitude-shaped bits such that the amplitudes of the plurality of symbols have an uneven distribution. At block 1510, process 1500 proceeds to transmitting a wireless packet including the plurality of symbols to at least one receiving device.

[0157] 16 shows a flowchart illustrating an example process 1600 for wireless communication supporting amplitude shaping, according to some implementations. In some implementations, the process 1600 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, the process 1600 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.

[0158] In some implementations, process 1600 begins at block 1602 by receiving a wireless packet including a plurality of symbols having a plurality of amplitudes, where the plurality of symbols represent a plurality of codeword bits, and the plurality of amplitudes have a non-uniform distribution. At block 1604, process 1600 proceeds to arrange the plurality of codeword bits into a plurality of codeblocks, where each codeblock includes a number (L) of codeword bits. At block 1606, process 1600 proceeds to perform a first decoding operation on the plurality of codeblocks to generate a plurality of respective codewords, where each codeword has a number (M) of bits including a plurality of amplitude-shaped bits and a plurality of parity bits, where M / L>5 / 6, and the plurality of amplitude-shaped bits of each codeword indicate the amplitude of a respective symbol of the plurality of symbols. In some implementations, M / L=7 / 8. In some implementations, the first decoding operation is based on an LDPC code. In some aspects, the LDPC code has a coding rate equal to 7 / 8. In some other aspects, the LDPC code has a coding rate equal to 5 / 6.

[0159] At block 1608, process 1600 continues by performing a second decoding operation on the plurality of amplitude-shaped bits of each codeword, generating a plurality of respective deshaped bits for each of the plurality of codewords. In some implementations, the second decoding operation inverts a prefix encoding operation having an effective coding rate greater than or equal to 0.5 and less than 1. In some implementations, performing the second decoding operation includes selecting, from a LUT, a pattern of deshaped bits that matches the plurality of amplitude-shaped bits of each codeword of the plurality of codewords, wherein the LUT stores a plurality of patterns of deshaped bits corresponding to the respective plurality of patterns of amplitude-shaped bits, and the plurality of deshaped bits includes the selected pattern of deshaped bits. In some aspects, each of the plurality of patterns of amplitude-shaped bits may represent a respective amplitude of a plurality of amplitudes having a probability of occurrence based on the PMF. In some other aspects, each of the plurality of patterns of amplitude-shaped bits represents two or more amplitudes of a plurality of amplitudes having a probability of occurrence based on the PMF.

[0160] 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 400 described above with reference to Figure 4. 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).

[0161] 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 pulse amplitude encoding component 1722, a code block configuration component 1724, a systematic encoding component 1726, and a symbol configuration component 1728. Portions of one or more of the components 1722-1728 may be implemented at least in part in hardware or firmware. In some implementations, at least some of the components 1722-1728 are implemented at least in part as software stored in a memory (e.g., memory 408). For example, portions of one or more of the components 1722-1728 may be implemented as non-transitory instructions (or “code”) executable by a processor (e.g., processor 406) to perform the functions or operations of the respective components.

[0162] The receiving component 1710 is configured to receive RX signals over a wireless channel from one or more other wireless communication devices. The communications manager 1720 is configured to control or manage communications with the one or more other wireless communication devices. In some implementations, the pulse amplitude encoding component 1722 may perform a first encoding operation on the plurality of information bits to generate a plurality of amplitude-shaped bits; the code block construction component 1724 may arrange the plurality of amplitude-shaped bits into a plurality of code blocks, each code block having a number (M) of bits including one or more of the plurality of amplitude-shaped bits; the systematic encoding component 1726 may perform a second encoding operation on the plurality of code blocks to generate a plurality of respective code words, each code word having a number (L) of bits including one or more amplitude-shaped bits of the respective code block and one or more parity bits resulting from the second encoding operation, where M / L>5 / 6; and the symbol construction component 1728 may arrange the one or more amplitude-shaped bits and one or more parity bits of each of the plurality of code words into a plurality of symbols, each symbol having an amplitude based on the respective amplitude-shaped bits arranged in the symbol, the first encoding operation generating a plurality of amplitude-shaped bits such that the amplitudes of the plurality of symbols have a non-uniform distribution. The transmitting component 1730 is configured to transmit a TX signal to one or more other wireless communication devices. In some implementations, the TX signal may include a wireless packet including multiple symbols.

[0163] Figure 18 shows a block diagram of an example wireless communication device 1800 according to some implementations. In some implementations, the wireless communication device 1800 is configured to perform the process 1600 described above with reference to Figure 16. The wireless communication device 1800 may be an example implementation of the wireless communication device 400 described above with reference to Figure 4. For example, the wireless communication device 1800 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).

[0164] The wireless communication device 1800 includes a receiving component 1810, a communications manager 1820, and a transmitting component 1830. The communications manager 1820 further includes a code block configuration component 1822, a systematic decoding component 1824, and a pulse amplitude decoding component 1826. Portions of one or more of the components 1822-1826 may be implemented at least in part in hardware or firmware. In some implementations, at least some of the components 1822-1826 are implemented at least in part as software stored in a memory (e.g., memory 408). For example, portions of one or more of the components 1822-1826 may be implemented as non-transitory instructions (or “code”) executable by a processor (e.g., processor 406) to perform the functions or operations of the respective components.

[0165] The receive component 1810 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 include a wireless packet including a plurality of symbols having a plurality of amplitudes, the plurality of symbols representing a plurality of codeword bits, and the plurality of amplitudes having a non-uniform distribution. The communications manager 1820 is configured to control or manage communications with one or more other wireless communication devices. In some implementations, the code block configuration component 1822 may arrange the plurality of codeword bits into a plurality of code blocks, each code block including a number (L) of codeword bits, the systematic decoding component 1824 may perform a first decoding operation on the plurality of code blocks to generate a plurality of respective codewords, each codeword having a number (M) of bits including a plurality of amplitude-shaped bits and a plurality of parity bits, where M / L>5 / 6, and the pulse amplitude decoding component 1826 may perform a second decoding operation on the plurality of amplitude-shaped bits of each codeword to generate a plurality of respective unshaped bits for each of the plurality of codewords. The transmitting component 1830 is configured to transmit the TX signal to one or more other wireless communication devices.

[0166] Example implementations are described in the following numbered clauses. 1. A method for wireless communication by a wireless communication device, comprising: performing a first encoding operation on a plurality of information bits to generate a plurality of amplitude-shaped bits; Arranging the plurality of amplitude-shaped bits into a plurality of code blocks, each code block having a number (M) of bits including one or more of the plurality of amplitude-shaped bits; performing a second encoding operation on the plurality of code blocks to generate a plurality of respective code words, each code word having a number (L) of bits including one or more amplitude-shaped bits of a respective code block and one or more parity bits resulting from the second encoding operation, where M / L>5 / 6; Arranging one or more amplitude-shaped bits and one or more parity bits of each of a plurality of codewords into a plurality of symbols, each symbol having an amplitude based on a respective amplitude-shaped bit arranged in the symbol, the first encoding operation generating a plurality of 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. The method of clause 1, where M / L=7 / 8. 3. The method of any of clauses 1 or 2, wherein the first encoding operation has an effective coding rate that is greater than or equal to 0.5 and less than 1. 4. The step of performing a first encoding operation comprises: 4. The method of any of clauses 1 to 3, comprising selecting a pattern of bit values ​​that matches the subset of information bits from a look-up table (LUT), the LUT storing a plurality of patterns of bit values ​​corresponding to a respective plurality of patterns of amplitude-shaped bits, the plurality of amplitude-shaped bits including patterns of amplitude-shaped bits that correspond to the selected patterns of bit values. 5. The method of any of clauses 1 to 4, wherein each of the plurality of patterns of amplitude-shaped bits represents a respective amplitude level having a probability of occurrence based on a probability mass function (PMF). 6. The method of any of clauses 1 to 4, wherein each of the plurality of patterns of amplitude-shaped bits represents two or more amplitude levels having a probability of occurrence based on the PMF. 7. The method of any of clauses 1 to 6, wherein the first encoding operation is not performed on a plurality of unshaped information bits, and wherein the M bits of each code block further include one or more of the plurality of unshaped information bits. 8. The method of any of clauses 1 to 7, wherein the second encoding operation is based on a low-density parity-check (LDPC) code. 9. Any of the methods of clauses 1 to 8, wherein the LDPC code has a coding rate equal to 7 / 8. 10. Any of the methods of clauses 1 to 8, wherein the LDPC code has a coding rate equal to 5 / 6. 11. The step of performing a second encoding operation comprises: encoding the M bits of each code block as a respective number (N) of codeword bits based on an LDPC code; 11. The method of any of clauses 1 to 8 or 10, comprising: puncturing a number (K) of codeword bits associated with each code block so that L=NK. 12. The method of any of clauses 1 to 8, 10, or 11, wherein puncturing is not performed on multiple amplitude-shaped bits. 13. Any method of clauses 1-8 or 10-12, where M = 1620, N = 1944, and K ≥ 90. 14. Either method of clauses 1-8 or 10-12, where M=1701, N=2106, and K=162. 15. A wireless communication device, comprising: At least one modem; at least one processor communicatively coupled to the at least one modem; 15. 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 14. 16. 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 codeword bits into code blocks, each code block containing a number (L) of codeword bits; performing a first decoding operation on the plurality of code blocks to generate a plurality of respective codewords, each codeword having a number (M) of bits including a plurality of amplitude-shaped bits and a plurality of parity bits, where M / L>5 / 6, and the plurality of amplitude-shaped bits of each codeword indicate the amplitude of a respective symbol of the plurality of symbols; performing a second decoding operation on the plurality of amplitude-shaped bits of each codeword to generate a plurality of respective de-shaped bits for each of the plurality of codewords. 17. The method of clause 16, where M / L=7 / 8. 18. The method of any of clauses 16 or 17, wherein the first decoding operation is based on a low-density parity-check (LDPC) code. 19. The method of any of clauses 16 to 18, wherein the LDPC code has a coding rate equal to 7 / 8. 20. Any of the methods of clauses 16 to 18, wherein the LDPC code has a coding rate equal to 5 / 6. 21. The method of any of clauses 16 to 20, wherein the second decoding operation inverts the prefix encoding operation having an effective coding rate greater than or equal to 0.5 and less than 1. 22. The step of performing a second decoding operation comprises: 22. The method of any of clauses 16 to 21, comprising selecting from a look-up table (LUT) a pattern of deshaped bits that matches a plurality of amplitude-shaped bits of a respective code word of the plurality of code words, 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. 23. The method of any of clauses 16 to 22, wherein each of the plurality of patterns of amplitude-shaped bits represents a respective amplitude of a plurality of amplitudes having a probability of occurrence based on a probability mass function (PMF). 24. The method of any of clauses 16 to 22, wherein each of the plurality of patterns of amplitude-shaped bits represents two or more amplitudes of a plurality of amplitudes having a probability of occurrence based on the PMF. 25. A wireless communication device, comprising: At least one modem; at least one processor communicatively coupled to the at least one modem; 25. 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 16 to 24.

[0167] 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.

[0168] 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.

[0169] 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.

[0170] 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.

[0171] 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]

[0172] 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 352 Legacy Part 354 Non-Legacy Portion 356 PHY payload 358 L-STF 360 L-LTF 362 L-SIG 364 RL-SIG 366 HE-SIG-A 368 HE-SIG-B 370 HE-STF 372 HE-LTF 374 DATA field 400 Wireless Communication Devices 402 modem 404 Wireless 406 processor 408 memory 502 AP 504 STA 510 WCD 515 WCD 520 Antenna 525 Antenna 530 Application Processor 535 Application Processor 540 memory 545 memory 550 external network interface 555 User Interface 565 Display 575 Sensors 702 Information Block 704 Preshaping Parser 706 amplitude bits 710 Shaping Encoder 712 amplitude-shaped bits 714 signaling bits 716 Systematic Encoder 718 codeword 720 coded data bits 722 parity bits 724 Array Module 726 Symbols 728 Constellation Mapper 730 Complex Number Representation 732 Modulator 734 demodulated symbols 802 bottles 804 bottles 806 bottles 808 bottles 900 LUT 1102 Wireless Packets 1104 Demodulator 1106 Complex Number Representation 1108 Constellation Demapper 1110 demodulated symbols 1112 Rearrangement Module 1114 codeword 1116 Systematic Decoder 1118 Amplitude-Shaped Bits 1120 LSB 1122 sign bits 1124 signaling bits 1126 Shaping Decoder 1128 unshaped amplitude bits 1130 Post-shaping depasser 1132 Information Block 1202 Information Block 1204 bits 1210 Shaping Encoder 1212 amplitude-shaped bits 1220 Systematic Encoder 1230 codeword 1232 Systematic Part 1234 parity part 1240 Codeword Puncturing 1250 codeword 1252 punctured bits 1700 Wireless Communication Devices 1710 Receive Component 1720 Communications Manager 1722 Pulse Amplitude Encoding Component 1724 Code Block Composition Component 1726 Systematic Coding Components 1728 Symbol Configuration Components 1730 Transmission Component 1800 Wireless Communication Devices 1810 Receive Component 1820 Communication Components 1822 Code Block Composition Component 1824 Systematic Decoding Components 1826 Pulse Amplitude Decoding Component 1830 Transmission Component

Claims

1. 1. A method for wireless communication by a wireless communication device, comprising: performing a first encoding operation on a plurality of information bits to generate a plurality of amplitude-shaped bits; arranging the plurality of amplitude-shaped bits into a plurality of code blocks, each code block having a number (M) of bits including one or more of the plurality of amplitude-shaped bits; performing a second encoding operation on the plurality of code blocks to generate a plurality of respective codewords, each codeword having a number (L) of bits including the one or more amplitude-shaped bits of the respective code block and one or more parity bits resulting from the second encoding operation, where M / L>5 / 6; Arranging the one or more amplitude-shaped bits and the one or more parity bits of each of the plurality of codewords into a plurality of symbols by a modulation process based on a predetermined modulation scheme, wherein the first encoding operation generates the plurality of amplitude-shaped bits such that each symbol has an amplitude based on the respective amplitude-shaped bit arranged in the symbol, and the amplitudes of the plurality of symbols have a non-uniform distribution, and the predetermined modulation scheme includes quadrature amplitude modulation; transmitting a wireless packet to at least one receiving device, the wireless packet including the plurality of symbols and a preamble including a first bit indicating that the first encoding operation has been performed; said step of performing said first encoding operation further comprising: selecting a pattern of bit values ​​that matches the subset of information bits from a look-up table (LUT), the LUT storing a plurality of patterns of bit values ​​corresponding to a respective plurality of patterns of amplitude-shaped bits, the plurality of amplitude-shaped bits including the patterns of amplitude-shaped bits that correspond to the selected pattern of bit values; each of the plurality of patterns of amplitude-shaped bits represents a respective amplitude level having a probability of occurrence based on a probability mass function (PMF); or Each of the plurality of patterns of amplitude-shaped bits represents two or more amplitude levels having a probability of occurrence based on a PMF. method.

2. 2. The method of claim 1, wherein M / L=7 / 8.

3. The method of claim 1 , wherein the first encoding operation has an effective coding rate that is greater than or equal to 0.5 and less than 1.

4. 2. The method of claim 1, wherein the first encoding operation is not performed on a plurality of unshaped information bits, and the M bits of each code block further include one or more of the plurality of unshaped information bits.

5. 10. The method of claim 1, wherein the second encoding operation is based on a low-density parity-check (LDPC) code.

6. The method of claim 5 , wherein the LDPC code has a coding rate equal to 7 / 8.

7. 6. The method of claim 5, wherein the coding rate of the LDPC code is represented by M / L, and M / L further supports a value of 5 / 6.

8. said step of performing said second encoding operation further comprising: encoding the M bits of each code block as a respective number (N) of codeword bits based on the LDPC code; and puncturing a number (K) of the codeword bits associated with each code block such that L=NK.

9. The method of claim 8 , wherein the puncturing is not performed on the plurality of amplitude-shaped bits.

10. 9. The method of claim 8, wherein M=1620, N=1944, and K≧90.

11. 9. The method of claim 8, wherein M=1701, N=2106, and K=162.

12. 1. A wireless communication device, comprising: at least one transceiver; 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, the processor-readable code being operable by the at least one processor to: performing a first encoding operation on a plurality of information bits to generate a plurality of amplitude-shaped bits; arranging the plurality of amplitude-shaped bits into a plurality of code blocks, each code block having a number (M) of bits including one or more of the plurality of amplitude-shaped bits; performing a second encoding operation on the plurality of code blocks to generate a plurality of respective code words, each code word having a number (L) of bits including the one or more amplitude-shaped bits of the respective code block and one or more parity bits resulting from the second encoding operation, where M / L>5 / 6; Arranging the one or more amplitude-shaped bits and the one or more parity bits of each of the plurality of codewords into a plurality of symbols by a modulation process based on a predetermined modulation scheme, wherein the first encoding operation generates the plurality of amplitude-shaped bits such that each symbol has an amplitude based on the respective amplitude-shaped bit arranged in the symbol, and the amplitudes of the plurality of symbols have a non-uniform distribution, and the predetermined modulation scheme includes quadrature amplitude modulation; and transmitting a wireless packet via the at least one transceiver to at least one receiving device, the wireless packet including the plurality of symbols and a preamble including a first bit indicating that the first encoding operation was performed; performing the first encoding operation; selecting a pattern of bit values ​​that matches the subset of information bits from a look-up table (LUT), the LUT storing a plurality of patterns of bit values ​​corresponding to a respective plurality of patterns of amplitude-shaped bits, the plurality of amplitude-shaped bits including the patterns of amplitude-shaped bits that correspond to the selected pattern of bit values; each of the plurality of patterns of amplitude-shaped bits represents a respective amplitude level having a probability of occurrence based on a probability mass function (PMF); or each of the plurality of patterns of amplitude-shaped bits represents two or more amplitude levels having a probability of occurrence based on a PMF; or Wireless communication devices.

13. 13. The wireless communication device of claim 12, wherein M / L=7 / 8.

14. 13. The wireless communication device of claim 12, wherein the first encoding operation has an effective coding rate that is greater than or equal to 0.5 and less than 1.

15. The process of performing the second encoding operation comprises: encoding the M bits of each code block as a respective number (N) of codeword bits based on a Low Density Parity Check (LDPC) code; and puncturing a number (K) of the codeword bits associated with each code block such that L=NK.

16. 16. The wireless communication device of claim 15, wherein the puncturing is not performed on the plurality of amplitude-shaped bits.

17. 1. 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 and a preamble including a first bit indicating that a first encoding operation corresponding to a second decoding operation has been performed, the plurality of symbols representing a plurality of codeword bits, and the plurality of amplitudes having a non-uniform distribution; arranging the plurality of codeword bits into a plurality of code blocks, each code block containing a number (L) of the codeword bits; performing a first decoding operation on the plurality of code blocks to generate a plurality of respective code words, each code word having a number (M) of bits including a plurality of amplitude-shaped bits and a plurality of parity bits, the plurality of amplitude-shaped bits and the plurality of parity bits being ordered by a modulation process based on a predetermined modulation scheme, M / L>5 / 6, the plurality of amplitude-shaped bits of each code word indicating the amplitude of a respective symbol of the plurality of symbols, the predetermined modulation scheme including quadrature amplitude modulation; performing, based on the first bits, the second decoding operation on the plurality of amplitude-shaped bits of each codeword to generate a plurality of respective de-shaped bits for each of the plurality of codewords; the step of performing the second decoding operation further comprising: selecting a pattern of deshaped bits that matches the plurality of amplitude-shaped bits of each codeword of the plurality of codewords from a look-up table (LUT), the LUT storing a plurality of patterns of deshaped bits corresponding to each of the plurality of patterns of amplitude-shaped bits, the plurality of deshaped bits including the selected pattern of deshaped bits; each of the plurality of patterns of amplitude-shaped bits represents a respective amplitude level having a probability of occurrence based on a probability mass function (PMF); or Each of the plurality of patterns of amplitude-shaped bits represents two or more amplitudes of the plurality of amplitudes having a probability of occurrence based on a PMF. method.

18. 18. The method of claim 17, wherein M / L=7 / 8.

19. 20. The method of claim 17, wherein the first decoding operation is based on a low-density parity-check (LDPC) code.

20. 20. The method of claim 19, wherein the LDPC code has a coding rate equal to 7 / 8.

21. 20. The method of claim 19, wherein the coding rate of the LDPC code is represented by M / L, and M / L further supports a value of 5 / 6.

22. 18. The method of claim 17, wherein the second decoding operation inverts a prefix encoding operation having an effective coding rate greater than or equal to 0.5 and less than 1.

23. 1. A wireless communication device, comprising: at least one transceiver; 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, the processor-readable code being operable by the at least one processor to: receiving, via the at least one transceiver, a wireless packet including a plurality of symbols having a plurality of amplitudes and a preamble including a first bit indicating that a first encoding operation corresponding to a second decoding has been performed, the plurality of symbols representing a plurality of codeword bits and the plurality of amplitudes having a non-uniform distribution; Arranging the plurality of codeword bits into a plurality of code blocks, each code block containing a number (L) of the codeword bits; performing a first decoding operation on the plurality of code blocks to generate a plurality of respective code words, each code word having a number (M) of bits including a plurality of amplitude-shaped bits and a plurality of parity bits, the plurality of amplitude-shaped bits and the plurality of parity bits being ordered by a modulation process based on a predetermined modulation scheme, M / L>5 / 6, the plurality of amplitude-shaped bits of each code word indicating the amplitude of a respective symbol of the plurality of symbols, the predetermined modulation scheme including quadrature amplitude modulation; performing, based on the first bits, the second decoding operation on the plurality of amplitude-shaped bits of each codeword to generate a plurality of respective de-shaped bits for each of the plurality of codewords; The process of performing the second decoding operation includes: selecting a pattern of deshaped bits from a look-up table (LUT) that matches the plurality of amplitude-shaped bits of each codeword of the plurality of codewords, the LUT storing a plurality of patterns of deshaped bits corresponding to each of the plurality of patterns of amplitude-shaped bits, the plurality of deshaped bits including the selected pattern of deshaped bits; each of the plurality of patterns of amplitude-shaped bits represents a respective amplitude level having a probability of occurrence based on a probability mass function (PMF); or Each of the plurality of patterns of amplitude-shaped bits represents two or more amplitudes of the plurality of amplitudes having a probability of occurrence based on a PMF. Wireless communication devices.

24. 24. The wireless communication device of claim 23, wherein M / L=7 / 8.

25. 24. The wireless communication device of claim 23, wherein the first decoding operation is based on a low-density parity-check (LDPC) code.

26. 24. The wireless communication device of claim 23, wherein the second decoding operation inverts a prefix encoding operation having an effective coding rate greater than or equal to 0.5 and less than 1.

27. 1. A method for wireless communication by a wireless communication device, comprising: performing a first encoding operation on a plurality of information bits to generate a plurality of amplitude-shaped bits; arranging the plurality of amplitude-shaped bits into a plurality of code blocks, each code block having a number (M) of bits including one or more of the plurality of amplitude-shaped bits; performing a second encoding operation on the plurality of code blocks based on a low-density parity-check (LDPC) code to generate a plurality of respective code words, each code word having a number (L) of bits including the one or more amplitude-shaped bits of the respective code block and one or more parity bits resulting from the second encoding operation, where M / L>5 / 6; Arranging the one or more amplitude-shaped bits and the one or more parity bits of each of the plurality of codewords into a plurality of symbols by a modulation process based on a predetermined modulation scheme, wherein the first encoding operation generates the plurality of amplitude-shaped bits such that each symbol has an amplitude based on the respective amplitude-shaped bit arranged in the symbol, and the amplitudes of the plurality of symbols have a non-uniform distribution, and the predetermined modulation scheme includes quadrature amplitude modulation; transmitting a wireless packet including the plurality of symbols to at least one receiving device; the LDPC code has a coding rate equal to 7 / 8; said step of performing said second encoding operation further comprising: encoding the M bits of each code block as a respective number (N) of codeword bits based on the LDPC code; puncturing a number (K) of the codeword bits associated with each code block so that L=NK; M=1701, N=2106, and K=162. method.

28. the first encoding operation has an effective coding rate greater than or equal to 0.5 and less than 1; 28. The method of claim 27.

29. said step of performing said first encoding operation further comprising: selecting a pattern of bit values ​​that matches the subset of information bits from a look-up table (LUT), the LUT storing a plurality of patterns of bit values ​​corresponding to a respective plurality of patterns of amplitude-shaped bits, the plurality of amplitude-shaped bits including the patterns of amplitude-shaped bits that correspond to the selected patterns of bit values.

28. The method of claim 27.

30. Each of the plurality of patterns of amplitude-shaped bits represents a respective amplitude level having a probability of occurrence based on a probability mass function (PMF).

30. The method of claim 29.

31. Each of the plurality of patterns of amplitude-shaped bits represents two or more amplitude levels having a probability of occurrence based on a PMF.

30. The method of claim 29.

32. the first encoding operation is not performed on a plurality of unshaped information bits, and the M bits of each code block further include one or more of the plurality of unshaped information bits.

28. The method of claim 27.

33. The coding rate of the LDPC code is represented by M / L, and M / L further supports values ​​of 5 / 6.

28. The method of claim 27.

34. The puncturing is not performed on the plurality of amplitude-shaped bits.

28. The method of claim 27.

35. 1. A wireless communication device, comprising: at least one transceiver; 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, the processor-readable code being operable by the at least one processor to: performing a first encoding operation on a plurality of information bits to generate a plurality of amplitude-shaped bits; arranging the plurality of amplitude-shaped bits into a plurality of code blocks, each code block having a number (M) of bits including one or more of the plurality of amplitude-shaped bits; performing a second encoding operation on the plurality of code blocks based on a low-density parity check (LDPC) code to generate a plurality of respective code words, each code word having a number (L) of bits including the one or more amplitude-shaped bits of the respective code block and one or more parity bits resulting from the second encoding operation, where M / L>5 / 6; Arranging the one or more amplitude-shaped bits and the one or more parity bits of each of the plurality of codewords into a plurality of symbols by a modulation process based on a predetermined modulation scheme, wherein the first encoding operation generates the plurality of amplitude-shaped bits such that each symbol has an amplitude based on the respective amplitude-shaped bit arranged in the symbol, and the amplitudes of the plurality of symbols have a non-uniform distribution, and the predetermined modulation scheme includes quadrature amplitude modulation; and transmitting a wireless packet including the plurality of symbols to at least one receiving device via the at least one transceiver; the LDPC code has a coding rate equal to 7 / 8; said step of performing said second encoding operation further comprising: encoding the M bits of each code block as a respective number (N) of codeword bits based on the LDPC code; puncturing a number (K) of the codeword bits associated with each code block so that L=NK; M=1701, N=2106, and K=162. Wireless communication devices.

36. the first encoding operation has an effective coding rate greater than or equal to 0.5 and less than 1; 36. The wireless communication device of claim 35.

37. The process of performing the first encoding operation comprises: selecting a pattern of bit values ​​that matches the subset of information bits from a look-up table (LUT), the LUT storing a plurality of patterns of bit values ​​corresponding to a respective plurality of patterns of amplitude-shaped bits, the plurality of amplitude-shaped bits including the patterns of amplitude-shaped bits that correspond to the selected patterns of bit values.

36. The wireless communication device of claim 35.

38. The process of performing the second encoding operation comprises: encoding the M bits of each code block as a respective number (N) of codeword bits based on the LDPC code; and puncturing a number (K) of the codeword bits associated with each code block such that L=NK.

36. The wireless communication device of claim 35.

39. The puncturing is not performed on the plurality of amplitude-shaped bits.

39. The wireless communication device of claim 38.

40. 1. 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 a plurality of code blocks, each code block containing a number (L) of the codeword bits; performing a first decoding operation on the plurality of code blocks based on a low-density parity check (LDPC) code to generate a plurality of respective code words, each code word having a number (M) of bits including a plurality of amplitude-shaped bits and a plurality of parity bits, the plurality of amplitude-shaped bits and the plurality of parity bits being arranged by a modulation process based on a predetermined modulation scheme, M / L>5 / 6, the plurality of amplitude-shaped bits of each code word indicating the amplitude of a respective symbol of the plurality of symbols, and the predetermined modulation scheme including quadrature amplitude modulation; performing a second decoding operation on the plurality of amplitude-shaped bits of each codeword to generate a plurality of respective de-shaped bits for each of the plurality of codewords; the LDPC code has a coding rate equal to 7 / 8; encoding the M bits of each code block as a respective number (N) of codeword bits based on the LDPC code; a number (K) of the codeword bits associated with each code block are punctured so that L=NK; M=1701, N=2106, and K=162. method.

41. The coding rate of the LDPC code is represented by M / L, and M / L further supports values ​​of 5 / 6.

41. The method of claim 40.

42. The second decoding operation inverts the prefix encoding operation having an effective coding rate greater than or equal to 0.5 and less than 1.

41. The method of claim 40.

43. the step of performing the second decoding operation further comprising: selecting a pattern of deshaped bits from a look-up table (LUT) that matches the plurality of amplitude-shaped bits of each codeword of the plurality of codewords, the LUT storing a plurality of patterns of deshaped bits corresponding to each of the plurality of patterns of amplitude-shaped bits, the plurality of deshaped bits including the selected pattern of deshaped bits.

41. The method of claim 40.

44. Each of the plurality of patterns of amplitude-shaped bits represents a respective amplitude of the plurality of amplitudes having a probability of occurrence based on a probability mass function (PMF).

44. The method of claim 43.

45. Each of the plurality of patterns of amplitude-shaped bits represents two or more amplitudes of the plurality of amplitudes having a probability of occurrence based on a PMF.

44. The method of claim 43.

46. 1. A wireless communication device, comprising: at least one transceiver; 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, the processor-readable code being operable by the at least one processor to: receiving, via the at least one transceiver, 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 a plurality of code blocks, each code block containing a number (L) of the codeword bits; performing a first decoding operation on the plurality of code blocks based on a low-density parity check (LDPC) code to generate a plurality of respective code words, each code word having a number (M) of bits including a plurality of amplitude-shaped bits and a plurality of parity bits, the plurality of amplitude-shaped bits and the plurality of parity bits being arranged by a modulation process based on a predetermined modulation scheme, M / L>5 / 6, the plurality of amplitude-shaped bits of each code word indicating the amplitude of a respective symbol of the plurality of symbols, and the predetermined modulation scheme including quadrature amplitude modulation; performing a second decoding operation on the plurality of amplitude-shaped bits of each codeword to generate a plurality of respective de-shaped bits for each of the plurality of codewords; the LDPC code has a coding rate equal to 7 / 8; encoding the M bits of each code block as a respective number (N) of codeword bits based on the LDPC code; a number (K) of the codeword bits associated with each code block are punctured so that L=NK; M=1701, N=2106, and K=162. Wireless communication devices.

47. The second decoding operation inverts the prefix encoding operation having an effective coding rate greater than or equal to 0.5 and less than 1.

47. The wireless communication device of claim 46.

48. The process of performing the second decoding operation includes: selecting a pattern of deshaped bits from a look-up table (LUT) that matches the plurality of amplitude-shaped bits of each codeword of the plurality of codewords, the LUT storing a plurality of patterns of deshaped bits corresponding to each of the plurality of patterns of amplitude-shaped bits, and the plurality of deshaped bits including the selected pattern of deshaped bits.

47. The wireless communication device of claim 46.

Citation Information

Patent Citations

  • Method and apparatus for controlling decoding of ldpc-encoded codewords

    JP2008539623A

  • LDPC coding method and system

    JP2010520666A

  • Partition based distribution matcher for probabilistic constellation shaping

    US10069519B1

  • Joint use of probabilistic signal shaping and forward error correction

    US10091046B1

  • Partial probabilistic signal shaping

    US10200231B1