dBWdBW和信噪比SNR的关系

Posted cat&mouse

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dBWdBW和信噪比SNR的关系相关的知识,希望对你有一定的参考价值。

dB、dBW、W是不同的单位。


解释一下他们的含义:
1. W是功率的单位,比如信号功率是1W。

2. dB(分贝)是倍数的单位,公式为
x dB = 10lg(倍数)
比如信号功率是噪声功率的1000倍,把1000代入上式,则x=10lg1000=30 dB,即1000倍是30分贝。

3. dBW是功率的绝对单位,公式为
x dBW = 10lg(功率 / 1W) (其中,功率的单位必须换算成W)
比如信号功率是1000W,则x=10lg(1000/1)= 30 dBW,即1000W是30dBW;
又比如信号功率是0.01W,则x=10lg(0.01/1)= -20 dBW,即0.01W是-20dBW。

4. 信噪比SNR (Signal Noise Ratio) 的单位是分贝,是信号功率和噪声功率的比值再求对数乘10,公式为
x dB = 10lg(信号功率/噪声功率)
比如信号功率是1W,噪声功率也是1W,则x=10lg(1/1)=0 dB,即此时的信噪比为0分贝;
又比如信号功率是10W,噪声功率是2W,则x=10lg(10/2)=6.99 dB,即此时的信噪比为6.99分贝。


dB、dBW、W 和信噪比的换算关系:
从信噪比换算到W,再换算到噪声的绝对功率dBW。设信号功率是Ps W,噪声功率是Pn W,
1. 首先,信噪比为
SNR = 10lg(Ps/Pn),单位是dB
2. 然后,信号功率和噪声功率的倍数为
Ps/Pn = 10^(SNR/10),没有单位;
3. 接着,如果知道信号功率是Ps W,那么噪声功率为
Pn = Ps / (10^(SNR/10)),单位是W
4. 最后,噪声的绝对功率为
Pn_dBW = 10lg(Pn) = 10lg(Ps/(10^(SNR/10))) = 10lg(Ps) - SNR,单位是dBW

最终得到噪声绝对功率和信噪比的关系式:
Pn_dBW = 10lg(Ps) - SNR
假设信号功率是1W,则噪声绝对功率Pn_dBW = - SNR,正好是负的信噪比。


这个公式用在MATLAB的wgn函数里比较方便,wgn函数用来产生高斯白噪声,定义为
wgn(m, n, p)
其中m和n为生成m*n的噪声矩阵,p是指定生成多大功率的噪声,单位默认是dBW。
比如,如果知道信噪比为3 dB,假设信号功率为1W,则噪声功率为0.5012W,噪声绝对功率为 - 3 dBW,再代入wgn函数里,
a = wgn(1000,1,-3)
即矩阵a是一个1000行1列的高斯噪声矩阵,它的功率(即方差)是var(a) = 0.5012W,它的均值是mean(a) = 0(因为高斯白噪声服从均值是0的正态分布)。

MATLAB中psnr函数如何使用?或者说,有直接可调用的psnr函数吗?像snr函数一样

psnr(x,y)中的x和y分别是什么?哪个是原图,哪个是加噪声的图像或噪声?

参考技术A matlab的psnr(x,y)函数:x应为加了噪声的图像,y为原图,输出为峰值信噪比(Peak Signal-to-Noise Ratio, PSNR)。 参考技术B 没有区别的,你看看psnr函数,包含两幅图片差的平方这一项,所以xy交换顺序不影响结果的,xy可以任意是原图或加噪图。 参考技术C 计算峰值信噪比的函数,不是MATLAB里自带的函数,通常都是各个不同的人自己写的。所以这个函数如何使用,你得打开具体的函数编写的文本进行阅读。

以上是关于dBWdBW和信噪比SNR的关系的主要内容,如果未能解决你的问题,请参考以下文章

BPSK调制和信噪比:Matlab

怎么用matlab给声音加入噪音?

MATLAB中psnr函数如何使用?或者说,有直接可调用的psnr函数吗?像snr函数一样

matlab中有带宽加噪是啥意思

python 写matlab中的加性高斯白噪声AWGN

数字信号处理相关函数应用 ( 使用 matlab 计算相关函数 )