The disclosure relates generally to a coherent receiver, and more specifically, to an adaptive demapper in a coherent receiver.
Due to the increasing demand for higher transmission rates in fiber-optic communications, more complex transceivers with higher throughput are desirable. To achieve the latter, modulation schemes are growing in complexity, moving towards higher bits per baud like QAM16 and QAM64. These modulations are more susceptible to noise and distortions than lower bits per baud modulations. In particular, non-linearities present in different parts of an optical receiver can add noise that does not follow a Gaussian distribution. This type of noise can represent significant performance penalties since forward error correction (FEC) codes implemented in the receivers are designed to counter the effects of Gaussian noise.
An adaptive demapper adaptively demaps an input symbol. An input symbol is received and demapped in a hard-output demapper to generate a current detected symbol corresponding to a constellation point on a current constellation closest to the input symbol. A corrected inverse of a current noise power estimate is determined by updating a previous noise power estimate based on a difference between the input symbol and the current detected symbol. In a soft-output demapper, a log likelihood ratio corresponding to the current detected symbol is determined based on the corrected inverse of the current noise power estimate. The constellation point in the current constellation corresponding to the current detected symbol is then updated to generate an updated constellation based on a difference between the constellation point and the received input symbol.
The invention has other advantages and features which will be more readily apparent from the following detailed description of the invention and the appended claims, when taken in conjunction with the accompanying drawings, in which:
The AFE 102 samples analog input signals 151 from an optical front end to convert the analog input signals to digital input signals. In an embodiment, the analog input signals are signals that have been converted from optical signals in optical front end. These optical signals have two polarizations (e.g., a horizontal and vertical polarization, or more generally, an “X” and “Y” polarization) in which each polarization includes an in-phase signal and a quadrature signal. Thus, the analog input signals may be represented as four signals denoted as XI (in-phase, X polarized), XQ (quadrature-phase, X polarized), YI (in-phase, Y polarized), and YQ (quadrature-phased, Y polarized). The in-phase and quadrature-phase signals in each polarization may alternatively be represented as a complex signal having a real portion corresponding to the in-phase signal and an imaginary portion corresponding to the quadrature signal. Furthermore, the two polarizations including all four signals 151 can collectively be treated mathematically as a two-dimensional complex vector, where each component of the vector corresponds to one of the polarizations of the received optical signal and is expressed as a complex representation of in-phase and quadrature signals.
In an embodiment, the AFE 102 samples the analog input signals 151 based on a sampling clock provided by the timing recovery module 106. Furthermore, the AFE 102 may apply a gain to the sampled input signals based on a gain control signal from the AGC module 104, which is adjusted in a feedback loop based on the digital output of the AFE 102. The polarization, phase rotation, and demodulation calibration module 108 applies a rotation to the digital input signals to correct for skew and/or amplitude differences between the in-phase and quadrature components that may have been introduced in the optical channel, due to, for example, polarization mode dispersion (PMD). In an embodiment, the amount of rotation is determined at least in part by a coarse carrier recovery module 110, which supplies a control signal to the polarization, phase rotation, and demodulation calibration module 108. The bulk chromatic dispersion equalizer 112 equalizes the digital signals to compensate for chromatic dispersion effects that may be introduced in the optical channel. Parameters of the bulk chromatic dispersion equalizer 112 may be used by the timing recovery module 106 and coarse carrier recovery module 110 in respective feedback loops.
The timing recovery module 106 estimates the frequency and phase of the data signals outputted by the bulk chromatic dispersion equalizer 112 and generates timing information used sample the analog input signals 151 in the AFE 102. The 4-D fast equalizer 114 further equalizes the digital signals to reduce signal distortion. For example, the 4-D fast equalizer may compensate for intersymbol interference (ISI) effects imposed by the optical and electrical channels that may be caused by residual chromatic dispersion, polarization mode dispersion, and bandwidth effects. The carrier and polarization recovery module 116 receives equalized samples from the 4-D fast equalizer 114 and estimates and compensates for frequency and phase differences between the carrier signal and a local oscillator.
The adaptive demapper 118 decodes the digital signals into symbols. A detailed description of the adaptive demapper is described in further detail below with respect to
The start-up controller 122 performs various startup control operations. The diagnostic module 124 may receive data from various components of the receiver 100 and perform diagnostic analysis.
In one embodiment, the receiver 100 is implemented as an application specific integrated circuit (ASIC). Furthermore, portions of the transceiver receiver may be implemented as a processor (e.g., a digital signal processor) and a non-transitory computer-readable storage medium that stores computer-executable instructions. During operation, the processor loads and executes the instructions to carry out the functions described herein. Other functional modules of the receiver 100 may be implemented in hardware, firmware, or a combination of software, hardware, and/or firmware.
In an embodiment, the demapper module 200 comprises an adaptation engine 210, a hard-output demapper 222, and a soft-output demapper 224. The adaptation engine 210 comprises three primary components: a constellation estimator 214 to estimate the constellation points of the received input symbol 202, a noise power estimator 216 to estimate the noise power in each of the real and imaginary component of the received input symbol 202, and a decision boundary calculator 212 to determine, based on the constellation points, decision-boundaries for use by the hard-output demapper 222 to distinguish between different symbols. The estimates and metrics produced by the adaptation engine 210 help improve the performance of the demapping process while reducing the complexity of the algorithm in comparison with a brute force approach (i.e., computing the distance of the received input symbol 202 to all valid constellation points and finding the one with minimum distance). The individual components of the adaptation engine 210 are described in further detail below.
The constellation estimator 214 estimates each of M constellation points from a sequence of received input symbols 202 based on the following equation:
c
k
[n]=(r[n]−ck[n−1])·βc+ck[n−1] (1)
where n is a discrete time index, r[n] is the demapper input symbol at time n, k is an index of the constellation point determined by the hard-output demapper 222 as corresponding to the received input symbol r[n], ck[n] is the estimation of the kth constellation symbol at time n, and βc is a predefined parameter that controls the tradeoff between the estimation error and tracking speed. In an embodiment, the constellation estimator 214 initially initializes the constellation points ck[0] for k=0, 1, . . . , M−1 with the ideal M points of the constellation without distortions. For example, the initial constellation points may be equally spaced and centered at the origin. With each received input symbol 202, the position of the constellation symbol corresponding to the received input symbol r[n] as determined by the hard-output demapper 222 is updated according to Eq. (1), making the constellation points converge to a shape consistent with the received symbols over time. In this way, possible deformations caused by linear or non-linear distortions in previous stages of the receiver (including, for example, the optical and electrical components in the transmission channel) may be compensated. The updated constellation symbol ck[n] is outputted to the hard-output demapper 222 and to the decision boundary calculator 212. An example embodiment of a constellation estimator 214 is described in further detail below with reference to
The noise power estimator 216 estimates the variances σi2[n] and σq2[n] of the noise present in the real and imaginary part, respectively, of the received symbol r[n]. For example, in one embodiment, the variances are calculated based on the following equations:
σi2[n]=(1−βi)·ρi2[n−1]+βi·(real{r[n]−{circumflex over (r)}[n]})2 (2)
σq2[n]=(1−βq)·ρq2[n−1]+βq·(imag{r[n]−{circumflex over (r)}[n]})2 (3)
where βi and βq are parameters for the real and imaginary portions respectively of the calculation, and {circumflex over (r)}[n] represents the detected symbol from the hard-output demapper 222. The inverse sigma square value outputted to the soft-output demapper 224 may then be computed as follows:
where αi and αq are predefined correction factors that compensates the bias generated due to errors in the estimated symbol {circumflex over (r)}[n]. Alternatively, this bias can be avoided by using pilot symbols instead of the estimated symbol {circumflex over (r)}[n]. An example embodiment of a noise power estimator is described in further detail below with reference to
The decision boundary calculator 212 computes a set of reference frontiers based on the estimated constellation symbols received from the constellation estimator 214. The reference frontiers may be used to detect the input symbol in a smaller subset of constellation points in order to reduce complexity. A detailed description of the frontier computations is described below.
The hard-output demapper 222 receives the input symbols 202 and for each input symbol 202, determines the estimated symbol {circumflex over (r)}[n] corresponding to the constellation symbol closest to the input symbol r[n] from the set of possible constellation symbols C[n]={ck(n):k=0, 1, . . . , M−1} estimated by the constellation estimator 214. For example, in one embodiment, the hard-output demapper computes {circumflex over (r)}[n] as follows:
{circumflex over (r)}[n]=arg min |r[n]−c|2 (6)
c∈C[n−1]
Eq. (6) thus involves computing M square distances and finding the minimum distance. For large constellations this approach may involve a significant amount of computation, particularly in high-speed applications. Thus, in one embodiment, the number of distances that are computed and compared in the hard-output demapper 222 may be reduced by partitioning the set of constellation points into a plurality of smaller overlapped subsets and computing the distances associated to the points in only one of these subsets.
More generally, a subsets Cj[n] with j=0, 1, . . . , L−1 may denote the jth subset of a constellation C[n] having L subsets. Furthermore,
Thus, to apply the equations above, the hard-output demapper 222 may first compute the representants
In an alternative embodiment, the subset index p can be computed based on a boundary decision instead of distance computations as described in Eq. (8). This may involve the pre-computation of decision-boundaries between the subsets. Due to the overlap property of the subsets, the boundaries can be approximated by lines aliened to the Cartesian axes with negligible penalty. Therefore, instead of applying Eq. (8) above, the subset index p can instead be computed as:
p=f(d1,1, . . . , d1,q,d2,1, . . . , d2,q) (10)
where f(⋅) is the index decision rule (e.g., a pre-computed index decision rule stored in memory) based on the frontier decisions d1,j and d2,j with
and v1,j and v2,j with j=1, 2, . . . , q are real and imaginary decision frontiers respectively computed by the decision boundary calculator 212. Several approaches can be used in the decision boundary calculator to compute the decision frontiers. For example, in one embodiment the set of frontiers determined by the decision boundary calculator 212 may be based on a mean point between two different neighbor subset representatives
where function f(⋅) selects the subset index p if all frontier decisions associated to the representative
In another embodiment, the decision frontiers determined by the decision boundary calculator 212 may be based on computing a representative point of the overlapping points between neighbor subsets, e.g.:
Further reduction of complexity is possible with negligible performance penalty by computing an estimation of
Referring back to
where r[n] is the received symbol at time n, b is a bit of a demapped symbol, P(b=0|r[n]) is the probability of b=0 given r[n] was received, and P(b=1|r[n]) is the probability of b=1 given r[n] was received.
A total of log2(m) LLRs Lk[n] with k∈{0,1, . . . , log2(M)−1} (e.g. k∈{0,1, . . . , 5} for QAM64) are calculated. Approximating the transmitted symbols as being independent and equally distributed, and estimating the equivalent noise model at the input of the demapper to be additive white gaussian noise (AWGN), Lk(nd)[n] can be expressed as
where Sb
The approximation in Eq. (18) below may used to reduce complexity in the LLR computation.
The latter results in the LLR computation described in Eq. (19) as follows:
On the other hand, the LLRs for the differential encoded bits of differential modulations can be expressed as:
where n represents a time instant, r[n] is the received symbol at some time instant, b is a bit of the demapped symbol, P(b=0|r[n], r[n−1]) is the probability that bit b=0 given r[n] and r[n−1] were received, and P(b=1|r[n], r[n−1]) is the probability that bit b=1 given r[n] and r[n−1] were received. Note that not all bits of a differential modulation must be differential encoded. In this case the LLR of the non-differential bits may computed based on Eq. (19). Using similar approximations as before (i.e., independent and equally distributed transmitted symbols and AWGN noise), the LLR can be computed as
where Zk(b)={(sc, sp):gk (∠(sc)−∠(sp))=b}, gk( ) is a function that maps angles to differential bits, and σ2 is the variance of the noise. By using the approximation of Eq. (18), the differential LLR of Eq. (21) reduces to:
Therefore, the LLR calculation is reduced to the computation of eq. (19) and eq. (22) for the non-differential and differential bits respectively of the received symbol. Both equations involve the computation of two minimum values, one of which corresponds to the hard-decision symbol computed by the hard-output demapper 222. For each bk with k=0; 1, . . . , log2(M)−1, the other symbol involved in the computation of Lk is the constellation symbol with minimum distance to the received symbol r[n] chosen from the subset of constellation symbols in which the bit bk is different from the value of that bit in the hard-output demapper decision, i.e.,
where {circumflex over (r)}[n] and {circumflex over (r)}[n−1] are the hard-decision symbols detected by the hard-output demapper 222 and {circumflex over (b)}k is the corresponding bit value for the kth bit (differential or nondifferential accordingly).
Eq. (23) can be further simplified with negligible performance penalty by restricting the set in which the minimum values are computed to the subset of constellation points Cj[n] used in the hard-output demappers 222, e.g.,
where Ĉ[n] is the subset of constellation points that survived in the hard-output demapper 222 for the detection of the symbol {circumflex over (r)}[n] and for which the distances to the received symbol r[n] are already computed. Ĉ[n]×Ĉ[n−1] denotes the Cartesian product between Ĉ[n] and Ĉ[n−1].
In the real component path 510, the current real components of each of the constellation points C are stored to respective memory units in the memory 520. During an update cycle, a demapped symbol index k 506 is received and controls the demultiplexer 522 to select the currently stored real portion of a constellation point Re {ck} corresponding to the demapped symbol index k 506. The demultiplexer 522 provides the real portion of the constellation point ck to the combining blocks 512, 516 in a feedback loop. The combining block 512 takes a difference between the real portion of the input symbol Re {r[n]} and the real portion of the constellation point Re {ck} read from the memory 520. The multiplication block 516 multiplies the difference by a parameter β and the combining block 516 then sums the product with the real portion of the constellation point Re {ck} read from the memory 520. The multiplexer 518 writes the sum to the memory 520 at the appropriate memory unit indicated by the demapped symbol index k 506, overwriting the currently stored value.
The imaginary component path 550 operates analogously to the real component path 510 described above to update the imaginary portion of a constellation point Im {ck} corresponding to the demapped symbol index k 506 based on the received imaginary portion of the input symbol Im {r[n]} during an update cycle. Particularly, the elements 552, 554, 556, 558, 560, 562 of the imaginary component path 550 may operate analogously to the respective corresponding components 512, 514, 516, 518, 520, 522 of the real component path 510.
After updating, the memories 520, 560, the constellation estimator 214 may output the updated constellation point ck by controlling the demultiplexers 522, 562 to read the real and imaginary portions respectively of the constellation point ck from the respective memories 520, 560.
In the real component path 610, the real portion of the instant noise is obtained by the summation block 612 as the difference between the real portion of the received symbol r and the real portion of the detected symbol {circumflex over (r)}. The difference is squared by squaring block 614 and fed to the recursive averaging filter 630. In the recursive averaging filter 630, the combining block 616 takes a difference between the squared value from the squaring block 614 and the current variance value stored to the memory 622. The multiplication block 618 multiplies the difference by a parameter β and the combining block 620 sums the product with the current variance value stored to the memory 622. The resulting value is stored to the memory as the updated variance for the real component. The inverting block 624 then divides the correction factor for the real component αi by the updated variance to obtain the inverse variance value for the real component 608.
The imaginary component path 650 operates analogously to the real component path 610 described above to update the memory 662 with an updated variance value based on the imaginary components of the input symbol 646 and the estimated symbol 644 and to output an inverse variance value corresponding to the imaginary component 648 based on the updated variance and the correction factor for the imaginary component αq. Particularly, the elements 625, 654, 656, 658, 660, 662, 670, 664 of the imaginary component path 650 may operate analogously to the respective corresponding components 612, 614, 616, 618, 620, 622, 630, 624 of the real component path 610.
The described adaptive demapper 118 may be used for demapping in a number of different modulation schemes including, for example, binary phase shift keying (BPSK) modulation schemes, quadrature phase shift keying (QPSK) modulation schemes, and quadrature amplitude modulation (QAM) schemes including, for example, QAM-16, QAM-64, or QAM-256 schemes. Furthermore, the adaptive demapper 118 may be used for both differential and non-differential modulation schemes. The adaptive demapper 118 may furthermore provide both hard and soft outputs to a decoder.
Although the detailed description contains many specifics, these should not be construed as limiting the scope but merely as illustrating different examples and aspects of the described embodiments. It should be appreciated that the scope of the described embodiments includes other embodiments not discussed in detail above. For example, the functionality of the various components and the processes described above can be performed by hardware, firmware, software, and/or combinations thereof.
Various other modifications, changes and variations which will be apparent to those skilled in the art may be made in the arrangement, operation and details of the method and apparatus of the described embodiments disclosed herein without departing from the spirit and scope of the invention as defined in the appended claims. Therefore, the scope of the invention should be determined by the appended claims and their legal equivalents.
This application is a continuation of U.S. patent application Ser. No. 15/187,711 filed Jun. 20, 2016, which claims the benefit of U.S. Provisional Application No. 62/183,084 filed on Jun. 22, 2015, the contents of which are incorporated by reference herein.
Number | Date | Country | |
---|---|---|---|
62183084 | Jun 2015 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 15187711 | Jun 2016 | US |
Child | 16011470 | US |