trying to reduce dc offset with low if modes, api differences
Posted: Mon Jul 01, 2019 8:18 pm
I'm currently developing sdrplay rsp2 code using the older version 2.13 API. I'm having some difficulties with the DC offset wiping out a narrow signal (with and without correction), so I'm trying to use low if modes to eliminate the offset. Alternatively, I could tune off from center but I'm trying the low IF modes first. There are four configurations that work with low IF mode according to the API docs:

I've tried the first three so far, here are average spectra saved from my code. Oddly I'm still getting the center dc spike, despite using mir_sdr_DCoffsetIQimbalanceControl(1, 1):



I would like to use the third mode, but I'm confused by the spike on the right. What is causing it? I see the same low if spike in HDSDR, which I believe uses the same v2 api via extio:

Oddly, it doesn't have any DC spike. I'm not sure if they're doing any extra tricks to eliminate the spike, such as subtracting the average I/Q from each sample.
In SDRUno, I'm not given as much control over the low if modes. I can only select "IF MODE: LIF", but not the sample rate which is fixed to 2 MSPS. I'm assuming this comes from the new V3 API which I have not yet explored.
So I guess I have two questions. Should I switch to the V3 API to get cleaner low IF mode output, and are there any other tricks for avoiding or eliminating DC offset?

I've tried the first three so far, here are average spectra saved from my code. Oddly I'm still getting the center dc spike, despite using mir_sdr_DCoffsetIQimbalanceControl(1, 1):



I would like to use the third mode, but I'm confused by the spike on the right. What is causing it? I see the same low if spike in HDSDR, which I believe uses the same v2 api via extio:

Oddly, it doesn't have any DC spike. I'm not sure if they're doing any extra tricks to eliminate the spike, such as subtracting the average I/Q from each sample.
In SDRUno, I'm not given as much control over the low if modes. I can only select "IF MODE: LIF", but not the sample rate which is fixed to 2 MSPS. I'm assuming this comes from the new V3 API which I have not yet explored.
So I guess I have two questions. Should I switch to the V3 API to get cleaner low IF mode output, and are there any other tricks for avoiding or eliminating DC offset?