I'm using a sin wave $s_{sc}(t) = d(t)\cos(\omega_{sc}t + \varphi_{sc})$ to modulate a carrier using phase modulation. I'm working on Matlab so I use the pmmod function to do so. It is not too complicated to understand what this function is doing, probably computing something like $\cos(\omega_c t + h s_{sc}(t) + \varphi_{ini})$ (with h the modulation index).

In order to demodulate it, I'm using the pmdemod function of Matlab. But for this one, I have absolutely no idea of what is happening in background. I tried to analyze the results obtained after a pmmod-pmdemod sequence, and this is what I observed on Matlab:

enter image description here

Regarding the convergence time, it seems that Matlab use a PLL in background. but what kind of PLL is it ? I'm very interested about the digital methods used to demodulate PM modulation and more particularly the maths behind it. But I cannot find any article/document/book about it (Or I just don't know what to search on google, because when I type "phase modulation" I just find article about CPM modulation or digital PSK/FSK modulation methods...).

Any help would be helpful :)


1 Answer 1


Phase modulation is demodulated using phase discriminators otherwise called phase detectors- anything that can translate a change in phase to a change in magnitude.

The most common for real functions is a simple multiplier followed by a low pass filter as given by the product of two sinusoids in quadrature:

From the relationship

$$\sin(\alpha)\cos(\beta) = \frac{1}{2}\sin(\alpha + \beta) + \frac{1}{2}\sin(\alpha-\beta)$$

Then by multiplying the phase modulated carrier with a local oscillator at the carrier frequency we get:

$$\sin(2\pi f_c t + \phi(t))\cos(2\pi f_c t)$$

Which after the low pass filter which eliminates the sum term we get:

$$= \sin(\phi(t))$$

When the phase deviation is small we get a linear result out of the discriminator since for small angles $\sin(\phi(t)) \approx \phi(t)$.

Note that such a product detector is also sensitive to amplitude (AM), so for purposes of phase demodulation only it is common to hard limit the modulated signal prior to the phase detector to remove all AM components.

The challenge in an actual receiver is to determine the carrier frequency accurately and track it through changing conditions such as Doppler and clock drift, thus a phase lock loop can utilize the phase detector and adjust the local oscillator (LO) such that the longer term average phase difference (error) between the LO and the received carrier of the modulated signal is zero, while the signal itself which is changing faster than the loop can track (outside the loop bandwidth) would pass through.

I have more details on other phase detectors including what is commonly used for complex signals at these posts:

Phase measurement

phase difference detection

Phase synchronization in BPSK

How to correct the phase offset for QPSK I-Q data

  • $\begingroup$ I had some similar challenges in synchronizing PCM/PM with a PLL. I use something similar to the Costas loop in GNU Radio but with an atan2 discriminator (instead of real x imag). The constellation diagram for smaller modulation indices (less than 0.7 radians) was vertical ( [1,-1] and [1,1]). I could not lock at higher modulation indices (ex 1.86 radians). $\endgroup$ Commented May 11, 2022 at 9:48
  • $\begingroup$ @MosesBrowneMwakyanjala Without seeing the details I suspect that maybe you were locking to the carrier? For PM with small modulation indexes there will be a large carrier and as long as the sidebands are less than 6 dB below the carrier a PLL can lock to it. As the modulation index increases we start seeing carrier suppression such that the sidebands become stronger (and other sidebands at higher harmonics also appear) which a direct PLL will not be able to lock to. $\endgroup$ Commented May 11, 2022 at 12:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.