A method of performing a Fourier transform, the method comprising: generating intermediate data by performing a first one-dimensional, 1D, fast Fourier transform, FFT, on image data of two-dimensional matrix form on a row-by-row basis using a first core (420,610) comprising a plurality of first parallel processors which perform a respective 1D FFT with respect to a corresponding row of the image data; designating at least two different banks of a memory (430,630) as respective start positions and storing the intermediate data at the start positions; wherein the designating the at least two different banks of the memory (430,630) as the start positions comprises designating a second bank that is different from a first bank of a previous start position as a start position; determining when the first 1D FFT has completed and reading out the intermediate data from the designated banks and associating intermediate data read from the designated banks through a demultiplexer and providing the associated intermediate data to a second core; generating final data by performing a second 1D FFT on the intermediate data based on a column-by-column basis using the second core (440,660) which comprises a plurality of second parallel processors which perform a respective 1D FFT with respect to a corresponding column of the image data; and displaying an image indicated by the image data using the final data, wherein generating the intermediate data by performing the first 1D FFT further comprises: performing M-times of generating N-rows of the intermediate data by performing the first 1D FFT on the every N-rows of the image data, wherein designating banks of the memory further comprises: designating different M-banks of the memory; and saving m-th generated N-rows of the intermediate data at m-th bank of the memory, wherein m, N, and M are integer and m is less than or equal to M and the number of rows of the image data is equal to NxM. generating intermediate data by performing a first one-dimensional, 1D, fast Fourier transform, FFT, on image data of two-dimensional matrix form on a row-by-row basis using a first core (420,610) comprising a plurality of first parallel processors which perform a respective 1D FFT with respect to a corresponding row of the image data; designating at least two different banks of a memory (430,630) as respective start positions and storing the intermediate data at the start positions; wherein the designating the at least two different banks of the memory (430,630) as the start positions comprises designating a second bank that is different from a first bank of a previous start position as a start position; determining when the first 1D FFT has completed and reading out the intermediate data from the designated banks and associating intermediate data read from the designated banks through a demultiplexer and providing the associated intermediate data to a second core; generating final data by performing a second 1D FFT on the intermediate data based on a column-by-column basis using the second core (440,660) which comprises a plurality of second parallel processors which perform a respective 1D FFT with respect to a corresponding column of the image data; and displaying an image indicated by the image data using the final data, wherein generating the intermediate data by performing the first 1D FFT further comprises: performing M-times of generating N-rows of the intermediate data by performing the first 1D FFT on the every N-rows of the image data, wherein designating banks of the memory further comprises: designating different M-banks of the memory; and saving m-th generated N-rows of the intermediate data at m-th bank of the memory, wherein m, N, and M are integer and m is less than or equal to M and the number of rows of the image data is equal to NxM. performing M-times of generating N-rows of the intermediate data by performing the first 1D FFT on the every N-rows of the image data, wherein designating banks of the memory further comprises: designating different M-banks of the memory; and saving m-th generated N-rows of the intermediate data at m-th bank of the memory, wherein m, N, and M are integer and m is less than or equal to M and the number of rows of the image data is equal to NxM. designating different M-banks of the memory; and saving m-th generated N-rows of the intermediate data at m-th bank of the memory, wherein m, N, and M are integer and m is less than or equal to M and the number of rows of the image data is equal to NxM.