L=btwAf(b,order);//级连数 btwC23(c,bandType,order,db1,fs,f1,f2,f3,f4);//其中oroder为N,即阶数。函数返回的是Wc btwAf2Df(H,L,b,c); chouyang2(fs); JILian_2(); }
//对正弦多次谐波进行抽样 void chouyang2(double fs) { int i,f1=100,f2=200,f3=300; for(i=0;i x[i]=COMPLEX(1*sin(2*M_PI*f1*i/fs)+2*sin(2*M_PI*f2*i/fs)+3*sin(2*M_PI*f3*i/fs),0); } } 抽样结果: K、编写4阶DF ,验证4阶DF 程序: //通用IIR滤波器 void IIRT(COMPLEX input[],COMPLEX output[],double a[],double b[],int N,int Ne)//N为数据点数,Ne为0状态最大负输入 { int i,n; for(n=0;n L、将4阶DF级连,画出输入输出波形,并验证 M、对输入数据进行分组,级连输出波形,并验证 (1)方波: 级连程序: void JILian_(void)//实现L级级联 { int i,j,n; window2(\函数图形显示\ xy2(RED);//画xy轴。 plotgri2(BLUE,RED,x,N);//宏函数工具方式,注意x是形式上的宏参数,它指明后面函数的自变量。 getch(); frame2(); dft(X,x,N,1); for(i=0;i for(j=1;j<5;j++)//归一化 {a[j]=-H[i][1][j]/H[i][1][0];}//y[n]系数归一 for(j=0;j<5;j++) {b0[j]=H[i][0][j]/H[i][1][0];}//x[n]系数归一 IIRT(x,y,a,b0,N,5); for(n=0;n 方波频谱图: 做DFT后频谱图: L级级连之后的系统输出: 为验证自主函数的正确性,求DFT验证:与上图比较低频部分被留下,中高频部分被滤去:
相关推荐: