整数缩放
由于一些信号处理函数在进行内部计算时提高了数据精度,在调用这些函数时会附加一个缩放因子作为函数参数,被调用函数使用整数缩放因子对内部计算的结果进行缩放。缩放因子必须为2^n,且不能等于正无穷,不能为nan,这些信号处理函数的函数名带有S描述符。
带缩放因子的函数在函数返回之前,将输出向量乘以scale来实现对计算结果的精度调整,这种操作有助于保留输出数据的范围或精度。
例如,对16位有符号整数300进行乘方运算时,由于运算结果溢出,实际能存储的结果为32767而不是90000。当缩放因子scale被设为0.25(即2-2)时,存储的计算结果为22500,没有溢出,并且实际的计算结果可以通过22500*4来复原。
对于需要部分保留精度的情况,例如整数3的开方运算,HMPPS_Sqrt函数会调用库函数sqrt进行计算。在不传递scale的情况下,程序输出结果是2而不是1.732;假如给程序传递缩放参数8(即23),程序会对计算结果缩放并输出结果14,程序调用者可使用输出结果14和缩放参数0.125(即2-3)经计算得到更精确的结果:14*2-3=1.75。
父主题: HMPP函数库结构