proper fft of interpolated signal
if you have a 1MHz input, low distortion, constant frequency, constant amplitude (otherwise I guess a validation makes no sense).
on a 10MHz sampling rate all you will see is:
* modified DC (bin 0)
* modified fundamental (1MHz, bin 1.000.000)
* modified overtones: 2MHz, 3MHz, 4MHz (bins: 2.000.000, 3.000.000, 4.000.000)
That´s all. No other bins are of interest.
A distortion of an 1MHz sine will cause integer multiples, so 2.000.000 Hz, (not: 1.999.999 Hz or 2.000.001 Hz).
So these are exactly 5 bins out of 5 million!!
All the other bins contain: voltage noise, frequency noise (jitter), quantisation noise, mathematical errors, your interpolation errors, maybe regulation loop operation and other artefacts.
examples:
* if you see a significant signal at 123.456 Hz there will be something wrong. It´s not caused by the input signal at all.
* If you see 1.999.923 Hz instead of 2.000.000 Hz then there will be a different problem
* If you see 1.999.923 Hz additionally to the 2.000.000 Hz then there may be a regulation loop problem (77kHz sideband caused by modulation)
So for general distortions you just need 5 bins. You don´t need a crazy “1Hz frequency resolution”. Theretically you could go with a 1MHz frequency resolution.
In real world you will see “signal” in all the other 4.999.995 bins. But I guess you can gain about no information from this.
A lot of effort, but mainly useless.
Even worse:
Because of the “interpolation” you create a lot of noise (signals in other bins, as well as phase and amplitude erros in your wanted bins). Are you able to differentiate where the signals come from?
And even more worse:
If you don´t use a sampling frequency that is an exact integer number of your test signal, then you get chaotic results.
In this case one usually tries to “improve” a little by applying a windowing function (mathematical) on the FFT´s input data. But then every single frequency looks like “spread spectrum- ed” –> it will not use a single frequency bin, but a lot of neighbouring bins.
You need a lot of experience to interprete the results of the FFT. Indeed you need a lot of experience to get useful results from the FFT in frst hand.
It´s like trying a dog to control a F1 car. A F1 car can be a lot of fun, but it first needs to understand some theory and a lot of experience. Experience gained step by step.
**
I don´t want to discourage you, in no way. An FFT is an ingenious instrumet to analyze things. But you need to understand
* how to prepare the input data properly
* what to expect from the results
* how to get the results
* how to interprete the results.
Let´s imagine I want to go your way. I guess it takes me weeks of of frustration .. because the results will not be as ideal as I expect them to be. In the end I will give up. … or lower my expectations and live with more realistic data.
More realistic, that could be obtained by much less effort within hours.
So if you see a benefit: go your way. I still try to support you with informations regarding FFT data and interpretation. But I´m not experienced with your FFT library.
Klaus
Read more here: Source link
