Pits. Lasers. Laser reads pits in media. Same as your $29 CD-ROM... 8-bit bytes, two together make a 16 bit word. Put two words together, you get one stereo sample. Repeat 44,100 times a second. Lather, rinse, repeat.

If you're taking out an analog signal, things get a bit different based on how good the resistor matching is... unless you have a 1-bit DAC (or delta-sigma modulator)... waitaminute... why is 1 bit better than 16 bit?

A 1-bit DAC oversamples each bit (just 0 or 1) in the byte a repeated number of times (think of it as having a few proofreaders) and either averages them or throws out stray values, whatever method the manufacturer uses for error correction... if it reads it 100 times and sees a 0 ninety-nine times and a 1 once - it calls it a 0.

An 8-bit DAC (use any bit depth here just change the math!) reads in a full-range value (in this case, 0-255) and uses resistors (other methods are available, of course - Ladder DACs, etc) to set a threshold (more than half = 0, less than half = 1) for each bit.
**edit** That should of course be... less than half = 0, more than half =1 **/edit**

Maybe the opposite is easier to understand - this is how an 8-bit ADC (analog to digital converter) works. Imagine the values 0-255 expressed in voltage between 0-1 volts. Imagine the "read" voltage is .643V :
128) first pass for the MSB (most significant bit) - it's above 0.5 v (half - our threshold) so set the bit as 1 (1xxxxxxx) and take the value of the bit (0.5) away from the number (leaving 0.143)
64) multiply by two (to get the next less significant base two value)... 0.286 is it more than half? No, set 0 (10xxxxxx), do not take away from the value.
32) multiply by two again - 0.572 - more than half? Yes. Set 1, take away the value of the bit. (101xxxxx) Value is now 0.072
16) 0.072 x 2 = 0.144. More than half? No. Make it 0. (1010xxxx)
8) 0.144 x 2 = 0.288. More than half? No. Make it 0. (10100xxx)
4) 0.288 x 2 = 0.576. More than half? Yes. Make it 1. (101001xx). Take away 0.5 (0.076 is new value)
2) 0.076 x 2 = 0.152. More than half? No. Make it 0. (1010010x)
1) 0.152 x 2 = 0.304. More than half? No. Make it 0. (10100100)

So that equates to a binary representation of the Base10 number 164. Now how close did we get? Divide by 255 (the range) and we get 0.6482 - only .005 volts off of the original value. Pretty darned good for 8 bits. Your CD player is 16 bits (which makes it 256 times "finer" in resolution)... gets you to within a few dozen nanovolts. Now I'm no cable Nazi, but I think even differences in relative humidity are going to make a bigger difference than even 50 nanovolts in a signal.

Bren R.

Last edited by BrenR; 04/12/05 05:48 AM.