I'm taking burst measurements followed by FFT analysis and have noticed an apparent imprecision in burst measurement timing. In the following example, I'm taking a 8192 point sample with 521 microseconds between each measurement. That 8192 point array is then processed using FFTSpa into a 4096 point array. By my calculations (calculations which have been working for smaller samples with much larger bin sizes for years), this gives a bin spacing of 0.2343 Hz.
I'm measuring the AC magnetic field, and I'm noticing that several signals and harmonics of known frequencies are showing up with slightly higher peaks than expected. Here are a few examples from an average of 10 of these FFTs. The bin frequency is on the left, with the real component of the FFT value for that bin on the right. These are a few bins around the 360 Hz, 420 Hz, and 540 Hz harmonics of the 60 Hz power line signal, as well as bins around a 380 Hz signal emanating from a large testing coil in our lab.
The samples were processed through a Kaiser filter before the FFT was applied, which explains the width of the FFT results.
Frequency (Hz) FFT real component (mV)
359.8848 0.1620043
360.1191 0.4728214
360.3534 0.6687906
360.5877 0.4763885
360.822 0.1561748
379.8003 0.1088725
380.0346 0.3416967
380.2689 0.5107554
380.5032 0.3775212
380.7375 0.1309946
419.8656 0.02084613
420.0999 0.0783665
420.3342 0.139572
420.5685 0.1265392
420.8028 0.05741018
421.0371 0.01182784
540.0615 0.001485316
540.2958 0.004277254
540.5302 0.006073155
540.7645 0.004485478
540.9987 0.001650237
Glancing at the numbers shows that the peak values fall later and later than expected in the spectrum as we progress to higher frequencies. In fact, using the 380 Hz signal - which is rather nicely centered in this result around the 380.2689 bin - as a guideline, I estimate a timing/frequency error of approximately 0.1% - multiplying the calculated frequency bins by 0.999 moves each of the peaks to a much more logical location.
With that long explanation - any thought on what could be causing this, or any potential solution? If every CR1000 had this identical problem, I could just correct as explained, but my concern would be different timing errors in different dataloggers. Any suggestions?
I'm using OS17, if you're curious.
Thanks,
Benjamin
This should not happen. Can you please show us what instruction you are using to do the burst measurement and also confirm whether the datalogger compiles the program in pipeline mode or sequential mode, please.