⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filter_main.c

📁 直接型IIR滤波器实现源代码
💻 C
字号:
#include "math.h"
#include "stdio.h"
#include "stdlib.h"
void filter(b,a,m,n,x,len,px,py);

main()
{int i,k,m,n,len,nblk;
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,0.0,0.0};
double py[5]={0.0,0.0,.0,0.0,0.0};
double x[25],data[100];
FILE *fp;
m=4;
n=4;
len=25;
nblk=4;
x[0]=1.0;
for(k=1;k<len;k++)
{x[k]=0.0;}
for(i=0;i<nblk;i++)
{filter(b,a,m,n,x,len,px,py);
for(k=0;k<len;k++)
{data[i*len+k]=x[k];
x[k]=0.0;
}
}
printf("Unit Impulse Response\n");
for(i=0;i<16;i++)
{printf("  %10.7lf",data[i]);
if(i%4==3)printf("\n");
}
if((fp=fopen("filter.dat","w"))==NULL)
{printf("cannot open the file ‘filter.dat'! \n");
exit(0);
}
for(i=0;i<100;i++)
{fprintf(fp,"%2d %lf\n",i,data[i]);}
fclose(fp);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -