🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.dsp
Article #977

Peak detection

#977
From: Greg Sandell
Date: Sat, 06 Oct 1990 17:29
59 lines
3117 bytes
Can anybody tell me about the existence of any peak detection
algorithms?  Below is an example of what I mean:

B & E are real peaks, the rest are not.
|--------------------------------------------------|
|              B                                   |
|              *   C                               |
|             * *  *                               |
|            *   ** *                     E        |
|           *    *   *                    *        |
|           *    *   *                   **        |
|          *          *                 *  *       |
|         *            *               *    *      |
|         *            *           D   *     *     |
|        *              *         *   *      *     |
|        *               *        ** *        *    |
|  A    *                *       *  *          *   |
|-------*-----------------*-----*--------------*---| (threshold)
|  *   *                  *     *               *  |
| * * *                    *   *                 * |
|*   *                      * *                   *|
|*                           *                    *|
|--------------------------------------------------|

A is not a real peak because it falls below my arbitrary
threshold.  C is not real because it is subsidiary to
the fall away from real peak B, and D is not real 
because it is subsidiary to the climb toward real
peak E.

Certainly any number of hacks will solve this (with
variables such as threshold, minimum valley required
before and after a peak, and so on).  One way would
be to run a lowpass filter on it, but I would prefer
something more direct since it needs to run very fast.
But I would like to know if there are any classic solutions to this
problem.  Also, has code for such an algorithm been 
printed anywhere (such as Numerical Recipes)?  

To satsify your curiosity, I need a peak detector for
a speech processing problem:  I have a curve which
represents the gross changes in amplitude for a recording
of speech.  By identifying the primary peaks, I can
find the principle syllable boundaries.  Obviously this
type of signal proposes particular issues for peak
detection:  for example, the peaks are skewed to the right
in speech (rising side is more acute than the falling side),
because onsets are quicker than decays.

I would appreciate replies via email.  I will be glad to share
any code I receive with all who are interested.

Thanks in advance,
Greg Sandell

****************************************************************
* Greg Sandell (sandell@ils.nwu.edu)              Evanston, IL *
* Institute for the Learning Sciences, Northwestern University *
****************************************************************
Technical Details
Message-ID: <13060@accuvax.nwu.edu>
Path: arc1-ca.pugleaf.net!utzoo!attcan!utgpu!news-server.csri.toronto.edu!rutgers!cs.utexas.edu!sdd.hp.com!decwrl!hayes.fai.alaska.edu!accuvax.nwu.edu!mmdf

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!attcan!utgpu!news-server.csri.toronto.edu!rutgers!cs.utexas.edu!sdd.hp.com!decwrl!hayes.fai.alaska.edu!accuvax.nwu.edu!mmdf
From: sandell@ferret.ils.nwu.edu (Greg Sandell)
Newsgroups: comp.dsp
Subject: Peak detection
Message-ID: <13060@accuvax.nwu.edu>
Date: 6 Oct 90 17:29:37 GMT
Sender: mmdf@accuvax.nwu.edu
Lines: 59