DSPRelated.com
Forums

Construct noise signal with a particular SNR

Started by bsg November 17, 2008
hi there,
My issue is as follows: consider I have a low-pass filtered version of a
white noise signal (fc=300 Hz, LPF) as my signal. I would like to add
different Gaussian white noise having different SNR referred to the LPF
signal. I do the following. 

1. I get the power of the signal using = mean(original_signal.^2) ->{say
P_s}
2. standard deviation of the required noise = sqrt(P_s / SNR) ->{noi_std}
3. construct noise using noise_trace = noi_std.*randn(1000,1)

Now the question is, in step 1 when I am computing the power of the signal
do I use the orginal signal or the original signal with the mean removed ?

Thanks, BSG


Theoritically no. The mean is part of signal energy. SNR has signal
energy (not variance) at top term.
Practically there should be no mean, so it would not matter anyway.

Regards
Piyush

On Nov 17, 9:02&#4294967295;pm, "bsg" <biswasengu...@yahoo.com> wrote:
> hi there, > My issue is as follows: consider I have a low-pass filtered version of a > white noise signal (fc=300 Hz, LPF) as my signal. I would like to add > different Gaussian white noise having different SNR referred to the LPF > signal. I do the following. > > 1. I get the power of the signal using = mean(original_signal.^2) ->{say > P_s} > 2. standard deviation of the required noise = sqrt(P_s / SNR) ->{noi_std} > 3. construct noise using noise_trace = noi_std.*randn(1000,1) > > Now the question is, in step 1 when I am computing the power of the signal > do I use the orginal signal or the original signal with the mean removed ? > > Thanks, BSG
On 17 Nov, 17:02, "bsg" <biswasengu...@yahoo.com> wrote:
> hi there, > My issue is as follows: consider I have a low-pass filtered version of a > white noise signal (fc=300 Hz, LPF) as my signal. I would like to add > different Gaussian white noise having different SNR referred to the LPF > signal. I do the following. > > 1. I get the power of the signal using = mean(original_signal.^2) ->{say > P_s}
This works for statinary signals. Be careful if you have transient signals.
> 2. standard deviation of the required noise = sqrt(P_s / SNR) ->{noi_std} > 3. construct noise using noise_trace = noi_std.*randn(1000,1) > > Now the question is, in step 1 when I am computing the power of the signal > do I use the orginal signal or the original signal with the mean removed ?
In the context of DSP one virtually always considers zero-man signals. Rune
Thanks guys for your reply. It seems that in the literature few people tend
to remove the mean while others don't. I am not being able to get a
rigourous rule for this. If one removed the mean, the noise std. deviation
is much smaller than the case where the signal has the mean (as expected).
This means that the noise to be added to the signal has different
amplitudes, hence is crucial. I am still confused !

PS: I am contructed the signal to be stationary
>Thanks guys for your reply. It seems that in the literature few people
tend
>to remove the mean while others don't. I am not being able to get a >rigourous rule for this. If one removed the mean, the noise std.
deviation
>is much smaller than the case where the signal has the mean (as
expected).
>This means that the noise to be added to the signal has different >amplitudes, hence is crucial. I am still confused ! > >PS: I am contructed the signal to be stationary >
i maybe wrong but is power of your signal : variance + (abs(mean))^2; also if you adding noise is it best to add noise that has has same mean as your signal mean.