私はFFTの結果である(CsCoreから)を持っています。パワースペクトル密度fft結果からC#
Complex
は、float real
およびfloat imaginary
を有する。次
- 頻度を計算し、このIから
:
(double)index * sampleRate/FftSize;
- 振幅/大きさ:
Math.Sqrt(Math.Pow(real, 2) + Math.Pow(imaginary, 2));
- フェーズ:これらが間違っている場合
Math.Atan(imaginary/real);
私を修正してください。
私が理解するところでは、これは周波数領域の情報であり、私のサンプルでどの周波数が最も一般的であるかを知ることができます。今私は時間の経過とともにパワー密度を見たいと思っています。 Matlab documentationは例を示していますが、私はMatlabを知らないので理解できません。誰かがこのテーマに関するMatlabのドキュメントを説明したり、C#の実装を手伝ったりできますか?
EDIT:
This answerは、単に振幅を二乗することをお勧めします。あれは正しいですか?
[CsCore 'Complex'コード](https://github.com/filoe/cscore/blob/master/CSCore/Utils/Complex.cs)によれば、' float real'と 'float imaginary' 、ダブルではありません... – JHBonarius