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格式.