Learn R Programming

lmomco (version 2.4.14)

pdfrice: Probability Density Function of the Rice Distribution

Description

This function computes the probability density of the Rice distribution given parameters (\(\nu\) and \(\mathrm{SNR}\)) computed by parrice. The probability density function is $$ f(x) = \frac{x}{\alpha^2}\,\exp\!\left(\frac{-(x^2+\nu^2)}{2\alpha^2}\right)\,I_0(x\nu/\alpha^2)\mbox{,} $$ where \(f(x)\) is the nonexceedance probability for quantile \(x\), \(\nu\) is a parameter, and \(\nu/\alpha\) is a form of signal-to-noise ratio \(\mathrm{SNR}\), and \(I_k(x)\) is the modified Bessel function of the first kind, which for integer \(k=0\) is seen under LaguerreHalf. If \(\nu=0\), then the Rayleigh distribution results and pdfray is used. If \(24 < \mathrm{SNR} < 52\) is used, then the Normal distribution functions are used with appropriate parameter estimation for \(\mu\) and \(\sigma\) that include the Laguerre polynomial LaguerreHalf. If \(\mathrm{SNR} > 52\), then the Normal distribution functions continue to be used with \(\mu=\alpha\times\mathrm{SNR}\) and \(\sigma = A\).

Usage

pdfrice(x, para)

Value

Probability density (\(f\)) for \(x\).

Arguments

x

A real value vector.

para

The parameters from parrice or vec2par.

Author

W.H. Asquith

References

Asquith, W.H., 2011, Distributional analysis with L-moment statistics using the R environment for statistical computing: Createspace Independent Publishing Platform, ISBN 978--146350841--8.

See Also

cdfrice, quarice, lmomrice, parrice

Examples

Run this code
lmr <- lmoms(c(10, 43, 27, 26, 49, 26, 62, 39, 51, 14))
rice <- parrice(lmr)
x <- quarice(nonexceeds(),rice)
plot(x,pdfrice(x,rice), type="b")


# For SNR=v/a > 24 or 240.001/10 > 24, the Normal distribution is
# used by the Rice as implemented here.
rice1 <- vec2par(c(239.9999,10), type="rice")
rice2 <- vec2par(c(240.0001,10), type="rice")
x <- 200:280
plot( x, pdfrice(x, rice1), type="l", lwd=5, lty=3) # still RICIAN code
lines(x, dnorm(  x, mean=240.0001, sd=10), lwd=3, col=2) # NORMAL obviously
lines(x, pdfrice(x, rice2), lwd=1, col=3) # NORMAL distribution code is triggered

# For SNR=v/a > 52 or 521/10 > 52, the Normal distribution
# used by the Rice as implemented here with simple parameter estimation
# because this high of SNR is beyond limits of Bessel function in Laguerre
# polynomial
rice1 <- vec2par(c(520,10), type="rice")
rice2 <- vec2par(c(521,10), type="rice")
x <- 10^(log10(520) - 0.05):10^(log10(520) + 0.05)
plot( x, pdfrice(x, rice1), type="l", lwd=5, lty=3)
lines(x, pdfrice(x, rice2), lwd=1, col=3) # NORMAL code triggered

Run the code above in your browser using DataLab