public double[] filterMean(ComplexF[] data, double factor)
{
double[] outdata = new double[data.Length];
double min = Double.PositiveInfinity;
double mean = 0;
for (int i = 0; i < data.Length; i++)
{
outdata[i] = mag2db(data[i]);
min = Math.Min(outdata[i], min);
}
for (int i = 0; i < data.Length; i++)
{
outdata[i] -= min;
mean += (outdata[i]);
}
mean /= data.Length;
for (int i = 0; i < data.Length; i++)
if (outdata[i] < (mean * factor))
outdata[i] = 0;
for (int i = 0; i < data.Length; i++)
{
if ((i > 0) && (i < (data.Length - 1)))
{
if ((outdata[i] > 0) && (priori[i] == 0) && (outdata[i - 1] == 0) && (outdata[i + 1] == 0))
{
outdata[i] = 0;
}
}
priori[i] = outdata[i];
}
return outdata;
}