我有一組數據是週期性的(但不是正弦曲線)。我在一個矢量中有一組時間值,而在第二個矢量中有一組幅度。我想快速估計函數的週期。有什麼建議麼?什麼是使用Octave來近似數據週期的最快方法?
具體來說,這是我現在的代碼。我想用向量t近似向量x(:,2)的週期。最終,我想要做很多初始條件,並計算每個週期並繪製結果。
function xdot = f (x,t)
xdot(1) =x(2);
xdot(2) =-sin(x(1));
endfunction
x0=[1;1.75]; #eventually, I'd like to try lots of values for x0(2)
t = linspace (0, 50, 200);
x = lsode ("f", x0, t)
plot(x(:,1),x(:,2));
謝謝!
約翰
對於確定一般週期性,FFT不適用。例如,如果信號是兩個分量的總和,一個週期爲5T,另一個週期爲7T,則信號週期爲35T,但這不會在FFT中顯示。自相關是這項任務的更好選擇。 – tom10 2010-04-04 23:43:32
@ tom10 - FFT方法取決於在觀測中有幾個週期的信號,但我認爲這對任何非分析方法都是正確的,不是嗎? – mtrw 2010-04-04 23:58:27
樣本長度不在我在這裏討論的內容(儘管你對此是正確的)。嘗試繪製sin(t/2)+ sin(t/3)並觀察週期性,然後將其與FFT進行比較,您可以看到週期和FFT沒有如此明顯的相關性。 – tom10 2010-04-05 00:18:21