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

📄 filter example.c

📁 自己编的数值计算方法的c语言实现源程序。
💻 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 + -