一个关于卷积C程序的问题
时间:10-02
整理:3721RD
点击:
请大家帮忙看看下面程序:
#include<math.h>
int x[11]={0,10,20,30,40,50,40,30,20,10,0};
int h[11]={50,50,50,50,50,50,50,50,50,50,50};
int y[22]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
void main()
{
int M=11,N=11;
int n,m;
int w;
for(n=0;n<M+N-1;n++)
{ w=0;
for(m=0;m<M;m++)
{ if(((n-m)>=0)&&((n-m)<N))
w+=x[m]*h[n-m];
}
y[n]=w;
}
}
运行结果里y数组里的数值始终为0,没有变过,是什么原因呢?
刚才用了你的程序做了一下,输出如下
0,
500,
1500,
3000,
5000,
7500,
9500,
11000,
12000,
12500,
12500,
12500,
12000,
11000,
9500,
7500,
5000,
3000,
1500,
500,
0,
我没对结果,你自己看一下吧
你的结果是正确的,是在CCS上运行的么,有没有存储器配置文件,我的结果好像不太对,还有就是我用CCS仿真的结果和下载到DSP芯片运行的结果总是有些出入,我用的是VC5402,仿真用的C54x Simulator,不知道哪里有问题
我用的是CCS Simulator C6416,就是直接把你算法加入我曾经存在的工程运行的,你可以单步跟一下看看啊