MATLAB中如何对原始信号添加不同信噪比的高斯白噪声

1.高斯白噪声

白噪声:功率谱密度服从均匀分布;
高斯:噪声的幅度分布服从高斯分布;
定义一:如果一个噪声,它的瞬时值服从高斯分布,而它的功率谱密度又是均匀分布的,则称它为高斯白噪声。
定义二:在一般的通信系统的工作频率范围内,热噪声的频谱是均匀分布的,类似白光的频谱在可见光的频谱范围内均匀分布,所以热噪声又常称为白噪声。由于热噪声是由大量自由电子的运动产生的,其统计特性服从高斯分布,故常将热噪声称为高斯白噪声。

2.信噪比

SNR:信号的强度除以噪声的强度(或者信号功率与噪声功率之比)。
在这里插入图片描述

信号的强度:在连续的情形就是对信号x平方后求积分,而在离散的情形是求和代替积分。计算公式如下:
sigPower=sum(abs(sig(: )).^2)/length(sig(: ))
其中,sig(:)为信号。

3.wgn函数和awgn函数

在matlab中无论是wgn还是awgn函数,实质都是由randn函数产生的噪声。即:wgn函数中调用了randn函数,而awgn函数中调用了wgn函数。

1). WGN:产生高斯白噪声

y = wgn(m,n,p):产生一个m行n列的高斯白噪声的矩阵,p以dB(W)为单位指定输出噪声的强度;
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的强度假定为0dB(W)。如果x是复数,就加入复噪声。
y = awgn(x,SNR,SIGPOWER) 如果SIGPOWER是数值,则其代表以dB(W)为单位的信号强度;如果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以瓦特为单位。

参考文献
[1]信噪比、添加高斯白噪声
[2] MATLAB中白噪声的WGN和AWGN函数的使用以及信噪比的计算
[3] Matlab信号添加噪声及信噪比SNR的计算

猜你喜欢

转载自blog.csdn.net/weixin_45317919/article/details/107451898