FreeCalypso > hg > freecalypso-reveng
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); +}