How to create and plot a Gaussing function?

조회 수: 8 (최근 30일)
Gn Gnk
Gn Gnk 2020년 12월 7일
댓글: Gn Gnk 2020년 12월 7일
Hello ,
i want to create a 2D Gaussian function 9x9 and sigma =0.7 using this type :
Here is my code:
sigma=0.7;
nx=9;
ny=9;
[x,y]=meshgrid(1:nx,1:ny);
G=(0.5/(pi.*(sigma.^2))).*exp(-0.5.*((y.^2+x.^2)./(sigma.^2)));
Then i was asked to take the Gaussian function G and compute its fast fourier transform by using fft2()
G_fft=fft2(G);
Finally by using mesh() i was asked to compare the 2 results .
figure();
mesh(G);
figure();
mesh(G_fft);
The problem here is that in the first case (mesh(G)) i am getting a big edge(which i dont know if its right) and in the second case i am getting this error : X, Y, Z, and C cannot be complex. (problem in the line mesh(G_fft) because G_fft has complex numbers due to fourier transform).
Can comeone tell me what is wrong here?
  댓글 수: 1
Gn Gnk
Gn Gnk 2020년 12월 7일
This is what i get using mesh() for ploting the Gaussian function

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

채택된 답변

VBBV
VBBV 2020년 12월 7일
편집: VBBV 2020년 12월 7일
%true
sigma=0.7;
nx=9;
ny=9;
[x,y]=meshgrid(-nx:0.5:nx,-ny:0.5:ny);
G=(0.5./(pi.*(sigma.^2))).*exp(-0.5.*((y.^2+x.^2)./(sigma.^2)));
G_fft=fft2(G);
figure(1);
mesh(x,y,G);
figure(2);
mesh(x,y,abs(G_fft));
Use both positive and negative values for meshgrid to get Gaussian shape as above. Use also _abs_instead of real value e
  댓글 수: 1
Gn Gnk
Gn Gnk 2020년 12월 7일
Perfect thank you so much !!
Just a quick notice :
nx and ny should be equal to 2 in order for G to be 9x9 .
Can you explain why the plots appear to be opposite (i think)

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Surface and Mesh Plots에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by