How to create and plot a Gaussing function?

14 次查看(过去 30 天)
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?

采纳的回答

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