I have a large number of spectra with gaussian-distributed noise superimposed on to it. There are large parts of the spectra where we know there to be no signal so I can calculate the sd of the noise and the spectra are flat so the mean of the signal free data is zero.

There could be either 0,1 or two gaussians in this signal, and I can easily fit the single gaussians. However, as there are about 190 points in the region where the signal lies, a double gaussian fit always has a better chisq to a single gaussian than a single gaussian fit does. I need a way to take all of the spectra with significant signal and determine if they are either uni- or bi-modal. I have looked into using Hartigan's (85) Dip Test, but found this to be unsatisfactory. I can estimate the parameters easily enough once I have this data, using a non-linear fitting routine (GNU scientific library) to get the parameters, and some initial filtering.

My other idea is to try and fit everything with a single gaussian, then to test if the residuals deviate from a null hypothesis, i.e. just noise. As some of the gaussians amplitudes are below 3*noise, a K-S test will say they are consistent with the null hypothesis, even though they are significant at the 3 sigma level due to their width. Any suggestions for tests that can handle this would be really appreciated.

Sorry about the length of the post.