add white gaussian noise

7 visualizaciones (últimos 30 días)
Jessie Bessel
Jessie Bessel el 19 de Jun. de 2018
Editada: Meg Noah el 7 de Ag. de 2025
I tried to add noise to a signal. The signal noise ratio must be 0 dB. I tried with
signal_noise=awgn(signal,0,'measured')
Is there any method?

Respuestas (2)

OCDER
OCDER el 19 de Jun. de 2018
signal_noise=awgn(signal,1,'measured')
SNR = 1 means 0 dB.
  2 comentarios
Jessie Bessel
Jessie Bessel el 19 de Jun. de 2018
Ok.Any method, without awgn?
OCDER
OCDER el 19 de Jun. de 2018
noise = sig * randn(size(signal)); %sig is your standard dev.
signa_noise = signal + noise %you have to determine value of "sig".
%sig = std(signal) ?

Iniciar sesión para comentar.


Meg Noah
Meg Noah el 7 de Ag. de 2025
Editada: Meg Noah el 7 de Ag. de 2025
% signal is a sine wave of 2 Hz
nSamples = 1000;
f = 2; % [Hz]
time = linspace(0, 2, nSamples+1);
signal = sin(2*pi*f*time);
signal_noise=awgn(signal,0,'measured');
% calculate the signal power
signalPower = sum((signal).^2)./nSamples;
% the gaussian white noise
noiseValues = signal_noise - signal;
% verify the Signal-to-Noise value
noisePower = sum(noiseValues.^2)/numel(noiseValues);
SNR = 10*log10(signalPower/noisePower);
fprintf(1,"standard deviation of noise = %f\n", std(noiseValues));
standard deviation of noise = 0.720478
fprintf(1,"SNR: %f\n", SNR);
SNR: -0.158400
% Method WITHOUT the awgn
% SNR in db is 10log(Psignal/Pnoise)
snrDb = 0; % [dB]
% noise power such that signal power is 10 dB more
% 10 = 10 log (Ps / Pn)
% Pn is variance which for zero mean gaussian noise
% is essentially - square sum of all samples -> divided by numSamples
noiseStd = sqrt(signalPower / 10^(snrDb/10));
noiseMean = 0;
% generate the gaussian white noise
noiseValues = noiseStd*randn(nSamples,1) + noiseMean;
% verify the Signal-to-Noise value
noisePower = sum(noiseValues.^2)/numel(noiseValues);
SNR = 10*log10(signalPower/noisePower);
fprintf(1,"noiseStd: model input: %f simulation output: %f\n", noiseStd, std(noiseValues));
noiseStd: model input: 0.707107 simulation output: 0.699265
fprintf(1,"SNR: %f\n", SNR);
SNR: 0.094870

Categorías

Más información sobre Propagation and Channel Models en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by