区别randn()和awgn()添加白噪声信号

168(30天)
大家好!
我试图添加一个白噪声信号,模拟了不同信噪比的值。
但我不确定我是否应该使用randn()或awgn ()。
例如我不明白为什么这两种方法在我的代码提供不同的信号。
t = linspace (0120、8000);
x =罪(2 * 0.01π*。* t +π/ 3)。* cos(2 * 0.01π*。* t +π/ 3);%原始信号
n = 2 * randn(大小(x));%白噪声
xn = x + n;%噪声信号方法1
信噪比=信噪比(xn n);
x2 = awgn (x,信噪比,“测量”);%噪声信号方法2
次要情节(2,1,1);情节(t, xn);
标题(“使用randn与白噪声信号”);
次要情节(2,1,2);情节(t, x2);
标题(的使用情况与白噪声信号);
我会很感激您的说明和建议!
2的评论
bob98
bob98 2020年10月25日
谢谢你的答案,但我不确定你所说的乘数,标准偏差?(对不起但我还是绝对初学者在Matlab . .)
关于你的问题,否则这就是xn定义的信噪比,对吧?嘈杂的信号/噪音? ?

登录置评。

答案(2)

Shubham Rawat
Shubham Rawat 2020年10月28日
嗨,鲍勃,
在这里 xn 你添加的噪声
n = 2 * randn(大小(x));%噪音使用乘数2
xn = x + n;
而在 x2,
信噪比=信噪比(xn n);
x2 = awgn (x,信噪比,“测量”);%噪音使用乘数倍根号(10 ^(信噪比/ 10))
1评论
bob98
bob98 2020年10月29日
谢谢你的澄清。
所以据我理解我们这里有两种不同的方差值1 4第二人 10 ^(信噪比/ 10)。
所以如何影响信噪比的值(信号、噪声)尤其是在给定的输入是第二个?
我怎么得到两种方法生成相同的信号信噪比?
我期待你的答案。

登录置评。


保罗
保罗 2020年11月4日
这似乎更接近你的期望:
t = linspace (0120、8000);
x =罪(2 * 0.01π*。* t +π/ 3)。* cos(2 * 0.01π*。* t +π/ 3);%原始信号
S = RandStream.getGlobalStream;
S.reset;
噪音= 2 * randn(大小(x));
xn1 = x +噪声;
S.reset;
信噪比=信噪比(x,噪音);%使用名义信号
xn2 = awgn (x,信噪比,“测量”);
马克斯(abs (xn1-xn2))
ans =
4.8495 e-02
我希望xn1 = = xn2。他们正在接近,但不完全相同的。

类别

找到更多的在开始使用通讯工具帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!