I am trying to analyse the effects of SNR level on my data.
I have a set of signals in frequency domain with f_min = 0.5GHz and f_max = 10.5GHz centered at f_c = 5.5GHz. These are simulated signals and are noisless (ideal data). Using the awgn function of MATLAB, I add noise of various SNR levels (SNR = 10, 20, 30, 50 and 60dB) in frequency domain. I now need to add the same level of SNR to their time-domain counterparts.

I came across something which I didn't quite understand. It goes as follows :
SNR_freq is computed from the data over the whole frequency, while in practice, SNR_time matched to pulse data and is computed from the peak of the signal magnitude (A_max) as shown below : SNR_freq = 10*log10(E/sigma^2) SNR_time = 20*log10(A_max/sigma) where sigma is the variance of the signal.

what exactly is the relationship between SNR_time and SNR_freq?


1 Answer 1


I usually like to add noise with my own code.
Adding Whit Noise is really easy task given the signal as you have.

All you need is to calculate your signal second moment at the frequency and add noise to the frequency bins such that the second moment of the noise creates your desired SNR.

Since the DFT is unitary transform, adding white noise at frequency domain is equivalent to adding noise at time domain.

There 2 options here, are you looking for adding White Noise (Namely spread all over your frequency) or Band Limited (Colored) noise?

For white noise just add Noise to each bin in the frequency domain such that the noise Second Moment (The Means squared multiplied by the number of bins) is as your desired SNR.

For colored noise do the same but only for the relevant frequency bins (Where the second moment is calculated only on the number of "Active" bins).

  • $\begingroup$ I guess this does not answer the question asked ? $\endgroup$
    – Arpit Jain
    Commented Jul 3, 2017 at 6:05
  • $\begingroup$ I answered your title > Adding noise in frequency domain vs time domain. As I wrote, I don't use awgn and I think you should not as well. $\endgroup$
    – Royi
    Commented Jul 3, 2017 at 6:10
  • $\begingroup$ @Royi Yeah I get what you have explained here. In fact that's what I will do now. Add noise without awgn. But I want to know if the noise levels will be the same? For example, if I add, say, SNR_f = 20dB in frequency domain for my analysis. Will it be the same as adding SNR_t = 20dB in time domain too? If not, is there a relationship between them?(White Gaussian noise only) I saw one answer on : [link] (dsp.stackexchange.com/questions/14862/…) saying SNR_f = SNR_t * sqrt(N). Does this hold true? $\endgroup$
    – Shreedhar
    Commented Jul 4, 2017 at 11:37
  • $\begingroup$ Hi, Again, if you add white noise in both it will be the same. If you add colored noise with the same spectral properties in both it will be same. As long as you do the equivalent thing in both domains you'll get the same. $\endgroup$
    – Royi
    Commented Jul 4, 2017 at 14:18
  • $\begingroup$ Perfect! This is what I was looking for @Royi. Thank you for your response. $\endgroup$
    – Shreedhar
    Commented Jul 4, 2017 at 14:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.