作业帮 > 综合 > 作业

为什么matlab里randn产生的不是零均值数列

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/08 12:26:13
为什么matlab里randn产生的不是零均值数列
matlab里randn()命令是产生白噪声的,白噪声应该是零均值,方差为1的一组数啊,有人说是数据越多越准确,我都取1000个数了,可用mean和var检验,得出的均值和方差仍然跟0和1相差很远.这是为什么?那matlab岂不是不能产生真正的白噪声了?那双谱里由白噪声得出的双谱值为0可怎么实现啊?
小程序如下:
>> y=randn(1,1024);
>> mean(y)
ans =
-0.0557
>> var(y)
ans =
0.9581
这也差的太多了吧~
matlab 用randn中产生的是随机数,它产生的是均值为0方差为1的数.
它是服从normal distribution(正态分布)
我们由matlab自带的解说中可以看到:
Y = randn returns a pseudorandom,
scalar value drawn from a normal distribution with mean 0 and standard deviation 1.
Y = randn(m,n) or Y
= randn([m n]) returns an m-by-n matrix
of the same.
产生的是理论上mean 0 and standard deviation 1.
但是我们知道实际上matlab也是由随机数产生的数组,达到真正的mean 0 and standard deviation 1.也是有概率的,很难完全满足.
>> y=randn(1,102400);
>> mean(y)
ans =
0.0035
>> var(y)
ans =
1.0079
如果我们把数取更大,比如102400,看到上述结果……
原创.