Hello Steve,
The most
important modification is the gain setting.
The tuner code requires knowledge of the gain table
or searcing for legal gain values by use of the returned
error code. I think that this is impractical and I changed it
so the routine will now always set the nearest possible gain
value and return it to the caller.
That's exactly what we have rtlsdr_get_tuner_gains() for.
I have implemented the proper way of calling the original
gain routine. Here is what I observe with rtlsdr as downloaded
today:
Set gain Signal level
(dB) (dB)
49 49
47 49
45 49
43 49
42 49
34 42
29 42
24 37
21.5 35
19 32
16.5 28.5
14 27.5
11.5 24
9 22
6.5 19.5
4 17
1.5 13.5
-1 12
This does not look good. I have used a dongle bought here:
http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=260995356948
I have two of them and they behave the same.
In Linrad with modified code for the rtlsdr library it looks like this:
Set gain Signal level
(dB) (dB)
36 36
33 31
30 28.5
27 25.5
24 21.5
21 20
18 16
15 14.5
12 11
9 9
6 3
3 1
0 -4.5
At maximum gain the noise figúre is 7.8 dB in both cases at 144 MHz.
The dynamic range (1 dB compression) is 14 dB better with the
modified code for Linrad. (lower IF gain.) It is a VERY significant
improvement.
Is there a way to get technical specifications for the chips
used in the dongle?
Regards
Leif / SM5BSZ