discuss-gnuradio
[Top][All Lists]
Advanced

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

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


From: Tom Rondeau
Subject: Re: [Discuss-gnuradio] FM Mod / Demod Sensitivity and Quad. Gain Parameters
Date: Sun, 7 Jul 2013 04:34:21 -0400

On Thu, Jul 4, 2013 at 10:50 PM, Dan CaJacob <address@hidden> wrote:
> 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

Hey Dan,

Great! I've edited your post and put the calculations here on our
Signal Processing wiki page
(http://gnuradio.org/redmine/projects/gnuradio/wiki/SignalProcessing).

And yes, converting to radians is key for this. I should have thought
to mention that.

Tom


> 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.
>>
>> Tom
>
>



reply via email to

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