Adding two signals at a certain SNR

12 vues (au cours des 30 derniers jours)
Petru-Daniel Tudosiu
Petru-Daniel Tudosiu le 2 Déc 2016
Hello,
I need to add two signals (one is the noise, the other is the speech) at a certain SNR.
How can I do this?
I found on Mathworks but I do not understand it and I am reluctant to using it
noise = noise / norm(noise) * norm(signal) / 10.0^(0.05*snr);
noisy = signal + noise;
Could you please explain it to me?
Regards,
Dan
  3 commentaires
Petru-Daniel Tudosiu
Petru-Daniel Tudosiu le 2 Déc 2016
If I am to reverse the equation of SNR ( SNR = 10*log(sp/np) ) I will obtain sp = np * 10 ^ (0.1*SNR) which I cant "match" to the equation from my question.
David Goodmanson
David Goodmanson le 3 Déc 2016
Modifié(e) : David Goodmanson le 3 Déc 2016
Hello P-D, the norms of the signal and noise waveforms are are linear quantities, i.e. amplitudes and not squared amplitudes like power would be. For linear quantities the SNR is
SNR = 20*log10(norm(signal)/norm(noise))
which is exactly the same quantity as with the power expression
SNR = 10*log10(norm(signal)^2/norm(noise)^2)
The first expression inverts to the equation you have. That's my take on all this anyway. As you mentioned, it's a good idea to be reluctant to use something you do not understand and not rely overly much on outside commentary that you have not verified, including this one.

Connectez-vous pour commenter.

Réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by