Effacer les filtres
Effacer les filtres

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 vues (au cours des 30 derniers jours)
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 commentaire
dpb
dpb le 6 Avr 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...

Connectez-vous pour commenter.

Réponses (0)

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by