How can I fit multiple Gaussians to one data set?

3 views (last 30 days)
I am working with some data showing the number of photons detected in events corresponding to electron release. Each electron produces photons according to a normal distribution. The data has multiple peaks from events involving one, two or three electrons, and possibly more. I want to fit a gaussian curve over each of these peaks individually, so I can integrate and find the probability of an event having a particular number of electrons. I have no idea how to go about this. I've attached a histogram of the data so you can see what I mean.

Answers (1)

Image Analyst
Image Analyst on 24 Nov 2014
It's not so easy. You can look at Gaussian mixture models or mixture distributions http://en.wikipedia.org/wiki/Mixture_distribution
Or you can use an ad hoc method they use in astronomoy. It's called CLEAN and goes something like this:
  1. Find the highest peak.
  2. Go out a certain distance, like until it starts to increase again.
  3. Fit that data to a Gaussian and save this Gaussian's parameters.
  4. Subtract the fit from the actual data to get "what's left"
  5. If no peaks taller than some amount, quit. Otherwise repeat step 1.

Categories

Find more on Particle & Nuclear Physics in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!