/*-------------------------------------------**离散卷积**-------------------------------------------*/#includestdio.hfloatconvolute(float*f,/*离散单边信号f的序列表示*/float*g,/*离散单边信号g的序列表示*/unsignedintk,/*卷积的自变量*/constintlength/*信号的序列长度,本例子假设为10*/){unsignedintn=0;floatsum=0;/*累加的结果,最终作为返回值返回*/if(klength){k=length;}for(n=0;n!=k;++n){sum+=(f[n]*g[k-n]);}returnsum;}intmain(){floatf[10]={3,5,4,6,9,8,7,4,5,12};/*离散单边信号f的序列表示*/floatg[10]={2,5,1,3,6,8,7,8,2,22};/*离散单边信号g的序列表示*/floatconvolution=0;/*该变量用于存储卷积的结果*/unsignedintk=0;/*卷积的自变量*/printf(leaseinputthevalueofktoconvolute\n);scanf(%d,&k);convolution=convolute(f,g,k,10);printf(\nTheresult:%f,convolution);return0;}