CCD shot + read noise simulator

This page contains a very simple javascript CCD simulation (for Claire Brown's MLMC course) to show the effects of read noise, light level and binning on image quality.

Usage :

The script adds a Poisson distributed random value to each pixel to simulate shot noise (caused by statistical variability in photon arrival), and adds a random value to each read pixel to simulate read noise.

Binning either:
   i) groups pixels after the addition of shot noise but before the addition of read noise or
   ii) groups pixels after all noise sources are added,
depending on whethe the postprocess checkbox is ticked. This shows how signal quality changes - S/N is better without postprocessing.

The code doesn't do anything sophisticated - charge transfer is 100%, there is no dark current or integration time, digitization is always 8 bit, well size isn't represented, and read noise is just a (non-gaussian) random number.


light level:
binning: (postprocess: )
read noise:


Please let me know if you find any errors with the code (email: gil.bub@mcgill.ca).

(Return to Gil Bub's lab webpage or the ABIF site).