线性卷积的C语言实现
C++默认数组从0开始,对于xl,yl为负值的情况,只要在输出时,进行相应的相移即 可。 #include #include ttdefine Long 100 //序列长度 void generatex(double x[Long], int xl, int x2) —{ for(int i=0;i〈Long;i++) ( if(i>=xl } else —{ x[i]=0; } } } void generatey(double y[Long], int yl, int y2) { for (int i=0;i=yl else return b; } void displayx(double x[Long]) { for (int i=0;i〈Long;i++) if(x[i]!=0) { coutxl; cout〈〈〃读入x(n)的序列范围x2=/z; cin>>x2; coutyl; couty2; Longl=max(max(xl, x2), max(yl, y2)); double x[Long]; double y[Long]; double r[Long]; cout〈〈”正在初始化x(n),请等待\n”; initialize(x) ; //初始化序列 x(n) cout〈〈”正在初始化y(n),请等待\n”; initialize(y) ; //初始化序列 y(n) cout«,z正在初始化r(n),请等待\n〃; initialize (r) ; //初始化序列 r (n) cout«,,正在产生序列x (n),请等待\n〃; generatex (x, xl, x2); 〃产生序列 x(n) cout〈〈”正在产生序列y (n),请等待\n〃; generatey (y, yl, y2) ; //产生序列 y(n) // cout<〈〃\n******************\n 初始化、产生后结果\n******************\n〃; cout«,,正在显示序列x (n),请等待\n〃; displayx(x); //displayx (n) cout<<2\n正在显示序列y (n),请等待\n〃; displayy(y); //displayy (n) cout<<2\n正在进行线性卷积,请等待\n〃; juanji (x, y, r) ; //进行线性卷积 cout<<,,\n正在显示线性卷积结果r (n),请等待 displayr(r); //displayr(n) cout<