envelope(a,opt)

Constructs an envelope for arbitrary signals.


Syntax

o_envelope(a,opt)
a: shape type - description
opt: scalar int- options: method 1: 0 for maxima, 1 for minima
                                   method 2: 2 for maxima, 3 for minima
                                   method 3: 4 for maxima, 5 for minima
return: type - coordinates of the envelope

Usage

The envelope of a a signal is a line tracing the extreme points of the signal. Typically this represents a modulation signal on a carrier.

NOTE: use Method 1 for clean signals, Method 2 for noisy signals, Method 3 when 1 and 2 fail

Location

menu: veeos ==> Signal Processing ==> envelope

library: sigLib

Example

See veeos examples . Typical signal and envelope are shown here:

o_envelope(A,3) returns minima using Method 2
o_envelope(A,0) returns maxima using Method 1

Notes

In a typical communication signal, a high frequency (carrier is) modulated by a low frequency (baseband) signal. The baseband signal contains the information to be sent and the carrier is chosen for transmission characteristics. Once modulated the baseband signal itself no longer exists, but rather it is represented by the fluctuations in the carrier. If specific assumptions are made for the modulated signal, then the baseband can be determined by basic signal processing. However for more complex signals- say a chirped carrier or freq hopping carrier- without specific information reconstructing the baseband can be very difficult. This function assumes nothing about the signal but instead looks directly at the time domain signal and ferrets out local extrema as best as it can.

To methods are available in this function, selected by option value

Method 1 uses derivatives so is fragile when it comes to noise but also gives a very good estimate of correct peaks.

Method 2 eliminate derivatives so is more robust but still makes good estimate of correct peaks.

Method 3 is brute force and is quite noise-tolerant but makes only minimal effort to estimate peaks.

Another alternative that may give better results for some signals is decayFilter() which has its own issues but will not fail and is what is commonly used in the real world.

Reference

Dependencies

Supported On

VEE 7.0+, all platforms

See Also

decayFilter


© 2015. All Rights Reserved.  Stan Bischof (stan@worldbadminton.com). Last updated 13 November 2015 08:11. © 2015.