Limitations and disadvantages of conventional and traditional methods and systems for electronic communications 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.
A system and/or method is provided for multiple input multiple output communications over nonlinear channels, 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 embodiment thereof, will be more fully understood from the following description and drawings.
In an OFDM system, allowing the Transmitter's analog front end (AFE) to compress the transmitted signal can significantly reduce the cost and power consumption of the AFE but at the cost of introducing distortion. The distortion introduced can be described as applying a non-linear function ƒNL(x) to the time-domain transmitted signal x. This distortion is assumed to be known by the receiver, and can be dealt with by through an iterative process. An example transmitter of such a system is depicted in figure
‘M’ in
In an example implementation, the Inner FEC encoder 106 codeword size is aligned to IDFT 114 size (i.e. IFT 114 accommodates an integer number of FEC code-words, or FEC code-word size accommodates integer number of FFT's). In an example implementation the inner FEC encoder 106 and Mapper 110 may be merged thereby creating a Euclidean code.
As indicated by the dashed lines, the outer FEC 102 may not be used in some implementations. In this regard, in an example implementation in which the codeword size of the inner FEC encoder 106, which is aligned to the OFDM symbol, is too short to get good coding gain, then the outer FEC encoder 102 may accordingly be used. In such an implementation, the rate of the code may be split between the outer FEC encoder 102 and the inner FEC encoder 106. For example, to get a total code rate of 0.9 the rate of the inner FEC encoder 106 (Rin) and the rate of the outer FEC encoder 102 (Rout) may be set such that Rin*Rout=0.9. In such an implementation, the inner FEC encoder 106 and corresponding SISO (Soft Input Soft Output) FEC decoder 224 (
As indicated by the dashed lines, the outer interleaver 104 may not be used in all implementations. In this regard, the outer interleaver 104 may be used in implementations where channel fading is such that it is desired to have a big enough interleaver which spans over several OFDM symbols.
In an example implementation, the FEC 106 may not be aligned IDFT 114. The receiver may be configured to be capable of demodulating non-aligned FEC blocks as explained in the sequel.
In the example transmitter 100 shown, data from a single source or multiple sources is encoded by encoder 106 (or 102 and 106, if 102 is present) and then parsed to NSS spatial streams. In another implementation, the data associated with the different spatial streams may be encoded independently (i.e., via NSS encoders 106 and/or Nss encoders 102).
The bits of the one or more spatial streams are mapped to constellation symbols by mappers 1101-110SS. Alternatively, a single mapper 110 may be used to map all spatial streams in turn.
In an example implementation where the transmitter 100 has information on the selectivity of the fading channel from transmitter 100 to an intended receiver (e.g., receiver 200 of
The one or more spatial stream(s) is/are mapped to transmit chains where the number of the transmit chains (NTx) is equal to or larger than the number of spatial streams (NSS). In the example transmitter 100, this mapping is accomplished by an NTx×NSS spatial mapping matrix V (per each OFDM subcarrier). This matrix, which is implemented by precoder 130 in the example transmitter 100, routes a linear combination of the data of the one or more streams to each transmit chain. The precoder 130 provides some spatial diversity to the transmitted data and the use of multiple data streams which are transmitted concurrently is a MIMO (multiple input multiple output) configuration called spatial multiplexing. This configuration uses multiple transmit chains (each including an antenna in wireless communication) in order to increase the attainable data rate. In order to communicate such a signal associated with NSS independent spatial streams, the transmitter 100 should comprise at least Nss transmit chains. When the number of such transmit chain, NTx, is larger than the number of spatial streams, NSS, some degree of diversity is achieved along with spatial multiplexing. In general, the precoder matrix V (where bolding is used in this disclosure to indicate vectors and matrices) is derived by the following singular value decomposition (SVD) of the channel response matrix: Ĥ=UDVH, where Ĥ is an estimate of the actual channel response H, for a certain subcarrier frequency, D is a diagonal matrix and U and V are unitary matrices. This decomposition describes the channel as a combination of Eigen modes (spatial directions) associated with some quality factor (value of the singular values on the diagonal matrix D). The frequency-domain signals at the output of the precoder 130 are collected to generate OFDM symbols. These symbols are converted to the time domain by NTx IDFT (inverse Discrete Fourier Transform) (e.g., implemented using an IFFT algorithm) circuits 114. Another implementation may use a single IDFT circuit 114 that processes and generates, independently, all of the NTx signals for the NTx transmit chains, in turn.
The multiple sample streams are processed by NTx transmitter chains (each comprising a digital to analog converter 126 and an analog front end (including power amplifier) 128) and transmitted onto the channel. According to one embodiment, the amplifiers in 1281-128Tx in the multiple transmit chains are operated in a relatively non-linear power range. That is, the PAPR (Peak to Average Power Ratio) at the transmitter output is low (relative to conventional OFDM transmitter), e.g., in the range of 3 dB-10 dB.
The DNF circuits 1241-124Tx process the filtered signals output by filtering and/or windowing circuit 122 non-linearly (for example, clipping by a soft limiter) in order to conform to some given spectral limitation and/or to facilitate the reconstruction of the transmitted data in the receiver. Without the digital nonlinear function (DNF) circuitry 1241-124Tx, the AM to AM characteristic of the PA may not be one-to-one, as depicted by lines 304 and 302 of
A receiver in accordance with an example implementation of this disclosure is depicted in
Notation used in
In an example implementation the receiver 200 searches at symbol M for a matrix {circumflex over (X)}M having NSS rows and NFFT columns. Where {circumflex over (X)}M is an estimate of transmitted signal for symbol M over all spatial streams and subcarriers. This matrix estimation {circumflex over (X)}M needs to corresponds to a valid sequence of FEC code words that also minimizes the following cost (over the set of valid code word sequences)
where:
In an example implementation, some of the bins in {circumflex over (X)}M are known in advance. There is therefore no need to search for them and they may instead be held fixed. In an example implementation, some of the bins are known to be zeros (e.g. out-of-band and guard band bins). In an example implementation, some of the bins are known to be pilots having a known scrambling sequence.
The MIMO receiver of
Thus rotator circuit 240 outputs a rotated version of the FFT output at each subcarrier QHY. The output of rotator 240 is processed by the NLS circuit 216 such that the transmitted symbols over each subcarrier are detected and soft values are provided to the FEC decoder 224. For example, the cost function of Eq. (1) may be re-written in terms of the Q rotated signal as shown in (2).
where: {tilde over (Y)}=QHY and {circumflex over ({tilde over (H)}=QHĤ are the Q rotated observation and channel estimation matrix, respectively.
In an example implementation, the receiver 200 finds {circumflex over (X)} by iterating between the NLS 216 and SISO (Soft-In-Soft-Out) FEC decoder 224. The NLS 216 minimizes the equation (1) (or equation (2)) error based on the output 225 of SISO FEC (“inner FEC”) decoder 224, and also using the channel observation output by rotator circuit 240. The SISO FEC decoder 224 then computes soft-decisions (e.g., LLRs) based on NLS 216 output. These iterations are called “outer” iterations and are repeated until decoding condition is met (e.g., a particular performance threshold is reached, a particular iterations limit is reached, and/or the like). In an example implementation, the NLS 216 may do several “inner” iterations per outer iteration, for the purpose of minimizing (1) (or (2)). In an example implementation, the FEC decoder 224 may do several “inner” iterations per outer iteration for the purpose of computing soft decisions.
To simplify notation, and reduce the number of indices, in the remainder of this disclosure (except where otherwise specified) the 3D matrices are reformulated as 2D sparse “blocks diagonal” matrices. Similarly, since cost functions (1) and (2) have identical form, and therefore can be treated the same, the remainder of this disclosure we will only consider cost function (1). Using the block diagonal formulation, the following cost function (3) is obtained (and is completely equivalent to (1)).
where:
ƒNL(x)|n=ƒNL1+(n mod N
where: (k mod NTx) and (n mod NTx)—where mod==modulo, both represent the index of the TX antenna minus 1, and [k/NTx] and [n/NTx] where [a] is floor operation on a, represent the subcarrier and sample time indices of the corresponding TX antenna.
In an example implementation, the equalization and MIMO decoder 242 may be omitted in which case the output of NLs circuitry 216 is used directly by the demapper 220. In such an implementation, the estimates of the transmitted symbols generated by the NLS circuitry 216, {circumflex over (X)}, are used through demapper 220 to derive the soft values (e.g., LLRs) to the FEC decoder 224.
In another embodiment, the MIMO equalizer and decoder 242 may be used in order to utilize the information generated by the NLS circuit 216. In this implementation, the MIMO equalizer and decoder 242 operates on a per-subcarrier basis. The input to the MIMO equalizer and decoder 242 is the estimated symbol for that subcarrier over all spatial streams, (e.g., {circumflex over (X)}1:N
({circumflex over (X)}1:N
where L denotes the number of candidates visited by the MIMO decoder in order to derive a list of the probable (low cost) symbol Nss-tuples that best match the input estimate vector {circumflex over (X)}1:N
In another embodiment, the MIMO equalizer and decoder 242 may be used along with a cost function that accounts for the nonlinear model of the transmitter (e.g., Eqs. (1)-(3)). In other words, by contrast to prior art MIMO Equalizer and Decoder, a MIMO Equalizer and Decoder according to this embodiment works on a distorted space and calculates a measure of likelihood of some list of candidates on that space that captures the nonlinear characteristic of the transmitter. For example, the MIMO Equalizer and Decoder can take the estimate found by the NLS machine, {circumflex over (X)}1:N
In an example implementation, ƒNL (including the components for NTx different power amplifiers) is updated according to the rate at which characteristics of the analog front ends 128 (e.g., comprising a power amplifier and, in some instances, an upconverter) change. In an example implementation, ƒNL may be updated each OFDM symbol, or once per every few OFDM symbols. In an example implementation in which burst transmissions are used, ƒNL may be updated at start of each burst. In an example implementation, ƒNL may be adapted using dedicated preambles or beacon patterns that are generated once in a while (e.g., periodically, pseudo-randomly, and/or the like) by the transmitter. In an example implementation, ƒNL may be adapted based on {circumflex over (X)} and/or other metrics calculated based on the LLRs output by FEC decoder 224, as further described below.
In an example implementation the receiver 200 finds {circumflex over (X)} by iterating between the NLS 216 and SISO FEC decoder 224. In order to impose FEC constraints on the NLS circuitry 216 we a correction term ΔX is introduced and applied to a previous FEC estimate {circumflex over (X)}. The cost function (3) is augmented to constrain the correction in the following way (this applies similarly to cost function (2)). Every outer iteration, the NLS 216 needs to find an NSSBINS=NSS×NNFFT correction matrix ΔX that minimizes the frequency-domain cost function (5).
where:
The receiver uses outer iterations where, at each iteration, an estimation of ΔXk (for one or more values of k) that minimizes the cost function (5) is produced by NLS circuitry 216 and re-fed to the FEC decoder 224. The cost function need not necessarily find the best solution for ΔXk, but need only find new value of ΔXk that reduces the cost, while providing information that is extrinsic to the FEC decoder 224. This refinement is iteratively used in the FEC decoder 224 to further distill {circumflex over (X)}. This iterative scheme uses the nonlinear cost function (5)—including ƒNL and MIMO channel—as an inner code in conjunction with an outer FEC code. The NLS circuitry 216 uses constraints, such as those shown in (5), on the frequency domain signal to aid in generation of its output, and the decoder 224 similarly imposes FEC code constraints on the frequency domain signal, as discussed below, to aid in generation of its output. Each one of the NLS circuitry 216 and the FEC decoder 224 uses a refinement of the data estimation generated by the other in order to improve its own estimate based on different, independent constraints in an iterative scheme.
In an example implementation, {circumflex over (X)} is estimated by the metric update block 232 by calculating {circumflex over (X)} using LLR's from the SISO FEC decoder 224 (“mapping” the LLR's). In an example implementation {circumflex over (X)} the expectation based on the LLR's.
In an example implementation the cost function (5) is minimized by use of gradient descent to find all or a subset of the bin corrections ΔXk. In an example implementation, ΔXk may be estimated for all bins during each iteration.
In an example implementation, only those bins for which the confidence of being erroneous is high (e.g., based on LLRs output by the SISO FEC decoder 224) may be estimated during a particular iteration and other bins, referred to here as “good,” (e.g. those bins having a decoded LLR above a determined threshold) may be fixed based on an assumption that the output of FEC decoder 224 is correct. The ΔXk for good bins may, for example, be fixed at a value of zero while adapting the ΔXk for the other bins.
The values of X are limited to some constellation χ (e.g. 1024QAM). Therefore the estimation may be constrained to the same constellation (i.e. ({circumflex over (X)}k+ΔXk)εχ). This, however, results in a very difficult discrete minimization problem. To overcome this difficulty, in one example implementation, {circumflex over (X)}k+ΔXk is limited to a rectangular range (|re({circumflex over (X)}k+ΔXk)|≦Xmax and |im({circumflex over (X)}k+ΔXk)|≦Xmax) that includes the constellation χ, this is called the hard bound approach. The down side of this approach is that gradient descent convergence is slowed down by the hard bounds. Accordingly, in an example implementation, soft bounds may be used as an additional penalty term to the cost function (e.g., values of {circumflex over (X)}k+ΔXk outside the constellation rectangle are penalized with a penalty increasing with distance from the constellation rectangle, as shown in equation (6) below).
(|re(x)|>Xmax)(|re(x)|−|Xmax|)2+(|im(x)|>Xmax)(|im(x)|−|Xmax|)2 (6)
where:
Referring back to
In an example implementation in which phase noise is negligible, H may be a purely block diagonal matrix with NRX×NTX blocks on the diagonal. In an example implementation, the matrix H may comprise off-diagonal block that account for Inter-Carrier Interference, to compensate for phase noise and/or any other Inter-Carrier Interference (e.g. caused by fast varying channel).
In an example implementation, to increase the diversity of the cost with respect to “good” decision errors we may minimize real(X) and imag(X) as separate variables. This allows performance improvement by deciding on the reliability of single bin dimension (i.e. good/bad decisions taken separately on bin real part and separately on bin imaginary part), rather than the reliability of complex bins (e.g., for a certain bin Xk the real part may be considered bad and take part in minimization, while the imaginary part may be considered good and kept fixed).
Hard Metric Vs. Soft Metric
As mentioned above, the 2nd term in equation (5) indicates the reliability of bin Xk. When σk2 is close to 0, the cost would only allow using values of ΔXk which are very small.
In an example implementation, the second term may be dropped from equation (5). Instead, the NLS circuitry 216 may determine which of the elements in {circumflex over (X)} are reliable, (denoted as “good” bins) and which elements in {circumflex over (X)} are unreliable (“bad” bins) and operate as follows: During the 1st iteration on an OFDM symbol m, the NLS circuitry 216 may assume that all bins are bad bins (except of those corresponding to out of band zeros and pilot), and then search for NSSBINS ΔXk elements (or 2·NSSBINS ΔXk elements if working independently on real and imaginary dimensions). Then, in later iterations, the NLS circuitry 216 may get information from the metric update block 232 which enables the NLS circuitry 216 to lower the number of ΔXk elements in the search (i.e. fix the good bins to constant values), and the problem boils down to finding the bad bins that minimize the cost. Thus, the NLS circuitry 216 may search for Nbad (where Nbad<NSSBINS) ΔXk elements corresponding to the Nbad bad bins. In such an implementation, the hard metric cost function may be as shown in equation (7).
∥Y−H·DFT(ƒNL(IDFT({tilde over (X)})))∥2 (7)
where:
In other words, NLS circuitry 216 may determine the bin to be good if the absolute value of the minimal LLR in the bin is higher than a threshold. For example, for a 1024-point symbol constellation there may be 10 LLRS per symbol and the minimal LLR may be the smallest of the 10. In an example implementation, to increase diversity, the NLS circuitry 216 may determine good and bad per bins dimension, (e.g. the real part of a particular bin can be declared “good” while the imaginary part of the particular bin may be determined to be “bad”). For example, for 1024QAM there may be 10 LLRS per symbol with the first 5 of them corresponding to the real component and the second 5 of them corresponding to the imaginary component, and the NLS circuitry 216 may determine the smallest LLR of the first 5 and the smallest LLR of the second 5.
In an example implementation, the threshold TH is set dynamically (per iteration and codeword) according to some percentile P of the set of metrics {θk|k=1 . . . 2Ncw
(θs)s=1 . . . 2N
The sorting may be performed in increasing order (i.e. starting with θs=1, which is the most-reliable bin and ending with θs=2N
In an example implementation where the decisions as to which bins are good and which are bad is made per complex bin (rather than separately for the real and imaginary dimensions) the metrics {θk|k=1 . . . Ncw
In an example implementation the percentile P used for determining the threshold TH is also changed as the iterations progress. In one example the percentile P may be iteration dependent (i.e. P←Piter).
For the hard metric case, mistaking a bin dimension (i.e. real dimension or imaginary dimension) that contains erroneously decoded bits as “good” might result in performance reduction, since the good bin dimensions are not corrected by the NLS circuitry 216 (although the FEC decoder 224 may still correct these bits). This problem may be overcome, in one example, by the NLS circuitry 216 assuming we have total of Ng good bin dimensions and running Ng+1 times per codeword in the following way: In order to estimate the real and/or imaginary bin dimensions that are bad, the NLS circuitry 216 runs once to minimize the cost function of equation (5) by optimizing ΔXkεbads while the correction for all the good bins dimensions is fixed to zero (i.e., ΔXkεgood=0). Then, for each good bin dimension, (mεgood) the NLS circuitry 216 runs again to minimize the same cost function by optimizing ΔXkε{m}∀bads while setting ΔXkεgood-{m}=0, from which only the mth bin dimension correction (i.e. ΔXm) is used. Since in this case NLS circuitry 216 is run to obtain both the good bin dimensions as well as the bad bin dimensions, the outer iterations can effectively handle false goods.
In an example implementation, the NLS circuitry 216 may run fewer times per codeword by dividing the good bin dimensions into NB non-overlapping sets called “branches” Bb such that good bins=∪b=1N
In an example implementation, the same branch scheme may be used, but using only one branch (i.e. using b=1). In this implementation, the NLS circuitry 216 may run only twice per codeword—once to estimate all bad bin dimensions (ΔXkεbads) using the good ones, and a second time to estimate the good bin dimensions (ΔXkεgood) without fixing any correction to zero (i.e. all ΔXk are optimized but only output ΔXkεgood is used).
In an example implementation, the percentile P may be increased when the NLS circuitry 216 determines that the number of false good bin dimensions (mistakenly identified as good bin dimensions) for previous iterations is low. This may be based on the latest iteration for branches. In an example implementation, a sequence of successive P values ({Pl}l=1 . . . L) is used. The NLS circuitry 216 initially starts with 0 good bin dimensions, but after the first iteration uses Pl·Ncw
In an example implementation, a single instance of NLS circuitry 216 is used but still applies a limited correction to the good bin dimensions by taking advantage of the iterative nature of the NLS circuitry 216, which may use inner iterations (not to be confused with outer iterations involving the FEC decoder 224). The inner iterations of the NLS circuitry 216 change only the bad bin dimensions without changing the good ones. On each inner NLS iteration, the gradient of the good bin dimensions (typically costing no additional complexity) is computed, but without updating the good bin dimensions. After completing the NLS inner iterations, another gradient descent step is performed using the mean of the good gradient (averaged per-bin dimension over all NLS inner iterations) this time updating the good bin dimensions. In an example implementation, this gradient step is incorporated into the last NLS inner iteration. In this case, the percentile P may be determined defining ΔXk as NLS correction to the good bin dimensions (as opposed to previously using the branch correction).
In an example implementation, the NLS circuitry 216 finds the ΔX which minimizes the cost function (5) using an iterative scheme. In an example implementation, the NLS circuitry 216 uses a gradient decent algorithm (GD).
There are two basic kinds of nonlinearity models: with memory, and without memory. Memoryless power amplifiers are completely characterized by their AM/AM (Amplitude to Amplitude) and AM/PM (Amplitude to Phase) conversions which depend only on the current input signal value.
The following gradient derivation deals with memoryless PA, examples for PA with memory can be found in U.S. patent application Ser. No. 14/809,408, which is hereby incorporated herein by reference in its entirety. The gradient can be used to minimize the cost function repeated here omitting 1/σv2. For the purpose of gradient derivation the receiver 200 may use the cost function (1) formulation and not the block diagonal formulation.
Where ƒjNL(x) is a scalar complex=>complex function modeling the jth memoryless PA non-linear response. ƒjNL(x) are not necessarily analytical; and jε1 . . . NTx
Given this memoryless PA model, the receiver 200 can implement the gradient descent with O(N*log N) complexity (where O is a positive number). The gradient has the form shown in (10):
where:
The above derivation is directly applicable to cost function (2) where QR rotation transformation is applied to the received signal. In such case, Y and H in Eqs. (9)-(11) should be replaced by their rotated counterparts, QHY and R=QHH, respectively. In Eq. (11), the superscript (k) stands for the subcarrier index.
The above minimization may be carried out jointly over all of the spatial streams. Alternatively, nonlinearity accommodating approaches for single input single output (SISO) systems may be used in conjunction with some “layered” MIMO detector (e.g., successive interference cancellation (SIC) detector) in order to solve the problem, stream by stream. Such approaches may use some channel state information in order to decide on the solution order of the different streams. In general, the minimization is not restricted to take on only values on the constellation grid. However, for MIMO it may be beneficial to combine the “soft-value” minimization problem with MIMO detection. For example, a layered approach may be used such that a triangular form is obtained by QR rotation and each layer is minimized according to Eq. (1). A quantized version of the previously minimized streams may be re-substituted in the above equations in order to solve it for the subsequent stream. In such an embodiment, the MIMO processing (detection) is absorbed into the least squares minimization of the above equations.
In addition to modeling the PA of the transmitter, the NLS circuitry 216 may also model linear and non-linear response of pre-PA circuitry which operates on x(t) (121 in
The protective clip of the DNF circuitry 124 may have the form shown in equation (12).
where pclip is the threshold at which the DNF circuitry 124 clips the transmission signal in order to remain in well behaved PA input range (e.g., not exceed a threshold amount of compression).
The combined response, for which the gradient (substantially using the derivation chain rule) is to be calculated may therefore be given by equation (13).
ƒjNL(hprePA*ƒPC(x)) (13)
where ƒjNL models the non-linear response of the jth antenna PA.
Thus, the sampling rate and bandwidth of the DAC and anti-aliasing filters 126, should be wide enough to accommodate the bandwidth of ƒPC(x) (which is relatively wide due to clips).
In an example implementation where hprePA is not too sharp (e.g., rolls off less than some threshold amount per decade) within this bandwidth, the transmitter can digitally compensate for hprePA (e.g., by amplifying frequencies that are attenuated by hprePA). In an example implementation where hprePA must be made sharp (e.g. to prevent transmitting aliases), the transmitter can compensate for hprePA to transform it to a linear response—hprePA0—that is known to the receiver and would be modeled by NLS circuitry 216. In another example, if the transmitter uses digital predistortion, the combined response ƒNL(hprePA*ƒPC(x)) may be transformed to a soft limiter ƒPC(x) (e.g., by digital predistortion circuitry residing between 124 and 126 in
For a soft bounds approach, a penalty term (6) is added to the cost, and the NLS circuitry 216 computes the corresponding gradient as shown in (14).
where
Denoting the gradient computed in (10) as Gk
The Gradient decent algorithm can then be expressed as in equation (15).
where μk is a step size, that is 0 for good bins, and a non-zero fixed value for bad bins.
Constellation soft bounds are handled by η·BoundGD and are based on (13), where η is a scaling factor. The last term of equation (15), corresponding to last term in (5), may be used as a ‘soft-metric’. It is noted that the nonlinear model, though extensive, is just an example. Other, even more elaborate models may be used and a similar derivation may be applied.
In an example implementation, the transmitter and receiver of
In an example implementation, the FEC decoder 224 may be an iterative decoder. In an example implementation, the iterative decoder may be run a sufficient number of iterations until it fully converges. However, since the FEC decoder 224 needs to be run for multiple outer iterations, the overall decoder complexity is significant. In an example implementation, in order to reduce the decoding complexity, the iterative FEC decoder 224 is not run until it converges, but rather is stopped substantially prematurely. Despite stopping prematurely, state (accumulated extrinsic information) of the iterative FEC decoder 224 may be maintained and not be reset every outer iteration. With a message passing decoder, this maintenance of state information may be accomplished by continuing the message passing across outer iterations (i.e., messages generated but not processed at outer iteration q, since decoding was stopped, are processed at outer iteration q+1.) In general, this corresponds to adding the NLS circuitry 216 as additional check nodes in a Tanner graph which combines both FEC and nonlinearity constraints.
To illustrate, an example implementation in which the FEC decoder 224 is an LDPC decoder will now be described using the following notation:
At each outer iteration, the LDPC decoder 224 is fed with output L(i) from demapper 220. Then, the LDPC decoder 224 applies (16) to L(i) and the L(rji) messages stored from the previous outer iteration (denoted L(rj′i)), where for the first outer iteration L(rj′i)=0) to generate variable node to check node messages. The L(rj′i) messages were generated using (17) to compute the decoded bits output LLRs by the LDPC in the previous outer iteration and, as said, are then processed using (16) to generate messages to check nodes in current (successive) outer iteration. In the current outer iteration, the latest NLS updated L(i), and not the old L(i) that was used for the previous outer iteration, is used in (16).
The LDPC algorithm runs several inner iterations of the form shown in equations
(16) and (17).
∀i,j:L(qij)=L(i)+Σj′εC
After completing the LDPC iterations, the final check node to variable node messages L(rji) are stored for the next outer iteration, and the LLRs output by FEC decoder 224 are computed using equation (18).
In the example just discussed, Tanner graph iterative decoding was used in a way that alternates between NLS check node iterations and FEC check node iterations, repeating for some number of outer iterations which may be predetermined and/or dynamically determined. In other implementations, the FEC+NLS Tanner graph based decoder may be iterated in different ways. For example, the NLS and FEC check node may be iterated in parallel, or subsets of NLS and FEC check nodes may be iterated sequentially or in parallel. A similar approach is applicable for other iterative decoders.
As used here, the “channel response” is the response of the communication medium (e.g., air, copper cable, fiber, etc.) between the output (e.g., antenna for wireless) of the transmitter and the input (e.g., antenna for wireless) of the receiver, and does not include the power amplifier or receiver circuitry.
Learning Channel response and the nonlinear PA models ƒjNL, jε1 . . . NTx, for NTx transmit antennas may be accomplished is several ways. In an example implementation, the link between a transmitter and a receiver may be established with low-baud-rate packets using low-order modulations (and/or low-amplitude symbols of a higher-order modulation) which are less vulnerable to nonlinear distortion. The receiver may then recover the payload of such packets (using FEC decoding, which may be reliable because of the relatively low amounts of nonlinear distortion in these packets) to recover the transmitted symbols, and then determine the channel response and nonlinear distortion through a comparison of the received symbols with the transmitted symbols. In an example implementation, when the transmitter knows its nonlinear response, a representation of ƒjNL (or just a parametric model of ƒjNL to simplify receiver learning) may be directly transmitted in a payload of such packets. Thereafter, the link may upgrade to higher modulation orders, and/or higher-amplitude symbols, which may be demodulated by using the learned nonlinear model. In another example implementation, the transmitter-receiver pair may use probe signals, known to the receiver a priori, to learn the nonlinear model, where the probe signals may be as specified by an applicable standard. As another example, additional training signals, to be used by the intended receiver for channel estimation and learning of the nonlinear characteristic of the transmitter, may be appended to preambles defined in existing standards.
In an example implementation, the channel response (H) may be estimated using preamble(s) or beacon(s) which have low peak-to-average-power ratio (PAPR) such that it suffers only a negligible amount of nonlinear distortion. In an example implementation, the preambles or beacons may intentionally have high PAPR (thus experiencing relatively severe nonlinear distortion), but may be generated/selected to have characteristics (e.g., occupying at least a determined number and/or range of frequencies, occupying at least a determined number of signal levels, and/or providing at least a determined amount of repetition of frequencies and/or signal levels) that allow the same preamble or beacon to be used for both nonlinearity estimation and channel response estimation. In an example implementation, the channel response (H) may be estimated as part of the iterative process performed in the NLS circuit 216, as discussed below.
In an example implementation, in order to estimate both distortion and channel response from the same preamble, the receiver may operate to separate distortion effects and channel effects. To enable this separation, special sequences having the following properties may be transmitted by the transmitter: The sequence is composed of a set of N values that, in the time domain, is denoted as p[0], p[1] . . . P[N-1], this set of values is rich enough (e.g., a sufficient number and/or diversity of power levels are present in the sequence) to capture both nonlinearity and channel response (e.g., as few as two levels may suffice for estimating the channel response but more levels may be better for estimating the nonlinearity). The preamble is then composed of a permutation of M such sets of these N values. Therefore circuitry for estimating the distortion and channel (e.g., the NLS circuitry 216) needs to estimate a finite number (N) of distorted transmitted values of the form ƒNL(p[k]) for k=0 . . . N−1, and the channel response h[0], h[1] . . . h[T-1], where is the length of the channel response. This results in N+ unknowns with N·M equations, so M>=1+/N is needed for a unique solution. In addition, smoothness constraints may be placed on the estimated nonlinearity in order to reduce estimation noise and/or to reduce the required value of M. By repeating the same values (the M permutations), the number of unknowns remains constant even when preamble length increases, thus enabling a unique solution. In an example implementation, the value of N is selected based on the desired granularity with which it is desired to estimate ƒNL. This granularity and the set of values selected (p[0], p[1] . . . p[N-1]) is not necessarily uniformly spaced, as, for example, lower sampling granularity may be used for lower voltage levels (where ƒNL has low distortion) and higher granularity at higher voltage levels (that are highly distorted). Once the set of preamble values p[0], p[1] . . . p[N-1] have been determined, a plurality of pseudo random permutations of these values are selected for transmission to support distortion and channel estimation. In an example implementation, the permutations are selected such that the resulting preamble segments are substantially white in frequency.
In an example implementation, the channel response may be estimated using a time domain synchronous (TDS)-OFDM scheme where, instead of using pilots for channel estimation, the guard period is utilized for transmission of a training sequence (i.e. data that is known to the intended receiver a priori). This scheme is appropriate for the case where the received signal is distorted since the training sequence can be selected to have a desired PAPR (and thus desired amount of nonlinear distortion). By selecting the training sequence, which operates in the time domain, to have a low PAPR (and thus distortion), it can be used for accurate channel estimation. In an example implementation using the TDS-OFDM approach, the same training sequence may be used for nonlinearity estimation on top of channel response estimation. In an example implementation, the TDS-OFDM scheme may be used for nonlinearity estimation (i.e., to determine fNL) but not channel estimation.
In an example implementation using TDS-OFDM, where the data symbol is preceded by a training sequence, the receiver may use a permuted sequence approach similar to that described above. In this case, the same basic set of values p[0], p[1] . . . P[N-1] where N> may be used every TDS-OFDM training sequence, but with each symbol using a different permutation of the same sequence of values. In such an implementation, the receiver may use multiple training sequences (from multiple symbols) to estimate or improve estimation of both the channel response and the nonlinearity. This permuted training sequence is also useful to reduce correlation between the desired signal training sequence, and any interfering sequence of co-channel signals (e.g., interference between different users belonging to different cells in a cellular system).
In an example implementation, a TDS-OFDM scheme may be used for deriving the off-diagonal elements of H for phase noise compensation. In an example implementation, these elements are determined by calculating one or more derivatives (e.g., the 1st and/or 2nd derivative(s)) of H. In an example implementation, the NLS circuitry 216 may calculate the calculate the derivative(s) using: (1) the training sequence of a current symbol, (2) training sequence of a next symbol, and (3) tentative decisions of X for the current symbol. Thus, the channel response can be estimated along 3 time instances which enables calculating 1st and 2nd derivative.
In an example implementation the channel may be estimated using {circumflex over (X)} at output of circuit 232, or {circumflex over (X)}+ΔX at output of NLS circuitry 216. This can be done in the following way: The signal expected to be present at the transmission antenna array (at PA output) can be expressed using the block diagonal formulation of (19):
z=DFT(ƒNL(IDFT(V·{circumflex over (X)}))) (19)
Using z, the signal at the transmission antenna array, and y, the signal at reception antenna array, both measured over several symbols, the receiver can estimate the channel response Hk for every bin k, since:
y(k·NRx+[0:NRx−1])=Hk·z(k·NTx+[0:NTx−1]) (20)
where y is a NRXBINS×1 vector, is the Rx antenna's signal stacked over all subcarriers; and Hk is the channel response for bin k.
In an example implementation, the channel response Hk is additionally smoothed according to channel coherence bandwidth, power delay profile, of a combination of the two. Thus, even if {circumflex over (X)} is with errors, the smoothing enables accurate channel estimation. Thus, per each iteration when errors decrease, the NLS circuitry 216 can derive an improved channel estimation. For the 1st iteration on a particular OFDM symbol, in slow-varying channels, the NLS circuitry 216 may use the channel estimation of a previous symbol (the immediately previous symbol or an even earlier symbol). For the 1st iteration on a particular OFDM symbol, in fast-varying channels, the NLS circuitry 216 may use a TDS-OFDM or similar scheme.
In an example implementation, e.g. where transmit power control continuously changes the input backoff, the transmitter may inform the receiver of its current input backoff. In an example implementation this can be transmitted using the packet header and, assuming the packet header uses lower constellations, for example, then it can be demodulated despite the compression. This allows the receiver to use the ƒNL estimation computed for a previous packet but compensated for input backoff changes. The previous ƒNL estimation may be used either instead of ƒNL estimation from training sequence or in addition to it (to reduce estimation noise). When input backoff changes the transmitter may also vary the protective clip saturation level to correspond to an approximately fixed level below analog Psat. In an example implementation, the protective clip saturation level is a function of input backoff. The receiver can then use input backoff transmitted as part of the header to set its expected protective clip level to be exactly equal to that of the transmitter.
As is well known, the cyclic prefix in OFDM is used to avoid ISI and to simplify equalization to per bin multiplication, by turning linear convolution into cyclical convolution. However OFD WAM Receiver does equalization implicitly via the cost function minimization, and handles distortion between demodulated bins by use of iterative convergence. Therefore avoiding ISI and simplified equalization are not needed thus OFD WAM Receiver can work without a cyclic prefix (CP) or alternately use the energy of the CP. With No CP OFD WAM receiver we can model the linear convolution including the previous symbol ISI using the following cost function:
where:
In this case summation occurs not only over NFFT samples, but also over the CP part. Thus, if the system uses a CP the energy of the CP is not wasted. The ISI from the previous symbol is mitigated by use of the estimate for the previous symbol convolved with the ISI response (ĥISIi,j(n)), where, through the use of pipelining, as discussed below, the previous symbol estimate ({circumflex over (X)}S,:t-1) NLS circuitry 216 processes the previous symbol independent of the current symbol, and the previous symbol has undergone more outer iterations than the current symbol. The receiver may also use non-cyclic convolution with the channel response (ĥi,j(n)).
In addition, it is possible to concurrently optimize two or more symbols thereby further increasing performance. I.e. summing cost function of several symbols. For example, the corrections ΔXS,:t, ΔXS,:t-1, ΔXS,:t-2 for times t, t−1, and t−2 may be optimized concurrently.
In an example implementation, the receiver of
For the case of misalignment between code words and symbols, operating the NLS circuitry 216 code word by code word (i.e. not pipelined) may induce some performance loss because, when applying NLS circuitry 216 for code word M that shares a symbol with code word M+1, the NLS circuitry 216 has no estimation ({circumflex over (X)}k) from the FEC decoder 224 for bins in the shared symbol belonging to code word M+1. In an example implementation, the pipelined implementation is used to obtain {circumflex over (X)}k for the shared symbol. That is, the first path may handle outer iteration J (a positive integer) on code word M while a second path (if present) may operate on outer iteration J−1 on code word M+1. In this case, for first path outer iteration J running on last/shared symbol (of code word M), the NLS circuitry 216 may use the shared symbol bins estimations {circumflex over (X)}k obtained by the FEC decoder 224 for second path outer iteration J−1 on code word M+1.
The pipelined structure can also be used in an OFDMA scenario where different packets from different users (on adjacent frequencies) are not aligned. In OFDMA, non-linear distortion leaks from one user to the adjacent users in frequency. The NLS circuitry 216 can start processing a user packet as soon as a code word becomes available without using “goods” which are related to code words that haven't been processed yet. However, whenever an adjacent (in frequency or time) code word has been processed, the NLS circuitry 216 may use the most recent soft information obtained for it by the decoder 224 (LLRs, estimation {circumflex over (X)}k, and/or other information).
The derivation for the SISO case (single spatial path) applies to NRx·NTx physicals channel from every transmit antenna to every receiver antenna, and thus can be used in the MIMO case as well. The channel is assumed to be composed of several reflections, each reflection delays the transmitted signal and multiplies it by a complex factor. The formulation for such a channel between single TX and single RX antenna is shown in equation (22).
where, in slow varying channels (e.g., where estimation using a one-symbol delay is provides sufficient SNR), and when phase noise is weak enough (e.g., below a determined threshold), it is assumed that hi(t) is constant within the duration of an OFDM symbol. However, in the presence of phase noise and/or when channel varies fast this assumption no longer holds. In this case, a Taylor expansion may be used around the middle of the OFDM symbol, which results in the formulation of equation (23).
where hi(p) is the pth derivative of hi(t) at the middle of the OFDM symbol (i.e. at time instant Tsym/2).
Using (23), and under the assumption that the cyclic prefix is longer than the maximal path delay, τ, it can be shown that received signal in frequency domain is:
Equation (24) can be represented in matrix form as shown in equation (25).
Y=H·X (25)
where:
Since L(p) decays, which accounts for the fact that the variations cause Inter Carrier Interference (ICI) that diminishes as carriers are further apart, considering only a few off-diagonal elements is sufficient in an example implementation.
Approximation of Hk(p) requires knowledge of Hk at p+1 time instances for every (TX,RX) antenna pair. In an example implementation this is done by use of pilots from the every transmit antenna that are repeated every few OFDM symbols.
Applying the previous derivation to every transmit receive antenna pair we get the following output for RX antenna i.
Equation (5), by virtue of using the block diagonal formulation, can be applied to ICI case by setting Ĥ (Due to ICI modeling this modified Ĥ would no longer have the block diagonal form)
{circumflex over (H)}(k·NRx+i−1,k·NTx+j−1)=Hi,j (27)
Where i, j are the receive and transmit antenna indices respectively.
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)}. 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)}. 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, by some user-configurable setting.
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.
This application claims priority to the following application(s), each of which is hereby incorporated herein by reference: U.S. provisional patent application 62/042,286 titled “Multiple Input Multiple Output Communications Over Nonlinear Channels Using Orthogonal Frequency Division Multiplexing” filed on Aug. 27, 2014;U.S. provisional patent application 62/049,428 titled “Multiple Input Multiple Output Communications Over Nonlinear Channels Using Orthogonal Frequency Division Multiplexing” filed on Sep. 12, 2014; andU.S. provisional patent application 62/047,721 titled “Multiple Input Multiple Output Communications Over Nonlinear Channels Using Orthogonal Frequency Division Multiplexing” filed on Sep. 9, 2014. This application claims priority to the following application(s), each of which is hereby incorporated herein by reference: U.S. patent application Ser. No. 14/809,408 titled “Orthogonal Frequency Division Multiplexing Based Communications over Nonlinear Channels” filed on Jul. 27, 2015.
Number | Date | Country | |
---|---|---|---|
62042286 | Aug 2014 | US | |
62049428 | Sep 2014 | US | |
62047721 | Sep 2014 | US |