CSI-DSP  Version 1.0.0
CSI DSP Software Library
函数
复数与实数相乘

函数

void csky_cmplx_mult_real_f32 (float32_t *pSrcCmplx, float32_t *pSrcReal, float32_t *pCmplxDst, uint32_t numSamples)
 浮点的复数和实数相乘 更多...
 
void csky_cmplx_mult_real_q15 (q15_t *pSrcCmplx, q15_t *pSrcReal, q15_t *pCmplxDst, uint32_t numSamples)
 Q15 复数和实数相乘 更多...
 
void csky_cmplx_mult_real_q31 (q31_t *pSrcCmplx, q31_t *pSrcReal, q31_t *pCmplxDst, uint32_t numSamples)
 Q31 复数和实数相乘 更多...
 

简要说明

将一个复数向量与一个实数向量相乘,并生成一个复数向量. 复数向量数据是交错方式保存的 (real, imag, real, imag, ...). 参数numSamples 表示处理的复数元素数量。 复数向量总共有 2*numSamples 个值, 实数向量总共有 numSamples 个值。

使用的算法如下:

for(n=0; n<numSamples; n++) {
    pCmplxDst[(2*n)+0] = pSrcCmplx[(2*n)+0] * pSrcReal[n];
    pCmplxDst[(2*n)+1] = pSrcCmplx[(2*n)+1] * pSrcReal[n];
}

为浮点,Q15和Q31三种类型都提供了不同的函数.

函数说明

void csky_cmplx_mult_real_f32 ( float32_t pSrcCmplx,
float32_t pSrcReal,
float32_t pCmplxDst,
uint32_t  numSamples 
)
参数
[in]*pSrcCmplx指向输入的复数向量
[in]*pSrcReal指向输入的实数向量
[out]*pCmplxDst指向输出的复数向量
[in]numSamples向量中的元素数量
返回
none.
void csky_cmplx_mult_real_q15 ( q15_t pSrcCmplx,
q15_t pSrcReal,
q15_t pCmplxDst,
uint32_t  numSamples 
)
参数
[in]*pSrcCmplx指向输入的复数向量
[in]*pSrcReal指向输入的实数向量
[out]*pCmplxDst指向输出的复数向量
[in]numSamples向量中的元素数量
返回
none.

缩放和溢出时的行为:

函数使用饱和算法. 结果超出Q15的最大范围[0x8000 0x7FFF] 时会被饱和处理.
void csky_cmplx_mult_real_q31 ( q31_t pSrcCmplx,
q31_t pSrcReal,
q31_t pCmplxDst,
uint32_t  numSamples 
)
参数
[in]*pSrcCmplx指向输入的复数向量
[in]*pSrcReal指向输入的实数向量
[out]*pCmplxDst指向输出的复数向量
[in]numSamples向量中的元素数量
返回
none.

缩放和溢出时的行为:

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