|
From: | Don Ward |
Subject: | Re: [Discuss-gnuradio] USRP Dynamic Range and 8 Bit Problem |
Date: | Sun, 23 Dec 2007 18:50:00 -0500 |
Hi Firas, [several examples snipped]
d) With Sinewave signal at frequency =250KHz and 10dBm input power to BasicRX we get , Theoretical calculations :When +10dBm signal injected into 50 Ohm load, then signal RMS = 0.71Volt andSignal P-P = 2.008183259Volt. USRP readings : The maximum counting obtained from USRP for this signal was 13570 (Saturated). Discussion :From the above results we see that the BASIC-RX is saturated when the input signal power was +10dBm. This is logical, since the maximum input signal tothe USRP ADC AD9862 is 2Volt P-P (according to its data sheets). But, what is not logical is the value obtained from USRP FPGA. Since theincoming data is 16bit signed number (for I and Q), we should get +/- 32767readings for the maximum input signal of 2V P-P. Instead, we have maximumreading of 13570. I don't know how this number was generated, but it shouldbe scaled to make use from the full dynamic range offered by using 16 Bit data transfer.
The USRP takes the 12-bit sample (peak value of 2047), shifts it left 3 bits (peak value of 16376), then runs it through a CORDIC stage that multiplies it by approximately 1.647/2 (peak value of 13485). This is very close to what you see. For decimation by values that are not powers of 2, there is a further decrease in signal strength associated with the CIC decimator.
I think we could quickly double the processing gain (and gain 6 dB S/N and dynamic range at higher decimation rates) by either shifting by 4 bits before the CORDIC stage or eliminating the divide by 2 at the end of the CORDIC stage. The maximum processing gain would then be 8*1.647=13.176 (currently it is half that). We could also double the gain in the CIC decimator for decimations where the current gain is less than 1/1.647.
-- Don W.
[Prev in Thread] | Current Thread | [Next in Thread] |