Nauczyłem się o transformacji Fouriera na zajęciach z matematyki i myślałem, że ją zrozumiałem. Teraz próbuję grać z R (język statystyczny) i interpretować wyniki dyskretnej FFT w praktyce. To co mam zrobić:Dlaczego otrzymuję dwa skoki częstotliwości od prostej funkcji sin przez FFT w 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))
i dostać tę działkę:
Jeśli rozumiem tego prawa, to oznacza „połowę” widma gęstości energii. Ponieważ transformacja jest symetryczna, mogę po prostu odzwierciedlić wszystkie wartości do ujemnych wartości x, aby uzyskać pełne widmo.
Jednak nie rozumiem, dlaczego dostaję dwa skoki? Tutaj jest tylko jedna częstotliwość zatok. Czy to efekt aliasowania?
Ponadto, nie mam pojęcia, jak uzyskać częstotliwości z tego wątku. Załóżmy, że jednostki funkcji zatokowej były sekundami, to jest szczyt przy 1,0 w widmie gęstości 1 Hz?
Jeszcze raz: rozumiem teorię FFT; praktyczna aplikacja to problem :).
Dzięki za pomoc!
Stycznie "calcenergy" można zapisać jako 'function (x) abs (x)^2'. (To będzie bardziej wydajne). – huon
@dbaupp oh dzięki. Wiedziałem, że jest jakiś zbudowany, aby to zrobić, ale leniwego szukałem go :) –