Title:        *DSL Reference
By:           James Bensley
Created:      07/12/2012
Last Updated: 05/01/2016
Corrections:    jwbensley <at> gmail <dot> com
    

ADSL1 Reference
ADSL1 Topology Models
ADSL1 Protocol Stack

References:



DSL Forum
Working with ITU, ETSI, ANSI, ATM Forum, IETF, UAWG and DAVIC (amongst others) to produce TRR (Technical References Recommendations).
As of 2008, it is now Broadband Forum.

Carrierless Amplitude and Phase (CAP)
CAP supports the concept of two traffic classes, A which is for non-latency sensitive traffic and class B for latency sensitive traffic. Class B can skip past features like FET onto the CAP encoding stage to reduce latency.
The EOC (Embedded Operations Channel) is an optional channel used for monitoring and troubleshooting between modems. Transmissions between modems is either in the data channel or EOC channel.

Data (or Embedded Operations Channel data) -> Framing (typically ATM) -> Reed-Solomon Encoder (optional in upstream) -> Interleaving (if enabled) -> Scrambler -> Trellis Encoder -> Channel Precoder -> CAP Transmitter - Analog Processing -> Line.

CAP defines a number of downstream and upstream baudrates (the number of symbols per second). These are used to derive the actual bandwidths based on the complexity of the constellation.

Downstream (kbaud +/- 25 ppm*)Upstream (kbaud +/- 25 ppm*)
136 kilobaud17 kilobaud
340 kilobaud34 kilobaud
680 kilobaud68 kilobaud
952 kilobaud85 kilobaud
1088 kilobaud136 kilobaud
* parts per million

These baudrates result in the following downstream and upstream frequencies:
Downstream (kbaud +/- 25 ppm*)  Upstream (kbaud +/- 25 ppm)  
Baud RateStart Freq (kHz)Stop Freq (kHz)Baud RateStart Freq (kHz)Stop Freq (kHz)
136240396.48535132.75
340240631.013635191.4
6802401022.0
9522401334.8
10882401491.2

Ginsburg, D (1999), Cisco Systems (1999).

Constellations
"The actual data rate is a function of the baudrate and the constellation size. The constellation is the number of encoded points per symbol and is no different than the encoding found within any dial-up modem. Constellations may vary in complexity from 8-256 symbols, reflecting increasingly dense data patterns, with the individual points relating to the amplitude of a sinewave (x axis) and cosine wave (y axis) as transmitted across the loop.

For example, an 8-point constellation (2 points in each quadrant) will be capable of encoding 2 bits per symbol (baud), while a 256-point constellation (the maximum currently implemented) will equate to 8 bits per symbol. Based on these values, a 1088 kbaud signal with a 256-point constellation yields the maximum CAP bit rate of 8704 kbps (1088 kbaud * 8 bits/symbol). By the same calculation, the maximum upstream rate is 136 kbaud at the same constellation size yielding 1088 kbps.
" - Ginsburg, D (1999).

Trellis Encoding or TCM (Trellis Coded Modulation) [convolution code]
Trellis encoding reducing the maximum bandwidth. It provides a method of increasing the resiliency of the transmitted signals to noise ration across the line ("Coding Gain"). Trellis encoding introduces an extra check on received data comparing the constellation point it is on is "legal". "Given a symbol encoded to one constellation point, the next symbol may only be encoded to one of a set of predefined values. If at the receiver, the point has drifted due to noise, it would then be matched to the one legal value out of a number of points in the area. This resilience is the reason why trellis is an option for the 256-point constellation within CAP - the large constellation increases the potential for error, which is reduced by the trellis encoding." - Ginsburg, D (1999).

Reed-Solomon Encoding
Data divided into message blocks u of size k, (u1,u2,...un)
Each message is encoded into n symbols, v (v1,v2,...vn) which is a code word
The ratio R=k/n is the code rate
Reed-Solomon is denoted as RS(n,k) with s-bit symbols where, s = symbol size in bits
Max codeword length n = 2s-1
Parity bytes (2t) = n-k
t = Max symbols that can contain errors

Example:
Using RS(255,223) with 8-bit symbols, each codeword contains 255 code word bytes, of which 223 bytes are data and 32 bytes are parity

s = 8
n = 28-1 = 255 (codeword size)
k = 223 (n - 32 parity bytes)
RS(255,223)
2t = 255-223 = 32
t = 16

Richardson, Riley, (1998).

Quadrature Amplitude Modulation (QAM)
QAM is another ANSI standard (1997) defined alongside CAP but didn't receive widespread adoption. DMT is the main encoding method now with CAP rarely encountered and QAM never. QAM supports two traffic types similar to CAPs Class A and Class B called Interleaved and Fast respectively. Interleaved passes through the FEC stages of coding (which is where scrambling happens). Fast traffic can skip this stage. QAM also has an EOC channel like CAP.
Ginsburg, D (1999).

Discrete Multitone (DMT)
ITU G.992.1 (also known as "G.dmt" or "g.DMT", colloquially as "ADSL" or "ADSL 1") is the ITU standard for DMT encoding. ANSI T1.413 was an ANSI DMT encoding standard popular in North America (which later became "ANSI T1.413 Issue 2") but now ITU's G.dmt is the defacto in North America and Europe. Like CAP, DMT uses Reed-Solomon code words and supports trellis coding and interleaving. Like CAP, DMT supports both Synchronous Transfer Mode (STM) and Asynchronous Transfer Mode (ATM), STM was the original standard but cell based ATM became main stream and is now the defacto. There is also an EOC channel like CAP and QAM in DMT. Also like CAP and QAM within DMT there is support for "Fast" traffic which provides low latency communication or "Interleaved" which provides lower error rate via Reed Solomon encoding.

Data -> ATM cell convergence -> Mux/Sync control -> CRC -> Scrambler -> FEC (Reed Solomon) -> Interleaver ("interleaved" only, skipped by "fast") -> Tone Ordering -> Constellation Encoder and Gain Scaling -> IDFT -> Output Parallel/Serial Buffer -> DAC and Analog Processing

The delay for interleaved traffic is a function of the Reed-Solomon codeword size and the interleave depth. The maximum delay in ms is 2+(S/4)+S*(D/4), where S is 1,2,4,8 or 16 (the number of DMT symbols per Reed-Solomon codeword) and D is 1,2,4,8,16,32 or 64 (an integer multiple of S which is the interleave depth).

DMT separates the ADSL signal into 255 carriers (bins) centred on multiples of 4.3125 kHz. DMT has 224 downstream frequency bins and up to 31 upstream bins. Bin 0 is at DC and is not used. When voice (POTS) is used on the same line, then bin 7 is the lowest bin used for ADSL. The centre frequency of bin N is (N x 4.3125) kHz. The spectrum of each bin overlaps that of its neighbours: it is not confined to a 4.3125 kHz wide channel. The orthogonality of COFDM makes this possible without interference.

Up to 15 bits per symbol can be encoded on each bin on a good quality line. DMT can modulate each bin at different bit densities up to a maximum of 15 bits/sec/Hz (60 kbps/4kHz tone) depending on the noise on the line within each bin. "Typically, a few bins around 31-32 are not used in order to prevent interference between upstream and downstream bins either side of 138 kHz. These unused bins constitute a guard band to be chosen by each DSLAM manufacturer - it is not defined by the G.992.1 specification". The DMT frequency layout for various standards are depicted further down.

"Coded orthogonal frequency-division multiplexing (COFDM) selects only bins which are usable on the line thus effectively obtaining the best overall bit rate from the line at any given moment in time. With COFDM, a combined signal containing many frequencies (for each bin) is transmitted down the line. Fast Fourier Transform (and the inverse iFFT) is used to convert the signal on the line into the individual bins".

"A type of quadrature amplitude modulation (QAM) or phase-shift keying (PSK) is used to encode the bits within each bin. The quality of the line (how well it performs) at the frequency of the bin in question determines how many bits can be encoded within that bin. As with all transmission lines, it depends on the attenuation and signal-to-noise ratio. SNR may differ for each bin and this plays an important factor for deciding how many bits can be encoded reliably on it".

Ginsburg, D (1999). Kitz, (?). ITU-U, (1999). Wikipedia/Community, (2014).

ITU G.922.1 (G.DMT) - ADSL

Frequency Overview (with POTS):
Each sub-carrier is centered on the frequency N*4.3125Khz

Sub-Carrier
     0 POTS      End of POTS    Gaurd Band Start    Gaurd Band End     Upstream Start    Upstream Pilot    Upstream End    Downstream Start    Downstream Pilot     Downstream End    Nyquist Frequency
     |----------------1-----------------2------------------5------------------6----------------16----------------32----------------33-----------------64------------------255-----------------256---|  
     |--------------4.3125------------8.625-------------21.5625------------25.875--------------69---------------138-------------142.3125--------------276---------------1099.6875------------1104---|  
     0
   kHz

Wire Encoding
"Assume simple Amplitude modulation => when you want to send digital information over a line you can transmit a bit over the line represented by a certain voltage level, for example +3v to represent a logical 1 and -3V to represent a logical 0. When representing 1bit by a certain voltage level the symbol rate = the bit rate".

This diagram shows a 1 bit per symbol encoding method. The bit rate is the symbol rate.

                                                                      
Amplitude (V)                                                         
     ^                                                                
     |                                                                
     |    +-------------+             +---------------------------|   
     |    |             |             |                               
     |    |             |             |                               
     |    +-------------------------------------------------------+   
     |    |             |             |                               
     |    |             |             |                               
          +             |-------------+                               
                                                                      
           <----------->                    Transmitted: 1011         
           Symbol Period                                              
               (Ts)                                                   
                                     Symbol rate = symbols per second 
                                     (1/Ts) in baud                   
                                                                      
                                     Bit rate = bits per second in bps
  

"When adding more voltage levels you can actually specify more bits per symbol, for example +3V represents the logical bit-sequence 11, +1V represents logical 10, -1V represents logical 01 and -3V represents the logical bit-sequence 00. Here you have actually put 2 bits in a symbol and that way doubled the bitrate. On the other hand the symbol rate in baud has remained the same".
Amplitude (V)                                                         
     ^                                                                
     |                                                                
     |    +             +-------------+                               
     |    |-------------+             |                               
     |    |                           |                               
     |    +-------------------------------------------------------+   
     |    |                           |                               
     |    |                           |             |-------------+   
     +    +                           |-------------+                 
                                                                      
           <----------->                    Transmitted: 10110001     
           Symbol Period                                              
               (Ts)                                                   
                                     Symbol rate = symbols per second 
                                     (1/Ts) in baud                   
                                                                      
                                     Bit rate = bits per second in bps
  

Bps = Symbols per sec * Bits per symbol (More bits per symbol means greater throughput [unless the symbol rate is increased]).
Symbol Period (Amplitude modulation duration) = Ts (Can not be quicker than the duration of the lowest frequency of symbol transmission)
Symbol rate = symbols per second (1/Ts) in baud

Nyquist bandwidth Constraint:
For a given bandwidth (W in Hz), the maximum amount of symbols/second (Rs in baud) is limited in order to avoid Inter Symbol Interference (ISI). Each symbol corresponds to a number of bits and you need to be able to distinguish one symbol from another.

Shannon-Hartley Capacity Theroem:
Capacity [bps] == 1/3*W*SNR*G
W = bandwidth in Hz
SNR = Signal to Noise Ration in dB
G = Gainfactor achieved by error correction.

Impulse Noise Protection (INP)
"INP uses Reed-Soloman coding to apply Forward Error Correction. By adding 'polynomial checksums' to the transmitted data, errors
can be corrected automatically by the receiving device.
Most ISPs in the UK use an INP setting of 0, 0.5 or 1 (FEC codewords per symbols).
ITU-T standard G.992.5 (ADSL2+) limits the maximum achievable bitrate with INP=2 and maximum permitted delay of 16ms (latency) to 7.5 Mb/s.
These values are all directly proportional.
Newer DSLAMs for example implement a newer optional (i.e. non-mandatory) extension to G.992.5 allowing the ISP to reduce the number of
DMT symbols (mux frames) per RS FEC codeword (down as far as 1/16) and increase the interleaving (interleaving depth values can be set from 64-511).
When this extension is implemented, the INP value can be increased so the gross bitrate (measured before overhead) can be increased.
In lay terms, this leads to an increased connection speed reported by your CPE (modem) using the higher INP setting.

There is a performance/resilience balance to be considered when using INP. i.e. there exists a trade off between Impulse Noise Protection,
coding gain and data latency, so INP, and particularly higher settings of INP should be used only where the benefits are considered
greater than the effect on other areas of performance.
On 'good' lines, or those which rarely suffer from Impulse Noise, the use of INP would have a net detrimental effect on performance.
i.e. Increasing the INP setting increases latency. The maximum bitrate of standard ADSL2+ is 24Mb/s, but that is only achievable without INP.
You cannot use INP without affecting performance, even if the Broadcom extensions are used and the higher you set your INP value,
the greater the effect. Interleaving without INP can also be used to reduce the effects of impluse noise, but also reduces net performance.
Interleaving also adds some latency (estimated 20ms)
" (That seems high to me, 20ms!) - DrayTek, (2012).