In the field of signal processing, the gain is divided into digital gain and analog gain, the digital gain is used to manipulate discrete digitized sampled values, and analog gain directly operates on a continuous analog signal waveform. For most high-end stereos today, the volume is adjusted using analog gain, because there are some limitations to digital gain.
The number 30, 003 is expressed in the 16bit DAC:
0111010100110011 = 30,003
For digital gain, lowering the volume is a direct reduction of this number: for example, lowering the -10db,
If 20log (x) =-10, then the x=0.3162, then the lower 10db is the original volume value multiplied by 0.3162.
So, the result is 30003*0.3162=9488.
0010010100010000 = 9,488
But.. Notice that this is not really the case?
30,003 * 0.3162 = 9487.7817
The error caused by rounding, though small, does exist.
If we want to reduce the volume more drastically, like -35db, then
-35DB is 0.0177828, which results in the final result:
0000001000010110 = 534
But actually the exact result is
30,003 * 0.3162 = 533.5372
This error is 866PPM (parts per million), slightly larger.
So, this kind of error, looks inconspicuous, but the lower the volume, the more difficult to ignore.
It is concluded that the digital gain cannot process the score and the accuracy error is generated.
So, how to deal with this problem?
If we use a 32-bit fixed-point decimal to represent a 16-bit sample, the 30,003 is represented in the three-bit DAC:
0111010100110011.0000000000000000 = 30,003
When -35db Volume:
-35db is 0.0177828, so the result is:
0000001000010110.1000100110000100 =533.5372
Therefore, widening the processing path can be very effective to reduce the loss of precision.
At present, many audio processing fields use 32-bit float sampling to signal processing, in fact the principle is the same.
Limitations of digital gain in signal processing