How to add a frequency offset to a buffer of MPSK signal for simulation purposes?
Multiply the time domain samples by a time-varying complex exponential to effect a (cyclic) shift in the frequency domain.
$$y[n] = x[n]\cdot e^{j\pi \frac{f_{offset}}{F_s/2}n}$$
Where $f_{offset} \in \left(-\dfrac{F_s}{2}, \dfrac{F_s}{2}\right)$.
This is a result of the Shift Theorem for the DFT.