public static float[,] UpSample(int factor, float[,] data)
{
//zero padding
if (factor == 1)
return data;
int oldLen = data.GetLength(1);
int newLen = oldLen * factor;
float[,] newData = new float[data.GetLength(0), newLen];
for (int x = 0; x < data.GetLength(0); x++)
{
int cc = 0;
while (cc < newLen)
{
newData[x, cc] = data[x, cc / factor];
for (int i = 0; i < factor - 1; ++i)
{
cc++;
newData[x, cc] = 0;
}
cc++;
}
}
return newData;
}