Frequency and Phase Corrections Not Applying to Received Signal (Scatter Plot Issue)

Hello,
I'm working on an SDR project using MATLAB and a USRP B210 to receive a QPSK signal. I've implemented a receiver chain that includes coarse and fine frequency correction, as well as phase offset correction.
My issue is that despite adjusting the "Coarse Frequency Correction" slider and the "Phase Offset " and "Fine Frequency" input boxes in my UI, the scatter plot of the received signal does not show any visible correction. The constellation points remain dispersed in a circle indicating an uncorrected frequency offset, as shown in the attached screenshot.
I've been troubleshooting this for several days without success.
Could anyone provide some guidance on what might be going wrong or suggest further debugging steps? Any insights into why the corrections might not be visually applied to the scatter plot would be greatly appreciated.
Thank you in advance for your help.

1 Comment

Based on the error message you provided, this appears to be a graphics callback function issue within the SDR Receiver app where UI controls are referencing invalid or deleted graphics objects.
To help diagnose this further, could you please:
  1. Pause the app when this error occurs
  2. Share the exact values you have set in your UI controls at that moment: Coarse Frequency Correction slider position, Phase Offset value, Fine Frequency value
This will give more insight into what's triggering the callback failure and preventing the corrections from being applied to your signal processing chain.

Sign in to comment.

Answers (1)

I've attached photos showing the respective values for the corrections I've already applied in the application, but I'm not seeing any effect.
In addition to the callback issue, a question has come up about the signal processing chain. Does it make sense to apply the RF corrections like frequency and phase corrections before the stages such as pulse shaping and AGC, which includes the matched filtering and gain control. Since the application only has the RF corrections options, I'm not sure if I should be doing anything else beforehand.
Can you confirm if this is the correct architecture for SDR processing, and if so, explain why this order is so critical in the application's chain?
Any suggestions on the cause of the callback error or validation of the signal processing order would be a great help.
Thanks in advance.

Categories

Find more on Communications Toolbox in Help Center and File Exchange

Products

Release

R2025a

Asked:

on 31 Jul 2025

Answered:

on 13 Aug 2025

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!