// // t2f -- Convert time to frequency. // // - Input is a file of progressive time difference (phase) readings. // - User gives sample period, in order to compute relative frequency error. // - User gives nominal frequency, in order to compute absolute frequency. // - Output is frequency series (absolute frequency). // // 16-Mar-2010 Tom Van Baak (tvb) www.LeapSecond.com/tools // #include #include void main (int argc, char *argv[]) { char line[1000]; long n; double f0, tau0; if (argc < 3) { fprintf(stderr, "Usage: %s [f0] [tau0]\n", argv[0]); exit(0); } f0 = atof(argv[1]); tau0 = atof(argv[2]); fprintf(stderr, "** f0 %lg\n", f0); fprintf(stderr, "** tau0 %lg\n", tau0); for (n = 0; fgets(line, sizeof line, stdin) != NULL; n += 1) { double t0, ti = atof(line); if (n > 0) { double fe = (ti - t0) / tau0; double f = f0 * (1.0 + fe); printf("%.15le\n", f); } t0 = ti; } }