Ho imparato a conoscere la trasformazione di Fourier in classi di matematica e ho pensato di averli compresi. Ora, sto cercando di giocare con R (linguaggio statistico) e interpretare i risultati di una FFT discreta in pratica. Questo è quello che ho fatto:Perché ottengo due picchi di frequenza da una semplice funzione sin via FFT in 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))
e ottenere questa trama:
Se ho capito questo diritto, questo rappresenta la 'meta' dello spettro di densità di energia. Poiché la trasformazione è simmetrica, potrei semplicemente riflettere tutti i valori sui valori negativi di x per ottenere l'intero spettro.
Tuttavia, quello che non capisco è, perché io sono sempre due punte? C'è solo una singola frequenza sinusale qui. È un effetto aliasing?
Inoltre, non ho idea di come ottenere le frequenze di questa trama. Supponiamo che le unità della funzione sinusale siano secondi, il picco a 1,0 nello spettro di densità 1Hz allora?
Ancora: comprendo la teoria alla base di FFT; l'applicazione pratica è il problema :).
Grazie per qualsiasi aiuto!
In modo tangenziale, 'calcenergy' può essere scritto come' function (x) abs (x)^2'. (Questo sarà più efficiente). – huon
@dbaupp oh grazie. Sapevo che c'era un modo per farlo, ma ero pigro a cercarlo :) –