"Scaling is applied because internal computations are generally performed with a higher precision than the data types used for input and output signals."
Is there somewhere that documents, or is someone able to tell me, what the internal precision of integer operations is? I presume that it may vary with architecture, and possibly with the function called?
Specifically I am interested in the precision of 16 bit integer versions of the FIR_Direct function: ippsFIR32sc_Direct_16sc_Sfs or ippsFIR32fc_Direct_16sc_Sfs. Especially the effective precision of the multiply accumulate stage, in the caclulation of each output sample value.
you are right, implementation can vary for functions and platforms. There is comment from our expert:
For these particular functions calculations are performed in 32s accumulator (32sc_16sc) and 32f accumulator (32fc_16sc). BUT: these functions (with direct suffix) are not optimized it is better to use (from the performance point of view) FIR functions with the state structure. For them precision is the same, but they are significantly faster.