Forums

plotting FFT in matlab

Started by novis August 12, 2008
suppose f(x)=exp(-x^2) then it's fourier transform is also
exponential. I'm trying to perform FFT and plot it. I'm using this but
it is not showing exponential behavior. please help  me with plotting
the FFT

x=-10:0.01:10;
y=exp(-x.^2);
N=5000;
z=fft(y,N);
F=[-N/2:N/2-1]/N;
plot(F,z,'b');
>suppose f(x)=exp(-x^2) then it's fourier transform is also >exponential. I'm trying to perform FFT and plot it. I'm using this but >it is not showing exponential behavior. please help me with plotting >the FFT > >x=-10:0.01:10; >y=exp(-x.^2); >N=5000; >z=fft(y,N); >F=[-N/2:N/2-1]/N; >plot(F,z,'b'); >
First of all, your z is complex, so using a simple plot command is going to give you a warning (I have 2008b, I don't remember how older MATLAB behaves). Next, to get the "standard" view, with 0 Hz in the middle, you should apply an fftshift to whatever component you want to view, e.g., plot(F, real(fftshift(z)), 'b'). If you plot the absolute value of z (abs(fftshift(z))), you'll get a similar exponential shape, btw. Mark
On Aug 12, 11:46&#2013266080;am, novis <stands...@gmail.com> wrote:
> suppose f(x)=exp(-x^2) then it's fourier transform is also > exponential. I'm trying to perform FFT and plot it. I'm using this but > it is not showing exponential behavior. please help &#2013266080;me with plotting > the FFT > > x=-10:0.01:10; > y=exp(-x.^2); > N=5000; > z=fft(y,N); > F=[-N/2:N/2-1]/N; > plot(F,z,'b');
Gaussian.
>(I have 2008b, I don't remember how older MATLAB behaves).
That would be 2008a, not b. Mark
On Tue, 12 Aug 2008 08:46:37 -0700 (PDT), novis <standshik@gmail.com>
wrote:

>suppose f(x)=exp(-x^2) then it's fourier transform is also >exponential. I'm trying to perform FFT and plot it. I'm using this but >it is not showing exponential behavior. please help me with plotting >the FFT > >x=-10:0.01:10; >y=exp(-x.^2); >N=5000; >z=fft(y,N); >F=[-N/2:N/2-1]/N; >plot(F,z,'b');
Hi novis, Try the following: clear, clc x = -3:0.1:3; y = exp(-x.^2); figure(1) subplot(3,1,1) plot(x, real(y), '-bo', 'markersize', 2) subplot(3,1,2) plot(x, imag(y), '-bo', 'markersize', 2) N = 1024; z = fft(y,N); Mag = abs(z); Mag_shifted = fftshift(Mag); F = [-N/2:N/2-1]/N; subplot(3,1,3) plot(F, Mag_shifted, 'b'); [-Rick-]