Adding two signals at a certain SNR

12 ビュー (過去 30 日間)
Petru-Daniel Tudosiu
Petru-Daniel Tudosiu 2016 年 12 月 2 日
編集済み: David Goodmanson 2016 年 12 月 3 日
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 件のコメント
Petru-Daniel Tudosiu
Petru-Daniel Tudosiu 2016 年 12 月 2 日
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 2016 年 12 月 3 日
編集済み: David Goodmanson 2016 年 12 月 3 日
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.

サインインしてコメントする。

回答 (0 件)

カテゴリ

Help Center および File ExchangeSpectral Measurements についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by