用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为信噪比,这样就可以把信号幅值和信噪比以及噪声联系起来了!
不知这样说对不对,请看一看! u=u-mean(u);减去均值相当于把u变换到以均值为中心的一个区间。
u=rand(1,N); u的范围(0,1);
u=u-mean(u);u的范围(-.5,.5)
其他两个问题期待高手解答
回复 沙发 friendchj 的帖子
这样做有什么用吗?另外后面两个问题你知道吗?回复 板凳 wannete 的帖子
不清楚对产生的高斯白噪声有无要求,如果均值为零,就需要u=u-mean(u);这一步。关于“p乘以12”,我想是不是和要求的高斯白噪声功率有关。 u=rand(1,N);均匀白噪声u=randn(1,N);高斯白噪声,均值自动为零。
[ 本帖最后由 无水1324 于 2009-8-16 20:37 编辑 ] 区间的均匀分布的均值为(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 编辑 ] 回复 2 # friendchj 的帖子
您好,我在学习信号与信息处理的相关知识,可遇到问题苦于无交流,您在这方面比较有威望愿能提供指导 希望能有较多的交流 我的联系:83 864 8475(程颖) 谢谢! 回复 2 # friendchj 的帖子
您好,我在学习信号与信息处理的相关知识,可遇到问题苦于无交流,您在这方面比较有威望愿能提供指导 希望能有较多的交流 我的联系:83 864 8475(程颖) 谢谢!
页:
[1]