MATLABで対称IFFTを実行するアルゴリズムを誰か説明してもらえますか?
例として:
out_signal = ifft(X,'symmetric');
ここで、X
は複素対称信号です。
実行時のsymmetric
フラグifft
は、周波数領域信号が共役対称またはエルミートであると想定しています。軸を横切って信号を反射すると、関数は共役対称y
であり、その複素共役に等しくなります。言い換えると:
これが実際に意味することは、信号の虚数部の符号がx < 0
.
これが非常に便利な理由は、信号が共役対称である場合に、より多くの最適化と逆計算のショートカットが可能になるためです。これは、スペクトルの半分が正の周波数用で、残りの半分が負の周波数用であることを意味します。負の係数は、正の係数の共役です。これは、信号のフーリエ変換が共役対称である場合、その時間領域の等価物が純粋に実数値になるという FFT の有用な特性につながります。時間領域信号の出力が純粋に実数値であることがわかっている場合、これにより がいくらか高速化されifft
ます。
詳細については、上記でリンクしたウィキペディアの記事をご覧ください。また、適切な説明については、DSP StackExchange に関するこの便利な投稿もご覧ください。IFFT アルゴリズムで共役対称構造を利用したい場合は、次の 2 つの投稿で詳細を確認してください。