add support for IF bandwidth filter setting to rtlsdr and soapysdr #48
+27
−7
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Digging through rtlsdr source I stumbled upon this API (supported since 2016 in both rtlsdr and soapysdr) and traced it down to
https://lists.osmocom.org/pipermail/osmocom-sdr/2015-April/000043.html
The video from the linked message suggests it can improve SNR ratio by narrowing the default IF filter to reject unwanted signals even if they are within the sampling rate bandwidth, thereby avoiding/reducing ADC overload with strong unwanted adjacent signals.
My dumpvdl2 receivers are already in a rather quiet environment (i.e. in the middle of nowhere) so my testing doesn't show a significant improvement (although the error rate seems to be lower with this patch), but at least this suggests this patch "does no harm".
The selected bandwidth is hardware dependent, not all hardware supports it so failure to set bw is ignored. The target bw is set to max_freq - min_freq plus a margin of 2*SYMBOL_RATE (probably not that relevant given the filter roll off isn't likely to be very steep, but let's be cautious anyway).
I have added support for rtlsdr and soapysdr drivers since I am able to test those (and did so), I have not touched the other SDR inputs.
Further relevant info can be found here
HTH