Estoy tratando de escribir mi propio código Matlab para muestrear una función gaussiana y calcular su DFT, y hacer un gráfico de la forma de onda gaussiana temporal y su transformada de Fourier.
Según el par FT:
\ $ e ^ {- at ^ 2} \ iff \ sqrt {\ frac {\ pi} {a}} e ^ {- \ pi ^ 2 \ nu ^ 2 / a}, \ $
El FT de un gaussiano es un gaussiano, y también debería ser una función real .
Así que aquí está mi gráfica:
Entonces, ¿por qué mi FT es una línea plana en lugar de ser gaussiano?
¿Y por qué es que cuando grafico el argumento de la DFT, la parte imaginaria es distinta de cero? ¿No debería ser real el FT?
Cualquier ayuda sería muy apreciada.
Aquí está mi código:
clear; clf; clc;
a=5;
n=50; % Length of DFT
k=[-n:1:n];
x=exp(-a.*k.^2); % Gaussian function
subplot(221);
plot(k,x);grid;
axis([1.5,n,-max(-x),max(x)]);
xlabel('Data waveform');
hold on; plot(k,x,'o'); hold off;
xx=fft(x)/n;
subplot(222);
plot(k, abs(xx));grid;xlabel('Transformed, magnitude');
axis([1,n,0,1]);
hold on; plot(k,abs(xx),'o'); hold off;
subplot(223);
plot(k, real(xx));grid;xlabel('Transformed, real');
hold on; plot(k, real(xx), 'o'); hold off;
axis([1,n,-1,1]);
subplot(224)
plot(k,imag(xx)); grid;
axis([1,n,-1,1]);
xlabel('Transformed, imaginary');
hold on; plot(k, imag(xx), 'o'); hold off;
figure(gcf);