matlab 中产生高斯白噪声有可以用awgn, wgn, 和randn函数。它们产生的高斯噪声都是宽带的。假如信号的噪声
n
(
t
)
n(t)
n(t)的单边噪声功率谱是
n
0
n_0
n0,那总的信号功率为:
v
a
r
(
n
(
t
)
)
=
n
0
⋅
f
s
/
2
var(n(t))=n_0 \cdot f_s/2
var(n(t))=n0⋅fs/2
用randn()实现:
Eb = mean(x.^2)*T;
n0 = Eb/r;
Noise = sqrt(n0*Fs/2)*randn(length(x),1);
x1 = x + Noise;
用wgn()实现:
Noise = wgn(length(x),1,n0*Fs/2,'linear');
x1 = x + Noise;
用awgn()实现:
snr = mean(x.^2) / (n0*Fs/2);
x1 = awgn(x, snr, 'measured', 'linear');