我创建了以下代码:
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 - 核心包链接。
答案 0 :(得分:3)
首先,请注意ProcessSamples
方法返回过滤后的数据; ArrayOfData
未经修改。因此,您需要获取方法输出才能查看结果:
var processed = filter.ProcessSamples(ArrayOfData);
其次,参数组合(0,0,0)无效。参数是samplingRate
(每单位样本),cutoff
(每单位样本的截止频率)和width
(每单位样本中的带宽),据我所知这些参数全部需要大于零。