How to create and plot a Gaussing function?

16 Ansichten (letzte 30 Tage)
Gn Gnk
Gn Gnk am 7 Dez. 2020
Kommentiert: Gn Gnk am 7 Dez. 2020
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 Kommentar
Gn Gnk
Gn Gnk am 7 Dez. 2020
This is what i get using mesh() for ploting the Gaussian function

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

VBBV
VBBV am 7 Dez. 2020
Bearbeitet: VBBV am 7 Dez. 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
  1 Kommentar
Gn Gnk
Gn Gnk am 7 Dez. 2020
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)

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by