Dados de FFT e acelerômetro: por que estou obtendo essa saída?

Eu li vários posts aqui no StackOverflow sobre a execução de FFT nos dados do acelerômetro, mas nenhum deles me ajudou a entender meu problema.

Estou executandoisto Implementação FFT no meu acelerômetrodata array da seguinte maneira:

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]);
}

Eu plotei o conteúdo deoutputData (esquerda) e também usei R para executar a FFT nos meus dados (à direita).

O que eu estou fazendo errado aqui? Eu estou usando o mesmo código para executar a FFT que vejo em outros lugares.

EDIT: Seguindo o conselho do @PaulR para aplicar uma função de janelas e o link fornecido pelo @BjornRoche (http://baumdevblog.blogspot.com.br/2010/11/butterworth-lowpass-filter-coefficients.html), Consegui resolver o meu problema. A solução é basicamente o que é descrito nesse link. Este é meu gráfico agora:http://imgur.com/wGs43

questionAnswers(2)

yourAnswerToTheQuestion