まだ途中だけど、MathNetのFFTを使ってみた。
使い方は非常に簡単で、NuGetからMathNet.Numericsをインストールして、
1 2 3 4 5 6 7 8 9 10 11 12 |
using MathNet.Numerics; using MathNet.Numerics.IntegralTransforms; //ハミング窓取得 double[] hamming = Window.Hamming(datapt); ..... for (int i = 0; i < datapt; i++) { hamdata[i] = sgdata[i] * hamming[i]; } ..... Fourier.Forward(hamdata); |
引数で渡すComplex[]にFFTの結果が格納される。
FFTの目盛りとかないけど、実行結果
実信号を入力した場合。
左半分は、虚数領域。
複素信号の場合。
虚数領域の信号が消えている。
あたりまえだけど、教科書のソースをコピーした結果と同じ。
こっちの方が圧倒的に簡単だから、今後をこっちを使っていく。