matlab如何产生均值为0,方差为1的复高斯分布 |
您所在的位置:网站首页 › arcsini的复数值 › matlab如何产生均值为0,方差为1的复高斯分布 |
网上对于matlab如何产生均值为0,方差为1的复高斯分布一般都会给出这个答案: s = sqrt(var/2)*(randn(1,K) +j*randn(1,K)) (答案1) 其中s表示复高斯矩阵,var表示功率(即方差),而K表示采样数(这个例子中var为1)
究竟这个答案是否正确呢?网上已经有不少人给出了解释,现在我给出我自己的证明和看法:
第一部分: 首先是要明确什么是复高斯分布,对于这个内容,网站:http://everything2.com/title/complex+Gaussian+distribution 给出了比较好的解释,我再解释一下:我们称复随机变量z=x+iy是一个复随机变量或者服从复高斯分布如果它满足一下条件: a、它的实部x和虚部y服从联合高斯分布 b、它的实部x和虚部y相互独立 c、它的实部x和虚部y拥有相同的方差 以mx and my 表示x和y的均值,则z的均值为E[z]=mz=mx+i*my,它的方差定义为:E[(z-mz)(z-mz)*] (*表示共轭,公式可在维基百科上查到),因为复数的性质zz*=|z|^2=|z^2|,可将方差表示为E[|z-mz|^2],方差的大小为x或y的方差的两倍(比较一下上述网站的方差定义就知道了)。
第二部分: 对复高斯分布了解了之后,现在解释一下randn这个函数,这个函数主要的作用是产生均值为0,方差为1的正态随机分布数或矩阵,而randn(n,m)是产生一个m*n的随机项矩阵
第三部分: 现在对答案1进行解释,根据均值的性质:E[cX]=cE[X],方差的性质:D[cX]=(c^2)D[X],可得s = sqrt(var/2)*(randn(1,K) +j*randn(1,K)) 的均值为sqrt(var/2)*0=0, 方差为2*[(sqrt(var/2))^2]*1=2*(1/2)=1,同时实部和虚部都满足要求,因此这个答案是能产生均值为0,方差为1的复高斯分布的。 当要改变方差是,只需要改变var的值即可(这个答案的均值都为0)。
------------------------------------------------------------------------------------------ z=x+iy E{z}=E{x+iy}=E{x}+i*E{y} D{z}=E{(x+iy)*(x+iy)'}=E{|x+iy|^2}=E{x^2+y^2}=D{x}+D{y} 当复信号均值为0时,x和y均值为0 当复信号方差为1时,x和y方差为1/2
The typical assumption for a complex-valued Gaussian random vector is to split the variance equally among the real and imaginary parts. Let the variance be sigma2. z = sqrt(sigma2/2)*(randn(1000,1)+1j*randn(1000,1)); If you have the Communications Toolbox, see awgn().————————————————原文链接:https://blog.csdn.net/weixin_49716102/article/details/108529230 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |