How can I swap the phases of two fourier transforms?

14 views (last 30 days)
In my assignment I am supposed to swap phases of the Fourier transform for two images and perform the inverse Fourier transform to reconstruct the images using ifft2(). I am new to Matlab and all I could find was extracting the phase from a fourier transform using angle(), but how do I assign it to another fourier transform?

Answers (1)

Bjorn Gustavsson
Bjorn Gustavsson on 1 Feb 2021
Tip: Think about the difference between Cartesian and polar representation of a complet number are, also be prepared to use element-wise multiplication (i.e.: .*) and the exp-function.
HTH
  5 Comments
Esa Soudbakhsh
Esa Soudbakhsh on 3 Feb 2021
Okay so what I did was get the phase and magnitude of an fft matrix in rectangular form. Then made a new matrix in polar form by multiplying the new phase with the other magnitude and that made me a new matrix. This is of course after resizing the images to be in the same dimensions.
Bjorn Gustavsson
Bjorn Gustavsson on 3 Feb 2021
Sounds exactly right! But if you are a bit unsure about the assignment of variables and such I suggest that you browse through the on-ramp courses: matlab-onramp. That is intended to get you up and running as fast as possible.
With regards to the dimensions-nuisance: You might (I've neither thought nor tested this) get somewhere by zero-padding the fft of the smaller images

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!