FFT y datos del acelerómetro: ¿por qué obtengo esta salida?

He leído varias publicaciones aquí en StackOverflow con respecto a la ejecución de FFT en los datos del acelerómetro, pero ninguno de ellos me ayudó a entender mi problema.

Estoy ejecutandoesta Implementación FFT en mi acelerómetrodata matriz de la siguiente manera:

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

Graficé los contenidos deoutputData (izquierda) y también usé R para realizar la FFT en mis datos (derecha).

¿Qué estoy haciendo mal aquí? Estoy usando el mismo código para ejecutar la FFT que veo en otros lugares.

EDITAR: Siguiendo los consejos de @PaulR para aplicar una función de ventanas, y el enlace proporcionado por @BjornRoche (http://baumdevblog.blogspot.com.br/2010/11/butterworth-lowpass-filter-coefficients.html), Pude resolver mi problema La solución es más o menos lo que se describe en ese enlace. Esta es mi gráfica ahora:http://imgur.com/wGs43

Respuestas a la pregunta(2)

Su respuesta a la pregunta