LimeUSB | WFM One tone distortion. Difference in quality between Gnuradio and SDRAngel

I’m trying to transmit a simple 1khz tone from a LimeUSB SDR using two methods. The WFM block on SDRAngel, and making a flow on GnuRadio.

I am using an older version of SDRAngel (4.12.1) on Linux Mint/Ubuntu 18.04.

I am able to transmit a signal using both, however the quality of the tone is different. It is much cleaner on SDRAngel but not so on GnuRadio. I am trying to understand why this is so.

I’ve attached the flowgraph and sdrangel screenshots

My guess is that it has to do with the way SDRAngel and LimeSDR configure the hardware while transmitting and if I can understand the right variables to set on gnuradio, I might be able to fix this.

Any pointers towards getting a clean WBFM signal from gnuradio would be really helpful.

Here’s all the relevant version info

OS: Linux Mint/Ubuntu 18.04
SDRAngel: 4.12.1
GnuRadio: v3.8.2.0-95-g70738b23 (Python 3.6.9) (with gr-limesdr plugin)
LimeSDR-USB GW:2.23
LimeSuite 20.10.0

Your sample rates look fine. Generally you want some explicit filter taps in the resampler, I’m not sure how the default taps are generated in the block (might not be an issue). Transmitting directly on baseband will cause any LO leakage to affect your carrier, especially if the digital gain is lower. I would advise to shift away from baseband by a couple hundred kHz, look into the freq_translating_fir_filter or into the rotator block. Also, you will get more answers on the GNU radio dedicated mailing list.

Okay. I’ve made changes to the flowgraph and the quality of the sound being produced is MUCH better. I wonder if someone can explain to me why that is the case, because the examples in gr-limesdr itself follow a scheme similar to the flowgraph in the original post.

I moved the rational resampler block to before the WBFM block, and there was immediately a major improvement in signal quality.

Also I’ll post to gnuradio mailing list to hopefully get more answers.

For now, I have something working on both sdrangel and gnuradio, but don’t know why one gnuradio flow works properly (while the other does not)