10-20-2022 04:39 AM
Hello, hello,
I have a signal (on Y) at regular timed intervals (on X) but the time values have important jittering and also some missing points.
My signal processing brain is kind of rusty and I don't remember what tool I should use to extract frequencies from that.
Looking though the Advanced Analysis Library I don't see anything obvious...
Thanks
02-15-2023 08:10 AM
02-20-2023 09:16 AM
Thanks, but that uses an FFT which works only on evenly sampled data. I needed to do some things more complex than just find the frequency, so I eventually oversampled my data and then used standard libraries for signal processing (FFT, IIR, FIR, etc...)
02-20-2023 09:46 AM
I am surprised to see that you want to do an FFT on an unevenly-sampled signal.
For an FFT to be accurate, the frequency content of the samples must be accurate, this means the points must be samples at precise instances which is typically possible using hardware-timed sampling operations that are equally spaced.
An unevenly-sampled signal is typically software-timed and not typically accurately time-correlated. Just curious, where do you get this unevenly-sampled signal and how good is the timestamp for each sample such that you could rely on the FFT results?
02-20-2023 10:10 AM - edited 02-20-2023 10:14 AM
I do NOT want to do an FFT !
You can get accurate frequency from unevenly spaced samples, for instance if you use the Lomb-Scargle periodogram, but there's no function for that in CVI and I didn't find a working (and fast enough) C implementation. The Numerical Recipes implementation is assrotted.
In my case the 'time' component is not time but a magnetic field intensity, and there's a square root I need to take into account (quadratic). And some samples are missing or irregular. I still need to filter according to frequencies of the magnetic field. It works using a resampling (by a factor of 8 or so), but now we KNOW that our data taking method is too imprecise by a factor of 50... ***crying in my code and my hardware***