public static float[,] DownSample(int factor, float[,] data)
{
//skipping samples
if (factor == 1)
return data;
int oldLen = data.GetLength(1);
int newLen = (int)(oldLen * (1.00f / factor));
float[,] newData = new float[data.GetLength(0), newLen];
for (int x = 0; x < data.GetLength(0); x++)
{
for (int i = 0; i < newLen; ++i)
{
newData[x, i] = data[x, i * factor];
}
}
return newData;
}