If such ADC values are stored in a 16-bit signed integer PCM file by subtracting 32768 (to convert from unsigned integer to signed integer), then 32767 & 32768 become -1 & 0.
Should signal processing applications treat -1 & 0 in a signed integer PCM file as having the same magnitude? E.g., in C:
short pcm_value; // [-32768, +32767]
float amplitude;
...
amplitude = (pcm_value + 0.5) / 32768; // (-1, +1)
or perhaps
amplitude = (pcm_value + 0.5) / 32767.5; // Normalised to [-1, +1]
Obviously, this could apply similarly for other bit depths and is potentially more of an issue for 8 bit.
If this reasoning is correct, does it also apply to wav, aiff, etc., or are these specified such that the PCM range is asymmetric?
TIA,
bandpass
