MATLAB中awgn 函数可以为输入信号x 添加一定大小的噪声。

out = awgn(in,snr,'measured');  是一种常见的使用方法,意思是在添加噪声前先测量一下输入信号的功率,再根据snr值添加噪声。

这里我尝试用这个函数添加噪声:

%%%%%%%%%%%%%%%%%%%%

sig = ones(1,10000);
pow_sig = mean(sig.^2)
sigOut = awgn(sig,10,'measured');

noise = sigOut - sig;
pow_noise = mean(noise.^2)

%%%%%%%%%%%%%%%%%%%%

输出:

pow_sig =

1

pow_noise =

0.101453985694793

所以这个snr到底表示什么含义呢?

答案:snr = 10*log10(输入信号功率/噪声功率),即输入参数snr表示输入信号功率与噪声功率的比值再取底为10的对数再乘10的结果,这也是通信上一般认为的信噪比。

-------转载请说明出处--------

04-30 19:10