dsp.AnalyticSignal System object

Package: dsp

Analytic signals of discrete-time inputs


The AnalyticSignal object computes analytic signals of discrete-time inputs. The real part of the analytic signal in each channel is a replica of the real input in that channel, and the imaginary part is the Hilbert transform of the input. In the frequency domain, the analytic signal doubles the positive frequency content of the original signal while zeroing-out negative frequencies and retaining the DC component. The object computes the Hilbert transform using an equiripple FIR filter.

To compute the analytic signal of a discrete-time input:

  1. Define and set up your analytic signal calculation. See Construction.

  2. Call step to compute the analytic signal according to the properties of dsp.AnalyticSignal. The behavior of step is specific to each object in the toolbox.


H = dsp.AnalyticSignal returns an analytic signal object, H, that computes the complex analytic signal corresponding to each channel of a real M-by-N input matrix.

H = dsp.AnalyticSignal('PropertyName',PropertyValue,...) returns an analytic signal object, H, with each specified property set to the specified value.

H = dsp.AnalyticSignal(order,'PropertyName',PropertyValue,...) returns an analytic signal object, H, with the FilterOrder property set to order and other specified properties set to the specified values.



Filter order used to compute Hilbert transform

Specify the order of the equiripple FIR filter used in computing the Hilbert transform as an even integer scalar. The default is 100.


cloneCreate analytic signal object with same property values
getNumInputsNumber of expected inputs to step method
getNumOutputsNumber of outputs of step method
isLockedLocked status for input attributes and nontunable properties
releaseAllow property value and input characteristics changes
resetReset internal states of analytic signal object
stepAnalytic signal


Compute the analytic signal of a sinusoidal input.

 t = (-1:0.01:1)';
 x = sin(4*pi*t); 
 hanlytc = dsp.AnalyticSignal(200); 
 y = step(hanlytc,x);

 subplot(2,1,1), plot(t, x); 
 title('Original Signal');
 subplot(2,1,2), plot(t, [real(y) imag(y)]); 
 title('Analytic signal of the input')
 legend('Real signal','Imaginary signal',...


This object implements the algorithm, inputs, and outputs described on the Analytic Signal block reference page. The object properties correspond to the block parameters.

See Also


Was this topic helpful?