我有一个包含 1024 个值的测量数组。但是在这个数组中有些值是错误的,比如噪声/峰值。该数组通常像 sinus 一样,因此所有值都应该排成一行。如何为阵列创建过滤器以消除这些峰值和噪声?
我听说过一种算法,它总是比较三个值并创建它的平均值,但我找不到这样的例子。
错误的值是“峰值”,它比之前的值更大,所以如果我只是将值与给定的“偏移”之前的值进行比较,可能会更容易?但是如何做到这一点?
public int FilterArray(double[] Values, double Offset, out double[] Results)
{
int ArrLength = Values.Length;
Results = new double[ArrLength];
for (int i = 0; i < ArrLength; i++)
Values[i] = 0;
try
{
for (int i = 0; i < ArrLength; i++)
{
if (Values[i+1] + Offset) > (Values[i]
{
// here someting is needed
}
else
{
// nothing to do if next value is ok
}
}
}
return 0;
}
感谢所有帮助