※ 引述《[email protected] (深水聲道)》之銘言:
: 程式的計算效率,最重要的其實是所使用的Algorithms(演算法)
: 的效率問題,例如DFT(Discrete Fourier Transform)的複雜度是
: \Theta(n^2), 而radix-2 FFT(Fast Fourier Transform)
: 的複雜度是\Theta(n log n), 算出一模一樣的答案但快得多了.
在matlab裡面要小心
雖然裡面有個含式叫fft
但是在的你input argument的長度不是2的次方時
他還是會用最原始的DFT算法算....速度慢相當多
如果你的input不是2的次方,記得用fft(input,4096)
之類的,matlab會自動在你的input後面補零
然後在用fast的演算法算
這很重要,我以前不知道吃了不少苦頭
--
※ 發信站: 批踢踢實業坊(ptt.twbbs.org)
◆ From: h193.s27.ts30.h