Normally, when talking about adding noise to simulation data, the choice are AWGN, pink noise and so on. However, in practice, the noise in the experiments changes the locations of frequency peaks as well. How can I simulate this kind of noise?
I'm not sure I understand your question.
But usually the noise model is additive.
Namely, due to the linearity of the DFT, at each bin you will have the summation of the signal contribution and the noise contribution at this specific frequency bin.
Now, let's say we have 2 bins.
At the first the signal is 7 at the second is 6.
The noise is 3 and 5 respectively, now the summation will shift the DFT peak though the signal isn't changed.