1

Say we have a 2D complex-to-complex FFT implemented. How we can now use it to implement 3D FFT - is it just N slices of 2D?

Cris Luengo
  • 55,762
  • 10
  • 62
  • 120
DuckQueen
  • 772
  • 10
  • 62
  • 134
  • here is [2D DFT done from 1D DFT](https://stackoverflow.com/a/22779268/2521214) ... I woul;d extrapolate and do it 3D by applying the 1D DFT in the 3th axis too ... but you need to compute the nomalization factor by comparing results computed with the slow 3D DFT .... – Spektre Sep 09 '18 at 15:58

1 Answers1

1

No, a 3D DFT (FFT is a family of algorithms that efficiently computes the DFT) is not the same as applying 2D DFTs to each slice in a 3D array/image/whatever.

Whether what you need is a 3D DFT, or 2D DFTs applied to each slice depends on what you’re trying to accomplish.

An nD DFT is computed by applying 1D DFTs (FFTs) to each row, then on the result again to each column, etc. until each dimension has been processed. So what you need is a 1D FFT.

Cris Luengo
  • 55,762
  • 10
  • 62
  • 120
  • IIRC 1D FFT approach needs normalization factor which is different for each dimension I think. – Spektre Sep 11 '18 at 06:39
  • @Spektre: no, the normalization is always the same. See here: https://en.wikipedia.org/wiki/Discrete_Fourier_transform#Multidimensional_DFT – Cris Luengo Sep 11 '18 at 13:14