# Calculating SNR & Es/No and placing noise onto a signal

I have a signal power of -12 dBW from a 16 QAM signal after the first RRC.

I want to create a channel SNR of 30 dB

I calculate my noise power from this, i.e. its -42 dBW and make the noise to add to signal

#Power values below have been converted to Watts
noise_distribution = np.random.randn(N)  / np.sqrt(2)
noise = np.sqrt((noise_power/signal_power)) * noise_distribution
signal = signal + noise


This noise is inserted into the signal after the first RRC and before the second.

I know my signal power is spread over a symbol rate of 2 MHz, with a 0.35 Roll off on RRC.

Signal PSD = -12 - 10log10(2MHz(1+(2*0.35))) = -77 dBW/Hz

However my noise power is spread over Fs:

-32 dBW - 10log(40MHz) = -95 dBW/Hz

Is this the correct way to do SNR or have I just done Es/No because it doesn't seem to work in my mind, it doesn't end up being 30 dB in PSD terms.