Main Content

FM Demodulator Baseband

Demodulate using FM method

  • FM Demodulator Baseband block

Communications Toolbox / Modulation / Analog Baseband Modulation


The FM Demodulator Baseband block demodulates a complex input signal and returns a real output signal.


expand all

Modulate and demodulate a sinusoidal signal using FM Modulator Baseband and FM Demodulator Baseband blocks.

The fmmoddemod model generates a sine wave of frequency 4 Hz and amplitude 1 V. The FM Modulator Baseband block sets the frequency deviation to 50 Hz.

The Modulated Signal scope shows that the frequency of the modulator output, Mod Sig, varies with the amplitude of the input data.

The Demodulated Signal scope demonstrates that the output of the demodulator, Demod Sig, is perfectly aligned with the input data.



expand all

Input signal, specified as a real scalar, vector, or matrix.

Data Types: double | single


expand all

Output signal, returned as a real scalar, vector, or matrix. The data at this port has the same data type and size as the input signal.

Data Types: double | single


expand all

To edit block parameters interactively, use the Property Inspector. From the Simulink® Toolstrip, on the Simulation tab, in the Prepare gallery, select Property Inspector.

Frequency deviation of the demodulator, in Hz, specified as a positive scalar. The system bandwidth is equal to twice the sum of the frequency deviation and the message bandwidth.

Type of simulation to run, specified as Code generation or Interpreted execution.

  • Code generation — Simulate the model by using generated C code. The first time you run a simulation, Simulink generates C code for the block. The model reuses the C code for subsequent simulations unless the model changes. This option requires additional startup time, but the speed of the subsequent simulations is faster than with the Interpreted execution option.

  • Interpreted execution — Simulate the model by using the MATLAB® interpreter. This option shortens startup time, but the speed of subsequent simulations is slower than with the Code generation option. In this mode, you can debug the source code of the block.

For more information, see Simulation Modes (Simulink).

Block Characteristics

Data Types

double | single

Multidimensional Signals


Variable-Size Signals



A frequency-modulated passband signal, Y(t), is given as



  • A is the carrier amplitude.

  • fc is the carrier frequency.

  • x(τ) is the baseband input signal.

  • fΔ is the frequency deviation in Hz.

The frequency deviation is the maximum shift from fc in one direction, assuming |x(τ)| ≤ 1.

A baseband FM signal can be derived from the passband representation by downconverting the passband signal by fc such that


Removing the component at -2fc from yS(t) leaves the baseband signal representation, y(t), which is given as


The expression for y(t) can be rewritten as y(t)=A2ejϕ(t), where ϕ(t)=2πfΔ0tx(τ)dτ. Expressing y(t) this way implies that the input signal is a scaled version of the derivative of the phase, ϕ(t).

To recover the input signal from y(t), use a baseband delay demodulator, as this figure shows.

Baseband FM demodulator


[1] Hatai, I., and I. Chakrabarti. “A New High-Performance Digital FM Modulator and Demodulator for Software-Defined Radio and Its FPGA Implementation.” International Journal of Reconfigurable Computing (December 25, 2011): 1–10.

[2] Taub, H., and D. Schilling. Principles of Communication Systems. McGraw-Hill Series in Electrical Engineering. New York: McGraw-Hill, 1971, pp. 142–155.

Extended Capabilities

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

Version History

Introduced in R2015a