БПФ и данные акселерометра: почему я получаю этот вывод?

Я читал различные посты здесь, в StackOverflow, относительно выполнения БПФ на данных акселерометра, но ни один из них не помог мне понять мою проблему.

Я исполняюэтот БПФ реализация на моем акселерометреdata массив следующим образом:

int length = data.size();
double[] re = new double[256];
double[] im = new double[256];
for (int i = 0; i < length; i++) {
    input[i] = data[i];
}

FFT fft = new FFT(256);
fft.fft(re, im);

float outputData[] = new float[256];
for (int i = 0; i < 128; i++) {
    outputData[i] = (float) Math.sqrt(re[i] * re[i]
    + im[i] * im[i]);
}

Я нанес на карту содержаниеoutputData (слева), а также использовал R для выполнения БПФ над моими данными (справа) FFT

Что я здесь не так делаю? Я использую тот же код для выполнения БПФ, что я вижу в других местах.

РЕДАКТИРОВАТЬ: Следуя совету @PaulR применить оконную функцию и ссылку, предоставленную @BjornRoche (http://baumdevblog.blogspot.com.br/2010/11/butterworth-lowpass-filter-coefficients.html), Я смог решить мою проблему. Решение в значительной степени то, что описано в этой ссылке. Это мой график сейчас:http://imgur.com/wGs43

Ответы на вопрос(2)

Ваш ответ на вопрос