[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] FM Mod / Demod Sensitivity and Quad. Gain Paramet

From: Dan CaJacob
Subject: Re: [Discuss-gnuradio] FM Mod / Demod Sensitivity and Quad. Gain Parameters
Date: Thu, 4 Jul 2013 22:50:17 -0400

Thanks Tom,

I think I have it worked out now.  The sensitivity and gain parameters for the FM Mod and Quad. Demod blocks are reciprocals of one another.  To control deviation, in these parameters, you can just calculate Modulation Index.  I was doing it the other way around.  The bit that made everything make sense for me was reading that Modulation Index can be thought of as having units of Radians.  Understanding that, the rest makes perfect sense.

So, the parameters become:

sensitivity = (pi * modulation_index) / samples_per_symbol

and on the receive side:

gain = samples_per_symbol / (pi * modulation_index)

Modulation index itself can be set explicitly or derived from a desired deviation and baud rate:

modulation_index = deviation / (baud_rate / 2)

So, for a Minimum Modulation Index of 0.5, as is used in GMSK, the sensitivity reduces to:

sensitivity = (pi / 2) / samples_per_symbol, just as it is in the example.

The nbfm_tx.py example is probably different because it isn't for data transmission, but for audio, I think.

Thanks for your help!

Very Respectfully,

Dan CaJacob

On Wed, Jul 3, 2013 at 10:38 AM, Tom Rondeau <address@hidden> wrote:
On Thu, Jun 27, 2013 at 3:54 PM, Dan CaJacob <address@hidden> wrote:
> We use the FM Mod and Quadrature Demod blocks to modulate and demodulate
> GFSK packetized data.  In the past, we have used sensitivity values for
> these blocks that were provided for us, but their meaning was opaque.
> I did some digging in the list and the web and found two prevalent
> definitions for sensitivity from examples.  Both definitions were consistent
> in saying that the Demod parameter 'Quadrature Gain' should be the inverse
> of the sensitivity parameter for the Mod block.
> The competing definitions for sensitivity were:
> 1. sensitivity = (pi / 2) / samples_pr_symbol  # from
> gnuradio/blksimpl/gmsk.py
> and
> 2. sensitivity = 2 * pi * max_deviation / sample_rate  # from
> gnuradio/blks2impl/nbfm_tx.py
> In my own recent work, I have been using the second definition because it
> seems to work and it gives me control over the deviation (I define max
> deviation using modulation index and baud rate).
> However, when I attempt to use 1/sensitivity for the Quadrature Gain of the
> RX, it does not seem to work, while altering the RX definition of
> sensitivity to be 1 / (2 * pi * max_deviation / baud_rate) does seem to
> work.
> Am I missing something fundamental about how these parameters work?

Hi Dan,

The quadrature_demod converts from phase/frequency modulation back to
amplitude. So in the case of FSK signals (and let's treat GMSK as FSK
for this), we want to convert frequency f1 into -1 and frequeuncy f2
to +1. Also, "let's assume the system is synchronized" so that f1 =
-fm and f2 = +fm. What you want to do is convert those frequencies to
-1's and 1's, right? So there's some rotation around the unit circle
that maps to this based on the number of samples per symbol you are
using. So hopefully that explains where the pi and sps in the
calculations come from.

Hope this helps.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]