I don't want to go into too much detail so we have to assume the way a dialup modem works is a black box. It just connects, trains on the line and selects the best speed. Not going in to the details of how it trains etc.
POTS - plain old telephone system
The telephone works over copper and runs in the lower frequencies of your telephone line. 0 - 4KHz in fact.
Dial up modems
When a modem is connected to the line it talks over that 0-4Khz frequency range and determines the best available speed 19.2Kbps 56Kbps (yeah right).
More Speed
If you wanted more speed you could run two dial up modems, over two phone lines, in parallel, and share the bandwidth.
Frequencies
A traditional copper line is capable of supporting a much wider frequency range than the 0-4KHz originally envisioned. In fact it can support up to 2.2Mhz.
So in effect voice is using just 0-4KHz and the 4KHz to 2200Khz band is unused.
Attenuation
The higher the frequency the less distance it can travel. For an example of this think about approaching a party. As you enter the street you hear BOOM BOOM BOOM of the bass (low frequency sounds) as you get closer the mid range and high frequency ranges reach your ears until you can hear all the music and vocals and even the high hat cymbals.
The concept behind ADSL
Someone realised that instead of having two phone lines running two modems you could actually run two modems on one phone line if the modems were geared to different frequencies. eg modem 1: 0-4KHz range and modem 2: 4 - 8KHz range. All you need to do is modify the modems to respond to a different frequency range.
ADSL takes this one step, one large step, further by running hundreds of parallel modems in different 4Khz wide frequency ranges.
Frequency Allocation
Because you can get the "modems" to run in their own frequency range you can ask none of them to run in the bottom 0-4Khz range and this means you can actually run voice on the same line as hundreds of modems.
Actually there is cross talk between the frequencies so whilst voice runs in the bottom 4KHz there is a unused zone (guard band) between 4KHz and approx 26KHz. From 26KHz on the virtual modems are created for each 4KHz chunk.
The ADSL frequency allocation
Where do microfilters fit in ?
A microfilters splits the bottom range out to the telephone line and passes the high range out to the modem. This stops the ADSL whine appearing on your voice calls. This is why they are sometimes referred to as splitters.
Because the split is not accurate its usually taken midway through the guard band with say the bottom 8KHz being allocated to voice, the rest to ADSL.
If you have a bad filter then it can split in the wrong place and leave voice on the ADSL or the other way round.
ADSL, ADSL2, ADSL2+
ADSL2+ can run 512 modems in parallel in the frequency range if each modem takes 4KHz. ADSL and ADSL2 run at half the frequency allocation, up to 1100Khz and only support 256 "modems".
Differing Speeds
When ADSL starts each of the modems tries to connect. In the same way as a dial up modem find differing line quality the modems 4Khz channel will have different characteristics that affect its max speed.
As the frequency increases the attenuation comes into play and each modem will find it harder to connect at the maximum rate, having to opt for a slower rate instead, and eventually the top frequency modems will be unable to connect at all.
Once the synchronisation has finished you will have you maximum connect speed which is made up of all the individual modem speeds added together.
From now on I will refer to these virtual modems as "TONES".
BIts Per Tone
Each tone can carry a number of "bits". In ADSL this is from 2 to 15 (or 0 if not used). ADSL2 and ADSL2+ support single bit tones.
Upstream and Downstream
in ADSL the upstread speed is usually significantly lower than the downstream portion. In order to achieve this a smaller number of tones are required to satisfy the upstream capacity.
In order to make sure you get upstream the upstream takes the lower tones and then the downstream is allocated the rest giving it the lions share.
SNR
The signal to noise ratio margin is the amount of the modem signal that is present above the background noise. Higher is better.
The more SNR you get the more data can be sent in an individual tone (ie the faster that virtual modem connects). As a rule of thumb every single BIT takes 3dB of SNR per tone.
The SNR you see displayed on a real ADSL modems status page is the average of all the SNR's for each tone the modem is using.
On a good modem it is possible to see the SNR of all the Tones in use and also the "speed", ie how many bits is can send per tone.
Ths is an example of a line showing the speed per tone (number of bits) and the SNR per tone. SNR scale is on the left, Bits scale is on the right.
External Noise
As ADSL operates in the same bands as MW and LW on your radio it is more sensitive to electrical interference (impulse noise). Anyone remember the days of MW radio when your car radio whined with the speed of the engine if it was not properly suppressed ?
One thing you may find is that if you have a MW station that is strong in your area the Tone at that frequency may be unused as it is impossible to get a "connection" over the noise of the radio station
Other Factors Not Covered
When the ADSL modem connects its given a set of parameters by the exchange which it has to adhere to. These will things like be a target SNR for upstream and downstream and a maximum sync rate.
When the modem is selecting tones it may lower the "speed" of the tones to give it more stability if it does not need all the speed it could achieve.
There can be more exotic flavours of ADSL that allow the rate to be adapted during runtime.
ADSL can be configured to "bit swap" this is slowing down one Tone and speeding up another and moving the capacity across. This allows a line to cope with differing conditions.