This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materials including this page, select Japan from the country navigator on the bottom of this page.

dsp.AnalyticSignal System object

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.


Starting in R2016b, instead of using the step method to perform the operation defined by the System object™, you can call the object with arguments, as if it were a function. For example, y = step(obj,x) and y = obj(x) perform equivalent operations.


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

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

anaSig = dsp.AnalyticSignal(order,'PropertyName',PropertyValue,...) returns an analytic signal object, anaSig, 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.


resetReset internal states of analytic signal object
stepAnalytic signal
Common to All System Objects

Create System object with same property values


Expected number of inputs to a System object


Expected number of outputs of a System object


Check locked states of a System object (logical)


Allow System object property value changes


expand all

Note: This example runs only in R2016b or later. If you are using an earlier release, replace each call to the function with the equivalent step syntax. For example, myObject(x) becomes step(myObject,x).

Compute the analytic signal of a sinusoidal input.

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

View the analytic signal.

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.

Extended Capabilities

See Also


Introduced in R2012a

Was this topic helpful?