I have a signal and I'm interested in identifying the dominant frequencies greater than 1/3600 Hz. To do this, I use Fast Fourier Transforms and examine the locations of the peaks in the frequency domain, which reveals that the largest peaks are below this frequency. As a noob, it seems like there are two potential options:

  1. Simply ignore the FFT results outside my desired range and focus on my region of interest.
  2. Filter the signal (e.g., with a Butterworth high-pass filter) before I perform the FFT.

What are the pros and cons of these approaches? Is there a third (or fourth, fifth, sixth...) option that is better than both of these methods at achieving my goal?


enter image description here

  • 1
    $\begingroup$ Not sure I understand your question correctly, you are only interested in identifying the dominant frequencies. If this is the case, you can restrict the search for the dominant frequency on the region of interest ( so case 1).The cons of filtering would be an additional step, so from this perspective there is no gain in filtering your signal in advance. $\endgroup$ – Irreducible Oct 1 '19 at 11:54
  • $\begingroup$ @Irreducible Great, thanks! I guess my concern was whether performing the FFT on the full shebang rather than a pared down signal would somehow affect my results when looking in just a small region with peaks that are relatively small in magnitude compared to the low frequency peaks, but it sounds like that's not the case. Thanks again for your help! $\endgroup$ – Lyngbakr Oct 1 '19 at 12:05
  • 1
    $\begingroup$ actually, it depends. you can gain by prefiltering. Leakage from strong signals can mask weaker signals several bins away. A low order filter could help. You haven’t mentioned what kind of window you use. Without seeing your data, no one can really say one way or another $\endgroup$ – user28715 Oct 1 '19 at 13:33
  • $\begingroup$ @StanleyPawlukiewicz Thanks for your comment. I've added a plot of the data and don't use a window, but rather the full time series. $\endgroup$ – Lyngbakr Oct 3 '19 at 12:35
  • 1
    $\begingroup$ @Lyngbakr i would prefilter. nothing radical, a 4 tap FIR filter should do much. the idea isn’t to demolish the low frequencies but to flatten the entire spectrum a bit. $\endgroup$ – user28715 Oct 3 '19 at 13:25

As the comments say: it really depends on your signals. If the energy in the "don't care" region is significantly larger than the energy at the frequency of interest, it's helpful to pre-filter it first. Otherwise you may see "spectral leakage" of the high energy components into your target area.

On the downside: the pre-filter will affect the group delay the transient response of your overall system.

This being said: if the filter is not too steep and the cutoff frequency not too close to your target frequencies, pre-filtering is generally a good idea. The pre-filtering is much cheaper than the FFT, so it have almost no impact on CPU or memory requirements.

| improve this answer | |
  • $\begingroup$ Thanks, Hilmar. So, if I filter for a particular frequency range beforehand that would eliminate the spectral leakage associated with peaks in that range and prevent it from impacting my target area, right? $\endgroup$ – Lyngbakr Oct 2 '19 at 17:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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