New version available for download here -
https://www.ianjohnston.com/WinGPIB/ or via the app itself.
WinGPIB_V5_013.zip WinGPIB_V5_014.zip WinGPIB_V5_015.zip WinGPIB_V5_016.zip WinGPIB_V5_017.zip WinGPIB_V5_018.zip WinGPIB_V5_019.zip WinGPIB_V5_020.zip WinGPIB_V5_021.zip WinGPIB_V5_022.zip WinGPIB_V5_023.zip WinGPIB_V5_024.zip
[Virus scanned using BitDefender AntiVirus]
Need help installing, upgrading or moving to a new PC, then see instructions in Post #1
WinGPIB is for non-commercial use only, contact me if you wish to use it in your business environment.
V5.013 - Playback Chart and Data tab GUI tweaks
V5.014 - Playback Chart Allan Deviation plot added (an attempt anyways!)
V5.015 - Playback Chart bug fixes and some Allan Deviation plot tweaks
V5.016 - Additional Allan Deviation feature added
V5.017 - Playback Chart bug fixes
V5.018 - Added MDEV option to Allan Deviation pop-up
V5.019 - Allan Deviation slight tweak
V5.020 - Playback Chart HELP button text re-done
V5.021 - Live Analysis chart freeze/reset fix, square corners applied app-wide, Allan Deviation axis/help polish
V5.022 - Added additional option on Playback Chart for Tempco
V5.023 - Playback Chart GUI tweak
V5.024 - Another Playback Chart PPM/DegC mode added
Allan Deviation:Allan Deviation shows how a device's average reading settles down as you average over longer spans (tau), instead of one STDEV number for the whole file.
Formula (frequency-data form): split readings into blocks of length tau, average each block, then take RMS of the differences between consecutive block averages:
sigma(tau) = sqrt[ 1/(2(M-1)) * sum( (Ybar[k+1] - Ybar[k])^2 ) ]New "Overlapping (smoother tail)" checkbox: instead of disjoint blocks, slides a tau-length window one sample at a time and compares windows tau apart:
sigma(tau) = sqrt[ 1/(2(N-2tau+1)) * sum( (Ybar[i+tau] - Ybar[i])^2 ) ]Overlapping reuses every sample many times, so it gives a much smoother curve at large tau from the same data (points aren't fully independent, but this is standard practice, e.g. NIST's Stable32 uses it by default).
Result is plotted as ppm of the device's overall mean, log-log axes, rounded to whole decades. Falling = short-term noise averaging out. Flat = noise floor, more averaging won't help. Rising = long-term drift, averaging longer makes it worse. Each device also gets a dashed "Ideal" line (slope -1/2, anchored to its own first point) showing pure white-noise behavior for comparison - not a hard limit, just a reference.
Screenshot shows example dual logged original data and the corresponding Allan Deviation plots.I ran a 228-minute log comparing an HP 3458A (drift issues) against a Keysight 34461A, then looked at Allan Deviation for both.
Both units start close to their ideal white-noise line at short τ, but by τ≈10–30 samples they've both already leveled off around 0.1 ppm — a flicker-noise floor. Worth noting neither one stays purely random for long; the departure from ideal starts almost immediately, meaning there's some non-white noise contribution even short-term.
The interesting split shows up past τ≈300–500: the 3458A climbs steadily toward ~0.9 ppm by τ≈3000 — classic long-term drift, matching the visible step-like shifts in its raw trace over the run. The 34461A instead dips down to ~0.03 ppm in that same range before an uptick at the very last point — over this particular file, it's holding up better long-term than the 3458A. (Standard caveat: the last couple of points on any Allan deviation curve are the least trustworthy — only a handful of independent samples remain to average at that τ, so I wouldn't over-read that final uptick.)
Also ran MDEV (Modified Allan Deviation) alongside ADEV for both — they track each other closely rather than diverging, which tells you the noise here is dominated by ordinary amplitude/frequency noise and drift, not phase/timing jitter. If there were significant phase noise in the mix, MDEV would run visibly steeper than ADEV at short τ; it doesn't here.
Ian.