Let's say I have 16 bit fixed point DSP, and am performing a multiply accumulate operation in a loop-
What would be the correct way to check for saturation of the accumulated value? As far as I understand, replacing the exceeded value with the maximum value will create distortion.
How do I bring the accumulated result (within let's say a 40 bit accumulator) back to a 16 bit variable?