信噪比:即Signal noise ratio , 即SNR;
它的单位为 dB, 公式为: SNR = 10lg(PS / PN), 其中 ps 表示信号的有效功率, pn 表示噪声的有效功率;
- 如何计算一个信号的功率呢?
假如有一个一维的信号 x ,它的平均功率可以这么算:
power = sum(x .* x ) / size(x)
- 有时候,会用dbW 来描述一个信号的功率,这是什么意思呢?
dBw 是一个表示功率绝对值的单位(以1 W 功率为基准, dBm 以 1mW为基准)
- 什么样的噪声为高斯白噪声呢?
其中的白噪声,指的是:功率谱密度服从均匀分布, 而高斯指的是:噪声的幅度分布服从高斯分布;
百度百科的两种定义:
定义一:如果一个噪声,它的瞬时值服从高斯分布,而它的功率谱密度又是均匀分布的,则称它为高斯白噪声。
定义二:在一般的通信系统的工作频率范围内热噪声的频谱是均匀分布的,好像白光的频谱在可见光的频谱范围内均匀分布那样,所以热噪声又常称为白噪声。由于热噪声是由大量自由电子的运动产生的,其统计特性服从高斯分布,故常将热噪声称为高斯白噪声。
- 在 matlab中生成高斯白噪声的函数:
wgn()函数, 用它可以生成高斯白噪声,用法很多,说一下基本的用法:
y = wgn(m,n,p), 生成 m * n 的高斯白噪声, 其中p 表示生成噪声的功率,单位为dBw;
- 给一个信号加入高斯白噪声的函数:
awgn()函数,即 add white gaussian noise to signal;
用法1:
y = awgn(x,snr) 给信号x 加入指定的 SNR 的高斯白噪声,其中默认原信号x 的功率为 0 dBw, 即 1w;
y = awgn(x,snr,sigpower) 给信号x 加入指定的 SNR 的高斯白噪声,sigpower用于指定原信号x的功率,单位为dBw;
y = awgn(x,snr,'measured') 给信号x 加入指定的 SNR 的高斯白噪声,它会先测量一个原信号x 的功率;所以呢,我们记住第三个方式就可以啦;