センサーから得た浮動小数点数の配列を持ち、FFTで信号を実行した後(その前にサンプルをハイパスフィルターとHannウィンドウ関数を使用して処理した後に)振幅を取得する必要があります。1D FFTの入力
Complex[] complex = new Complex[1024];
for (int i = 0; i < 1024 - 1; i++)
{
complex[i] = new Complex(windowedSamples[i], 0);
}
FourierTransform.FFT(complex, FourierTransform.Direction.Forward);
return complex.Select(x => Math.Sqrt(Math.Sqrt(x.Re) + Math.Sqrt(x.Im))).ToArray();
私はいくつかの奇妙な結果を持って、トラブルのロックを持って、これを実行:パラメータとして、私は次のコードを思い付いてきた複素数の配列を受け取りAForge.MathライブラリFFTクラスを使用して
問題について
最初に10の入力値:
0 -3.8454E-05 0.0001737584 0.0006910793 0.001071334 0.00204984 0.00276812 0.001741312 0.001796867
まず10の出力値:
0.482303347948843 0.706458195192639のNaNはNaN NaN NaN NaN NaN NaN NaN
私の最初の推測は、それが虚数部のものかもしれないが、今まで私が読んだことのすべては、この場合は0に設定すべきだと言った。
私は本当にこれを解決するための助けに感謝します。
でその式を置き換えたいものである場合
それらが正の値であると確信していますか? –
GebbがRIGHTの場合、結果の複素数の絶対値を計算する方法が間違っています。 –