Main Content

FM Demodulator Baseband

Demodulate using FM method

  • Library:
  • Communications Toolbox / Modulation / Analog Baseband Modulation

  • FM Demodulator Baseband block

Description

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

Ports

Input

expand all

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

Data Types: double | single

Output

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

Parameters

expand all

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 C code is reused for subsequent simulations unless the model changes. This option requires additional startup time, but the speed of the subsequent simulations is faster than Interpreted execution.

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

Block Characteristics

Data Types

double | single

Multidimensional Signals

no

Variable-Size Signals

no

Algorithms

Represent a frequency modulated passband signal, Y(t), as

Y(t)=Acos(2πfct+2πfΔ0tx(τ)dτ),

where A is the carrier amplitude, fc is the carrier frequency, x(τ) is the baseband input signal, and fΔ is the frequency deviation in Hz. The frequency deviation is the maximum shift from fc in one direction, assuming |x(t)| ≤ 1.

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

ys(t)=Y(t)ej2πfct=A2[ej(2πfct+2πfΔ0tx(τ)dτ)+ej(2πfct+2πfΔ0tx(τ)dτ)]ej2πfct=A2[ej2πfΔ0tx(τ)dτ+ej4πfctj2πfΔ0tx(τ)dτ].

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

y(t)=A2ej2πfΔ0tx(τ)dτ.

The expression for y(t) is rewritten as

y(t)=A2ejϕ(t),

where ϕ(t)=2πfΔ0tx(τ)dτ, which implies that the input signal is a scaled version of the derivative of the phase, ϕ(t).

A baseband delay demodulator is used to recover the input signal from y(t).

A delayed and conjugated copy of the received signal is subtracted from the signal itself,

w(t)=A24ejϕ(t)ejϕ(tT)=A24ej[ϕ(t)ϕ(tT)],

where T is the sample period. In discrete terms, wn=w(nT), and

wn=A24ej[ϕnϕn1],vn=ϕnϕn1.

The signal vn is the approximate derivative of ϕn, such that vnxn.

References

[1] Chakrabarti, I. H., and I, Hatai. “A New High-Performance Digital FM Modulator and Demodulator for Software-Defined Radio and Its FPGA Implementation.” International Journal of Reconfigurable Computing. Vol. 2011, No. 10.1155/2011, 2011, p. 10.

[2] Taub, Herbert, and Donald L. Schilling. Principles of Communication Systems. New York: McGraw-Hill, 1971, pp. 142–155.

Extended Capabilities

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

Introduced in R2015a