4

MATLAB で 2 つのデータ セットを比較しようとしています。これを行うには、データをフーリエ変換し、フィルター処理してから逆フーリエ変換することで、データ セットをフィルター処理する必要があります。

データを逆フーリエ変換すると、赤いデータセットの両端にスパイクが発生します (写真は最初のスパイクを示しています)。青い線のように、最初はゼロに近いはずです。多くのデータセットを比較していますが、これはたまにしか起こりません。

この現象について 3 つの質問があります。第一に、それを引き起こしている可能性があるもの、第二に、それをどのように修正できるか、そして第三に、時系列に沿ってさらにデータに影響を与えるか、それとも時系列の最初と最後にデータに影響を与えるか.

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

代替テキスト

4

3 に答える 3

8

DFT を使用するときは、DFT が周期信号 (高調波関数の重ね合わせとして) を想定していることを覚えておく必要があります。ご覧のとおり、始点は調和関数的に最後の点の正確な継続です。

スペクトル ドメインでゼロ パディングを実行しましたか? とにかく、ウィンドウ処理はオーバーシュートを減らすかもしれません。

フィルターと元のデータについて詳しく知っておくと役立つ場合があります。

于 2009-12-29T09:59:05.553 に答える
2

ゼロ周波数付近でのスパイクと言う場合は、DC 成分をチェックすると答えます。

形が気になるのでやってみる

x = x - mean(x)

また

x -= mean(x)

また

x -= x.mean()

(私は numpy が大好きです!)

ゼロ周波数でヌル振幅から開始し、スペクトルの振幅の比較に進むようにデータセットを制約するだけです。

(補足: fftshift と ifftshift を適切に使用していることを確認しましたか? これは常に私にとってトラブルの原因でした)

于 2010-03-15T08:18:23.637 に答える
1

ギブスの現象と数値的に等価である可能性があります。それが正しい場合、フィルタリング以外に修正する方法はありません。

于 2009-12-19T15:04:41.943 に答える