I have collected some noise data from a dimly lit CMOS image sensor. The distribution of pixel values is tallied below:-


I'd like to be able to simulate this sensor noise. How would I fit a statistical distribution to this bell curvish graph? And which distribution? Bear in mind that the distribution is discrete. From the raw samples, I get mean = 18 and standard deviation = 7 (both approximations).

  • $\begingroup$ You can always find a distribution that fits. But you'd risk overfitting. You'd typically start with things like "I assume this is normal" or "$\chi^2$ with $M$ degrees of freedom, $M$ small. $\endgroup$ Commented Aug 5, 2018 at 0:57
  • $\begingroup$ In physics, normal is often a very reasonable assumption. In your case, I'd presume you'd see a normal distribution (representing your noise) added to another distribution (representing your signal) $\endgroup$ Commented Aug 5, 2018 at 0:59
  • $\begingroup$ @MarcusMüller But normal distributions are continuous, whilst pixel values are discrete integers. That's my problem. $\endgroup$
    – Paul Uszak
    Commented Aug 5, 2018 at 1:13
  • 2
    $\begingroup$ Define a sampled normal distribution function as discrete normal. Done. $\endgroup$ Commented Aug 5, 2018 at 1:46
  • 3
    $\begingroup$ Noise in such condition is likely Poisson distributed noise (photon noise, thermal noise) + normally distributed noise (some electronics) + quantization noise. $\endgroup$ Commented Nov 3, 2018 at 20:27

1 Answer 1


Since you say your distribution is discrete, if your samples are independent, you could try a multinomial distribution as a model.

You can use either maximum likelihood or a Bayesian estimator.

You could also take the mean and standard deviation and use a Gaussian model with rounding. A goodness of fit test would tell you how good the model is.

If your samples are independent noise generation is straightforward . A Bayesian model is different because you use another (prior) noise generator as an input to the fixed parameter noise generator.

If your samples are correlated you can use a Gibbs sampler.

You should perform an independence test on your data, of which a Google search will provide a number of candidates

You also might consider boot-strapping.

It is also very likely that a physics based noise model exists for your device.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.