How to prevent clipping on LimeSDR Mini?

I’m working with a 2020 LimeSDR Mini (a discontinued one) and am trying to implement QPSK. I’m having clipping issues due to both Tx/Rx gain and not knowing what amplitude my IQ signal should peak at.

Here is a screenshot where my QPSK signal (RRC shaped) peaks at amplitude 1 and both Tx and Rx have gain of 20dB:

The bottom graph shows the signal directly before transmitting, and the top graph shows it afterwards. Notice how the input always alternates between +1 and -1 in both real and complex, but the output will clip down to 0. In this case, the peaks are safe but the stuff between the peaks clips, so it seems there’s a minimum clip here?

If I raise gain to 30dB it looks like this:

In this case, it’s clipping both on top and on bottom. Peaks get flattened out and it flatlines at 0.

I tried cutting input amplitude down to 25% and I get the same results as above, just scaled down accordingly:

You can also see the clipping happen in the constellation diagram. When gain gets too high, the points in the constellation begin to confine themselves to a square shape:

For reference, this is my flowgraph:

1 Like

Update: it’s not clipping, I’m just being dumb. The output goes to 0 because of an imbalance in phase between I and Q. Adding matched filter and costas loop makes the output look like the input.