#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));
}
}
大概明白你的意思,数字信号处理理论非常复杂,还好程序简单。 |
在时域:滤波器并不知道脉冲是不是周期的,他只是简单的进行微分、积分、。。。过程----响应输入。如果是周期脉冲,前一个脉冲响应的残余与后一个脉冲响应的叠加会产生一些有趣的结果。
你的问题是: 在考察一个问题时跨越两个域。
时域的脉冲在频域是连续谱,其实频域的的脉冲在时域也是连续谱。
看了3遍,没懂你说的是什么问题。