Reputation: 121
I've encountered a very simple, yet fundamental problem on calculating the SNR:
There are several signals :
S1 = original and pure clean signal without noise.
N1 = white Gaussian noise which is going to be added to S1.
S2 = S1 + N1 (the noisy signal before performing the noise-reduction algorithm)
S3 = noise-reduced signal (after performing noise reduction algorithm)
N2 = S3 - S1 (the amount of noise after performing the noise-reduction algorithm)
Now I want to compare the SNR before and after performing the noise-reduction algorithm.
Which signals should I consider for SNR_before!? S1/N1 or S2/N1 ?
Which signals should I consider for SNR_after!? S3/N1 or S3/N2 ?
Which commands or functions should I use in MATLAB in order to compute SNR_before and SNR_after?
Thanks a billion for putting your time on helping me.
Upvotes: 1
Views: 16321
Reputation: 23
What i know about calculating snr before :
snrBeforeNoise = mean( signal .^ 2 ) / mean( noise .^ 2 );
and about snr after :
residual_noise = signal - noise_reduced_signal; snr_after = mean( signal .^ 2 ) / mean( residual_noise .^ 2 );
Upvotes: 1