wannete 发表于 2009-8-14 23:17

用randn产生高斯白噪声的程序

我在网上找到这样一个产生高斯白噪声的程序:
clear;

p=0.01;
N=50000;
u=rand(1,N);
u=u-mean(u);
a=sqrt(12*p);
u1=u*a;
power_u1=dot(u1,u1)/N
subplot(211)
plot(u1(1:200));grid on;
ylabel('u(n)')   
xlabel('n')
有些不明白就是u=u-mean(u);有什么用?
二是a=sqrt(12*p); 中p乘以12是什么意思,我在另外一个噪声程序中也看到了乘以1/12的情况,你知道吗?
三是信号功率p,在sin和cos信号中可以用信号幅值和信噪比表示对吧,即p=a^2/(2*10^(SNR/10));    a为信号幅值,SNR为信噪比,这样就可以把信号幅值和信噪比以及噪声联系起来了!
不知这样说对不对,请看一看!

friendchj 发表于 2009-8-15 11:04

u=u-mean(u);减去均值相当于把u变换到以均值为中心的一个区间。
u=rand(1,N); u的范围(0,1);
u=u-mean(u);u的范围(-.5,.5)
其他两个问题期待高手解答

wannete 发表于 2009-8-15 14:24

回复 沙发 friendchj 的帖子

这样做有什么用吗?另外后面两个问题你知道吗?

friendchj 发表于 2009-8-16 15:07

回复 板凳 wannete 的帖子

不清楚对产生的高斯白噪声有无要求,如果均值为零,就需要u=u-mean(u);这一步。关于“p乘以12”,我想是不是和要求的高斯白噪声功率有关。

VibrationMaster 发表于 2009-8-16 18:36

u=rand(1,N);均匀白噪声
u=randn(1,N);高斯白噪声,均值自动为零。

[ 本帖最后由 无水1324 于 2009-8-16 20:37 编辑 ]

jlliang 发表于 2009-8-26 11:11

区间的均匀分布的均值为(a+b)/2,    方差为(b-a)^2/12
a=sqrt(12*p); u1=u*a; 的意思应该为 var(u1)=a^2*var(u)=12*p*(b-a)^2/12=p*(b-a)^2
也就是说u1的方差为p=0.01   (程序中p=0.01,a=0,b=1)

[ 本帖最后由 jlliang 于 2009-8-26 11:12 编辑 ]

chengying8427 发表于 2012-8-30 11:25

回复 2 # friendchj 的帖子

您好,我在学习信号与信息处理的相关知识,可遇到问题苦于无交流,您在这方面比较有威望愿能提供指导 希望能有较多的交流 我的联系:83 864 8475(程颖)   谢谢!

chengying8427 发表于 2012-8-30 11:26

回复 2 # friendchj 的帖子

您好,我在学习信号与信息处理的相关知识,可遇到问题苦于无交流,您在这方面比较有威望愿能提供指导 希望能有较多的交流 我的联系:83 864 8475(程颖)   谢谢!
页: [1]
查看完整版本: 用randn产生高斯白噪声的程序