www.gusucode.com > signal 案例源码程序 matlab代码 > signal/GaussianWindowAndTheFourierTransformExample.m

    %% Gaussian Window and the Fourier Transform
% This example shows that the Fourier transform of the Gaussian window is
% also Gaussian with a reciprocal standard deviation. This is an
% illustration of the time-frequency uncertainty principle.

% Copyright 2015 The MathWorks, Inc.


%%
% Create a Gaussian window of length 64 by using |gausswin| and the
% defining equation. Set $\alpha = 8$, which results in a standard
% deviation of 64/16 = 4. Accordingly, you expect that the Gaussian is
% essentially limited to the mean plus or minus 3 standard deviations, or
% an approximate support of [-12, 12].

N = 64;
n = -(N-1)/2:(N-1)/2;
alpha = 8;

w = gausswin(N,alpha);

stdev = (N-1)/(2*alpha);
y = exp(-1/2*(n/stdev).^2);

plot(n,w)
hold on
plot(n,y,'.')
hold off

xlabel('Samples')
title('Gaussian Window, N = 64')

%%
% Obtain the Fourier transform of the Gaussian window at 256 points. Use
% |fftshift| to center the Fourier transform at zero frequency (DC).

nfft = 4*N;
freq = -pi:2*pi/nfft:pi-pi/nfft;

wdft = fftshift(fft(w,nfft));

%%
% The Fourier transform of the Gaussian window is also Gaussian with a
% standard deviation that is the reciprocal of the time-domain standard
% deviation. Include the Gaussian normalization factor in your computation.

ydft = exp(-1/2*(freq/(1/stdev)).^2)*(stdev*sqrt(2*pi));

plot(freq/pi,abs(wdft))
hold on
plot(freq/pi,abs(ydft),'.')
hold off

xlabel('Normalized frequency (\times\pi rad/sample)')
title('Fourier Transform of Gaussian Window')