Fourier Transform of Gaussian Kernel in Matlab
7 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi everyone,
I need your help!
I was reading a document on Discrete Fourier Transform and found the following example:

Here's the mentioned gaussian kernel:
g_k = (1/256)*[1 4 6 4 1;...
4 16 24 16 4;...
6 24 36 24 6;...
4 16 24 16 4;...
1 4 6 4 1];
As can be seen, the size of g_k or g(x,y) is 5 x 5 - while the size of G(u,v) is around 380 x 450
Can you please show me the Matlab code that can generate the above G(u,v) image or result?
0 commentaires
Réponse acceptée
Matt J
le 12 Avr 2022
Modifié(e) : Matt J
le 12 Avr 2022
If you download gaussfitn from
then you can do,
g0=[1 4 6 4 1]';
params=gaussfitn((-2:2)',g0,[],{0,[],0},{0,[],0});
[A,mu,sig2]=deal(params{2:4});
sig=1/2/pi/sqrt(sig2);
fun=@(x) exp(-(x/sig).^2/2);
Gu=fun(linspace(-6*sig,+6*sig,450));
Guv=imresize(Gu'*Gu,[380,450]);
imshow(Guv);
0 commentaires
Plus de réponses (1)
Matt J
le 12 Avr 2022
One could also do as below. This gives only an approximately Gaussian spectrum, however,
g_k = (1/256)*[1 4 6 4 1;...
4 16 24 16 4;...
6 24 36 24 6;...
4 16 24 16 4;...
1 4 6 4 1];
Guv=fftshift( abs(fft2(g_k,380,450)) );
imshow(Guv)
7 commentaires
Voir également
Catégories
En savoir plus sur Image Processing Toolbox dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!




