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的结果,这也是通信上一般认为的信噪比。
-------转载请说明出处--------