Adding noise to a signal and which caculation of Signal to Noise Ratio is correct ?
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi , Please I need to add white gaussain noise with a variance = (4/9)*var(sig) to the signal in ( noise_test.mat) .
I need to know which caculation of Signal to Noise Ratio is correct , is it SNR1 or SNR2 ?
Is it ratio of variances of the original signal to Noise or the corrupted signal to Noise ?
load noise_test.mat
noise=(2/3)*std(y)*randn(size(y)); %% generate zero-mean white gaussian noise with a variance = (4/9)*var(sig)
sig=y+noise; % Add generated noise to get the corrupted signal
SNR1 = var(y)/var(noise); % caculate ( SNR ) using the corrupted signal
SNR2 = var(sig)/var(noise); % caculate (SNR ) uisng the original signal
SNR1dB=10*log10(SNR1); % caculate noisy ( SNR ) in dB
SNR2dB=10*log10(SNR2); % caculate noisy ( SNR ) in dB
Thanks
4 commentaires
Mathieu NOE
le 4 Nov 2020
uh..
be careful your definition of SNR2 says
% uisng the original signal
"
whereas you actually use sig in the computation (signal + noise)
Réponses (0)
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!