Help with fft

  • Thread starter Jmas
  • Start date
  • #1
5
0
Hello, im a physics engineering student and i need a little help with fft function. I wrote the following code everything works, but when i get the fft. I was supose to obtain a sinc function and if you take a close look, it is a sinc, but in the wrong points, can anyone help me with this?

if you dont know/remember what a sinc function looks like:
https://www.google.pt/search?q=3d+s...%2Fwiki%2FFile%3AMatlab_surf_sinc.svg;561;420

x0=0;
y0=0;
dx=5;
dy=5;
px=0.05;
py=0.05;
dxx=1;
dyy=1;
n=dx/px+1;
m=dy/py+1;

xx=-dx/2:px:dx/2;
yy=-dy/2:py:dy/2;

[X,Y]=meshgrid(xx,yy);

Z=zeros(n,m);

%w=X.^2+Y.^2;

for i=1:n
for j=1:m
if X(i,j)>=x0-dxx/2 && X(i,j)<=x0+dxx/2 && Y(i,j)>=y0-dyy/2 && Y(i,j)<=y0+dyy/2
Z(i,j)=1;
end
end
end

A=fft(Z);
B=A.*conj(A);

figure(1)
surf(X,Y,Z)
colormap jet
colorbar

figure(2)
surf(X,Y,B)
colormap jet
colorbar





Also, how i make sure that Z, has always the size of the matrixs X and Y?
 

Answers and Replies

  • #2
vela
Staff Emeritus
Science Advisor
Homework Helper
Education Advisor
14,881
1,456
It would help if you explained what your code is supposed to be doing.
 
  • #3
5
0
it is suppose to plot the fft of a square function which is the sinc function. if you take a look a the photo i've just uploaded, the second one should be a sinc function.
 

Attachments

  • #4
vela
Staff Emeritus
Science Advisor
Homework Helper
Education Advisor
14,881
1,456
I don't understand the second plot. You're doing a two-dimensional FFT, right? Why do you have a one-dimensional power spectrum?
 
  • #5
5
0
its 2d too...
 
  • #6
vela
Staff Emeritus
Science Advisor
Homework Helper
Education Advisor
14,881
1,456
Really? I don't see depth in the second plot, unlike the first one.
 
  • #8
vela
Staff Emeritus
Science Advisor
Homework Helper
Education Advisor
14,881
1,456
I'm assuming this is MATLAB code. According to the documentation, the routine fft doesn't do a two-dimensional DFT. It only acts on the first non-singleton dimension.

EDIT: It looks like the function you want is fft2.
 
  • #9
5
0
humm ok, and how do i center it?
 
  • #10
vela
Staff Emeritus
Science Advisor
Homework Helper
Education Advisor
14,881
1,456
Probably easiest just to rotate the rows and columns by 50 positions.
 
Top