![]() |
Institut für Astronomie und AstrophysikAbteilung AstronomieSand 1, D-72076 Tübingen, GermanyNew Address! -- Neue Adresse! |
![]() |
POIDEV
Generate a Poisson random deviate
Return an integer random deviate drawn from a Poisson distribution with
a specified mean. Adapted from procedure of the same name in
"Numerical Recipes" by Press et al. (1992), Section 7.3
NOTE: This routine became partially obsolete in V5.0 with the
introduction of the POISSON keyword to the intrinsic functions
RANDOMU and RANDOMN. However, POIDEV is still useful for adding
Poisson noise to an existing image array, for which the coding is much
simpler than it would be using RANDOMU (see example 1)
result = POIDEV( xm, [ SEED = ] )
xm - numeric scalar, vector or array, specifying the mean(s) of the
Poisson distribution
result - Long integer scalar or vector, same size as xm
OPTIONAL KEYWORD INPUT-OUTPUT:
SEED - Scalar to be used as the seed for the random distribution.
For best results, SEED should be a large (>100) integer.
If SEED is undefined, then its value is taken from the system
clock (see RANDOMU). The value of SEED is always updated
upon output. This keyword can be used to have POIDEV give
identical results on consecutive runs.
(1) Add Poisson noise to an integral image array, im
IDL> imnoise = POIDEV( im)
(2) Verify the expected mean and sigma for an input value of 81
IDL> p = POIDEV( intarr(10000) + 81) ;Test for 10,000 points
IDL> print,avg(p),sigma(p)
Average and sigma of the 10000 points should be close to 81 and 9
For small values (< 20) independent exponential deviates are generated
until their sum exceeds the specified mean, the number of events
required is returned as the Poisson deviate. For large (> 20) values,
uniform random variates are compared with a Lorentzian distribution
function.
Negative values in the input array will be returned as zeros.
Versions 5.1.1 and 5.2 of IDL have a bug in the RANDOMU function, such
that it is initialized to the same value at the start of each IDL session
rather than being initialized to the system clock. This bug will affect
POIDEV in a similar manner.
Version 1 Wayne Landsman July 1992
Added SEED keyword September 1992
Call intrinsic LNGAMMA function November 1994
Converted to IDL V5.0 W. Landsman September 1997
[Home Page] [Software, Documentation] [IDL Documentation] [Quick Reference] [Feedback]