Here are two examples that show that the answer to this question is yes. The first example is shown on the left. This shows iSignal displaying a computer-generated 4000-point signal consisting of pure random noise, smoothed with a 19-point Gaussian smooth. The upper window shows a tiny slice of this signal that looks like a Gaussian peak with a calculated SNR over 1000. Only by looking at the entire signal (bottom window) do you see the true picture; that "peak" is just part of the noise, smoothed to look nice. Don't fool yourself.
The second example is a simple
series of three Matlab commands that uses the 'randn'
function to generate a 10000-point data set containing
only normally-distributed white noise. Then it uses
'fastmooth' to smooth that noise, resulting in a 'signal'
with a standard deviation of about 0.3 and a maximum value
around 1.0. That signal is then submitted to iPeak.
If the peak detection criteria (e.g. AmpThreshold and
SmoothWidth) are set too low, many peaks will be found.
But setting the AmpThreshold to 3 times the standard
deviation (3 x 0.3 = 0.9) will greatly reduce the
incidence of these false peaks.
>> noise=randn(1,10000);
>> signal=fastsmooth(noise,13);
>> ipeak([1:10000;signal],0,0.6,1e-006,17,17)
The peak
identification function, which identifies
peaks based on their exact x-axis peak position and a stored
table of identified peak positions, is even less likely to be fooled by random
noise, because in addition to the peak detection criteria of
the findpeaks algorithm, any detected peak must also match
closely to a peak position in the table of known peaks.
This page is part of "A Pragmatic Introduction to Signal
Processing", created and maintained by Prof. Tom O'Haver ,
Department of Chemistry and Biochemistry, The University of
Maryland at College Park. Comments, suggestions and questions
should be directed to Prof. O'Haver at toh@umd.edu. Updated July, 2022.