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的結果,這也是通信上一般認為的信噪比。
-------轉載請說明出處--------