【发布时间】:2013-08-29 21:35:21
【问题描述】:
我有一个包含 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;
}
感谢大家的帮助
【问题讨论】:
标签: c# arrays algorithm filter noise