在matlab里怎么产生零均值协方差是已知的高斯信号呢?

零均值协方差矩阵是已知的,已知的是协方差矩阵,不是协方差... 零均值协方差矩阵是已知的,已知的是协方差矩阵,不是协方差 展开
 我来答
酷呆爱死呆
2011-04-21 · TA获得超过4240个赞
知道大有可为答主
回答量:507
采纳率:100%
帮助的人:1139万
展开全部
如何生成满足协方差矩阵Cx=[4 -1;-1 2]的二维高斯随机变量x的N个样本?

为了简单起见,假设X是零均值的.对于非零均值,设均值average=[a;b],只要外加一步x=x+average*ones(1,N)就OK了。

首先生成不相关的二维高斯随机变量z=randn(2,N);
这样生成的z,因为不相关,如果没有野值的话,其协方差Cz=[1 0;0,1];
如何从这样一个样本变换出满足所要求协方差矩阵的随机变量?

在零均值的条件下, Cz=E{z*z'},
我们假设 x=A*z,那么 Cx=E{x*x'}=E{(A*z)*(A*z)'}=A*E{z*z'}*A'=A*Cz*A'=A*A'
现在要解决的问题是,已知A*A'=Cx=[4 -1;-1 2],如何求A?显然这样的A有很多,我们为了方便计算,假设A为对称矩阵,即A=A',那么A的平方等于Cx,A等于Cx的平方根

程序如下:
z=randn(2,N);
x=sqrtm(Cx)*z;
如果是非零均值,加上x=x+average*ones(1,N);

注意:

(1)程序中求平方根用的是sqrtm(Cx),而不是sqrt(Cx),前者是求满足A*A=Cx的A,后者是求满足A.*A=Cx的A。

(2)当N的值取太小时,Cz可能不等于[1 0;0 1].数据量越少,越不能体现统计特性。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式