-
Notifications
You must be signed in to change notification settings - Fork 9
Description
Hello,
It appears detector read noise is not implemented properly.
Issue #1: Read noise is not Poisson
the current code make_noise.py, lines 192-195, has the following implementation:
cnoise = cp + 2*(cz + cez + csp + cD + cR + cth)
with line 187 having
cR = cread(Re, X, lam, diam, theta, DNHpix, Dtmax, IMAGE=IMAGE)
In noise_routines.py, cread is implemented as
return Npix/(Dtmax*3600.)*Re
where Re is the user specified read noise. This is essentially how a Poisson random variable operates.
In cnoise, all the noise sources above are Poisson, except read noise. Since the variance of a Poisson random variable is equal to its mean, the Poisson random variables of cz, cez, csp, cD, cth are all correct.
The variance of a Gaussian (like read noise), on the other hand, is equal to RN^2. Eg, if you have a detector with 3 electrons of read noise, in one frame you will have a variance of 3^2 number of electrons. If you have N_f frames, since variances of uncorrelated variables add, the total variance will be RN^2 * N_f = RN^2 * t_tot/t_fr where t_tot is the exposure time and t_fr is the individual frame time. So the read noise as a function of time is (RN^2/t_fr), not (RN/t_fr) as in noise_routines.py. This is different from dark current or other Poissonian sources, where the total variance would just be DC*t, with a rate of DC (or cD, as above).
NB: The HabEx report and several papers cite the incorrect form, but the LUVOIR report has the correct form (LUVOIR Final Report Appendices, B-18)
Issue #2: Read noise of 0.2 e- equals read noise of 0 e-.
This is not explicitly written in the code, but the code does allow (indeed, appears to default to) read noise values of less than 0.2 electrons. At 0.2e- of read noise, there is a 1% error of misclassifying eg, 2 photoelectrons vs 3, which drops to <1e-4% at 0.1 electrons. So, clipping the data values to the nearest electron drops the effective read noise to zero when the sensor read noise is less than 0.2 electrons.
See "Modeling the Performance of Single-Bit and Multi-Bit Quanta Image Sensors", Fossum et al., Fig 7, eq 27.
Best,
Mike from Hawaii