DSPRelated.com
Forums

Discrete Fourier Transform of a signal containing only dirac impulses

Started by mirc...@gmx.ch September 21, 2006
It's perhaps a silly question, but I don't see what I'm doing wrong. I'm trying to calculate the FT of a signal containing only dirac impulses. To avoid aliasing I first low pass the signal with a Butterworth filter (should I take another one?) and than use the matlab function "fft" to transform the signal. Here an example:

%The signal with two pulses:
x=[zeros(1,1000) 1 zeros(1,800) 1 zeros(1,199)];
tStep^-3;
t=-1000*tStep:tStep:1000*tStep;

%Filtering the signal with a butterworth filter
[b,a] = butter(10,0.8);
y = filter(b,a,x);

% The fourier transformation
Yt(y);
f=1/tStep*(0:round(length(Y)/2))/(length(Y));
semilogy(f,abs(Y(1:round(length(Y)/2)+1)))
ylim([10^-4 10^1]);
xlim([100 200]);

I'm not sure if this is correct: If I do the FFT of the same signal without the low pass filtering first, like this:
%The signal with two pulses:
x=[zeros(1,1000) 1 zeros(1,800) 1 zeros(1,199)];
tStep^-3;
t=-1000*tStep:tStep:1000*tStep;

% The fourier transformation
Xt(x);
f=1/tStep*(0:round(length(X)/2))/(length(X));
semilogy(f,abs(X(1:round(length(X)/2)+1)))
ylim([10^-4 10^1]);
xlim([100 200]);
the result seames to be the same! Where is the aliasing? What is the error in my reasoning?

Thank you for your help!

Mirco