📄 filter example.c
字号:
#include"stdio.h"
#include"filter.c"
/*求4阶切比雪夫低通数字滤波器H(z)的单位冲激响应 */
void main()
{ int i,k,m,n,len,nblk;
/*H(z)=(0.001836+0.007344z^-1+0.011016z^-2+0.007344z^-3+0.001836z^-4)/(1.0-3.0544z^-1+3.8291z^-2-2.2925z^-3+0.55075z^-4)*/
double b[5]={0.001836,0.007344,0.011016,0.007344,0.001836};
double a[5]={1.0,-3.0544,3.8291,-2.2925,0.55075};
double px[5]={0.,0.,0.,0.,0.};
double py[5]={0.,0.,0.,0.,0.};
double x[25],data[100];
FILE *fp;
m=4;
n=4;
len=25;
nblk=4; /*分的块数;*/
/*x[n]为单位冲激响应;*/
x[0]=1.0;
for(k=1;k<len;k++)
{ x[k]=0.0; }
/*数字滤波,数据放入data[]中;*/
for(i=0;i<nblk;i++)
{ filter(b,a,m,n,x,len,px,py);/*循环运行函数filter(),*/
for(k=0;k<len;k++)
{ data[i*len+k]=x[k];
x[k]=0.0;
}
}
/*输出data;*/
if(( fp=fopen("filter.txt","w"))==NULL)
{ printf("cannot open file 'filter.txt'!\n");
exit(0);
}
for(i=0;i<100;i++)
{ fprintf(fp,"%lf ",data[i]);
}
fclose(fp);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -