From: niyander on
hi,

can anyone tell me how to perform 2d fft? what i understood for 2d fft
is that for each rows we perform individual fft's and place the result
on the respective rows and similarly for the columns. what i mean is
suppose i have an array of 2d data as:

0000
0110
0110
0000

now what i am trying to do is calculate fft (4 point fft instead of 16
point fft) of the first row (0000) and place the result in first row,
calculate the fft for the second row (0110) and place the result in
second row and so on. similarly for column calculate the fft for first
column (0000) and place the result in the first column and so on. so
will this work and will i get the same result as of 16 point fft?

thanks
From: glen herrmannsfeldt on
niyander <mightycatniyander(a)gmail.com> wrote:

> can anyone tell me how to perform 2d fft? what i understood for 2d fft
> is that for each rows we perform individual fft's and place the result
> on the respective rows and similarly for the columns. what i mean is
> suppose i have an array of 2d data as:

> 0000
> 0110
> 0110
> 0000

The FFT is separable in rectangular coordinates. You separately
do the X and Y transforms, in either order, to get the appropriate
XY (2D) transform.

> now what i am trying to do is calculate fft (4 point fft instead of 16
> point fft) of the first row (0000) and place the result in first row,
> calculate the fft for the second row (0110) and place the result in
> second row and so on. similarly for column calculate the fft for first
> column (0000) and place the result in the first column and so on. so
> will this work and will i get the same result as of 16 point fft?

No, it is different from a 16 point 1D FFT on the data, but it
is the right transform for 2D data.

If you think about the normal modes for a square drum head
then you will have some idea about the results of the transform.

-- glen