本次实验主要的目的是给产生的信号添加高斯白噪声
给信号添加高斯白噪声是通过函数awgn来实现的
MATLAB中的函数原型
Y=awgn(X,SNR)Y=awgn(X,SNR,SIGPOWER)Y=awgn(X,SNR,SIGPOWER,S)Y=awgn(X,SNR,SIGPOWER,STATE)Y=awgn(…,POWERTYPE)
参数说明
X是原来的信号,Y是添加高斯白噪声后的信号,SNR是信噪比,当SIGPOWER是一个数字的时候,表示的是信号的功率,以dBW计算,当SIGPOWER被指定为‘measured’的时候,意思是要在加噪声之前对信号X进行功率的计算。S是一个随机流的句柄,可以使用RANDN生成随机噪声样本,如果S是一个整数,然后要重置RANDN的状态为整数。STATE的意思是重置RANDN的状态到STATE。POWERTYPE是指定SNR和SIGPOWER的单位,POWERTYPE的可以是‘db’或’linear’,如果POWERTYPE是‘db’,则SNR的单位是dB,SIGPOWER的单位是dBW。如果POWERTYPE是’linear’,那么SNR被作为一个ratio来测量,SIGPOWER以Watts来测量。
MATLAB中的案例
Example 1: % To specify the power of X to be 0 dBW and add noise to produce% an SNR of 10dB, use:X = sqrt(2)*sin(0:pi/8:6*pi);Y = awgn(X,10,0);Example 2: % To specify the power of X to be 3 Watts and add noise to% produce a linear SNR of 4, use:X = sqrt(2)*sin(0:pi/8:6*pi);Y = awgn(X,4,3,'linear');Example 3: % To cause awgn to measure the power of X and add noise to% produce a linear SNR of 4, use:X = sqrt(2)*sin(0:pi/8:6*pi);Y = awgn(X,4,'measured','linear');Example 4: % To specify the power of X to be 0 dBW, add noise to produce% an SNR of 10dB, and utilize a local random stream, use:S = RandStream('mt19937ar','Seed',5489);X = sqrt(2)*sin(0:pi/8:6*pi);Y = awgn(X,10,0,S);Example 5: % To specify the power of X to be 0 dBW, add noise to produce% an SNR of 10dB, and produce reproducible results, use:reset(RandStream.getGlobalStream)X = sqrt(2)*sin(0:pi/8:6*pi);Y = awgn(X,10,0);
参考:
matlab中命令窗口输入help awgn