CSI-DSP  Version 1.0.0
CSI DSP Software Library
函数
向量移位

函数

void csky_shift_q15 (q15_t *pSrc, int8_t shiftBits, q15_t *pDst, uint32_t blockSize)
 Q15向量的所有元素移位指定位数. 更多...
 
void csky_shift_q31 (q31_t *pSrc, int8_t shiftBits, q31_t *pDst, uint32_t blockSize)
 Q31向量的所有元素移位指定位数. 更多...
 
void csky_shift_q7 (q7_t *pSrc, int8_t shiftBits, q7_t *pDst, uint32_t blockSize)
 Q7向量的所有元素移位指定位数. 更多...
 

简要说明

将定点向量的元素移位指定的位数. 为浮点,Q7,Q15,Q31每种类型都提供了不同的函数. 使用的算法如下:

    pDst[n] = pSrc[n] << shift,   0 <= n < blockSize.

如果 shift 是正数,则向量的元素向左移位. 如果 shift 是负数,则向量的元素向右移位.

这些函数可以在原值上做计算,也就是说,允许源和目的向量指针指向相同地址.

函数说明

void csky_shift_q15 ( q15_t pSrc,
int8_t  shiftBits,
q15_t pDst,
uint32_t  blockSize 
)
参数
[in]*pSrc指向输入向量
[in]shiftBits移位的数量. 正数是左移,负数是右移.
[out]*pDst指向输出向量
[in]blockSize向量中元素的数量
返回
none.

缩放和溢出时的行为:

函数使用饱和算法. 结果超出Q15的最大范围[0x8000 0x7FFF] 时会被饱和处理.
void csky_shift_q31 ( q31_t pSrc,
int8_t  shiftBits,
q31_t pDst,
uint32_t  blockSize 
)
参数
[in]*pSrc指向输入向量
[in]shiftBits移位的数量.正数是左移,负数是右移.
[out]*pDst指向输出向量
[in]blockSize向量中元素的数量
返回
none.

缩放和溢出时的行为:

函数使用饱和算法. 结果超出Q31的最大范围[0x80000000 0x7FFFFFFF] 时会被饱和处理.
void csky_shift_q7 ( q7_t pSrc,
int8_t  shiftBits,
q7_t pDst,
uint32_t  blockSize 
)
参数
[in]*pSrc指向输入向量
[in]shiftBits移位的数量.正数是左移,负数是右移
[out]*pDst指向输出向量
[in]blockSize向量中元素的数量
返回
none.
最佳性能的条件
输入和输出buffer都是32位对齐

缩放和溢出时的行为:

函数使用饱和算法. 结果超出Q7的最大范围[0x80 0x7F] 时会被饱和处理.