filt.cs

来自「使用C#语言编写的信号滤波程序」· CS 代码 · 共 34 行

CS
34
字号
//f输入信号
//vl滤波频率下限
//vh滤波频率上限
//n滤波器阶次
//m输入信号长度
//t采样间隔
//a取1,幅值归一化系数
public static double[] filt_dsa(double[] f,double vl,double vh,int m,int n,double t,double a)
{
	double[] fs = new double[m];
	int i,j;
	double x,aa,v1,v2,w;
	double pi = Math.PI;
	double[] b = new double[n];
	aa = pi/n;
	v1 = 2.0*pi*vl*t;
	v2 = 2.0*pi*vh*t;
	w = 2.0*pi;
	for(j=1;j<n;j++)
		b[j] = a*(1+Math.Cos(aa*j))*(Math.Sin(v2*j)-Math.Sin(v1*j))/(w*j);
	for(i=0;i<m;i++) 
	{
		x = (2.0*(v2-v1)/w)*f[i];
		for(j=0;j<n;j++) 
		{	
			if((j+i)<m)
				x += b[j]*f[j+i];
			if((i-j)>0)
				x += b[j]*f[i-j];
		}
		fs[i]=x;
	}
	return fs;
}

⌨️ 快捷键说明

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