Mvcnorm: Multivariate complex Gaussian density and random deviates

Description Usage Arguments Details Author(s) References Examples

Description

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

Usage

1
2
3
4
5
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 FALSE meaning to return the Gaussian density function, and TRUE meaning to return the logarithm

method

Specifies the 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(z)=exp(-z*Γ z)/|πΓ|

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.

Author(s)

Robin K. S. Hankin

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
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

cmvnorm documentation built on Jan. 31, 2022, 1:06 a.m.