Adding two signals at a certain SNR
이전 댓글 표시
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
Preethi
2016년 12월 2일
hi,
may not be exact, but something along the same lines
I think the step uses the standard formula used to calculate SNR..like SNR =10*log(signalpower/noisepower). reverse it to obtain the noise value in order to achieve the required SNR
Petru-Daniel Tudosiu
2016년 12월 2일
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개)
카테고리
도움말 센터 및 File Exchange에서 Spectral Measurements에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!