This is what i get using mesh() for ploting the Gaussian function
How to create and plot a Gaussing function?
16 views (last 30 days)
Show older comments
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?
Accepted Answer
VBBV
on 7 Dec 2020
Edited: VBBV
on 7 Dec 2020
%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
More Answers (0)
See Also
Categories
Find more on Surface and Mesh Plots in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!