File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / ntp / scripts / stats / loop.awk
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue May 29 12:08:38 2012 UTC (13 years, 1 month ago) by misho
Branches: ntp, MAIN
CVS tags: v4_2_6p5p0, v4_2_6p5, HEAD
ntp 4.2.6p5

    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>