Re: [問題]有人知道 LabVIEW的FFT原理?

看板Yup99-02作者時間19年前 (2004/09/21 08:31), 編輯推噓4(401)
留言5則, 5人參與, 最新討論串2/3 (看更多)
※ 引述《sasoon ((╯#‵ ′)╯ ┴──┴)》之銘言: : 嘿 我先自介一下 我是邱建偉 不知道大家忘了沒? : 望的請翻高中畢冊(如果還在的話) : 這是我第一次上班版 (之前都沒記下來班版在哪各站上) : 我想請問各位大大.....有誰有用LabVIEW這套成軟體寫程式??? : 有人有用過它裡面FFT的元件嗎? : 我想問它的原理!! : 或是有誰好心可以提供我有關FFT(fast fourier transform)的原理介紹!! : 再下感激不盡.......謝謝!!! FFT跟是屬於discrete Fourier transform(DFT)的一種快速演算法 但是不同的地方是FFT所使用的資料個數必須是2的整數次方 (DFT的資料個數則不受限制) 如此一來可以降低運算的複雜度從N^2變成N*log(2,N) (這個N就是資料個數) 因為在一般的Discrete Fourier Transform中 要得到任何一個頻率成份都要從所有時域上的資料點去計算 X[k] = sum( x[n]*exp(-j*2pi*n/N) ) ^^^^ ^^^^ 頻域 時域 上面運算的複雜度就是N 所以你要算N個資料點(k= 0 ~ N-1)就是要重複算上面N次 複雜度就是等於N^2 而FFT因為資料點個數是2的整數次方 且經由數學推導可以發現N點的DFT事實上可以拆成 2個 (N/2)點的DFT 再經由某種關係相加得來 (拆的方式有分decimation in time 跟 decimation in frequency) (大致上就是拆成奇數跟偶數兩堆) 數學式你可以參考 http://mathworld.wolfram.com/FastFourierTransform.html 所以當你的資料點個數是2的整數次方時 你就可以一直拆一直拆 E.g 8點的DFT => 2個 4點的DFT => 4個 2點的DFT => 8個 1點的DFT 這樣你本來需要算八次才能得到完整的spectrum 現在因為被你拆成3個stage (8=>4 , 4=>2 , 2=>1) 所以只要算8*log(2,8) 次就可以了 (如果用DFT你本來要算8*8次) 因為算起來比較快 所以叫Fast fourier transform 如果你是在labview中要用的話 記得丟進去的array要有2的整數次方個點 (例如1024個點) 然後注意頻率的換算 算出來以後得到的X[i]代表 頻率為 Sampling Frequency/1024*i 這個頻率的成份大小 如果你是要懂很詳細的原理的話 可以去翻翻一般數位信號處理(DSP)的書 如果只是要知道個大概的話 http://www.ni.com/support/labview/toolkits/analysis/analy3.htm http://mathworld.wolfram.com/FastFourierTransform.html 或是GOOGLE上面找也有很多 如果是想要知道Labview中怎麼用FFT這個VI的話 查Help應該就夠了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.44.99

140.120.15.88 09/21, , 1F
Friday好棒阿~~~~Orz
140.120.15.88 09/21, 1F

140.116.34.61 09/21, , 2F
果然是強者 不過怎麼沒出國阿??
140.116.34.61 09/21, 2F

140.116.41.100 09/21, , 3F
Friday好帥~~~
140.116.41.100 09/21, 3F

140.117.151.1 09/21, , 4F
厲害喔...XD...
140.117.151.1 09/21, 4F

61.224.195.121 09/21, , 5F
我只會文書處理><
61.224.195.121 09/21, 5F
文章代碼(AID): #11JtPKeo (Yup99-02)
文章代碼(AID): #11JtPKeo (Yup99-02)