I'm trying to understand how FM demodulation works. I read a lot on the internet and as far as I understand, the main process is to extract the phase difference (that is also the output) between a quadrature signal and the input signal, and that use this difference to keep those two signals locked in phase.

However the output signal amplitude depends a lot on the input signal strenght. As I understand, the input of the phase locked loop should be constant in amplitude.

Besides on this article on wikipedia it's written that FM recivers do not need a AGC, but it's enough to use a "high-gain IF amplifier which is intentionally driven into saturation". How can this be right? I mean.. If the amplifier is driven into saturation, the input wave will look more like a square wave and all the quadrature equations won't be true anymore! Can anybody explain me this step?


I think that the input should be constant in amplitute because(I'm thinking about a PLL):

$ FM_in(t) = A sin( W_c * t + \phi(t) ) \\ FM_in(t) * cos(W_c*t) = {A \over 2}(sen(\phi(t)) + cos(2W_c + \phi(t)) ) $

So filtering out the high frequency cosine, I get:

$ DEM_Out(t) = {A \over 2} sen(\phi(t)) \simeq {A \over 2}\phi(t) $

And so far so good, but to keep in lock the loop I should feed this value to the VCO, and if A doubles(as I understand), the phase shift of the VCO doubles, too so that the loop won't be in lock anymore. I hope I have explained what I mean!


I agree with dswiston's answer but I'd like to add a few more details. It is exactly because the input signal should have a constant amplitude that the signal is hard-limited. The limiter will remove any random amplitude fluctuations due to the channel.

Now take a look at what happens to the phase detector of the PLL, assuming it is realized by a mixer. Let $x(t)$ be the input signal (non-sinusoidal) and let $y(t)$ be the output of the VCO (assumed to be sinusoidal). Assuming a constant input frequency $f_0$ for the moment, the periodic input signal can be written as a Fourier series (assuming zero DC component):

$$x(t)=\sum_{n=1}^{\infty}c_n\cos(2\pi nf_0t+\phi_n)$$

With the VCO output $y(t)=\cos(2\pi f_0t+\theta)$, the output of the mixer is

$$x(t)y(t)=\frac12 c_1\cos(\phi_1-\theta)+\frac12c_1\cos(4\pi f_0t+\phi_1+\theta)+\\+ \frac12\sum_{n=2}^{\infty}c_n\left[\cos(2\pi (n-1)f_0t+\phi_n-\theta)+\cos(2\pi(n+1)f_0t+\phi_n+\theta)\right]\tag{1}$$

Note that in Eq. (1) all terms apart from the first one (which is used to control the VCO) are passband signals at frequencies that are multiples of $f_0$, so they can be easily filtered out. Remember that even if $x(t)$ were a pure sinusoid you would get the second term in (1) at $2f_0$ (right before the sum), which would also need to be filtered out. I hope from this it is clear that limiting of the input signal is no issue for the PLL, it even improves performance because it removes amplitude fluctuations.

| improve this answer | |
  • $\begingroup$ Uhm.. So as I understand there is no actual problem if the input is a square wave (the extreme case of what you said)? $\endgroup$ – marco6 Jan 19 '15 at 9:47
  • $\begingroup$ @marco6: Yes, that's what I tried to show. $\endgroup$ – Matt L. Jan 19 '15 at 9:51
  • $\begingroup$ Ok I uderstand each step of your proof, but there's still something that's bugging me: your proof is something that you can do whan you have the complete waveform, but in real time, when you have a normal sine wave it's easy to figure out how to correct the phase, in the case of a square wave is not. I've made an image to explain my (maybe naive) reasoning: s4.postimg.org/mqq9kd3ct/phases.jpg $\endgroup$ – marco6 Jan 19 '15 at 10:14
  • $\begingroup$ @marco6: When you look at a sine wave at one isolated moment, you know nothing about its phase. If you have memory, then you know the zero crossings, for a sine as well as for any other periodic signal. Note that the frequency and phase of an actual sine can change suddenly, so even if you look at a certain time window, anything unpredictable can happen in the future. Anyway, that's not the way it works in practice. If you're interested read more on PLLs. $\endgroup$ – Matt L. Jan 19 '15 at 10:47
  • $\begingroup$ Yeah.. I already read almost everithing wikipedia says.. That's why I asked here! I'm going to try to simulate your way, to see how it goes. $\endgroup$ – marco6 Jan 19 '15 at 11:32

The receiver's output does not depend on the input amplitude. From the point of view of the receiver, the output only depends on the frequency/phase of the input.

An fm signal in an ideal environment has a constant amplitude. Another way of putting it is that fm modulation has a constant envelope. Often this is advantageous because it allows the transmit amplifier to run at saturated output and not impact the modulation since amplitude is not varied as opposed to QAM and other non-constant envelope modulation types. The same should hold true for the receiving side of the equation. In practice I imagine you'd still need to watch out for overloading the receiver and causing harmonics and other nasties.

A write-up on my pyFmRadio blog post illustrates FM's amplitude independence from the modulating audio source.

| improve this answer | |
  • $\begingroup$ Thank you for your answer, I'm going to read your blog post, but please can you see my update? $\endgroup$ – marco6 Jan 19 '15 at 9:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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