OpenBTS: Kalibrasi
Sumber: http://gnuradio.org/redmine/wiki/1/OpenBTSClockCalibration
About Kalibrator¶
If you don't have expensive laboratory equipment and you want to know accuracy of your USRP clock, you can use an application Kalibrator (Copyright (c) 2009 Joshua Lackey, Alexander Chemeris). Of cource you cannot achieve such precision measurement like with hi-tech lab equipment, but it's enough to find out modest clock calibration errors.
Latest version of Kalibrator today is 0.2 and is available here. Starting from the next update of OpenBTS Kalibrator will be distributed as a part of OpenBTS standard package. How it works¶
Kalibrator takes advantage of the existing real networks and their accuracy. So you need to be in range within some operator's BTS. You pass the downlink frequency of the previously scanned ARFCN as a command line parameter for Kalibrator. Using some math Kalibrator can estimate the value of frequency difference between the frequency it tunes USRP to and the frequency of a BTS working in +-200kHz range near that frequency. Building and running¶
To build Kalibrator with gnuradio 3.2.2 (ver. 3.1.3 is not currently supported) run 'make' and you will get binary file 'kal' which is ready for use.
Now you need to know which ARFCN is better to use. With any GPRS modem supporting AT commands it is possible to find an ARFCN with the strongest signal. Without such modem, you have to scan whole band by manual iteration through downlink frequencies (it can be inconvenient especially on 1800/1900 band). Search this file for specific downlinks all_gsm_channels_arfcn.txt. Suitable channels must have at least -70 to -80dBm strenght, else you got to much overruns and the result could be misguiding. That's just good to have more channels to scan to eliminate possible wrong error. There is an example of network scan from GPRS modem (offset values are added manually).
T-Mobile operator ================= at^moni Serving Cell I Dedicated channel chann rs dBm MCC MNC LAC cell NCC BCC PWR RXLev C1 I chann TS timAdv PWR dBm Q ChMod offset 58 53 -57 230 01 4358 719D 2 4 33 -106 48 I Limited Service -2197 Hz OK
at^monp chann rs dBm MCC MNC BCC C1 C2 offset 106 45 -65 230 01 7 40 40 -2507 Hz 75 37 -73 230 01 2 32 32 -2367 Hz 28 21 -89 230 01 4 16 16 N/A 80 17 -93 230 01 1 12 12 N/A
OK
Telefonica O2 operator ====================== at^moni Serving Cell Z I Dedicated channel chann rs dBm MCC MNC LAC cell NCC BCC PWR RXLev C1 I chann TS timAdv PWR dBm Q ChMod offset 86 59 -51 230 02 04BC 090B 1 3 33 -106 54 I Limited Service -2496 Hz
OK at^monp chann rs dBm MCC MNC BCC C1 C2 offset 114 47 -63 230 02 4 42 42 N/A 112 30 -80 230 02 7 25 25 N/A 93 19 -91 230 02 7 14 14 N/A
OK
Here is obvious how the values were obtained.
[openBTS@openBTS kal-0.2]# ./kal -f 946600000 -u USRP side: B FPGA clock: 52000000 Decimation: 192 Antenna: RX2 Sample rate: 270833.343750 average [min, max] (range, stddev) -2197.789062 [-2431, -1843] (588, 146.761444) overruns: 0 not found: 0
[openBTS@openBTS kal-0.2]# ./kal -f 956200000 -u USRP side: B FPGA clock: 52000000 Decimation: 192 Antenna: RX2 Sample rate: 270833.343750 average [min, max] (range, stddev) -2507.531006 [-2575, -2436] (139, 40.815132) overruns: 0 not found: 0
[openBTS@openBTS kal-0.2]# ./kal -f 950000000 -u USRP side: B FPGA clock: 52000000 Decimation: 192 Antenna: RX2 Sample rate: 270833.343750 average [min, max] (range, stddev) -2367.053467 [-2431, -2275] (156, 43.972340) overruns: 0 not found: 0
[openBTS@openBTS kal-0.2]# ./kal -f 952200000 -u USRP side: B FPGA clock: 52000000 Decimation: 192 Antenna: RX2 Sample rate: 270833.343750 average [min, max] (range, stddev) -2496.760254 [-2592, -2375] (217, 61.745182) overruns: 0 not found: 0
By default RX and side are set to ones used by OpenBTS, so usually you need only one mandatory parameter '-f'. You can use -u is optional parameter for continous display.
... page in progress