最后说说awgn函数具体是如何添加噪声的。事实上也很简单,在求出x的强度后,结合指定的信噪比,就可以求出需要添加的噪声的强度noisePower=sigPower/SNR。由于使用的是高斯白噪声即randn函数,而randn的结果是一个强度为1的随机序列(自己试试sum(randn(1000,1).^2)/1000就知道了,注意信号的长度不能太小)。于是,所要添加的噪声信号显然就是:
2. N=1000;
信噪比,英文名称叫做SNR或S/N(Signal Noise Ratio),是指系统中信号与噪声的比例。信号指的是来自设备外部需要通过这台设备进行处理的电子信号,噪声是指经过该设备后产生的原信号中并不存在的无规则的额外信号(或信息),并且该种信号并不随原信号的变化而变化。
信噪比的计量单位是dB,其计算方法是10LOG(Ps/Pn),其中Ps和Pn分别代表信号和噪声的有效功率,也可以换算成电压幅值的比率关系:20LOG(Vs/Vn),Vs和Vn分别代表信号和噪声电压的“有效值”。信噪比应该越高越好。
awgn()和wgn()函数
MATLAB中产生高斯白噪声非常方便,可以直接应用两个函数,一个是WGN,另一个是AWGN。WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪声。
1. WGN:产生高斯白噪声
y = wgn(m,n,p) 产生一个m行n列的高斯白噪声的矩阵,p以dBW为单位指定输出噪声的强度。
y = wgn(m,n,p,imp) 以欧姆(Ohm)为单位指定负载阻抗。
y = wgn(m,n,p,imp,state) 重置RANDN的状态。
y = wgn(…,POWERTYPE) 指定p的单位。POWERTYPE可以是'dBW', 'dBm'或'linear'。线性强度(linear power)以瓦特(Watt)为单位。
y = wgn(…,OUTPUTTYPE) 指定输出类型。OUTPUTTYPE可以是'real'或'complex'。
2. AWGN:在某一信号中加入高斯白噪声
y = awgn(x,SNR) 在信号x中加入高斯白噪声。信噪比SNR以dB为单位。x的强度假定为0dBW。如果x是复数,就加入复噪声。
y = awgn(x,SNR,SIGPOWER) 如果SIGPOWER是数值,则其代表以dBW为单位的信号强度;如果SIGPOWER为'measured',则函数将在加入噪声之前测定信号强度。
y = awgn(x,SNR,SIGPOWER,STATE) 重置RANDN的状态。
y = awgn(…,POWERTYPE) 指定SNR和SIGPOWER的单位。POWERTYPE可以是'dB'或'linear'。如果POWERTYPE是'dB',那么SNR以dB为单位,而SIGPOWER以dBW为单位。如果POWERTYPE是'linear',那么SNR作为比值来度量,而SIGPOWER以瓦特为单位
dB、dBm、dBw和w的换算关系
dBm是一个表示功率绝对值的值(也可以认为是以1mW功率为基准的一个比值),计算公式为:10log(功率值/1mw)。
这里将dBm转换为W的口算规律是要先记住“1个基准”和“2个原则”:
“1个基准”:
30dBm=1W
“2个原则”:
1)+3dBm,功率乘2倍;-3dBm,功率乘1/2
举例:33dBm=30dBm+3dBm=1W×2=2W
27dBm=30dBm-3dBm=1W×1/2=0.5W
2)+10dBm,功率乘10倍;-10dBm,功率乘1/10
举例:40dBm=30dBm+10dBm=1W×10=10W
20dBm=30dBm-10dBm=1W×0.1=0.1W
以上可以简单的记作:30是基准,等于1W整,互换不算难,口算可完成。加3乘以2,加10乘以10;减3除以2,减10除以10。
几乎所有整数的dBm都可用以上的“1个基准”和“2个原则”转换为W。
例1:44dBm=?W
44dBm=30dBm+10dBm+10dBm-3dBm-3dBm
=1W×10×10×1/2×1/2
=25W
例2:32dBm=?W
32dBm=30dBm+3dBm+3dBm+3dBm+3dBm-10dBm
=1W×2×2×2×2×0.1
=1.6W
计算技巧:
+1dBm和+2dBm的计算技巧
+1dBm=+10dBm-3dBm-3dBm-3dBm
=X×10×1/2×1/2×1/2
=X×1.25
+2dBm=-10dBm+3dBm+3dBm+3dBm+3dBm
=X×0.1×2×2×2×2
=X×1.6
在计算中,有时候也可以根据上面的规律变换为-1dBm和-2dBm,达到快速口速的目的,即:
-1dBm=-10dBm+3dBm+3dBm+3dBm
=X×0.1×2×2×2
=X×0.8
-2dBm=-3dBm+1dBm
=X×1/2×1.25
=X×0.625
例3:51dBm=30dBm+10dBm+10dBm+1dBm
=1W×10×10×1.25
=125W
例4:38dBm=30dBm+10dBm-2dBm
=1W×10×0.625
=6.25W
这样都是口算,是不是很简单啊?你记住了吗?
另:dBw与W的换算
dBw与dBm一样,dBw是一个表示功率绝对值的单位(也可以认为是以1W功率为基准的一个比值
),计算公式为:10log(功率值/1w)。
dBw与dBm之间的换算关系为:0 dBw = 10log1 W = 10log1000 mw = 30 dBm。
如果功率P为1W,折算为dBw后为0dBw。
总之,dB,dBi, dBd, dBc是两个量之间的比值,表示两个量间的相对大小,而dBm、dBw则是表示功率绝对大小的值。在dB,dBm,dBw计算中,要注意基本概念,用一个dBm(或dBw)减另外一个dBm(dBw)时,得到的结果是dB,如:30dBm - 0dBm = 30dB。
一般来讲,在工程中,dBm和dBm(或dBw和dBw)之间只有加减,没有乘除。而用得最多的是减法:dBm 减 dBm 实际上是两个功率相除,信号功率和噪声功率相除就是信噪比(SNR)。dBm 加dBm 实际上是两个功率相乘。