# How does MATLAB do fft and ifft in matrices

59 views (last 30 days)
Pedro Oliveira on 28 Oct 2017
Commented: Star Strider on 29 Oct 2017
Hi, I'm trying to do the ifft and fft of matrices, but I'm getting unexpected values.
I only don't get any error when dealing with a 1x4 matrix (which is a vector).
When putting, for example, a 2x4 matrix, I obtain and 8x4 matrix, which is not what I expected. I expected a 2x4 matrix again.
When coding the fft and ifft of the matrix, I wrote:
transmitted signal = ifft(a,n)
where a= matrix and n= dft size (i.e. total number of elements in the matrix)
In addition, I'd like the fft/ifft to calculate the ifft and fft in a row-by-row fashion, since I'm dealing with signals so I don't want the bits to get out of order.

Star Strider on 28 Oct 2017
The fft function computes the discrete Fourier transform on the columns (dimension 1) of a matrix, unless you tell it to compute along the rows (dimension 2).
When I do something similar, I get a Fourier-transformed matrix that is the same size as the original matrix, however complex (as expected).
If you are getting something else as a result, post your code. I suspect you are simply getting the expected complex result.
##### 2 CommentsShowHide 1 older comment
Star Strider on 29 Oct 2017
My pleasure.
To get fft to compute along the rows, specify ‘2’ (the row dimension) for ‘dim’:
Fy = fft(y, NFFT, dim);
so:
The fft function will compute the fft of all the rows (with the row dimension specified here) in matrix ‘a’. The same applies to the ifft function.

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by