Take the 2-minute tour ×
Signal Processing Stack Exchange is a question and answer site for practitioners of the art and science of signal, image and video processing. It's 100% free, no registration required.

I'm trying to figure out what the Signal to Quantized Noise Ratio (SQNR) is if I multiply 2 16-bit signed integer values and store the result as a 16-bit signed integer, dropping the least significant bits. Since this is signed multiplication, I'm dropping 15 bits of precision.

For example:

a (16 bit signed) * b (16 bit signed) = c (16 bit signed) without the LSBs.

And to be more clear about what's after this, I am summing many successive values of the resulting 'c' - this sum is stored in an infinite length signed integer representation.

How do I calculate the SQNR in this situation?

share|improve this question
1  
You also need to provide the power of your signals in order to determine the ratio. –  Juancho Dec 1 '12 at 11:19
    
@Juancho do you mean that the power of the signal is the maximum? In my case, the maximum is full range of the 16 bit signed integer. I don't know how these values plug in to en.wikipedia.org/wiki/Signal-to-quantization-noise_ratio the equations though.. –  Nektarios Dec 1 '12 at 20:38
    
@JasonR Why did you delete your answer? –  Mohammad Dec 6 '12 at 18:14

1 Answer 1

When you multiply the two 16 bit numbers you get the "true" 32 bit number and then you truncate to get a 16 bit number. The noise that is introduced when you truncate is a random value from $0$ to $2^{16}-1$ ($65535$), which averages out to $32767.5$ and has an average power (average of the square) of $1.43E9$. If you were rounding instead of truncating it would be a random value from $-(2^{15})$ to $2^{15}-1$, which averages out to approximately $0$ (no bias), and has an average power of $3.58E8$. That's why it's better to round than truncate, but that's a story for another day.

The truncation noise, therefore, is $1.43E9$. You get the signal power by multiplying your truncated data by $2^{16}$ (to make the 16 bit values into 32 bit values), squaring them, and then calculating the mean. You then calculate the SQNR by dividing the signal power by the truncation noise, $1.43E9$.

share|improve this answer
    
Maybe it should be noted, that this only holds for uniformly distributed signals. –  Deve Dec 6 '12 at 10:23
    
@Deve From a theoretical standpoint yes, from a practical standpoint no. The averaging of the data takes care of the signal power, and the quantization noise is highly unlikely to be affected by the signal distribution, unless the signal is tiny. –  Jim Clay Dec 6 '12 at 15:05
    
I agree, it's a good approximation. –  Deve Dec 7 '12 at 9:18

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.