How to add Gaussian distributed noise with zero mean and standard deviation of 2% ? How to find out SNRdB by using computed noise signal and actual signal?

57 次查看(过去 30 天)
With reference to the above question, I computed noise signal and SNR based on the actual and noise contaminated signal. Hence, I request you to is this the correct way to compute noise signal and SNR in dB?.
Actual_signal=Ias; % Instantaneous sinusoidal current signal of size (6001*1)
std=0.02; % standard deviation of 2%
meanValue=0; % mean=0
Noise_signal = signal + std*randn(size(signal)) + meanValue;
Amean = mean(Actual_signal);
Bmean = mean(Noise_signal);
SNR = (Amean / Bmean);
SNRdB=10*log10(SNR)
  1 个评论
dpb
dpb 2019-4-6
2% of what?
Actual_signal=Ias; % Instantaneous sinusoidal current signal of size (6001*1)
std=0.02; % standard deviation of 2%
meanValue=0; % mean=0
Noise_signal = signal + std*randn(size(signal)) + meanValue;
...
The above adds a random component whose standard deviation is 0.02; a percentage needs to refer to some value that would be the percentage of. Perhaps you want 2% of some measure of the actual signal? That could be rms(), pk-pk, ..., but need to know what.
If it were rms(), then something like
noise_pct=0.02;
signal_rms=rms(Actual_signal);
Noise_signal = noise_pct*signal_rms*randn(size(Actual_signal)) + meanValue;
noisy_signal=signal+Noise_signal;
but you'll have to decide what the actual reference to compare to is...

请先登录,再进行评论。

回答(0 个)

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by