Chapter 2. Review of Transmission Fundamentals for DSLs
3. At a detailed level, maintenance channels such as AOC and EOC are kept partially operational
3.3.5 Loading with Codes
Reference [1] reports on several loading algorithms, including the basic greedy concepts suggested by Hughes-Hartog and developed by Campello. Levin and colleagues [10]–[13] have extensively studied this area and deserve perhaps equal or greater credit for the methods previously known as Campello algorithms, and henceforth now called "Levin-Campello" or just LC.
Energy Functions and Table
Although reference [1] simplified the explanation of loading algorithms using the "gap"
approximation, both Levin and Campello independently noted that the gap is not exactly constant and that with integer numbers of bits per tone as a restriction, this constant-gap presumption can unduly reduce performance (in a worst-case situation by a dB of margin). The solution is to construct a table of next energies to transmit the next bit (for 0 bits to 15 bits) for each and every tone. This incremental energy table essentially scales with the inverse of the subchannel SNR
(where |Hn|2is the measured channel gain and is the measured noise variance for tone n). Thus, the receiver needs only to store one table with sixteen entries (the last is "infinity" [large] as more than 15 bits is not allowed) and then scale for each tone. In some cases when a PSD constraint may be violated, a separate sixteen-entry table need be kept for each tone, or at least the maximum
number of bits possible on that tone needs to be stored. The concept can be viewed as in Figure 3.15.
Basically, the LC algorithms search the tone tables for the tone and associated index nnext at which increasing the constellation size by one bit incurs least energy cost and also for the tone and
associated index nlast at which decreasing the constellation by one bit saves the most energy. This concept is equivalent to the incremental energy concept used in [1], which simplified expressions using the gap approximation (and that simplification need not occur and causes performance loss).
Figure 3.15. Bit-swapping table illustration. Light arrows indicate position to which energy for adding a bit to constellation on current tone is listed; heavy arrows indicate the positions of least cost and most saved energy over
all tones.
A certain number of bits, including any parity or overhead bits, needs to be transmitted. The LC algorithm simply allocates each successive bit (up to the total) to the place of least incremental energy. Swapping is executed in the algorithm whenever the amount of energy to be saved on tone nlast exceeds the amount of energy to be added on tone nnext by a threshold amount. The threshold is set sufficiently high to prevent continuous swapping unnecessarily and may be on the order of 1 dB (a 1 dB savings on one tone does not correspond to a 1 dB overall savings, and indeed is far less overall with many tones used in DMT). In older ADSL standards, 1-bit constellations were not allowed, but that restriction has now been removed so that swapping is simplified and the algorithm here applies directly. When swapping must occur with a 2-bit minimum, Levin has created and patented a series of exception procedures that address most of the contingencies in [11].
Two-dimensional trellis coding (which is not used in ADSL) or two-dimensional turbo or LDPC codes (which may be used in future ADSL) require only a simple modification of the energy table if parity and puncturing are well defined.
Four-Dimensional Trellis Coding Redundant Bits
When four-dimensional trellis coding is used with a system such as in Figure 3.15, the number of extra or redundant bits varies with the number of tones. Basically, there is one redundant bit for every two tones. When the number of tones is odd, one of the tones is paired with a tone carrying zero bits to create the appearance of an even number of tones. The total number of bits, including the trellis-code extra redundancy bits, is loaded on the tones as if the system were not coded. For
encoding and decoding purposes, each successive pair of tones is presumed then to have exactly one redundant trellis coding bit with respect to the input of the encoder and the output of the decoder for that pair of tones.
When bits are moved into previously unused tones by the LC algorithm, or all bits have been removed from previously used tones by the LC algorithm, the number of used tones can vary. Thus, the number of redundant bits can vary. Levin's modification of the LC procedure in this case is to retain a counter for N* the number of "used" tones (i.e., the number of tones carrying 1–15 bits of information). When N* is even and increases to the next higher odd number, the LC algorithm adds one extra bit at tone nnext. When N* is odd and decreases to the next lower even number, the LC algorithm deletes one extra bit at tone nlast. Thus, AOC swapping commands may carry two added bits and one deleted bit, or possibly one added bit and two deleted bits when trellis coding is used,
but the actual data rate remains constant.
Gain-Swapping or Gain Adjustment
Variation of gain on a tone in ADSL is allowed up to an increase of 2.5 dB and any level of decrease (with zero gain meaning the tone is not used). Gain swapping can be used to move energy from one tone that may have an optimal solution to exceed a power spectral density mask to another that would not, or just to improve performance slightly. The gains are multiplicative factors that are applied to each tone in the ADSL DMT transmitter, and thus essentially can be viewed as part of the channel and absorbed into the table for the LC algorithm. Essentially, when the transmitted energy on a tone will exceed the maximum allowed by a PSD, that tone has extra energy. That energy can be reallocated to a tone that would not exceed the mask. The table for LC is appropriately scaled so that nnext will be forced to occur on tones that have will not exceed the maximum power spectral density.
Generally PSD masks in ADSL are not a good idea even though imposed by most transmission standards, including ADSL. They are imposed under the assumption that limiting the mask level will limit crosstalk. However, they may limit total power transmitted on a long loop at low frequencies below the 20 dBm limit, which reduces range substantially. A higher PSD at such lower frequencies will not cause damage to other services statistically because the crosstalk coupling is relatively low and ADSL modems will actually bit swap away from one another automatically to a globally better use of spectra between the modems. Although this still works with the PSD limit, it works better without it. Additionally, actual crosstalk coupling functions are highly variable so the likelihood of a problem occurring as opposed to just letting the modems find a better mutual optimum is actually favorable to the modems by a large margin. Imposition of spectrum masks (like –40 dBm/Hz in ADSL) in standards does allow for some level of variation, like 3 dB, which helps a bit. Nonetheless, engineers have for the longest time argued about and felt the need to impose spectral masks as perhaps a learned legacy of questionable need and habit than of technical necessity. More advanced systems such as those in Chapter 10 will further mitigate the need for spectral masks.
A classic use of gain adjustment is the situation where the channel SNR characteristic is fairly smooth when ordered. As the LC algorithm progresses, there is usually a jump in transmitted energy from the last tone, using bits to the first tone allocated bn + 1 bits. This produces a saw tooth
character to the transmitted energy characteristic. Because the transmitter accepts during
initialization a recommendation from the receiver to adjust its transmit energy levels according to the gain factors gn, these factors may need to be adjusted when swaps occur so that the correct amount of transmit energy is maintained on each subchannel. For instance, if the LC algorithm suggests that a bit be moved from nlast to, nnext then there is a corresponding transmit energy adjustment on each tone, which is
and
and thus the gain adjustments are then
and
For more details on loading and swapping, see [21].
Forward Error Correction Redundancy Percentage
Early work [18] on forward-error correction overhead with RS codes for ADSL suggested a rough 4 percent for 5–8 Mbps transmission, 6 percent for 2.5–5 Mbps, and 8 percent for less than 2.5 Mbps.
These simulations were conducted for a few lines. FEC percentages are restricted to use even numbers of parity bytes and so these numbers can only be approximated in practice. Furthermore, the exact best level of FEC to use on any line depends on the line, the noise, any impulse noise, and finally the delay requirement. Thus, many have noted that the above rule of thumb can reduce performance in situations different from what were initially derived.
Ideally, the designer knows in advance exactly how many parity bytes (see [1]) will be added in the RS code in ADSL beforehand, perhaps based on impulse-noise/delay constraints. The total number of bits, data plus parity for RS, are then loaded (with or without trellis coding according to the LC above) to the tones. The energy tables for incremental addition of a bit on any tone could be reduced by the presumed gain of the code. This presumed gain of the code would take into account the redundancy. However, the problem is that the amount of coding gain is not constant because greater redundancy increases the gain at the expense of data rate, so there is a trade-off. Thus, as Levin notes [13], it is possible to compute a "gross coding gain" for any FEC system, which is simply the amount of coding gain (as determined by graphing probability of error with and without coding at the same clock rate) without regard to the data rate loss. This number is relatively fixed for any given block length and number of parity bits at probability of error 10-7, which is the standardized design point in ADSL. Levin provides the following useful table of such coding gain:
Gross Coding Gain at 1e-7 probability of error for GF(256) RS codes (hard decoding) – in dB
Block/Parity 2 4 6 8 10 12 14 16
20 2.76 4.54 5.85 6.88 7.73 8.46 9.09 9.65
40 2.62 4.35 5.64 6.65 7.49 8.21 8.83 9.38
70 2.51 4.20 5.46 6.47 7.30 8.01 8.63 9.18
110 2.42 4.08 5.32 6.32 7.14 7.85 8.46 9.01
180 2.32 3.94 5.17 6.15 6.97 7.67 8.28 8.82
255 2.25 3.84 5.05 6.03 6.84 7.54 8.15 8.69
Each entry in the other table of incremental energies used in the LC algorithm can be scaled down by the amount in this table corresponding to the code parameters (block length 20, 40, ..., 255) and parity (2, 4, ..., 16). The LC algorithm is then performed for each possible combination of block and parity, and the system with the highest margin (or highest data rate for rate adaptive) over the RS code-parameter choices can be maintained. Interleave depth for impulse noise protection may then be determined. If impulsive noise is present, other factors may enter the choice of code parameters outside of the loading algorithm described here. The gain can be 1 dB with respect to using the above rule of thumb.
Top
3.4 RF Issues
Radio frequency issues were discussed in [1]. However, some new information has emerged with respect to AM radio egress that merits further comment for ADSL. This section also addresses some issues not fully appreciated with early ADSL.