ConvBiased
计算src1向量(长度为src1Len)和src2向量(长度为src2Len)的线性卷积,以bias作为左偏移量指定src2开始的元素,计算得到的序列dst也以bias作为左偏量进行移动,空位补0。计算公式如下:
,
设src2原数组为x,x的长度为xLen。
,
函数接口声明如下:
主函数:
HmppResult HMPPS_ConvBiased_32f (const float* src1, int32_t src1Len, const float* src2, int32_t src2Len, float* dst, int32_t dstLen, int32_t bias);
参数
参数名 |
描述 |
取值范围 |
输入/输出 |
---|---|---|---|
src1 |
指向第一个源向量的指针。 |
非空 |
输入 |
src1Len |
第一个源向量长度。 |
(0, INT_MAX] |
输入 |
scr2 |
指向第二个源向量的指针。 |
非空 |
输入 |
src2Len |
第二个源向量长度。 |
(0, INT_MAX] |
输入 |
dst |
指向目标向量的指针。 |
非空 |
输出 |
dstLen |
目标向量长度。 |
(0, INT_MAX] |
输入 |
bias |
指定卷积起始元素的参数。 |
[INT_MIN, INT_MAX] |
输入 |
返回值
- 成功:返回HMPP_STS_NO_ERR。
- 失败:返回错误码。
错误码
错误码 |
描述 |
---|---|
HMPP_STS_NO_ERR |
表示没有错误。 |
HMPP_STS_NULL_PTR_ERR |
当任何指定的指针为空时指示错误。 |
HMPP_STS_SIZE_ERR |
当srcLen或dstLen小于或等于0时指示错误。 |
注意
src1、src2不能和dst是同一数组,否则结果正确性无法保证。
示例
void Hilbert_Example() { const int src1Len = 5; const int src2Len = 4; const int dstLen = 10; const int bias = 1; float src1[src1Len] = {2.1, -1.5, 3.5, 4.2, 1.7}; float src2[src2Len] = {0.6, 1.3, -1.7, 2.1}; float dst[dstLen]; HMPPS_ConvBiased_32f(src1, src1Len, src2, src2Len, dst, dstLen, bias); for (int i = 0; i < dstLen; ++i) { printf("%.2f ", dst[i]); } }
运行结果:
1.26 1.83 -3.42 9.62 0.529999 -4.93 -2.89 0 0 0
父主题: 基础与通用运算