具体代码
理论知识看各个课本,都有介绍,这里省略。
参考的是Matlab中fir2函数,参考【Matlab帮助中心】fir2函数

public static double[] fir2(int nn, double[] freqs, double[] mags)
{
int npt = 512;
int lap = 0;
double[] wind;
nn++;
if (nn < 1024)
{
npt = 512;
}
else
{
npt = (int)(2 * Math.Ceiling(Math.Log(nn) / Math.Log(2)));
}
wind = hamming(nn);
lap = (int)Math.Floor(npt / 25.0);
freqs[0] = 0;
freqs[mags.Length - 1] = 1;
npt++;
double[] H = new double[npt];
int nint = mags.Length - 1;
double[] df = diff(freqs);
double nb = 1.0;
double ne;
H[0] = mags[0];
for (int i = 0; i < nint; i++)
{
if (df[i] == 0)
{
nb = Math.Ceiling(nb - lap / 2.0);
ne = nb + lap;
}
C#实现Matlabfir2函数的傅立叶滤波器设计

本文介绍了如何在C#中使用fir2函数进行滤波器设计,详细解释了函数的参数处理和快速傅里叶变换过程,以及与Matlab结果的对比验证。
最低0.47元/天 解锁文章
393

被折叠的 条评论
为什么被折叠?



