diff miscprog/osmo2psi.c @ 222:63c5bb42eca5

osmo2psi test program written
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 23 Nov 2017 22:24:18 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/miscprog/osmo2psi.c	Thu Nov 23 22:24:18 2017 +0000
@@ -0,0 +1,34 @@
+/*
+ * This test program seeks to help figure out the mapping between OsmocomBB's
+ * AFC_SLOPE constant and the Psi constants used by TI's AFC implementation,
+ * as our fc-rfcal-vcxo tool would compute them from CMU200 measurements.
+ */
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+main(argc, argv)
+	char **argv;
+{
+	int afc_slope;
+	float lin_a;
+	float Psi_sta, Psi_st;
+
+	if (argc != 2) {
+		fprintf(stderr, "usage: %s osmo-afc-slope\n", argv[0]);
+		exit(1);
+	}
+	afc_slope = atoi(argv[1]);
+	lin_a = (float)afc_slope / 32768.0f * 898.0f;
+
+	/* Psi computations */
+	Psi_sta = 2.0f * (float)M_PI * lin_a / 270833.0f;
+	Psi_st = Psi_sta * 0.8f;
+
+	printf("Psi_sta_inv = %u\n", (unsigned)(1.0f / Psi_sta));
+	printf("Psi_st = %u\n", (unsigned)(Psi_st * 65536.0f));
+	printf("Psi_st_32 = %u\n", (unsigned)(Psi_st * 65536.0f * 65536.0f));
+	printf("Psi_st_inv = %u\n", (unsigned)(1.0f / Psi_st));
+	exit(0);
+}