kalibrate RF - questionable results
Posted: Sat Nov 01, 2014 1:21 am
Evening,
I have some doubts over the accuracy of the kalibrate-bladeRF tool and wanted to see what the rest of you thought about it.
Here's the observation I've made. Using the factory calibrated value of the trimdac (0x8a11 in my case), I get the following results for a 900MHz and 1800MHz GSM carrier, averaged over 100 samples.
(I disabled the code that sets the trimdac in bladerf-kalibrate to see what the results were with arbitrary trimdacs).
ARFCN: 18: -490Hz
ARFCN: 862: -633Hz
The obvious question here is, for almost exactly double the frequency, the error is not doubled, or close to doubled within the theoretical margin of error kalibrate-bladeRF (GSMRATE * 4 / 1024/ 512 = ~2.1Hz).
The first hypothesis was the existence of a constant frequency offset (of approx 490-(633-490)=347Hz); but elementary mathematics with a second measurement set with a different trimdac show that any fixed offset is different between the two pairs of measurements.
for TRIMDAC 0xa1ea:
ARFCN: 18: -1832Hz
ARFCN: 862: -3946Hz
The fixed offset is clearly not the same in the above result.
Now, to put to rest any concerns, the ARFCNs chosen have no significant neighbour carriers (there is clear dominance), the SNR is very good, and dumping out the detected FCCH bursts confirmed the code is locking properly onto the FCCH - I see a clean sine wave plotted in Matlab. Plotting the FFTs in Matlab show a very dominant pulse at 70KHz as expected, and nothing else.
The bladerf was left to warm up and each measurement was taken in rapid succession.
So I have to put it down to one of the following:
1. frequency synthesizer error in LMS
2. some non linear mixing in the bladeRF somewhere.
3. Frequency error in the source
4. Issues with the measurement software (kalibrate-bladeRF)
Now given 1,2,3 are highly unlikely (and in fact 3 would show up as a constant offset, and thus is invalidated by taking pairs of measurements) we have to look at 4.
Is there any other cause I may have missed before looking into this issue?
I have some doubts over the accuracy of the kalibrate-bladeRF tool and wanted to see what the rest of you thought about it.
Here's the observation I've made. Using the factory calibrated value of the trimdac (0x8a11 in my case), I get the following results for a 900MHz and 1800MHz GSM carrier, averaged over 100 samples.
(I disabled the code that sets the trimdac in bladerf-kalibrate to see what the results were with arbitrary trimdacs).
ARFCN: 18: -490Hz
ARFCN: 862: -633Hz
The obvious question here is, for almost exactly double the frequency, the error is not doubled, or close to doubled within the theoretical margin of error kalibrate-bladeRF (GSMRATE * 4 / 1024/ 512 = ~2.1Hz).
The first hypothesis was the existence of a constant frequency offset (of approx 490-(633-490)=347Hz); but elementary mathematics with a second measurement set with a different trimdac show that any fixed offset is different between the two pairs of measurements.
for TRIMDAC 0xa1ea:
ARFCN: 18: -1832Hz
ARFCN: 862: -3946Hz
The fixed offset is clearly not the same in the above result.
Now, to put to rest any concerns, the ARFCNs chosen have no significant neighbour carriers (there is clear dominance), the SNR is very good, and dumping out the detected FCCH bursts confirmed the code is locking properly onto the FCCH - I see a clean sine wave plotted in Matlab. Plotting the FFTs in Matlab show a very dominant pulse at 70KHz as expected, and nothing else.
The bladerf was left to warm up and each measurement was taken in rapid succession.
So I have to put it down to one of the following:
1. frequency synthesizer error in LMS
2. some non linear mixing in the bladeRF somewhere.
3. Frequency error in the source
4. Issues with the measurement software (kalibrate-bladeRF)
Now given 1,2,3 are highly unlikely (and in fact 3 would show up as a constant offset, and thus is invalidated by taking pairs of measurements) we have to look at 4.
Is there any other cause I may have missed before looking into this issue?