I am transmitting a QPSK signal via GRC and when I look at it on the spectrum analyzer, the signal is shifted away from my center frequency. This shift increases the higher the center frequency (i.e. 1 MHz = almost no shift, 10 MHz = 1kHz shift, 50 kHz = 2.3kHz shift, 900 MHz = 43.5 kHz shift). Why does this shift occur? I have attached my flowgraph screenshot below.
Sounds like your SDR transmitter has a frequency error of 40-50 ppm (or, less likely, your transmitter is fine but your spectrum analyzer has the error). Try transmitting pure carrier, without modulation, and see if you get the same amount of offset. If so, you might be able to adjust some calibration in hardware or firmware to fix it, or connect an external frequency reference to your SDR to improve its accuracy. If you can't do any of those, you can fit a curve to the error and correct the center frequency in software so that the transmitted signal shows up where you want.