int max(int a,int b)
{
return a>b ? a:b;
}
int min(int a, int b)
{
return a<b ? a:b;
}
void conv(double *Ptr_Src1,double *Ptr_Src2, int Src1Lenth, int Src2Lenth, double *Ptr_Target)
{
double temp = 0;
int i = 0;
int j = 0;
int k = 0;
int ALL_Length;
ALL_Length = Src1Lenth + Src2Lenth - 1;
///================卷积核心算法部分==============
for(i=0; i<ALL_Length; i++)
{
Ptr_Target[i] = 0;
}
for(i=0; i<ALL_Length; i++)
{
for(j=max(0, i+1-Src2Lenth); j<=min(i, Src1Lenth-1); j++)
{
Ptr_Target[i] += Ptr_Src1[j] * Ptr_Src2[i-j];
}
//printf("Ptr_Target[%d] =%f\n",i,Ptr_Target[i]);
//getchar();
}
}
1.Ptr_Src1 与 Ptr_Src2 两个数组(离散型数据)做卷积 2.Src1Lenth和Src2Lenth分别对应两个数组的大小3.Ptr_Target卷积输出后的结果matlab的函数conv()的C语言实现
最新推荐文章于 2022-09-08 09:55:56 发布