#include<stdio.h>
int x[]={1,3,2,4};
int h[]={5,2,1,4,3};
int get_element(int *t,int size,int n)
{
if(n<size && n>=0) return t[n];
else return 0;
}
int convolution(int *x,int x_len,int *h,int h_len,int n)
{
int i=0,result=0;
for(i=0;i<n;i++)
{
result+=(get_element(x,x_len,i)*get_element(h,h_len,n-i-1));
}
return result;
}
int main(void)
{
int i=0;
for(i=1;i<10;i++)
{
printf("%d,",convolution(x,4,h,5,i));
}
}
大概明白你的意思,数字信号处理理论非常复杂,还好程序简单。
|