MATHNET 滤波低通滤波器的简单实现

Simple Implementation of MATHNET Filtering Lowpass filter

我创建了以下代码:

Double[] ArrayOfData = new Double[Size] { 0.5, 1.5, ... , 1.0 };
var lowPass = MathNet.Filtering.IIR.IirCoefficients.LowPass(0, 0, 0);

MathNet.Filtering.IIR.OnlineIirFilter filter = new MathNet.Filtering.IIR.OnlineIirFilter(lowPass);

filter.ProcessSamples(ArrayOfData);

我 运行 遇到的问题是低通滤波器似乎没有任何作用。我已经为低通尝试了与 0,0,0 不同的值,但它似乎没有任何效果。

如果有人对 MathNet 过滤有一些了解 api,你能举个简单的例子或解释一下我做错了什么吗?

可以找到 nuget 信息:http://filtering.mathdotnet.com/

我用的是MathNet.Filtering - 核心包link。

首先请注意ProcessSamples方法returns过滤数据; ArrayOfData 保持不变。因此,您需要获取方法输出才能查看结果:

var processed = filter.ProcessSamples(ArrayOfData);

其次,参数组合(0, 0, 0)无效。参数是 samplingRate(每单位样本),cutoff(每单位样本的截止频率)和 width(每单位样本的带宽),据我所知,这些参数都是需要大于零。