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的正态分布)。