Adding noise to a signal and which caculation of Signal to Noise Ratio is correct ?
3 次查看(过去 30 天)
显示 更早的评论
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 个评论
Mathieu NOE
2020-11-4
uh..
be careful your definition of SNR2 says
% uisng the original signal
"
whereas you actually use sig in the computation (signal + noise)
回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!