# Fourier Transform with logarithmic spacing?

I have a very long time series $$f(t)$$ (hours) dataset taken at a very high sample rate (250 MHz) and would like to understand its frequency structure at many different frequency scales (from milli-Hz to 100 MHz). Naively taking a Fourier transform of the whole data would give unnecessarily noisy results (too many points in frequency space) and would not be useful for looking at high frequency behavior. On the other hand, slicing the data up into chunks and taking shorter FFTs would give cleaner high frequency data, but then the low frequency behavior is lost.

I imagine what I would want to do is take a Fourier transform on a logarithmically spaced set of frequencies from 100 MHz to the milli-Hz scales (9 decades). This must be a problem which has been looked at before, so what are the most useful toolkits for dealing with such analysis?

Some ideas:

1. Taking a FFT of the entire dataset, then integrating regions of frequency space at high frequency to get better data fidelity there. This is straightforward, but seems clunky.
2. Take a spectrogram approach, where a 2D plot of (high frequency) vs time is made. Then take an FFT of the time axis to get a "high" frequency vs "low" frequency plot. This could be useful, but potentially also very complicated to understand.

What methods and toolkits exist out there to study this question?

• You might be able to do something with sparse Fourier transforms, I think these were designed for applications like this where you have very spread out frequency ranges of interest. Commented Jun 16, 2023 at 17:01

The constant Q transform essentially bins an FFT with a constant Q factor (i.e., fixed $$\delta q/q$$) which gives logarithmically spaced points in frequency space. This method is often used in audio pitch analysis because human frequency perfection is logarithmic in frequency, not linear.