Conventional communication methods and systems suffer severe performance degradation in the presence of nonlinear distortion. The nonlinear distortion that may be originated by analog and RF components may cause sensitivity loss at the receiver as well as spectral regrowth that may exceed spectral mask limitations and interfere with adjacent channels. Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with some aspects of the present invention as set forth in the remainder of the present application with reference to the drawings.
Systems and methods are provided for transmitter distortion management, substantially as shown in and/or described in connection with at least one of the figures, as set forth more completely in the claims.
These and other advantages, aspects and novel features of the present invention, as well as details of an illustrated implementation thereof, will be more fully understood from the following description and drawings.
The controller 118 is operable to perform, via control bus 114, management and configuration of the depicted physical layer components of the transmitter 100. Such configuration may include, for example, configuring various parameters for framing, bit ordering, FEC encoding, and/or other operations of the transmitter discussed below.
The bit-wise processing circuit 102 is operable to process a plurality of data digits 101 to generate a plurality of data digits 103. This processing may include, for example, scrambling, interleaving, parsing, and/or any bit-oriented operation. The resulting data digits 103 are routed to the sequence transformation circuit 104. For the remainder of this disclosure it will be assumed that the digits are binary digits (“bits”), but such is not necessarily the case in all implementations.
The sequence transformation circuit 104 is operable to: (1) select, for the plurality of data bits 103, which one or more transformation sequences provides a best, or at least suitable, value of one or more metrics; (2) transform the plurality of data bits 103 using the determined sequence(s); and (3) output the transformed bits, along with index bits that indicate the selected sequence(s), as a group of bits 105. An example implementation of the circuit 104 is shown in
In
The bit ordering circuit 122 is operable to receive one or more mock codewords 121 and order (or re-order) the bits of the mock codeword(s) 121. The ordering may be based on the numbers and/or positions of different types (e.g., data, index, and redundancy) of bits within the mock codeword(s) 121, on the boundaries between OFDM symbols, on the boundaries between mock codewords 121, and on the number of bits per data carrier (Nbdc). The ordering may attempt to place at least some of the data bits of the mock codeword(s) 121, at least some of the redundancy bits of the mock codeword(s) 121, and at least some of the index bits of the mock codeword(s) 121 in each of the mock OFDM symbols across which the mock codeword(s) 121 span(s) (e.g., the ordering may attempt to uniformly distribute each of the types of bits across the mock OFDM symbols.) Furthermore, the ordering may attempt to: (1) place data bits at positions within the mock OFDM symbol(s) which, when demultiplexed to one or more constellation mappers 210 (
The ordered mock codeword(s) generated by the bit ordering circuit 122 are input to sequence transformation circuit 124 in groups of bits 123 comprising Ncbs bits each, where the Ncbs bits consist of Ndbs data bits, Nrbs redundancy bits, and Nibs index bits. That is, sequence transformation circuit 124 operates on an OFDM symbol's worth of bits at a time. For each bit group 123, the Nibs index bits and the Nrbs redundancy bits may pass through the sequence transformation circuit 124 unaffected (or simply bypass the sequence transformation circuit 124). The Ndbs data bits of the bit group 123, however, are transformed by up to V (an integer greater than 1) transform sequences 128, to generate up to V of the transformed bit groups 125v. Each of the transformed bit groups 125v is associated with a respective index value v, which takes on values from 0 to V−1. Thus, to uniquely represent the V transform sequences 1280-128V−1, the number of index bits per OFDM symbol (Nibs) is equal to at least ceil(log2(V)). Examples of transformations which may be performed on the data bits of an OFDM symbol include: adding (exclusive-OR) bit sequence 128v to the Ndbs data bits of bit group 123, scrambling the Ndbs data bits of bit group 123, interleaving the Ndbs data bits of bit group 123, applying some logical operation to the Ndbs data bits of bit group 123, etc. The generated one or more of the transformed bit groups 125v are output (sequentially or in parallel, depending on the implementation) to the modulator 130.
The modulator 130 modulates each of the generated one or more transformed bit groups 125v onto a plurality of subcarriers. Operations performed by the modulator 130 may include, for example, symbol constellation mapping, precoding, IDFT (Inverse Discrete Fourier Transform), interpolation, decimation, and/or other processing procedures related to the specific modulator. The modulator 130 outputs up to V of the modulated signals 131v for each OFDM symbol of the current mock codeword 121. Details of an example implementation of the modulator 130 are described below with reference to
The sequence select circuit 140 measures one or more values for each of one or more metric(s) for the generated one or more modulated signals 131v. For a particular signal 131v corresponding to a particular OFDM symbol, the metric(s) may comprise, for example, peak-to-average-power ratio (PAPR), peak signal level, Cubic Metric (CM), Error Vector Magnitude (EVM), and/or any other metric that quantifies or assesses the amount of distortion that will be introduced when signal 131v is processed by nonlinear circuitry, such as a power amplifier (PA), of the AFE 112 (
For each mock OFDM symbol, the Ndbs transformed data bits of the selected transformed bit group 125v is buffered, along with the index bits 141B representing the index v of the selected transformed bit group 125v, for output in buffer 142. After the best transformed bit group 125v and corresponding index bits for each of the mock OFDM symbols of a mock codeword 121 have been buffered in buffer 142, the Ndbcw transformed data bits (i.e., transformed version of the plurality of data bits 103) and the associated Nibcw index bits are output as bit group 105.
Returning to
The ordering circuit 116 operates the same as the ordering circuit 122 described above. In an example implementation, the ordering determined by ordering circuit 122 for one or more mock codeword(s) 121 is simply copied/replicated by the bit ordering circuit 116 for the corresponding codeword(s) 107. The ordered codeword(s) is/are output in bit groups 117, each of which corresponds to an OFDM symbol and comprises Ncbs bits. In an example implementation, the bit ordering circuitry 116 may be integrated with the FEC encoder 106.
The modulator 108 modulates each of the bit groups 117 onto a plurality of subcarriers to generate a time domain digital baseband OFDM symbol 109. Operations performed by the modulator 108 may include, for example, symbol constellation mapping, precoding, IDFT (Inverse Discrete Fourier Transform), interpolation, decimation, and/or other processing procedures related to the specific modulator. Details of an example implementation of the modulator 130 are described below with reference to
For each time domain digital baseband OFDM symbol 109, the AFE 112 performs operations to make the OFDM symbol suitable for transmission onto the channel. Such processing may comprise, for example, upconversion, filtering, conversion to analog, and power amplification. When a time domain digital baseband OFDM symbol 109 has a large dynamic range, the resulting signal at the output of a PA of the AFE 112 may be distorted as a result of high signal levels being compressed by the PA as nears its saturation or compression level. In the transmitter 100, the use of the sequence transformation circuit 104 reduces such distortion relative to a transmitter lacking such a sequence transformation circuit 104.
A framing scheme used in the transmitter 100 may be designed to ensure that any frame contains an integer number of codewords and an integer number of OFDM symbols. Based on the amount of data to be transmitted, a framing schemes typically adapt one or both of: the total number of bits per codeword (Ntbcw), and the number of data bits per codeword (Ndbcw) in order to maintain an integer number of codewords and OFDM symbols per frame. This adaptation may be constrained/controlled such that the code rate (Ndbf/Ntbf) does not stray too far from a target code rate (Rt). A framing scheme in accordance with an example implementation of this disclosure accounts for the Nibs index bits per OFDM symbol that are added as a result of the sequence transformation. A couple of example framing schemes will help illustrate.
As a first example, assume the number of data bits to be transmitted in a frame (Ndbf) is 8000, the required code rate (Rt) is ¾, the number of data carriers per OFDM symbol (Ndc) is 52, the number of bits per carrier (Nbdc) is 10, and the number of coded bits per symbol (Ncbs) is Ndc*Nbdc=520. Further assume that V=4, and thus Nibs=2. First, an initial estimation of the number of symbols needed for the frame (Nsf) is calculated as ceil(Ndbf/Ncbs/Rt)=21. Next, it is determined whether the addition of the Nibs*Nsf index bits will require Nsf to be increased. In this regard, if ceil((Ndbf+(Nibs*Nsf))/Ncbs/Rt)>ceil(Ndbf/Ncbs/Rt), then the initial estimate of Nsf is increased by 1. In this example, ceil((Ndbf+(Nibs*Nsf)/Ncbs/Rt) is also 21, so the number of symbols is unaffected by the addition of the index bits. The Nsf symbols are then allocated among Ncwf codewords. Accordingly, the Nibs*Nsf index bits are also allocated among the Ncwf codewords. One possibility for such allocation is that, for any particular codeword, Nibcw corresponds to Nibs*Nends, where Nends is the number of symbols that end in that codeword. This can be expressed as Nibcw=diff([0;floor(cumsum(Ntbcw)/Ncbs)])*Nibs. To illustrate with concrete numbers, assume Ncwf=6 and the framing scheme—not yet accounting for the index bits—arrives at a frame consisting of the following six codewords: (1333,1819), (1333,1819), (1333,1820), (1333,1820), (1334,1821), (1334,1821), where each codeword is represented as (Ndbcw, Ntbcw) (thus Ndbf=1333+1333+1333+1333+1334+1334=8000, Ntbf=1819+1819+1820+1820+1821+1821=10920, and the actual code rate (Ra)=0.7326). Thus:
As a second example, assume the number of data carriers per OFDM symbol (Ndc) is fixed, and the number of bits per carrier (Nbdc) is fixed, and thus the number of coded bits per symbol (Ncbs) is fixed. Further assume that the number of symbols per frame (Nsf) is fixed. A framing scheme not accounting for index bits may select Ntbcw such that Ncbs*Nsf/Ntbcw is an integer and then adapt Ndbcw per codeword based on the total number of data bits (Ndbf) to be transmitted in the frame. To account for index bits, the framing algorithm may treat the index bits the same as the data bits and thus adapt Ndbcw+Nibcw per codeword based on the total number of data bit and index bits, Ndbf+Nibf, to be transmitted during the frame.
In an example implementation the S/P circuit 208 may perform “vertical” parallelization of the bits 201 such that each subcarrier is filled before moving onto the next subcarrier. That is, the first W bits of bits 201 are output as 2090, the next W bits are output as 2091 and so on. For example, if nbdc=10, Ndc=224, Ncbs=2240, Ntbcw=1944, and a particular OFDM symbol comprises 125 bits of a first codeword, CW 1944 bits of a second codeword, and 171 bits of a third codeword, vertical parallelization results in a codeword boundaries on subcarrier 13 and subcarrier 207.
In an example implementation the S/P circuit 208 may perform “horizontal” parallelization of the bits 201 such that multiple subcarriers are filled concurrently. That is, the first bit of bits 201 is output as 2090, the next bit is output as 2091 and so on. For example, if nbdc=10, Ndc=224, Ncbs=2240, Ntbcw=1944, and a particular OFDM symbol comprises 125 bits of a first codeword, CW 1944 bits of a second codeword, and 171 bits of a third codeword, horizontal parallelization results in each of subcarriers 1 through 125 comprising 1 bit from the first codeword, and so on.
For each mapper 210x (x an integer, where 0≦x≦X), lower-energy-impact inputs of the W inputs may, in general (at least more often than would occur by random chance), receive redundancy or index bits, and higher-energy-impact inputs of the W inputs may, in general (at least more often than would occur by random chance), be transformed data bits. As an example for purposes of illustration and not limitation, assuming a code rate of ¾, W=10, and that the energy impact of the W inputs monotonically increases from bit position 0 to bit position 9, then the ordering may be such that (with some desired statistical certainty for which the system is configured) redundancy and index bits will be confined to inputs 0 through 4 for each of the mappers 2100-210X−1.
To illustrate the energy impact of a mapper input, consider a simplified example of a 12-bit OFDM symbol consisting of 8 data bits, 2 index bits, and 2 redundancy bits (denoted here as ddddddddiirr), and assume the mappers 210 map according to the 16QAM constellation (W=4) shown in
Each group of Ndc subcarriers 211 output by mappers 2100-210X−1 is conveyed to a respective one of inverse discrete Fourier transform (IDFT) circuits 2120-212Y−1, where Y=X/Ndc. The IDFT size is Ndft, which is greater than Nd such that there are Ndft-Ndc non-data-carrying subcarriers available for use as pilots, guard bands, and/or as DC carriers. Each IDFT 212y (y being an integer, where 1≦y≦Y) outputs Ndft samples as signal 213y. As one non-limiting example: Ncbs is 520 bits, the size of the constellation (M) is 1024, W is 10 bits, the number of constellation mappers (X) is 52, the number of IDFT circuits (Y) is 1, the number of data carrying subcarriers (Ndc) is 52, and the size of the IDFT circuits (Ndft) is 64, leaving 12 non-data-carrying subcarriers (e.g., 4 pilots and 12 guard bands). Each cyclic-prefix insertion circuit 214, then adds a cyclic prefix to signal 212y resulting in signal 215y having Z samples, where Z=Ndft(1+CP) and CP is the size of the cyclic prefix). The signals 2151-215Y−1 are serialized by P/S circuit 216 resulting in Y*Z samples of signal 219 (corresponding to time domain digital baseband OFDM symbol 109 in
The metric calculation circuit 304 calculates one or more metric values 305 based on the signal(s) 313 and/or 303. The metric(s) may comprise any one or more of the following: minimal error vector magnitude (EVM) (where EVM is defined as the difference between the input and output of the nonlinear distortion modeling circuitry 302), minimal peak EVM, minimal peak energy at the input of the nonlinear distortion modeling circuitry 302, minimum average energy at the input of the nonlinear distortion modeling circuitry 302, cubic metric, and any other measure that quantifies or assesses the amount of distortion in signal 303. The value(s) for the metric(s) may be calculated over a continuous frequency band spanned by one or both of the signals 313 and 303 and/or in a selected one or more (possibly discontiguous) subbands occupied by one or both of the signals 313 and 303. For example, requiring EVM energy in out-of-band frequencies to be below a threshold, or as low as possible, can improve compliance with a spectral mask set forth by a regulatory body.
The decision circuit 306 then evaluates the value(s) of the metric(s) 305 to determine whether the signal 313 should selected for transmission (i.e., trigger it, via signal 307, to be latched into output buffer 308) and/or whether another signal 313 is to be checked for the current OFDM symbol, or whether to move on to the next OFDM symbol.
Determining whether to select the current signal 313 for transmission, may be carried out in a variety of ways. As a first example, the decision circuitry 306 may compare the metric value 305 for the current signal 313 to a threshold value for the metric, and, if it is above (or below, as the case may be) the threshold, the current signal 313 may be latched into the output buffer 308 for output to the AFE 112. If the metric for the current signal 313 is not above (or below, as the case may be) the threshold, the decision circuit 306 may trigger the check of a next signal 313. As a second example, the decision circuitry 306 may compare the metric value 305 for the current signal 313 to metrics stored in memory 310 for previous signals 313 of the same OFDM symbol, and, if the current signal 313 is the best one yet for the current OFDM symbol, it may be latched into the output buffer 308 for output to the AFE 112.
Triggering the check of another signal 313 may also be carried out in a variety of ways. As a first example, after checking signal 313 corresponding to signal 131v for the current OFDM symbol, signal 141A may trigger the sequence transformation circuit 124 to generate a next transformed big group 125v+1 for the current OFDM symbol, which is then modulated by modulator 130 to become the signal 131v+1, which, in turn, is buffered to become the signal 313 for the current OFDM symbol. In this first example, each successive transformed bit group 125v and modulated signal 131v is generated on-demand and thus such an implementation may be used where it is desired to avoid unnecessary activity in the sequence transformation circuit 124 and the modulator 130. As a second example, after checking 313 corresponding to signal 131v for the current OFDM symbol, signal 141A may trigger the modulator 130 to modulate the next transformed bit group 125V+1 for the current OFDM symbol, which was previously generated by the sequence transformation circuit 124 (e.g., all transformed bit groups 1250-125V−1 were generated at once and are sitting in an output buffer of the sequence transformation circuit 124) to generate the signal 131v+1 for the current OFDM symbol which, in turn, is buffered to become signal 313. As a third example, the signal 141A may trigger the release of a previously buffered signal 131v+1 as signal 313.
The foregoing has described a fully sequential arrangement in which each of the Ntbcw/Ncbs OFDM symbols of a particular codeword is processed sequentially by a single modulator 130, and, for each such OFDM symbol, the up to V signals 131v are processed sequentially by a single sequence select circuit 140. In other implementations, however, multiple instances of the modulator 130 and/or multiple instances of the sequence select circuit 140 may be used to partially or fully parallelize such operations. For example, the Ntbcw/Ncbs OFDM symbols of a particular codeword may be processed sequentially by a single modulator 130, and the up to V signals 131v of each such OFDM symbol may be processed in parallel by up to V instances of sequence select circuit 140. As another example, each of the Ntbcw/Ncbs OFDM symbols of a particular codeword may be modulated in parallel by a respective one of Ntbcw/Ncbs instances of modulator 130, and then up to V*(Ntbcw/Ncbs) resulting signals 131v may be processed in parallel by up to V*(Ntbcw/Ncbs) instances of sequence select circuit 140.
The controller 416 is operable to perform, via control bus 418, management and configuration of the depicted physical layer components of the receiver 400. Such configuration may include, for example, configuring various parameters for bit ordering, FEC decoding, and/or other operations of the transmitter discussed above.
Any of the size/length parameters discussed in this disclosure may vary from codeword to codeword, from OFDM symbol to OFDM symbol of a particular codeword, and/or otherwise. The variance may depend, for example, on the framing scheme in use.
In accordance with an example implementation of this disclosure, a transmitter (e.g., 100) comprises sequence transformation circuitry (e.g., 104), FEC encoder circuitry (e.g., 106), and modulator circuitry (e.g., 108 and/or 130). The sequence transformation circuitry is operable to apply a first transformation sequence (e.g., 128v) to first data bits to generate first transformed data bits (e.g., 125v), and apply a second transformation sequence (e.g., 128v+1) to second data bits to generate second transformed data bits (e.g., 125v+1) The FEC encoder circuitry is operable to generate redundancy bits based on the first transformed data bits, one or more first index bits representing an index of the first transformation sequence, the second transformed data bits, and one or more second index bits representing an index of the second transformation sequence. The FEC encoder circuitry is operable to output a codeword comprising the first transformed data bits, the first index bits, the second transformed data bits, the second index bits, and the redundancy bits. The modulator circuitry is operable to generate a first OFDM symbol carrying the first transformed data bits, the first index bits, and a first portion of the redundancy bits, and generate a second OFDM symbol carrying the second transformed data bits, the second index bits, and a second portion of the redundancy bits. The sequence transformation circuitry may be operable to select the first transformation sequence from a plurality of possible transformation sequences based on a value of a metric measured for the first transformed data bits, and select the second transformation sequence from the plurality of possible transformation sequences based on a value of the metric measured for the second transformed data bits. The value of the metric measured for the first transformed data bits may quantify an amount of distortion that will be introduced when the first transformed data bits are processed by nonlinear circuitry of the transmitter. The value of the metric measured for the second transformed data bits may quantify an amount of distortion that will be introduced when the second transformed data bits are processed by nonlinear circuitry of the transmitter. The metric may be error vector magnitude, peak-to-average-power ratio, or the cubic metric. The sequence transformation circuitry may be operable to model nonlinear circuitry of the transmitter for the measurement of the metric values. The transmitter may comprise circuitry (e.g., controller 118) operable to determine a number of OFDM symbols to be used for transmission of a frame's worth of data bits based on how many sequences are in the plurality of possible sequences. Application of the first transformation sequence to the first data bits may comprises an exclusive-or of the first transformation sequence and the first data bits. Application of the second transformation sequence to the second data bits may comprise an exclusive-or of the second transformation sequence and the second data bits. The transmitter may comprise bit ordering circuitry (e.g., 122 and/or 116) operable to order bits of the codeword prior to the bits of the codeword being input to the modulator. The bit ordering circuitry may be operable to order the bits of the codeword such that transformed data bits are more likely than the first index bits, the second index bits, and the redundancy bits to be placed on higher-energy-impact inputs of one or more constellation mappers of said modulator.
In accordance with an example implementation of this disclosure, a transmitter comprises forward error correction encoder circuitry (e.g., 106), modulator circuitry (e.g., 108 and/or 130) comprising constellation mappers (e.g., 2100-210X−1), and bit ordering circuitry (e.g., 122 and/or 116). The FEC encoder circuitry is operable to generate redundancy bits based on a plurality of data bits and output a codeword comprising the plurality of data and the redundancy bits. The modulator circuitry is operable to generate an OFDM symbol carrying the first transformed data bits and the redundancy bits. The bit ordering circuitry is operable to determine an order in which bits of the codeword are applied to a plurality of inputs of the constellation mapper, based on a respective energy-impact of each of the plurality of inputs. The bit ordering may, for example, ensure as many of the redundancy bits as possible (there may be more redundancy bits than lower-energy-impact inputs) are placed on lower-energy-impact inputs. The bit ordering may, for example, ensure as many of the data bits as possible (there may be more data bits than higher-energy-impact inputs) are placed on higher-energy-impact inputs of one or more constellation mappers of the modulator. The bit ordering may, for example, be such that more data bits end up at higher-energy-impact inputs than is likely to occur from random chance (random ordering of the data and redundancy bits). The bit ordering may, for example, be such that more redundancy bits end up at lower-energy-impact inputs than is likely to occur from random chance (random ordering of the data and redundancy bits). The bit ordering may, for example, be a reordering be such that more data bits end up at higher-energy-impact inputs than would occur from the order of the bits prior to the reordering. The bit ordering may, for example, be a reordering be such that more redundancy bits end up at lower-energy-impact inputs than would occur from the order of the bits prior to the reordering. The bit ordering may, for example, be such that the average energy impact per redundancy bit is less than the average energy impact per data bit.
As utilized herein the terms “circuits” and “circuitry” refer to physical electronic components (i.e. hardware) and any software and/or firmware (“code”) which may configure the hardware, be executed by the hardware, and or otherwise be associated with the hardware. As used herein, for example, a particular processor and memory may comprise a first “circuit” when executing a first one or more lines of code and may comprise a second “circuit” when executing a second one or more lines of code. As utilized herein, “and/or” means any one or more of the items in the list joined by “and/or”. As an example, “x and/or y” means any element of the three-element set {(x), (y), (x, y)}. In other words, “x and/or y” means “one or both of x and y”. As another example, “x, y, and/or z” means any element of the seven-element set {(x), (y), (z), (x, y), (x, z), (y, z), (x, y, z)}. In other words, “x, y and/or z” means “one or more of x, y and z”. As utilized herein, the term “exemplary” means serving as a non-limiting example, instance, or illustration. As utilized herein, the terms “e.g.,” and “for example” set off lists of one or more non-limiting examples, instances, or illustrations. As utilized herein, circuitry is “operable” to perform a function whenever the circuitry comprises the necessary hardware and code (if any is necessary) to perform the function, regardless of whether performance of the function is disabled or not enabled (e.g., by a user-configurable setting, factory trim, etc.).
The present method and/or system may be realized in hardware, software, or a combination of hardware and software. The present methods and/or systems may be realized in a centralized fashion in at least one computing system, or in a distributed fashion where different elements are spread across several interconnected computing systems. Any kind of computing system or other apparatus adapted for carrying out the methods described herein is suited. A typical combination of hardware and software may be a general-purpose computing system with a program or other code that, when being loaded and executed, controls the computing system such that it carries out the methods described herein. Another typical implementation may comprise an application specific integrated circuit or chip. Some implementations may comprise a non-transitory machine-readable (e.g., computer readable) medium (e.g., FLASH drive, optical disk, magnetic storage disk, or the like) having stored thereon one or more lines of code executable by a machine, thereby causing the machine to perform processes as described herein.
While the present method and/or system has been described with reference to certain implementations, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted without departing from the scope of the present method and/or system. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the present disclosure without departing from its scope. Therefore, it is intended that the present method and/or system not be limited to the particular implementations disclosed, but that the present method and/or system will include all implementations falling within the scope of the appended claims.
The entirety of each of the following applications is hereby incorporated herein by reference: U.S. patent application Ser. No. 14/713,091 titled “Distortion Reduction Scheme for Transmission of Data” filed on May 15, 2015.