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
(每单位样本的带宽),据我所知,这些参数都是需要大于零。
我创建了以下代码:
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
(每单位样本的带宽),据我所知,这些参数都是需要大于零。