A GENERALI ZED PRECODER FOR THE UPSTREAM VOICEBAND
MODEM CHANNEL * * ** * *
CROSS-REFERENCE TO RELATED APPLICATIONS
I claim the benefit under Title 35, United States Code, § 120 to U.S. Provisional Application Number 60/181,520, filed February 10, 2000, entitled PRECODER FOR V.92 PCM UPSTREAM.
STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OF DEVELOPMENT
Not applicable.
BACKGROUND OF THE INVENTION
This invention relates to upstream precoders for digital signals. More particularly, the invention relates to a precoder structure to account for nonuniform code set levels compensating for nulls in a system utilized to transmit a digital signal, allowing spectral and constellation shaping.
For V.92, it has been agreed that a "PCM upstream" scheme will be used. This means that the analog modem transmits a signal from a constellation of points that is received at the central office (CO) codec at predetermined levels. This is different than PCM downstream (as in V.90) in part because the channel and
noise come before the CO codec. Unlike downstream where any sequence of levels is possible, it is not possible, given power constraints, to make arbitrary decisions about the sequence of levels that will be received by the CO codec in the upstream direction. As a simple example, it is not possible to continuously transmit the same level since the modem channel does not pass a DC component. In addition, it is not possible to do any equalization before the CO codec.
3Com, Conexant Systems, and Motorola ING have proposed using a generalized Tomlinson-Harashima (TH) precoder followed by a linear FIR equalizer in the transmitter. The combination of the precoder and linear equalizer compensate for the channel response so that the levels received by the codec match the levels transmitted.
Unlike V.34, the transmitted upstream symbols in V.92 must be at a symbol rate of 8kHz in order to match the CO codec. This is true regardless of the channel response. The channel, however, does not typically pass either a DC or a Nyquist component. From results in information theory, the spectrum of the transmitted signal should be shaped to match the channel.
Exemplary methods for communication using constellation precoding, Tomlinson precoders and trellis decoder are found in the prior art, including in US patents 5,388,124 to Laroia 6,026,120 to Betts, US patent 5,881,108 to Herzberg and US patent 5,973,725 to Lee.
SUMMARY OF THE INVENTION
The Laroia-Tretter-Farvardin (LTF) precoder structure of the present invention will allow spectral shaping at the transmitter whereas a TH precoder will not. The present invention teaches that an LTF precoder can be applied to V.92 to allow spectral shaping and potential constellation shaping. The output of a TH precoder has an approximately uniform probability density function and samples are approximately independent. Its spectrum is flat regardless of the spectrum of the input sequence. The output of the LTF precoder is the original input plus a small uniformly random component. Therefore, the spectrum is largely preserved. By preserving a greater match to the original spectrum, decreased power is required because the power which is used is concentrated where the channel has the least attenuation and can pass the signal.
The preferred exemplary embodiment teaches a generalized LTF precoder for V.92 that allows non-uniform constellations, spectral shaping, and constellation shaping. The generalized LTF precoder itself is a change
from proposals already considered and includes framing, trellis coding, and constellation design.
BRIEF DESCRIPTION OF THE DRAWINGS For a better understanding of the nature of the present invention, reference is had to the following figures and detailed description, wherein like elements are accorded like reference numerals, and wherein:
Figure 1 is a diagram illustrating an exemplary proposed framing structure for V.92 upstream.
Figure 2 is a block diagram illustrating an exemplary LTF precoder
Figure 3 is a block diagram illustrating an exemplary precoder of the present invention which matches the input to the closest constellation point.
Figure 4 is an alternative, equivalent block diagram illustrating an alternative exemplary precoder of the present invention which matches the input to the closest constellation point.
Figure 5 is a graph illustrating the uncoded performance results illustrating the power savings of implementation of the present invention which allows greater transfer speed.
DETAILED DESCRIPTION OF PREFERRED EXEMPLARY EMBODIMENTS An exemplary framing for the data of the exemplary embodiment is illustrated in Figure 1. This framing is used as an exemplary reference framing for description of the exemplary embodiment herein.
The framing of the present invention is based substantially on the framing described in [TR-30.1/99-11- 053] (3Com et al.). The frame structure tracks the previous proposals without change. Notation is defined as follows and as found in Figure 1. As in [TR-30.1/99- 11-053], the frame of the present invention has a 12 symbol frame structure that includes 2 constellation frames of 6 symbols and 3 trellis frames of 4 symbols, as illustrated in Figure 1.
The index i = 0, 1, 2 ... 11, indicates the data frame number. The index, k = 0, 1, 2, 3, indicates the trellis frame number. There are 4 symbols in a trellis frame to match the 4 dimensional code used in V.34.
The index n as used herein, denotes time. The indices i and k can be derived from n as integer whole numbers. The index i is equal to n mod 12 or the integer remainder of n/12. The index k is equal to n mod 4 or the integer remainder of n/4.
In each 12-symbol data frame, there are K serial input data bits. K is an even number so that the data rate is any multiple of 8000/6 kbps.
K bits enter the modulus encoder. There are 12 independent mapping moduli, M0 to n , which are the number of members in the PCM constellation points from which to choose for data frame interval 0 to data frame interval 11 respectively. Mx is equal to the number of precoder output levels to be used in data frame interval i.
K± is the output of the modulus encoder for data frame i. KL is an integer determined by the input data between 0 and Mi-1. The method to derive P-0 is described in the V.90 specification and in [TR-30.1/99-11-053 ] .
There are a number of possible ways to accomplish spectral shaping. One example is the spectral shaper in V.90.
For this case, the input data bits will first need to be parsed into magnitude and sign bits. The input to the spectral shaper will use the magnitude of the indices instead of the PCM code set magnitudes to do the shaping. Simulation results show that the difference between using the PCM code set magnitudes and the index magnitudes is very small as long as the indices label the constellation
points as described in [TR-30. 1/99-11-054]. This way, the indices are nearly linearly proportional to the code set levels.
The precoder and pre-equalizer structure currently proposed is shown in Figure 2. In this figure, n, indicates time. In Figure 2, the transmitter is made of a precoder feedback element 21, B(D), and a feedforward equalizer 23, W(D) . The values of yn at the input to the transmitter represent PCM code set levels. These levels are not uniformly spaced because of the nonlinear μ or A- law codec. The sequence of levels chosen is driven by the user data and the precoder rule.
The sequence, yn can not be arbitrary. In the current model, yn is chosen from an equivalence class of constellation points that, at the receiver, are all mapped to the same input value, K± (assuming that at time n, the data frame is i) . The value of yn is selected from the equivalence class to minimize the power of xn . For a constellation from a uniform lattice, this is equivalent to TH precoding.
The data frame number, i, continues to cycle between 0 and 11, and is equal to n mod 12. Similarly, we assume that the trellis frame number, k, cycles between 0 and 3 and is equal to n mod 4. From the index, n, we can find i and k. In generalized LTF precoding, the selection of yn
is done as follows. We let the complete set of N constellation points in A be denoted by a(m), -N/2 < m < N/2 just like in [TR30.1/99-11-054 ] . The constellation points are in ascending order with a(-N/2) being the smallest (largest negative) point and a(N/2-l) being the largest point. Typically, A has an equal number of positive and negative elements and is symmetric around 0.
In the method of the present invention, the first step in determining yn is to find the reference point in the constellation subset. The reference point is defined as the smallest element in A larger than or equal to fn (from Figure 2). This point is called a(refn). With no precoder, refn is always equal to 0.
The transmitted constellation point yn =a(mn), is now selected based on K±, the output of the modulus encoder, and refn, the reference point. The selection of the transmitted constellation point is determined by the selection of mn and is as follows:
mn = K, + refii - -^for k = [0,1,2] (1)
and for k = 3 (n mod 4 = 3), the index is selected differently depending on whether refn is even or odd:
mn = 2-Ki-Mi+refn+f (mn_3+mn-2+ιtιn-ι+Y0) mod 2] for refn even (2)
mn = 2- i-Mi+refn+l-f (mn_3+mn.2+mn_1+Y0) mod 2] for ref„ odd (3)
Stated in words, a(mn) is selected from a (ref„-MJ2 ) ... a(refn+M1/2-l) where a(refn)... a(refn +M1/2-l) corresponds to a positive precoder output and a(refn-l) ... a(refn-M1/2) to a negative precoder output for k=0, 1, or 2. For k=3 , the interval ranges from a(refr-M ... a(refn+M1-l) . The trellis coder output Y0 selects one of two cosets determined by whether the sum of indices is even or odd. The four indices, m0 ... m3, determine the trellis coder inputs as described in [PCM' 00-020, Motorola ING] (using the notation mn instead of jn) through the inverse map. Refn is a center point of a sliding window from which to select the next transmit sample.
It is possible that mn will fall outside of the range -N/2, N/2-1. In the usual TH or LTF precoder case, this is analogous to the situation where the channel output exceeds the codec range and clips. One way to handle this case for generalized LTF precoding is if mn > N/2-1 let mn = mn - Mx and if mn < -N/2 let mn= mn + Mx.
This is analogous to having the precoder output exceeding the originally intended range. This is handled by selecting a member of the equivalence class to minimize the magnitude of the precoder output regardless of whether the precoder output remains in a specified
range. In any precoding proposal, if the precoder output is allowed to exceed the originally intended range, the transmitter power level will rise; the degree of the rise will depend on the likelihood of exceeding the constellation range. The magnitude of the largest possible constellation point can be calculated as the largest possible precoder output multiplied by the LI norm of the precoder filter. Depending on the length of the precoder filter, however, this output could be very unlikely.
This procedure describes a generalized LTF precoder. The output of the precoder maintains nearly the same spectral shape and power as the input. The input to the precoder is encoded according to a trellis code.
To see a parallel between the generalized LTF precoder and the version used in V.34, a block diagram of the LTF precoder used in V.34 is illustrated in Figure 3 with an alternative embodiment illustrated in Figure 4. In the LTF precoder, the input signal bn is not selected directly but is related to yn, which is selected from equations 1 to 4 as described above. In Figure 4, bn is equal to yn _ qn. Except for the quantization error, this centers bn around the origin since fn is specified a the reference point. In the LTF precoder, the output, xn, is equal to the input sequence bn plus a small term, en, that represents the error between the precoder filter output,
fn, and this value quantized to the nearest constellation point. When the constellation is spaced uniformly, with distance d separating constellation points, the values of ek will be uniform over the interval (-d/2,+d/2) .
The average output power of the LTF precoder is identical to the average output power of the TH precoder and is equal to (Md)2 /12 for an M-PAM uniformly spaced constellation.
The point of this method is that bn can be spectrally shaped. Because en is small, as is evident in Figure 3, the output of the precoder maintains the same spectral shape. In equation 1 to 4 , bn is chosen, and a quantized version of fn is added to bn to determine yn. Except for any noise or uncompensated intersymbol interference, the signal yn, not bn, is received at the CO codec. This is apparent in Figure 2 and Figure 4, since it is yn that passes through the precoder filter.
The generalized LTF precoder uses the same principles. The value of bn in Figure 3 corresponds to a(refn) used in the generalized precoder. The value of bn in Figure 3 is related to a(mn - refn) in the generalized precoder. The difference between the V.34 precoder and the generalized LTF precoder is that the levels might not be uniform. With a uniform, infinite constellation, the two precoders would be identical.
The generalized LTF receiver is similar to the V.34 receiver but simpler. In the V.34 receiver, the first step is an equalizer filter often thought of as a linear equalizer followed by a predictor. For V.92, this filter is moved to the transmitter. For PCM upstream, a Viterbi detector operates directly on the received PCM levels and finds the most likely sequence according to the trellis encoder used. Then, as in V.34, this sequence is passed through an inverse precoder filter to recover the original input sequence.
If the input sequence, bn, has the autocorrelation function, r„ = E[bXbnbn_, ,...,6 _ (4)
where E(.) means "expected value of," then the autocorrelation function of xk is: rxx ~ rbb +[d2/12,0, 0, ... ,0] . For a uniformly spaced PAM constellation, E(bn 2) is equal to: d2/12[M2-l] which is typically much larger than d2/12. The output of the LTF precoder has nearly the same spectral shape as the input of the precoder.
Uncoded performance can be evaluated as the averaged probability that one of the levels in the constellation is mistaken for another level. Assuming Gaussian noise, this is equal to:
/ d λ
P * Q (5) 2σ)
where d is the distance between two code set points and σ is the standard deviation of the noise. For the purpose of illustration, this analysis does not include the effect of an echo received by the server. The approximation assumes that the noise is Gaussian. The noise actually consists of both additive channel noise and intersymbol interference from imperfect filtering. For a non-uniform constellation spacing, d, will vary from point to point. The performance can be approximated by assuming a uniform constellation.
For a uniform constellation, the value of d can be chosen so that the transmit power is within specified limits. From the last section, the autocorrelation of the precoder output can be written:
(d2M2)
where rxx is normalized. The total power out of the pre- equalizer filter is then:
d2 M2 w R„w
12
where w is a column vector of pre-equalizer filter coefficients and Rxx is a Toeplitz matrix derived from rxx. This is the transmitter power. Given the number of PAM levels, M, the normalized autocorrelation vector rxx, the pre-equalizer filter, w, and the power constraint, we can find d. The filters are then chosen to jointly minimize the power of the precoder output and the power of the error.
The performance estimate and the precoder and pre- equalizer filters for the generalized LTF precoder are identical to those for the generalized TH precoder if the input sequence is not spectrally shaped.
As an example, an uncoded performance on test loop 5 from PN3857 R13 (an unloaded loop) is illustrated in Figure 4. Assuming a uniform constellation, the precoder output power was constrained to -12dBm. An anti-aliasing filter was used with 3dB of attenuation at 3700 Hz. The number of feedforward filter taps (symbol spaced) was set to 100 and the number of precoder taps to 40 (more than necessary) . It was assumed that the precoder output had an autocorrelation vector, rxx= [1.0 -.5] which
corresponds to the filtered output of a 1-D2 channel. Results shown assume that the data rate is equal to 8000 log2 (M) . No code was applied and Mx = M for all i. Additive noise was assumed Gaussian. The noise in dBrn is the total noise power minus 90dBm over a 3kHz band. Results are based on closed-form analysis.
Results show that spectral shaping does have the potential to increase data rates. Spectral shaping adds between 3 and 3.5dB of immunity to noise. From looking at data rates, this translates to between 3 and 3.5kbps. Depending on the spectral shaper used, there may be a code rate loss or power rate loss that would need to be taken into account.
Because many varying and different embodiments may be made within the scope of the inventive concept herein taught, and because many modifications may be made in the embodiments herein detailed in accordance with the descriptive requirements of the law, it is to be understood that the details herein are to be interpreted as illustrative and not in a limiting sense.