I am processing data which was put through a low pass filter at some point. Looking at the FFT, I can see that it is less than the Nyquist rate. I am trying to filter another set of data so that the spectral content will be better matched.

Is there a good way to calculate the cutoff frequency or bandwidth of data? I know I can just look at the FFT and eyeball it, but I would like to be able to do this repeatedly for different sets of data. I am using MATLAB, so any included functions could be useful.

One thought I had was to smooth out the spectrum data and apply thresholds to detect the upper and lower ends of the crossover region. This could definitely work, but I feel like there should be a more elegant solution out there.

Here are some example plots of the entire spectrum, and zoomed in on the knee. All of the data files have similar spectra, but with different sampling rates and different cutoff frequencies.

spectrum spectrum_zoom

  • $\begingroup$ Can you post a sample plot? $\endgroup$
    – Phonon
    Jun 6 '14 at 17:48
  • $\begingroup$ @Phonon Added some plots $\endgroup$
    – David K
    Jun 6 '14 at 18:20

Your Answer

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

Browse other questions tagged or ask your own question.