MATHNET滤波低通滤波器(C#)的简单实现

时间:2016-06-22 18:39:48

标签: c# filtering lowpass-filter mathdotnet

我创建了以下代码:

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 Filtering api有一些了解,你能展示一个简单的例子或解释我做错了什么吗?

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

这是我正在使用的MathNet.Filtering - 核心包链接。

1 个答案:

答案 0 :(得分:3)

首先,请注意ProcessSamples方法返回过滤后的数据; ArrayOfData未经修改。因此,您需要获取方法输出才能查看结果:

var processed = filter.ProcessSamples(ArrayOfData);

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