Main Content

PM Demodulator Passband

Demodulate PM-modulated data


Analog Passband Modulation, in Modulation

  • PM Demodulator Passband block


The PM Demodulator Passband block demodulates a signal that was modulated using phase modulation. The input is a passband representation of the modulated signal. Both the input and output signals are real scalar signals.

For best results, use a carrier frequency which is estimated to be larger than 10% of your input signal's sample rate. This is due to the implementation of the Hilbert transform by means of a filter.

In the following example, we sample a 10Hz input signal at 8000 samples per second. We then designate a Hilbert Transform filter of order 100. Below is the response of the Hilbert Transform filter as returned by fvtool.

Note the bandwidth of the filter's magnitude response. By choosing a carrier frequency larger than 10% (but less than 90%) of the input signal's sample rate (8000 samples per second, in this example) or equivalently, a carrier frequency larger than 400Hz, we ensure that the Hilbert Transform Filter will be operating in the flat section of the filter's magnitude response (shown in blue), and that our modulated signal will have the desired magnitude and form.

Typically, an appropriate Carrier frequency value is much higher than the highest frequency of the input signal. By the Nyquist sampling theorem, the reciprocal of the model's sample time (defined by the model's signal source) must exceed twice the Carrier frequency parameter.

This block works only with real inputs of type double. This block does not work inside a triggered subsystem.


Carrier frequency (Hz)

The frequency of the carrier.

Initial phase (rad)

The initial phase of the carrier in radians.

Phase deviation (rad)

The phase deviation of the carrier frequency in radians. Sometimes it is referred to as the "variation" in the phase.

Hilbert transform filter order

The length of the FIR filter used to compute the Hilbert transform.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using Simulink® Coder™.

Version History

Introduced before R2006a

See Also