Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

How to perform 2-D DFT via 1-D DFT

Asked by Khoa on 22 Jun 2012

Take the 1-D DFT of one image, first row-wise 1-D DFT and followed by column-wise 1-D DFT to create the resulting F1(u,v) .

0 Comments

Khoa

Products

No products are associated with this question.

2 Answers

Answer by Wayne King on 28 Jun 2012
Accepted answer

It actually doesn't matter, but you can do this

 X = randn(8,8);
 Y = fft2(X);
 % ok let's first take the DFT along the rows
 rowdft = fft(X,[],2);
 % now take it along the columns
 coldft = fft(rowdft,[],1);
 max(max(abs(coldft-Y)))

See the maximum difference in absolute value is only on the order of 10^(-15)

1 Comment

P on 30 Jan 2013

Can you perform this same function without using fft2 or fft? that is doing the 2d dft first along the row and then along the col without using fft2 or fft.

Wayne King
Answer by Wayne King on 22 Jun 2012

Here is an example that shows you how to do it

    X = randn(8,8);
    fft2(X)
    % now use fft
    fft(fft(X).').'

1 Comment

Khoa on 22 Jun 2012

but there is something like "first row-wise 1-D DFT and followed by column-wise 1-D DFT to create the resulting F1(u,v) ". I really dont understand this.

Wayne King

Contact us