Learn R Programming

lmomco (version 1.4.3)

lmomrice: L-moments of the Rice Distribution

Description

This function estimates the L-moments of the Rice distribution given the parameters ($\nu$ and $\alpha$) from parrice. The L-moments in terms of the parameters are complex. They are computed here by the system of maximum order statistic expectations from the theoLmoms.max.ostat, which uses the expect.max.ostat. The connection between $\tau_2$ and $\nu/\alpha$ and a special function (Laguerre polynomial) of $\nu^2/\alpha^2$ and additional algebraic terms is tabulated in the data frame located in .lmomcohash$RiceTable. The file SysDataBuilder.R provides additional technical details.

Usage

lmomrice(para, ...)

Arguments

para
The parameters of the distribution.
...
Additional arguments passed to the theoLmoms.max.ostat.

Value

  • An R list is returned.
  • lambdasVector of the L-moments. First element is $\lambda_1$, second element is $\lambda_2$, and so on.
  • ratiosVector of the L-moment ratios. Second element is $\tau$, third element is $\tau_3$ and so on.
  • trimLevel of symmetrical trimming used in the computation, which will equal NULL until trimming support is made.
  • leftrimLevel of left-tail trimming used in the computation, which will equal NULL until trimming support is made.
  • rightrimLevel of right-tail trimming used in the computation, which will equal NULL until trimming support is made.
  • sourceAn attribute identifying the computational source of the L-moments: lmomrice, but the exact contents of the remainder of the string might vary as limiting distributions of Normal and Rayleigh can be involved for $\nu/\alpha > 52$ (super high SNR, Normal) or $24 < \nu/\alpha \le 52$ (high SNR, Normal) or $\nu/\alpha < 0.08$ (very low SNR, Rayleigh).

See Also

parrice, quarice, cdfrice, theoLmoms.max.ostat

Examples

Run this code
rice <- vec2par(c(65,34), type="rice")
lmomrice(rice)

# Use the additional arguments to show how to avoid
# unnecessary overhead when using the Rice, which only
# has two parameters.
  rice <- vec2par(c(15,14), type="rice")
  system.time(lmomrice(rice, nmom=2))
  system.time(lmomrice(rice, nmom=6))


  lcvs <- vector(mode="numeric"); i <- 0
  SNR  <- c(seq(7,0.25, by=-0.25), 0.1)
  for(snr in SNR) {
    i <- i + 1
    rice    <- vec2par(c(10,10/snr), type="rice")
    lcvs[i] <- lmomrice(rice, nmom=2)$ratios[2]
  }
  plot(lcvs, SNR,
       xlab="COEFFICIENT OF L-VARIATION",
       ylab="LOCAL SIGNAL TO NOISE RATIO (NU/ALPHA)")
  lines(.lmomcohash$RiceTable$LCV,
        .lmomcohash$RiceTable$SNR)
  abline(1,0, lty=2)
  mtext("Rice Distribution")
  text(0.15,0.5, "More noise than signal")
  text(0.15,1.5, "More signal than noise")

Run the code above in your browser using DataLab