How can i make a smoothed envelope of my complex (random) signal?

I would like to plot a envelope over my random signal (complex). My matlab does not support the function 'envelope'. Any ideas how I can do this?
Thanks in advanced.
stijn

4 Comments

The envelope is just
abs( myComplexSignal );
and if you want the full enclosing envelope, just the negation of this as well.
Yes I agree this is an envelope. My question was badly formulated. I would like a smoothed envelope, since my signal is not smooth at all. Sorry for not making my self clear..
Smoothing is something of a black art and depends entirely on your data, what you want to get from it, etc, etc.
You could just slap a length 5 mean filter over your envelope to smooth it, but that is very aggressive.
Or you can use a Savitzky-Golay filter
doc sgolay
to do some post smoothing. That requires a lot of parameterisation though which again depends on just how smooth you want it vs how much of your data you want to retain.

Sign in to comment.

 Accepted Answer

The envelope (link) function uses the absolute value of the hilbert (link) function. Use that instead.
For more information, see Envelope Extraction Using the Analytic Signal (link).

More Answers (0)

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!