I am getting a high frequency at 0Hz. How can I remove it? I am not supposed to get it.

My code is

W = 3.64*2*pi;

Fs = 50;                      % Sampling frequency in hz
T = 1/Fs;                     % Sample time
L = 1000;                     % Length of signal
t = (0:L-1)*T;                % Time vector
v = 113*(1+0.40*sin(W*t));

theta0 = 12*(pi/180);         % in radians for 12 degree
theta1 = 6*(pi/180);          % in radians for 6 degree
theta = theta0-theta1*sin(W*t);

Lift = 0.5*1.225*v.^(2)*(2*pi).*theta;

NFFT = 2^nextpow2(L);         % Next power of 2 from length of Lift
Y = fft(Lift,NFFT)/L;
f = Fs/2*linspace(0,1,NFFT/2+1);


plot(f, 2*abs(Y(1:NFFT/2+1))) 
  • $\begingroup$ Small hint. I suggest you to use dec2rad function for conversion to radians. $\endgroup$
    – jojek
    May 12, 2014 at 7:19

1 Answer 1


Frequency bin at zero is simply mean value of your signal. Just take a look on definition of DFT, for zero frequency $k$ we get:

$$\left. X[k]=\sum_{n=0}^{N-1}x[n]e^{-i 2\pi n\cdot k} \right |_{k=0} \Rightarrow X[0]=\sum_{n=0}^{N-1}x[n]e^{-i 2\pi n\cdot 0} = \sum_{n=0}^{N-1}x[n] $$

So after you calculate the FFT and divide by number of samples, indeed you get the mean value of your signal. In order to remove that, please apply the following before the FFT calculation:

Lift = Lift - mean(Lift);
  • $\begingroup$ It worked. But I don't understand the concept of this frequency bin. Can you explain if possible? $\endgroup$
    – Vinlite
    May 12, 2014 at 6:53
  • 1
    $\begingroup$ @Vinlite: Please check the updated post. $\endgroup$
    – jojek
    May 12, 2014 at 6:55

Not the answer you're looking for? Browse other questions tagged or ask your own question.