I am trying to perform the 2D FFT on the square function. I have defined the square function using:
if true
deltax = L/N;
deltay = L/N;
x = [-L/2:deltax:L/2-deltax];
y = [-L/2:deltay:L/2-deltay];
[X,Y]=meshgrid(x,y);
func = double(abs(X)<= b/2).*double(abs(Y)<= b/2);
figure;
surf(X,Y,func);
end
This does give the expected answer, namely:
However, when I go further and try and do the FFT using the following code:
if true
% code
end
deltafx = 1/L;
deltafy = 1/L;
fx = [-1/(2*deltax):deltafx:1/(2*deltax)-deltafx];
fy = [-1/(2*deltay):deltafy:1/(2*deltay)-deltafy];
[FX,FY]=meshgrid(fx,fy);
funcfourier=deltax*deltay*fft2(func);
funcfourier=fftshift(funcfourier);
absfuncfourier=abs(funcfourier);
surf(FX,FY,absfuncfourier);
gives:
which is not what I expected as I cannot read any amplitudes of that plot. I do not really know what went wrong here.
Any suggestion of how to show this in 3D is appreciated. Thanks

댓글 수: 1

jyoti mundra
jyoti mundra 2017년 11월 9일
Please let me know what is L and N in your code?

댓글을 달려면 로그인하십시오.

답변 (0개)

카테고리

도움말 센터File Exchange에서 Fourier Analysis and Filtering에 대해 자세히 알아보기

제품

질문:

T B
2017년 9월 17일

댓글:

2017년 11월 9일

Community Treasure Hunt

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

Start Hunting!

Translated by