Hi all,
I’ve already seen several posts for dual RX but nothing to receive at different frequencies using SoapySDR. My idea is to get a bigger bandwidth, eg 2x50MHz to see the whole 2.4GHz band.
First I tried at the same frequency with 60MS/s and it works. I would expect the 2 channels to receive signals at the same power (they each have their own antenna but very close to each other), but it seems channel 1 is always receiving at a lower power level when there’s no significant signal. Here’s an FFT of the 2 channels, 10dB per line vertically:
When my WiFi router sends some signals, I can clearly see them, but there’s again some difference between the 2 channels. This time channel 1 shows a higher power than channel 0. Also it seems the rest of the spectrum gets more flat on channel 1.
Is there any calibration to do so that the 2 channels show similar results?
I then tried listening on 2 different frequencies. The Soapy API for setFrequency says to use args to augment the tuning algorithm, like "OFFSET" to specify an "RF" tuning offset, but the args parameter is not used in both methods.
I then saw that the 2nd setFrequency method allows to specify the name, either “RF” or “BB”. Using “BB” calls SetNCOFreq.
So what I ended up doing is something like
setFrequency(RX, 0, "RF", freq, null);
setFrequency(RX, 0, "BB", +15 000 000, null);
setFrequency(RX, 1, "RF", freq, null);
setFrequency(RX, 1, "BB", -15 000 000, null);
Is that the right way to do it? It seems to be working, but then I read, using SoapySDRUtil
BB freq range: [-10, 10] MHz
Tune args:
* LO Offset - Tune the LO with an offset and compensate with the baseband CORDIC.
[key=OFFSET, units=Hz, default=0.0, type=float, range=[-1e+07, 1e+07]]
* BB - Specify a specific value for this component or IGNORE to skip tuning it.
[key=BB, units=Hz, default=DEFAULT, type=float, range=[-1e+07, 1e+07], options=(DEFAULT, IGNORE)]
Sample rates: [0.1, 65] MSps
Filter bandwidths: [1.4, 130] MHz
So it seems “BB” is limited to +/-10MHz?
What about the LO offset? It seems we can’t use it with the setFrequency methods.
Also, are the 2 channels synchronized, meaning they start receiving at the same time? It appears so as Soapy gives me 1 stream to read from the 2 channels, and my WiFi signal appears and disappears at the same time on both channels. I haven’t tried over more than a few seconds though.

















