Learn R Programming

lmomco (version 2.4.14)

cdfemu: Cumulative Distribution Function of the Eta-Mu Distribution

Description

This function computes the cumulative probability or nonexceedance probability of the Eta-Mu (\(\eta:\mu\)) distribution given parameters (\(\eta\) and \(\mu\)) computed by parkmu. The cumulative distribution function is complex and numerical integration of the probability density function pdfemu is used or the Yacoub (2007) \(Y_\nu(a,b)\) integral. The cumulative distribution function in terms of this integral is $$ F(x) = 1- Y_\nu\biggl( \frac{H}{h},\, x\sqrt{2h\mu} \biggr)\mbox{,} $$ where $$ Y_\nu(a,b) = \frac{2^{3/2 - \nu}\sqrt{\pi}(1-a^2)^\nu}{a^{\nu - 1/2} \Gamma(\nu)} \int_b^\infty x^{2\nu}\,\mathrm{exp}(-x^2)\,I_{\nu-1/2}(ax^2) \; \mathrm{d}x\mbox{,} $$ where \(I_{\nu}(a)\) is the ``\(\nu\)th-order modified Bessel function of the first kind.''

Usage

cdfemu(x, para, paracheck=TRUE, yacoubsintegral=TRUE)

Value

Nonexceedance probability (\(F\)) for \(x\).

Arguments

x

A real value vector.

para

The parameters from paremu or vec2par.

paracheck

A logical controlling whether the parameters and checked for validity.

yacoubsintegral

A logical controlling whether the integral by Yacoub (2007) is used instead of numerical integration of pdfemu.

Author

W.H. Asquith

References

Yacoub, M.D., 2007, The kappa-mu distribution and the eta-mu distribution: IEEE Antennas and Propagation Magazine, v. 49, no. 1, pp. 68--81

See Also

pdfemu, quaemu, lmomemu, paremu

Examples

Run this code
para <- vec2par(c(0.5, 1.4), type="emu")
cdfemu(1.2, para, yacoubsintegral=TRUE)
cdfemu(1.2, para, yacoubsintegral=FALSE)
if (FALSE) {
delx <- 0.01; x <- seq(0,3, by=delx)
nx <- 20*log10(x)
plot(c(-30,10), 10^c(-3,0), log="y", xaxs="i", yaxs="i",
     xlab="RHO", ylab="cdfemu(RHO)", type="n")
m <- 0.75
mus <- c(0.7425, 0.7125, 0.675, 0.6, 0.5, 0.45)
for(mu in mus) {
   eta <- sqrt((m / (2*mu))^-1 - 1)
   lines(nx, cdfemu(x, vec2par(c(eta, mu), type="emu")))
}
mtext("Yacoub (2007, figure 8)")

# Now add some last boundary lines
mu <- m; eta <- sqrt((m / (2*mu))^-1 - 1)
lines(nx, cdfemu(x, vec2par(c(eta, mu), type="emu")),  col=8, lwd=4)
mu <- m/2; eta <- sqrt((m / (2*mu))^-1 - 1)
lines(nx, cdfemu(x, vec2par(c(eta, mu), type="emu")), col=4, lwd=2, lty=2)


delx <- 0.01; x <- seq(0,3, by=delx)
nx <- 20*log10(x)
m <- 0.75; col <- 4; lty <- 2
plot(c(-30,10), 10^c(-3,0), log="y", xaxs="i", yaxs="i",
     xlab="RHO", ylab="cdfemu(RHO)", type="n")
for(mu in c(m/2,seq(m/2+0.01,m,by=0.01), m-0.001, m)) {
   if(mu > 0.67) { col <- 2; lty <- 1 }
   eta <- sqrt((m / (2*mu))^-1 - 1)
   lines(nx, cdfemu(x, vec2par(c(eta, mu), type="emu")),
         col=col, lwd=.75, lty=lty)
}}

Run the code above in your browser using DataLab