Im new to dsp related stuff and fft. My problem is that i have low
frequency data that i want to analyze.
Assume a time signal like this which has time length of 1 sec.
Normaly my fft gives me results that my fundamental frequencies are below
1 Hz. My question is now how can i get those low frequencies, lets say in
the range of 0.1 Hz - 1Hz? Has this something to do with up and
downsampling? And if so how is it done?
Thanks and regards for any information.
This message was sent using the Comp.DSP web interface on
Reply by Jerry Avins●August 15, 20052005-08-15
> Im new to dsp related stuff and fft. My problem is that i have low
> frequency data that i want to analyze.
> Assume a time signal like this which has time length of 1 sec.
> / \
> ---/ \---
> Normaly my fft gives me results that my fundamental frequencies are below
> 1 Hz. My question is now how can i get those low frequencies, lets say in
> the range of 0.1 Hz - 1Hz? Has this something to do with up and
> downsampling? And if so how is it done?
> Thanks and regards for any information.
An FFT gives results that are consistent with the signal's being
repeated indefinitely, with exactly one period having been given. The
lowest frequency that can be represented by a second's worth of data is
1 Hz. To reveal anything about 1/2 Hz, requires two second's worth of
data, and so on. An FFT will have a zeroth result that gives the DC (or
average of all the samples). Some of the actual signal energy at
frequencies below one Hz will find it's way there simply because
fractional cycles of sinusoids have a non-zero average value. Without
data spanning a longer interval, there's no way to know what they are.
With only one second's worth of data, the next higher result of a
correct FFT will be nominally about one Hz. (Here, I ignore "spectral
Engineering is the art of making what you want from things you can get.
Reply by Ikaro●August 15, 20052005-08-15
When doing FFT analysis there are two main things you have to consider:
1) the maximum frequency that you can represent based on your sampling
2) the frequency resolution
The maximum frequency you can analyze in the FFT is equal to half your
sampling frequency. If you want your frequency range to be between
0-1Hz than you have to sample your signal at *at least* 2Hz (in
practice however you should sample it at 5 Hz). ***Make sure you filter
your signal with a low-pass filter with cut-off equal to your sampling
frequency before sampling it in order to avoid aliasing***.
The frequency resolution depends on your frequency range and how long
you sample your signal for. If your range is from 0-1 Hz and you want a
sampling resolution of 0.1 Hz, than you will need 2*10 =20 samples
(the frequency spectrum is symetrical). Sampling at 5 Hz, this will
require: 20/5= 4 seconds of data.
There will always be this trade-off between time and frequency
resolution...if you want to have better frequency resolution using the
FFT, you will need to sample your signal for a longer time.