Follow us on Facebook
Follow us on Twitter
Signalogic on LinkedIn

Home > Applications > DSP Systems > Pulse Detection

DSP-Based Pulse Detection


Click to see full-size image
Visual Basic (VB6) Example

Click to see full-size image
Visual C/C++ (Visual Studio 6.0) Example

Overview

Pulse detection is a commonly employed algorithm in systems that use a dual set of input transducers producing dual sets of signals that must be analysed. The use of duality is well-known in natural systems, obvious examples are human vision and hearing. In machine detection it is also widely utilized; typically by placing two (2) transducers slightly offset from each other either spatially or temporally. Such a system can detect more information about its surroundings than a single-transducer system, and because it relies on the basic idea of subtraction, it is also more immune to noise and interference.

Pulse detection is used in a wide variety of industrial processes and applications, including machine sensing, chemical and metal detectors, magnetic and electrostatic field based detectors, and more.

After subtraction, or "exclusive OR" in some systems, a raw difference waveform results which must then be further processed to extract individual pulses and/or statistical measurement of pulses. In order for results to be useful the algorithm performing the processing must be flexible, dynamic, accurate and reliable.

Signalogic uses digital signal processing (DSP) to manage and modify input signals which have originated in analog form from the dual transducers. Signalogic's DSP-based Pulse Detection System (PDS) detects differences between two signal inputs, and can be used on a wide variety of DSP/data acquisition boards that either plug into PCs or operate stand-alone. The PDS algorithm first calculates a 3rd trace as an difference, and then a 4th as filtered, or smoothed, output. Actual pulses that meet certain width and threshold requirements specified by the host operator interface are recorded on a fifth trace (see examples of output on left).

Use of SHARC DSP Board in Pulse Detection System

Click to see full-size image
SHARC DSP Board, with 40 MHz 21065 processor, 4M SDRAM, 2/6
channel 16-bit sigma-delta audio I/O

Click to see full size picture

One example of a low-cost DSP board that can be used for PDS algorithms is the "Pocket Audio" board shown at left. This board includes the Analog Devices 21065 processor, additional memory for the processor, and 2-channel analog input, and 6-channel analog output. Click here for a list of other boards that can run the PDS algorithm.

Use of DirectCore® Software in the Pulse Detection System

The DirectCore® software ◳ provides an interface layer between the PDS algorithm and host applications, for example Microsoft Visual C/C++ or Visual Basic (as in the examples shown above), MATLAB, and LabVIEW. Using this software, the host application can:

DSP C Code Example

Below is simple example in C code that runs on a DSP in real-time and demonstrates how the DSP Source Code Interface (SCI) software product can be used as the framework for creating real-time algorithms that run on DSPs and can be wholly implemented in C code. Note that the DSP SCI takes care of initializing host application-specified properties and parameters, hardware and DSP setup, analog I/O setup, communicating with the host interface during operation, sample interrupts, real-time input and output buffer handling, and all other processing required to ensure continuous data flow. The function PulseDet() is called when each new buffer of analog input data is ready.

The size of each buffer is the "framesize" in samples, which can range from 1 sample to 32k or more, depending on the size of time segments that should be processed by the algorithm. The choice of framesize depends heavily on the nature of the data and algorithm; for example a speech processing algorithm might use a framesize equivalent to 12 msec, because speech tends to stay "quasi-stationary" for 10-15 msec before changing significantly. The framesize is another property that can be specified from the host application program.

More C code processing can be added as needed, and more or less output buffers used. Note that by convention if nNumTrace > 1, then data is stored as interleaved values, in repeating groups of nNumTrace values. For example, tr0,tr1,tr2,tr0,tr1,tr2, ... for 3-trace acquisition. Also note that traces can be mapped to any physical channel on the DSP/data acquisition board, depending on the CHANNEL LIST property specified in Hypersignal software or host application software (i.e. C/C++, Visual Basic, or MATLAB software using the DirectCore interface.

For more details about user-defined real-time C code, see also DSP Coding Workshop and Adding User-Defined Real-Time C Code.

For More information About Pulse Detection...

For more information on DSP-based Pulse Detection System please send mail to: