QPSK demodulator on GNURadio continuously loses phase lock
From what I understand, the modulation is a QPSK at 72k symbol.
So the main lobe is 144 kHz wide.
First point: Shaping filter clarification
Do you know if there is a shaping filter used by the transmitter?
Usually it is an RRC filter with a roll off of a given value.
If there is one in the transmiter, your RRC filter in the receiver should match roll off value
Second point: The low pass filter
The main lobe is 144kHz wide (because of QPSK-72ksps). The low pass filter you use is 90 kHz (2 x 45 kHz, for negative + postive spectrum side) wide.
With a 0.5 alpha roll off used at the transmitter, its bandwith would be 72 x (1+0.5) = 108 kHz &lt;=&gt; 54 x 2. With a 45 kHz, you cut before a possible RRC inside the chain (45 vs 54). Expand the low pass filter bandwith so that it does not interfere with the RRC filter in the receiver of Symbol block.
Try 60 instead of 45 Khz
Third point: AGC

AGC placement:
Is the AGC placement intended?
What happens if the signal is too low at the input of the first filter?
Do you have an external AGC before entering GNU radio?

AGC rate:
I have a small experience with GNU radio, so don't know what is behind the rate or other AGC blocks...
The important thing is that the AGC does not track on the varation of the symbols but on the average signal level.
Try maybe to decrease that rate so the reponse is slower.


There are probably other points to tune, these are main I see. You could earn several fractions of dB in those first places.
If there is an improve, you should see it on the constellation directly (if not too noisy)
The best approach is to first make the design and verify it performances in lab conditions and not directly on the satellite.