|
CSI-DSP
Version 1.0.0
CSI DSP Software Library
|
函数 | |
| void | csky_scale_f32 (float32_t *pSrc, float32_t scale, float32_t *pDst, uint32_t blockSize) |
| 浮点向量缩放. 更多... | |
| void | csky_scale_q15 (q15_t *pSrc, q15_t scaleFract, int8_t shift, q15_t *pDst, uint32_t blockSize) |
| Q15 向量缩放. 更多... | |
| void | csky_scale_q31 (q31_t *pSrc, q31_t scaleFract, int8_t shift, q31_t *pDst, uint32_t blockSize) |
| Q31 向量缩放. 更多... | |
| void | csky_scale_q7 (q7_t *pSrc, q7_t scaleFract, int8_t shift, q7_t *pDst, uint32_t blockSize) |
| Q7 向量缩放. 更多... | |
将向量乘以标量值.对浮点数据来说,算法如下:
pDst[n] = pSrc[n] * scale, 0 <= n < blockSize.
在定点函数 Q7, Q15 和 Q31 中, scale 表现为一个分数乘法scaleFract 和一个算术移位shift. 该偏移允许缩放操作的增益超过1.0:
pDst[n] = (pSrc[n] * scaleFract) << shift, 0 <= n < blockSize.
应用于定点数据的总比例因子是
scale = scaleFract * 2^shift.
这些函数可以在原值上做计算,也就是说,允许源和目的向量指针指向相同地址。
| [in] | *pSrc | 指向输入向量 |
| [in] | scale | 缩放比例 |
| [out] | *pDst | 指向输出向量 |
| [in] | blockSize | 向量中的元素数 |
| void csky_scale_q15 | ( | q15_t * | pSrc, |
| q15_t | scaleFract, | ||
| int8_t | shift, | ||
| q15_t * | pDst, | ||
| uint32_t | blockSize | ||
| ) |
| [in] | *pSrc | 指向输入向量 |
| [in] | scaleFract | 小数部分的比例值 |
| [in] | shift | 将结果移位的位数 |
| [out] | *pDst | 指向输出向量 |
| [in] | blockSize | 向量中的元素数 |
缩放和溢出时的行为:
*pSrc 和 scaleFract 是1.15格式. 相乘的中间结果是2.30格式,然后做饱和移位到1.15格式. | void csky_scale_q31 | ( | q31_t * | pSrc, |
| q31_t | scaleFract, | ||
| int8_t | shift, | ||
| q31_t * | pDst, | ||
| uint32_t | blockSize | ||
| ) |
| [in] | *pSrc | 指向输入向量 |
| [in] | scaleFract | 小数部分的比例值 |
| [in] | shift | 将结果移位的位数 |
| [out] | *pDst | 指向输出向量 |
| [in] | blockSize | 向量中的元素数 |
缩放和溢出时的行为:
*pSrc 和 scaleFract 是1.31格式. 相乘的中间结果是2.62格式,然后做饱和移位到1.31格式.