Theory: what happens around zero level?

I have been thinking about this: in the 16-bit representation of the analog audio signal there are 65536 discrete levels, from 0 to 65535. Now, if the digital word that belongs to zero analog level (no signal) is shifted to the middle, that could be either at 32767 (7FFF hex) or at 32768 (8000 hex). But in either case, the span to the negative peak (0) and to the positive peak (65535, FFFF hex) is not symmetrical. There are either 32767 discrete levels in one direction and 32768 levels in the other direction (excluding the "zero" level), or vice versa. Or is the zero level set between 32767 and 32768, and does the inherent analog noise make it fluctuating between the two? I have no access to the Red Book, perhaps the binary word belonging to zero analog level is defined in it. Anybody has this information?
 

error401

Member
2007-03-24 7:54 am
Zero is...zero. 0x0000. Signed integers are represented using two's complement, they aren't just centred on the halfway point. You're right though, since the number of available values is (by definition) even you can't have zero without having an imbalance on either side.

Consider:

0 - 0x0000
32767 - 0x7fff
-32768 - 0x8000
1 - 0x0001
-1 - 0xffff

To perform the conversion to or from a negative value, invert all bits and then add one. For example, 3 is 0x0003. Inverted it becomes 0xfffc. Add one and you get 0xfffd, the binary representation of -3.

The reason for this is that it makes signed arithmetic identical to unsigned arithmetic. It also makes the MSB a sign bit - if that bit is set, the number is negative.
 

Mooly

Administrator
Paid Member
2007-09-15 8:14 am
I think I understand what oshifis is trying to say, we have 16bits, which equates to 65536 discrete voltage levels. If we define the max output voltage required say 2v (without going into rms and pk/pk values here) in the case of a typical CD player we get 2 divided by 65536 or steps of 0.00003051 volts. If we superimpose a 2 volt sine wave onto this scale where is the zero crossing point as a digital representation as in the analoge domain it is between samples. Where does dither come into this ? Isn't this introduced to help to linearize very small signals around "digital zero" where quantisation noise becomes significant.
Regards Karl
 

Mooly

Administrator
Paid Member
2007-09-15 8:14 am
Great link, very informative. About 20 years ago I attended a Sony technical course on C.D. both theory and repair, and we covered in great detail the Red Book Standard. I wish I still had all the notes. I will see if our local library will obtain a copy :)
Regards Karl
 
I think zero is the smallest positive integer, so it should not have the sign bit set. Now I understand that analog zero should correspond to 0000 hex.

It may be of interest that MSB comes into the picture for the positive number region (or in 2s complement in the negative region). Let's imagine the internal binary weighted current sources (after the input digital signal is converted to true binary from 2s complement). Now the range is 0000 to 7FFFF for negative numbers, and 8000 to FFFF for positive numbers. The sign bit happens to be the MSB, so any polarity change around zero is influenced by the error of the MSB. Unfortunately MSB has the largest error.