Demodulate using FM method
The FMDemodulator
System
object™ demodulates an FM modulated signal.
To FM demodulate a signal:
Define and set up the FMDemodulator
object.
See Construction.
Call step
to FM demodulate a signal
according to the properties of comm.FMDemodulator
.
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.
H = comm.FMDemodulator
creates a demodulator System
object, H
,
that frequency demodulates an input signal.
H = comm.FMDemodulator(mod)
creates an
FM demodulator object whose properties are determined by the corresponding
FM modulator object, mod
.
H = comm.FMDemodulator(
creates
an FM demodulator object with each specified property Name
,Value
)Name
set
to the specified Value
. Name
must
appear inside single quotes. You can specify additional namevalue
pair arguments in any order as (Name1
,Value1
,...,NameN
,ValueN
).

Peak deviation of the output signal frequency (Hz) Specify the frequency deviation of the FM demodulator in Hz
as a positive real scalar. The default value is 

Sample rate of input signal (Hz) Specify the sample rate in Hz as a positive real scalar. The
default value is 
reset  Reset states of the FM demodulator object 
step  Applies FM baseband demodulation 
Common to All System Objects  

clone  Create System object with same property values 
getNumInputs  Expected number of inputs to a System object 
getNumOutputs  Expected number of outputs of a System object 
isLocked  Check locked states of a System object (logical) 
release  Allow System object property value changes 
You can represent a standard frequency modulated passband signal, Y(t), as
$$Y(t)=A\mathrm{cos}\left(2\pi {f}_{c}t+2\pi {f}_{\Delta}{\displaystyle {\int}_{0}^{t}x(\tau )d\tau}\right)\text{\hspace{0.17em}},$$
A baseband FM signal can be derived from the passband representation by downconverting it by f_{c} such that
$$\begin{array}{c}{y}_{s}(t)=Y(t){e}^{j2\pi {f}_{c}t}=\frac{A}{2}\left[{e}^{j\left(2\pi {f}_{c}t+2\pi {f}_{\Delta}{\displaystyle {\int}_{0}^{t}x(\tau )d\tau}\right)}+{e}^{j\left(2\pi {f}_{c}t+2\pi {f}_{\Delta}{\displaystyle {\int}_{0}^{t}x(\tau )d\tau}\right)}\right]{e}^{j2\pi {f}_{c}t}\\ =\frac{A}{2}\left[{e}^{j2\pi {f}_{\Delta}{\displaystyle {\int}_{0}^{t}x(\tau )d\tau}}+{e}^{j4\pi {f}_{c}tj2\pi {f}_{\Delta}{\displaystyle {\int}_{0}^{t}x(\tau )d\tau}}\right]\text{\hspace{0.17em}}.\end{array}$$
$$y(t)=\frac{A}{2}{e}^{j2\pi {f}_{\Delta}{\displaystyle {\int}_{0}^{t}x(\tau )d\tau}}.$$
The expression for y(t) is rewritten as
$$y(t)=\frac{A}{2}{e}^{j\varphi (t)}\text{\hspace{0.17em}},$$
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)=\frac{{A}^{2}}{4}{e}^{j\varphi (t)}{e}^{j\varphi (tT)}=\frac{{A}^{2}}{4}{e}^{j\left[\varphi (t)\varphi (tT)\right]}\text{\hspace{0.17em}},$$
$$\begin{array}{l}{w}_{n}=\frac{{A}^{2}}{4}{e}^{j\left[{\varphi}_{n}{\varphi}_{n1}\right]}\text{\hspace{0.17em}}\text{,}\\ {v}_{n}={\varphi}_{n}{\varphi}_{n1}\text{\hspace{0.17em}}.\end{array}$$
[1] Chakrabarti, I. H., and Hatai, I. “A New HighPerformance Digital FM Modulator and Demodulator for SoftwareDefined 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: McGrawHill, 1971, pp. 142–155.