cmvnorm (version 1.0-6)

Mvcnorm: Multivariate complex Gaussian density and random deviates

Description

Density function and a random number generator for the multivariate complex Gaussian distribution.

Usage

rcnorm(n)
dcmvnorm(z, mean, sigma, log = FALSE) 
rcmvnorm(n, mean = rep(0, nrow(sigma)), sigma = diag(length(mean)), 
    method = c("svd", "eigen", "chol"),
    tol= 100 * .Machine$double.eps)

Arguments

z

Complex vector or matrix of quantiles. If a matrix, each row is taken to be a quantile

n

Number of observations

mean

Mean vector

sigma

Covariance matrix, Hermitian positive-definite

tol

numerical tolerance term for verifying positive definiteness

log

In dcmvnorm(), Boolean with default TRUE meaning to return the Gaussian density function, and FALSE meaning to return the logarithm

method

Matrix decomposition used to determine the positive-definite matrix square root of sigma, possible methods are eigenvalue decomposition (“eigen”, default), and singular value decomposition (“svd”)

Details

Function dcmvnorm() is the density function of the complex multivariate normal (Gaussian) distribution:

$$p\left(\mathbf{z}\right)=\frac{\exp\left(-\mathbf{z}^*\Gamma\mathbf{z}\right)}{\left|\pi\Gamma\right|}$$

Function rcnorm() is a low-level function designed to generate observations drawn from a standard complex Gaussian. Function rcmvnorm() is a user-friendly wrapper for this.

References

N. R. Goodman 1963. “Statistical analysis based on a certain multivariate complex Gaussian distribution”. The Annals of Mathematical Statistics. 34(1): 152--177

Examples

Run this code
# NOT RUN {
S <- emulator::cprod(rcmvnorm(3,mean=c(1,1i),sigma=diag(2)))

rcmvnorm(10,sigma=S)
rcmvnorm(10,mean=c(0,1+10i),sigma=S)


# Now try and estimate the mean (viz 1,1i) and variance (S) from a
#  random sample:


n <- 101
z <- rcmvnorm(n,mean=c(0,1+10i),sigma=S)
xbar <- colMeans(z)
Sbar <- cprod(sweep(z,2,xbar))/n




# }

Run the code above in your browser using DataLab