For the past month I've been chasing the DFT/FFT rabbit. Along the way I've been cut-n-pasting the name of other rabbits to chase later: Autocorrelation, Phase Vocoder, Parabolic Approximation, Wavelet Transform
Here's my problem. When using an FFT, the lower frequencies are always going to be missing. I actually found the same problem described here: Problems with the FFT/IFFT
Frankly it is worse than that. The energy of these frequencies are not missing at all. They are dissolved into the first several bins, making these bins semi-useless for interpolation.
For now, I simply want a general approximation of the Low Frequencies, including amplitude and phase. In FFT terms, I want bin #0.05, 0.10, 0.15, 0.20, 0.25 ...up to say around bin 3.50. Realistically, I understand that anything to small, say 0.05, would almost amount to Linear Regression. But in my mind, 0.5 or 0.75 should be doable.
I even toyed with changing k to a double (which was 'cough' "interesting"): best window for close frequency components
When Moses came down from the mountain, he did not carry tablets of stone on which it was commanded that in the equation: F = k*(df) = k*sample_rate/N, that k has to be an integer.
Anyway, I've decided it is time to try something else. So, what rabbit should I chase next? (even if it is close approximation)
PS: recommending a bigger sample is not the answer - I'm already sampling my available limit.
Edited to add pics (hoping for a possible new answer):
Test Case (I want a Blue approximation, even if lousy):
Rectangle (of course, lousy Green and so-so Red):
Gaussian 3.0 (only Red can be Interpolated, but decent):
Smaller Gaussian gives a lousy Green Interpolation and decent Red.
Edited to answer general questions (I'm sorry I did not do this to begin with):
What's the mathematical description of the data in the plot? I'm guessing Sum of Sinusoids (with noise).
What's the sample rate? All of my samples are at different rates, as in, each entire file size is used. Rather than Hertz/periods/cycles, the measurements are in deserialized data units. Most often I work with 8-byte doubles, but sometimes 4-byte integers. Therefore, with doubles, you can say that my Fs = fileBytes/8
How many samples can you capture? One each per file.
What's the application? I have no clue - it's for a client.