Aprendí sobre la transformación de fourier en las clases de matemáticas y pensé que las había entendido. Ahora, estoy tratando de jugar con R (lenguaje estadístico) e interpretar los resultados de una FFT discreta en la práctica. Esto es lo que he hecho:¿Por qué obtengo dos picos de frecuencia a partir de una función sen simple mediante FFT en R?
x = seq(0,1,by=0.1)
y = sin(2*pi*(x))
calcenergy <- function(x) Im(x) * Im(x) + Re(x) * Re(x)
fy <- fft(y)
plot(x, calcenergy(fy))
y obtener esta trama:
Si entiendo este derecho, esto representa el 'medio' del espectro de densidad de energía. Como la transformación es simétrica, podría simplemente reflejar todos los valores a los valores negativos de x para obtener el espectro completo.
Sin embargo, lo que no entiendo es, ¿por qué estoy recibiendo dos picos? Aquí solo hay una frecuencia sinusal única. ¿Es esto un efecto de aliasing?
Además, no tengo ni idea de cómo obtener las frecuencias de esta trama. Supongamos que las unidades de la función seno fueron segundos, ¿es el pico en 1.0 en el espectro de densidad 1Hz entonces?
De nuevo: entiendo la teoría detrás de FFT; la aplicación práctica es el problema :).
¡Gracias por cualquier ayuda!
Tangencialmente, 'calcenergy' se puede escribir como' función (x) abs (x)^2'. (Esto será más eficiente). – huon
@dbaupp oh gracias. Sabía que había una manera de hacerlo, pero estaba perezosamente buscándolo :) –