0

フーリエ変換について学習しようとしています。MATLAB の FFT 関数を使用して、「1 2 3」と言っている私の録音を周波数領域に変換できます。私が理解しているように、結果のファイルには、元の信号の周波数の振幅と位相を保持する一連の複素数が含まれています。

次に、これらの複素数に対して (MATLAB の iFFT 関数を使用して) 逆フーリエ変換を実行すると、元の信号がほぼ完全に再構築されていることがわかります (そして聞こえます)。これは私が得られないビットです。甲高い声で「3」と言った場合、FFT はこの周波数にエネルギーが存在したことを示す必要があります (実際に示します)。つまり、FFT から返されるのは振幅と位相のセットだけなので、時間領域信号でこれらの周波数がいつ発生したかを示す情報はどこにあるのでしょうか? MATLAB は、私が知らないウィンドウ操作を行っていますか?

どんな助けでも大歓迎です。

乾杯、コリン

4

2 に答える 2

1

ウィンドウ処理は含まれません。FFT は、正弦波の適切な振幅と位相を選択するため、すべての正弦波の合計が信号の時間変化になります。

たとえば、ここを参照してください。上部には方形パルスがあり、明らかに時間的に非常に局在しています。より多くの正弦波を含めることで、パルス形状がより正確に近似されることがわかります (不連続点を除くが、それは別の話です)。

于 2013-12-09T23:15:55.877 に答える
0

サウンド サンプル全体の 1 つの FFT を取得するだけの場合 (これは通常行うことではありませんが、通常は、一連のオーバーラップする STFT を使用して時間変化するスペクトル コンテンツをキャプチャします)、サンプル全体が次のように処理されます。それは周期的な波形でした。明らかな時変コンテンツは、多くのコンポーネントの振幅と位相を組み合わせて元の信号を再構築する方法の結果にすぎません。

于 2013-12-09T23:02:52.970 に答える