[問題]處理FFT陣列
大家好,我目前正在使用C# 處理FFT
我使用的工具
Visual C# 2012
ExocortexDSP
我有一個256Hz 的連續信號(藉由Bluetooth)進來,如果我想做FFT的話
我是不是要取 大於取樣頻率兩倍的資料
我這邊是直接讀取512筆資料 (256Hz -> 1秒256次震盪)
所以我就將程式寫成每512比資料做一次FFT
1. 我不知道我這樣取述職的方式是否正確? 256Hz=> 就讓程式存512筆資料後再做處理
2. 我使用ExocortexDSP > 當陣列取得512筆後進行FFT
其 Exocortex.DSP.Fourier.FFT(ch1, ch1.Length,Exocortex.DSP.
FourierDirection.Backward);
不知道有沒有人使用過這個,我用matlab 做FFT 與C# 答案卻不同,發現問題出在
(FourierDirection.Forward) 要改成 .Backward 才會與Matlab答案相同。
但是應該是Forward 會是正確的,不知道有沒有人也遇到這樣的問題?
3. 當我512筆資料已經FFT完後,我要怎麼在C#中呈現圖形出來呢?
下面是我用Matlab 跑一個測試的圖形,先產生Sin波形
然後轉換FFT 最後呈現頻率圖,圖中右上那樣,如何在C#中呈現那種頻率圖呢?
http://ppt.cc/GYiw
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 120.126.145.155