Phase demodulation

Hello,

This question is not strictly GNURadio related, but I hope to find
people more knowledgeable than me here…

I have a signal x(t) at a carrier frequency fc which is phase modulated.
The phase modulation itself is modulated at a modulation frequency fmod:

x(t) = Eo cos(2 pi fc t + m(t))

m(t) = Ao cos(2 pi fmod + phi)

I know exactly fmod (it is a coherent modulation/demodulation
experiment), and I have a good estimate of fc. I need to, extract
amplitude Ao and phase phi of that modulation.

I use an USRP to obtain the in-phase and quadrature component of the
x(t) signal at the carrier frequency. The naive approach would be then
to extract the phase of x(t) from that and simply demodulate it
multiplying by a complex sine wave ans low pass filtering.

However, the fact that I only have an estimate of the carrier frequency
(and some low Fourier frequency noise on the carrier frequency) means
that I have a linear phase evolution. This can be taken care with
unwrapping but I quickly end up with a very large phase.

I thought for a while about this but I cannot come up with a solution
that avoids extracting the phase from the I and Q components and doing
unwrapping. I’m sure I’m missing something.

What’s the best approach to solve this problem?

Thanks. Cheers,
Daniele

On 27/06/2014 20:51, Daniele N. wrote:

I know exactly fmod (it is a coherent modulation/demodulation
experiment), and I have a good estimate of fc. I need to, extract
amplitude Ao and phase phi of that modulation.

Hello,

the solution that I found (and that works very well) is to track the
carrier frequency with a digital PLL. With the tracking PLL block in
GNURadio it is easy. GNURadio is fun! :slight_smile:

Cheers,
Daniele

On Tue, Jul 1, 2014 at 12:33 PM, Daniele N. [email protected]
wrote:

Cheers,
Daniele

Yep, that’s a pretty classic way to do it. Glad you figured it out!

Tom

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs