Envelope Extraction Using The Analytic Signal

This example shows how to extract the signal envelope using the analytic signal.

Create a double sideband amplitude-modulated signal. The carrier frequency is 1 kHz. The modulation frequency is 50 Hz. The modulation depth is 100%. The sampling frequency is 10 kHz.

t = 0:1e-4:1;
x = [1+cos(2*pi*50*t)].*cos(2*pi*1000*t);
plot(t,x); set(gca,'xlim',[0 0.1]);
xlabel('Seconds'); ylabel('Amplitude');

Obtain the analytic signal. Extract the envelope, which is the magnitude (modulus) of the analytic signal. Plot the envelope along with the original signal.

y = hilbert(x);
env = abs(y);
plot(t,x); hold on;
set(gca,'xlim',[0 0.1]);
xlabel('Seconds'); ylabel('Amplitude');

The magnitude of the analytic signal captures the slowly varying features of the signal, while the phase contains the high frequency information.

Was this topic helpful?