关于信噪比SNR【转载】1.http://well3216.blog.sohu.com/96624202.html

来源:互联网 发布:网络聊天搭讪 编辑:程序博客网 时间:2024/05/16 01:49

SNR(Signal to Noise Ratio,信噪比):
   指在规定输入电压下的输出信号电压与输入电压切断时,输出所残留之杂音电压之比,也可看成是最大不失真声音信号强度与同时发出的噪音强度之间的比率,通常以S/N表示。一般用分贝(dB)为单位,信噪比越高表示音频产品越好,常见产品都选择60dB以上。

SNR(信噪比)在不同的应用领域有不同的定义方法,其对应的估计方法也不同。我们这里的任务是对一段采集到的(含噪)信号进行SNR估计,就是说我们面对着一段采集信号x(k)=s(k)+n(k)k=1,2…,N;其中s是有用信号(以下简称信号)部分,n是噪声部分。我们需要合理地估计x的信噪比。

在上述情况下,SNR定义为信号功率与噪声功率之比的对数,即:

SNR = 10*log10(Ps/Pn)(db)   [1]

由此可知,想要合理地估计SNR,首先需要用正确的方法估计PsPn

 

在对PsPn进行估计的时候,首先需要明确的是在我们的估计问题中,有用信号s是确定信号还是随机信号。这与我们进行SNR估计的目的有关。如果我们的目的只是计算采集来的这一段x的信噪比(而不打算用这个信噪比产生任何其他推论,比如我们试图观察并记录不同时间段的信噪比变化情况),那么我们可以将信号s看作是确定信号,因为这时我们是在对这一段已经客观产生的板上钉钉的没有任何随机性的x进行分析,准确地说,我们这个时候是在进行SNR计算或者SNR测量(而不是SNR估计);如果我们不仅仅要计算这一段x的信噪比,而是要在此基础上推断之后采集的x1,x2….的信噪比的情况(比如我们试图对一个系统的SNR性能进行估计),那么这时我们就要把信号s看作是随机信号,因为我们是要从这段x中提取出对我们之后分析x1,x2…有用的信息,这时才是名副其实的SNR估计。

而对于噪声n,需要明确的是,在绝大多数情况下,从采集到的x中分离出sn是不现实的。也就是说我们必须在进行本文涉及的SNR分析之前,先采集一段纯噪声信号,通过对该段纯噪声信号的分析得到关于噪声的先验知识,之后将它们应用到本文涉及的SNR分析中。因此,从这个意义上讲,在绝大多数情况下,我们无法将噪声n看作确定信号,只能将其看作随机信号来处理。

 

以下我们分别说明PsPn的估计方法。

1  Ps的估计(本部分噪声功率暂时用Pn表示)

(1)    s看作确定信号

s看作确定信号,就是说s的所有信息都已确定下来,我们只需要将必要的信息提取出来计算SNR。根据功率(就是平均功率)的定义,

Ps = 1/N*sum(abs(s(k))^2)    [2]

从理论上说,我们应该从x中减去n,只分析s的部分。但是由于实际情况下很难从x中分离出sn,因此只能将x当作s进行后续计算。这在Ps>>Pn的情况下误差不会很大,即要求x的信噪比不是很低。因此,

Ps= 1/N*sum(abs(x(k))^2)    [3]

根据帕塞瓦尔定理,s的时域能量和频域能量相等(点数问题似乎需要考虑一下),因此将x变换到频域计算1/N*sum(abs(X(f))^2)的结果应该与[3]式相同。可知,将s看作确定信号时xSNR计算公式为:

SNR = 10*log10(sum(abs(x(k))^2)/(N*Pn))    [4]

这里需要有两点说明。一是有些地方说Ps可以用max(abs(s(k)))^2/N计算,我觉得这种方法只是对[4]式的一种简化;二是根据x=s+n,可知x^2=(s+n)^2!=s^2+n^2,也就是说xsn三者不能在能量、功率层面出现任何的加减运算。加减运算只可能出现在幅度层面。而由于噪声n的幅度是不可知的(因为是随机变量所以不可分离),因此在本文所提及的情况中关于加减的想法要坚决摒除。

(2)    s看作随机信号

在将s看作随机信号的时候,我们需要用某个对随机信号不变的量来估计SNR,因为只有这样才能使估计结果对推断之后的SNR有作用。对于宽平稳随机过程x,其相关函数Rxx只与平移量有关,而功率谱S(f)作为RxxFourier变换,亦是相对固定的量(是么)。因此我们可以首先对随机信号x(同样由于无法分离sn,只能分析x)进行功率谱估计,得到S(f),之后对S(f)求均值得到平均功率E[S(f)]。若对x进行的是M点的功率谱估计,那么

Ps = 1/M*sum(Ss(f))    [5]

这里要注意单双边的问题。对于随机信号x,每一个x(k)均是随机变量,xFFT不存在,因此无法利用求FFT的方法来计算功率谱,只能通过其他方法来估计功率谱。 功率谱估计的方法很多,最基本的方法是求得相关函数Rxx后对其进行FFT,另外,ARMA谱估计等现代谱估计方法也是可以的,而且会得到分辨率更高的功率谱。

对于宽平稳随机过程,由于相关函数Rxx只与平移量有关,因此二阶矩(相当于平移量是0)也是不变的量,所以Ps也可以通过

Ps = 1/N*sum(abs(s(k))^2)    [6]

求得。综上可知,将s看作随机信号时,

SNR = 10*log10(sum(Ss(f))/(M*Pn)) = 10*log10(sum(abs(x(k))^2)/(N*Pn))   [7]

 

2  Pn的估计

前面已经提到过,n是一定要当作随机变量看待的。因此,根据1(2)中的分析,Pn同样存在两种估计方法:

Pn = 1/M*sum(Sn(f))   [8]

 = 1/N*sum(abs(n(k))^2)  [9]

需要注意的是,对Pn的估计方法要和Ps的估计方法对应,比如Ps采用[5]式,那么Pn要相应地采用[8]式;Ps采用[6]式,Pn要相应地采用[9]式。

 

综上所述,对含噪信号SNR估计方法如下:

对于确定性信号s SNR = 10*log10(sum(abs(x(k))^2)/ sum(abs(n(k))^2)) [10]

对于随机信号sSNR = 10*log10(sum(Ss(f))/sum(Ss(f))) = 10*log10(sum(abs(x(k))^2)/ sum(abs(n(k))^2))   [11]

原创粉丝点击