Strange grid pattern in 2D Fourier transform
3 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Morgan Facchin
il 14 Gen 2021
Risposto: Hrishikesh Borate
il 4 Feb 2021
Hi everyone,
I want to plot the phase of the 2D Fourier transform of a random phase mask with the following code:
size_mask=10; mag=5;
mask=exp(1i*2*pi*rand(size_mask));
mask_pad=padarray(mask,[mag*size_mask mag*size_mask],0,'both');
phase=angle(fft2(mask_pad));
imagesc(phase)
Which gives this:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/487993/image.png)
It has the expected global pattern, but there is an additional grid pattern on top of it.
Can anyone help me understand the origin of this and how to eliminate it?
Many thanks
0 Commenti
Risposta accettata
Hrishikesh Borate
il 4 Feb 2021
Hi,
I understand that you are displaying phase spectrum of FFT of a mask. In the output image there is global grid pattern formed, which you are trying to remove.
One reason for this grid pattern is that mask_pad is not centered about zero, which results in a phase shift of the FFT output. The phase shift is essentially negating every other element (odd samples) of the output of the FFT which causes the high frequency oscillation you're observing (as explained here).
This can be corrected as follows :-
phase = angle(fftshift(fftshift((fft2(fftshift((mask_pad)))))));
0 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Fourier Analysis and Filtering in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!