Annotation of embedaddon/ntp/scripts/stats/loop.awk, revision 1.1.1.1
1.1 misho 1: # awk program to scan loopstats files and report errors/statistics
2: #
3: # usage: awk -f loop.awk loopstats
4: #
5: # format of loopstats record
6: # MJD sec time (s) freq (ppm) poll
7: # 49235 3.943 0.000016 22.4716 6
8: #
9: # format of output dataset (time values in milliseconds, freq in ppm)
10: # loopstats.19960706
11: # loop 1180, 0+/-11.0, rms 2.3, freq -24.45+/-0.045, var 0.019
12: #
13: BEGIN {
14: loop_tmax = loop_fmax = -1e9
15: loop_tmin = loop_fmin = 1e9
16: }
17: #
18: # scan all records in file
19: #
20: {
21: if (NF >= 5) {
22: loop_count++
23: if ($3 > loop_tmax)
24: loop_tmax = $3
25: if ($3 < loop_tmin)
26: loop_tmin = $3
27: if ($4 > loop_fmax)
28: loop_fmax = $4
29: if ($4 < loop_fmin)
30: loop_fmin = $4
31: loop_time += $3
32: loop_time_rms += $3 * $3
33: loop_freq += $4
34: loop_freq_rms += $4 * $4
35: }
36: } END {
37: if (loop_count > 0) {
38: loop_time /= loop_count
39: loop_time_rms = sqrt(loop_time_rms / loop_count - loop_time * loop_time)
40: loop_freq /= loop_count
41: loop_freq_rms = sqrt(loop_freq_rms / loop_count - loop_freq * loop_freq)
42: printf "loop %d, %.0f+/-%.1f, rms %.1f, freq %.2f+/-%0.3f, var %.3f\n", loop_count, (loop_tmax + loop_tmin) / 2 * 1e6, (loop_tmax - loop_tmin) / 2 * 1e6, loop_time_rms * 1e6, (loop_fmax + loop_fmin) / 2, (loop_fmax - loop_fmin) / 2, loop_freq_rms
43: }
44: }
45:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>