Return to loop.awk CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / ntp / scripts / stats |
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: