1

次のようなものを計算する必要があります。

A j,j' = 1/N*sum(k=1,...,N; e i*2*pi/N*j*k * sum(k'=1,...,N; A' k,k' e -i*2*pi/N*j'*k' )) (i = 虚数単位)

これを行う最も効率的な方法は、列に沿って FFT を使用し、行に沿って IFFT を使用することです。私は C で作業しており、FFTW パッケージを使用しています。2-D FFT に関しては、一度に両方を行う計画を立てることができるかどうか疑問に思っています。別の方法は、列ごとに FFT を実行し、結果を保存してから、行ごとに IFFT を実行することです。可能性があれば避けたいところです。

ご挨拶

ジョルゴス

4

2 に答える 2

0

私は答えをかなり遅く見ましたが、とにかくありがとう。途中で方法を見つけましたが、FFTとIFFTを2つの異なる次元で行うよりも効率的かどうかを確認する必要があります。興味のある方は、次のとおりです。

IFFT は、要素を除けば、配列の逆数の FFT と同じです。そう:

http://latex.codecogs.com/gif.latex?X_j= \sum_{k=1}^Ne^{i2\pi/Njk}

また、等しい:

http://latex.codecogs.com/gif.latex?X_j= \frac{e^{i2\pi/Nj}}{N}\sum_{k'=1}^Ne^{-i2\pi/Njk '}x_{Nk'+1}

これは、インデックス k=Nk'+1 の変化によって示すことができます (方程式のリンクをたどってください)。行を逆順に格納できる場合は、元の質問に対して 2 次元 FFT の 1 つの計画で十分ですが、それでもすべての行に定数を掛ける必要があります。

于 2013-06-10T11:27:08.977 に答える