codecamp

统计 - 信噪比

符号交织比例(contract to SNR)是一种用作科学和设计的一部分的量度,用于分析令人羡慕的符号水平到基础声调的水平。 它的特征是符号能量与喧闹能量的比例,以分贝为单位定期传达。 比例高于1:1(比0 dB更突出)显示更多的标志比喧闹。 虽然SNR被定期引用为电气标志,但它可以连接到任何类型的标志(例如,冰中心的同位素水平或细胞之间的生物化学运动)。

信噪比被定义为信号的功率(有意义的信息)和背景噪声(不需要的信号)的功率的比率:

${SNR = \frac{P_{signal}}{P_{noise}}}$

如果信号和噪声的方差已知,并且信号为零:

${SNR = \frac{\sigma^2_{signal}}{\sigma^2_{noise}}}$

如果在相同阻抗上测量信号和噪声,则可以通过计算振幅比的平方来获得SNR:

${SNR = \frac{P_{signal}}{P_{noise}} = {(\frac{A_{signal}}{A_{noise}})}^2} $

其中A是均方根(RMS)幅度(例如,RMS电压)。

分贝

因为许多信号具有非常宽的动态范围,所以通常使用对数分贝标度来表示信号。 基于分贝的定义,信号和噪声可以以分贝(dB)表示

${P_{signal,dB} = 10log_{10}(P_{signal})} $

${P_{noise,dB} = 10log_{10}(P_{noise})} $

以类似的方式,SNR可以以分贝表示

${SNR_{dB} = 10log_{10}(SNR)} $

使用SNR的定义

${SNR_{dB} = 10log_{10}(\frac{P_{signal}}{P_{noise}})} $

使用对数的商规则

${10log_{10}(\frac{P_{signal}}{P_{noise}}) = 10log_{10}(P_{signal}) - 10log_{10}(P_{noise})} $

将SNR,信号和噪声的分贝分别代入上述等式中,当信号和噪声也以分贝为单位时,产生用于计算信噪比(以分贝为单位)的重要公式:

${SNR_{dB} = P_{signal,dB} - P_{noise,dB}} $

在上式中,P是以功率为单位测量的,例如瓦或者瓦特,并且信噪比是纯数。

然而,当信号和噪声以伏特或安培(其是幅度的度量)来测量时,它们必须被平方以与功率成比例,如下所示:

${SNR_{dB} = 10log_{10}[{(\frac{A_{signal}}{A_{noise}})}^2] \\[7pt] = 20log_{10}(\frac{A_{signal}}{A_{noise}}) \\[7pt] = A_{signal,dB} - A_{noise,dB}} $

例子

问题陈述:

计算以48 kHz采样的2.5 kHz正弦波的SNR。 添加白噪声,标准偏差为0.001。 将随机数发生器设置为可重现结果的默认设置。

解决方案:

${ F_i = 2500; F_s = 48e3; N = 1024; \\[7pt] x = sin(2 \times pi \times \frac{F_i}{F_s} \times (1:N)) + 0.001 \times randn(1,N); \\[7pt] SNR = snr(x,Fs) \\[7pt] SNR = 57.7103}$

统计 - 广场的总和
统计 - T-分布表
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Statistics Tutorial

Statistics Useful Resources

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }