卷积算法代码 C语言

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

//说明运行环境Visual C++ 6.0
#include"stdio.h"
int table_a[6]={1,2,3,4,5,6};//原数组A-给定
int table_b[6]={6,2,3,6,4,2};//原数组B-给定

void My_Convolution(int *Tab_A,int *Tab_B)
{
int temp = 0;
int i = 0;
int j = 0;
int k = 0;
int Length_A,Length_B;//数组A和数组B的长度
int ALL_Length;//卷积后的总长度
unsigned int Temp_A[10000]={0};//此空间要足够大,要满足卷积后的总长度
unsigned int Conv_out[10000]={0};//用于存放输出结果的数组
Length_A = sizeof(table_a)/sizeof(unsigned int);//求数组A的长度
Length_B = sizeof(table_b)/sizeof(unsigned int);//求数组B的长度
printf("The length of table A is %d\n",Length_A);//打印A的长度
printf("The length of table B is %d\n",Length_B);//打印B的长度
ALL_Length = Length_A + Length_B -1;//卷积后的总长度
printf("The length of the convolution result is %d\n",ALL_Length);//打印卷积结果长度
for(i = 0; i < Length_A; i++)//将Tab_A后面补0
{
Temp_A[i] += Tab_A[i];
}
printf("The convolution result is \n:");//输出提示,“卷积结果如下:”
////////卷积桃核心算法部分//////////////
for(i = 0; i < ALL_Length; i ++)
{
for(k = i,j = 0; k >= 0; k --,j ++)
{
temp += Temp_A[k]*Tab_B[j];
}
Conv_out[i]=temp;
temp=0;
printf("%d\n",Conv_out[i]);
}
////////////////////////////////////////

}

void main()
{
My_Convolution(table_a,table_b);

}

相关文档
最新文档