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
Discrete Fourier Transform of a signal containing only dirac impulses
Started by ●September 21, 2006