has anyone ever done really low frequency FFT on this type of data?
Genuine question (isn't it sad when I have to say that to try and not come off as sarcastic?). What would you hope to see fall out of that?
Maybe if I explain what I expect to be seeing from the data, you can help me understand what else I might be able to extract.
I have 5 elements.
The voltage source is the LM339 + scaling to bring it up to 10V as found in a HP3478a. I've popped the top off, hooked a 1:1 scope probe to C430 & C431 to get 10V and have that probe connected to the input of the 3457a. The top is sitting back on the meter to restrict air circulation (although this one has perforated sides in any case).
The logging setup is logging 2 x 3478a, 1 x 3457a & 3 Dallas DS18B20 thermometers. For the purposes of this exercise the logging on the 3478a(s) is irrelevant, but it's still happening so I'll detail it as part of the algorithm.
The meters are all set up at max resolution and NPLC (100 for the 3457a & 10 for the 3478a) and the thermometers are in 12bit mode (0.0625C) resolution.
The logging routine triggers all 3 meters with a GET, triggers the conversion on the Dallas sensors and then enters the data collection routine.
The data collection routine waits on an SRQ, performs a serial poll of the 3 meters and then retrieves waiting data. If a 3478a is complete and the 3457a isn't, the 3478a is re-triggered. This loop runs until data is available on the 3457a. The loop then waits for either 3478a that has an outstanding conversion to complete and returns.
This is a hangover from an earlier experiment I had where I was making as many conversions on the 3478a as I could between 3457a conversions (~8 or 9) and averaging those conversions.
When the 3457a is ready, it's output buffer is read, SRQ mask set to 0 and the HIRES register read. Provided a valid output buffer and valid HIRES read completes, the returned values are converted to 32 bit integers and the HIRES applied. My float routines are singles, and although the meter returns floats natively I was running out of resolution using float math, so I put some fixed scaling in place based on a 10V scale to get a more accurate numeric representation (with the understanding that those numbers are effectively meaningless but I wasn't corrupting the last meaningful digit from the meter with bad math).
This whole routine averages a cycle time of 5.xx seconds. I'm recording the raw output register, hires register, float converted value & fixed point converted value. On the graphs posted here I'm using the fixed point converted value, which is 2 decimal points greater in resolution than the meter is actually capable of (meter is 7.5 digits and resulting calculations are over 9 digits), resulting in some of the noise on the plots.
The whole point of the exercise was to try an ascertain whether it was the voltage source, or the measuring device that was drifting thermally.
Looking at the graphs, the voltage drift visually correlates with the 3457a internal temperature, and last night I put a 50W halogen over the 3478a to add 10 degrees to its internal temperature and the voltage didn't move (it has been raining here so the ambient temperature has stabilised over the last 24 hours). So I *think* I'm confirming my theory that the 3457a is drifting more than the source voltage when exposed to significant thermal excursions. That is not the result I was hoping for, but the one I was expecting.
Although initially my naive and emotional thought was that the meter is faulty. Having a look at the measurement path, and the specs in the service manual. Even if the internal reference is extremely well compensated, there is enough other hardware there which would be extremely difficult to compensate/match that what I'm seeing is probably quite reasonable under the circumstances. If I've read the manual correctly and done my calcs right (never a given) then it's well within specification anyway.
Given the voltage swing curve fairly well follows the internal temperature curve I'm now starting to wonder what external compensation I might be able to apply to those numbers and whether that might be a valid thing to attempt.
I'm now wondering if I set a tent up in the office with a low-inertia thermostatically controlled oil column heater and put the whole measurement stuff in there when I'm actually doing measurements. That would work in Winter as I could easily stabilise it at 23C (TCal for the meter). Summer might be more of a challenge.
This has been an interesting process. Once I figure out what I'm actually doing, and trying to achieve it'll probably be of more use.
I'm not chasing accuracy or sub-ppm stability, but I *am* trying to get a better understanding of what my gear is doing and ultimately capable of. What might I see from an FFT over these data sets given most of the swing seems to be ambient related. Can you do an FFT of the weather and get usable data?