為什麼這篇fft原理鄉民發文收入到精華區:因為在fft原理這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者PODO ()看板Yup99-02標題Re: [問題]有人知道 LabVIEW的FFT原理?時間...
fft原理 在 莉 奈 Instagram 的最讚貼文
2021-01-12 07:32:32
就讓我們一起去吐司王國好嗎?😍 前陣子朋友物色了新法寶 就是傳說中的“記憶吐司”!!!!! 畢竟我真的太難入睡了~😭 親友們幾乎都知道我的睡眠障礙(太有名😨😨😨 有了寶後莉奈的睡眠狀況更糟糕 因為寶也很難睡 睡眠狀況其實會遺傳 所以我自己就苦心研究 從寶出生到現在各種催眠法✌️ 搖籃曲+拍拍 精...
※ 引述《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