If we truncate a number, that is to throw away the LSBs (least significant bits) we loose resolution.
A 4 bit number truncated to 2 bits: numbers shown in binary (Base2).
0100 0101 0110 0111
Would all become 01.
Effective dithering increase the accuracy beyond the LSB of the truncated values. Consider a small fractional value rounded to an integer. Starting with 0.5 with 1 bit random dither:
Input Dither Sum & truncate 00.1 0.1 01 00.1 0.0 00 00.1 0.1 01 00.1 0.0 00 Average over 4 samples is 0.5
If the value is below 0.5 this dither scheme will not work, as it would never round to a full integer.
So we increase the dither to 2 bits. Inputting a constant 0.25, Dither cycling through all possible values
Input Dither Sum & truncate 00.01 0.00 00 00.01 0.01 00 00.01 0.10 00 00.01 0.11 01 Average of 4 Samples 0.25
In the above example we have increased the resolution of the time averaged value by 2 bits.
For every doubling of the frequency we gain an effective LSB if dithered correctly.
Adding more bits than
log2(oversampling rate) of dithering will not gain accuracy.
Although it may help breakup tonal behaviour of a system.
Apply dither to the bits to be truncated. Apply enough bits of dither so it is possible for the LSB of the required resolution to effect the truncated value.
The increase in resolution is limited to