Learn R Programming

lmomco (version 1.7.3)

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$) of the distribution computed by parkmu. The cumulative distribution function of the distribution is complex and numerical integration of the probability density function 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)$$ 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)\mathrm{I_{\nu-1/2}}(ax^2) \; \mathrm{d}x$$

Usage

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

Arguments

x
A real value.
para
The parameters from paremu or similar.
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.

Value

  • Nonexceedance probability ($F$) for $x$.

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, 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)

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