Filter löschen
Filter löschen

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 Ansichten (letzte 30 Tage)
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 Kommentar
dpb
dpb am 6 Apr. 2019
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...

Melden Sie sich an, um zu kommentieren.

Antworten (0)

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by