discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: [Discuss-gnuradio] Decoding 2FSK Compensating for carrier jitter/ske


From: Cinaed Simson
Subject: Re: [Discuss-gnuradio] Decoding 2FSK Compensating for carrier jitter/skewing (CFO)
Date: Tue, 11 Jul 2017 17:33:55 -0700
User-agent: Mozilla/5.0 (X11; Linux i686; rv:52.0) Gecko/20100101 Thunderbird/52.2.1

On 07/11/2017 03:56 PM, Cinaed Simson wrote:
Opps.
> 
> If I look at the raw data in a frequency sink it's almost a straight
> line lying on the frequency axis.

I meant time sink

  If I look at the raw data in a TIME sink it's almost a straight
  line lying on the TIME axis.

> 
> I had to adjust the scaling to +-0.05 to see the symbols. Is this to be
> expected?
> 
> It seems odd that a device with a maximum power 116 dBm would have such
> a weak signal.
> 
> Maybe the antenna was to close? The distance of the receiving antenna
> was roughly 0.1 of the carrier wavelength from transmitting antenna.
> 
> Also, the documents indicate the channel width is from 7 kHz to 16 kHz -
> the sampling rate of 8 kHz may have been to small.
> 
> But in any case, there's a lot of good information in this thread and
> it's going to take me a while to digest all of it.
> 
> Thanks!
> 
> 
> 
> On 07/10/2017 05:55 PM, Andy Walls wrote:
>> From:        HLL
>> Date:        Mon, 10 Jul 2017 20:44:01 +0300
>>> Hi,
>>> Thank you very much!!
>>> I Need to thoroughly go over your response and understand it all, but
>>> thanks :)
>>>
>>> I also noticed the 2 different in bit timings, I thought it's
>>> something electrically, since I noticed the "long" lows and highs are
>>> on some specific timings and the shorts have another timing.
>>>
>>> Before experimenting with the graph (and the said OOT modules). I'm
>>> going over it and trying to understand it,
>>> what the rotator does, and what it it's role?
>>
>> It performs a (cyclic) frequency shift of the signal spectrum.  It is
>> called a rotator because the DFT of a sampled signal "lives" on the
>> unit circle of the z-plane.  The rotator block rotates the entire z-
>> plane about its origin by a certain number of radians, thus effectively
>>  shifting the spectrum of the signal.
>>
>> I use the rotator block to shift the audio frequency bins of +350 Hz
>> and +940 Hz down to -295 Hz and +295 Hz respectively.  Then I filter
>> off what were the negative audio frequency bins, the DC spike from the
>> FM CFO, and a lot of the spectrum which is just noise.
>>
>>> The part with 2 pll carrier tracking is used for locking the carrier
>>> of the low and high freq as I understand (I.E. The cheap digital PWM
>>> or clock devider)
>>
>> Yes, but they both track *and* downconvert the tracked tone to DC.
>>
>> This is a coherent FSK receiver design, which is probably overkill for
>> this application, but I used it to handle uncertainty in the actual
>> audio tone bins used for the mark and space frequencies.
>>
>>> what is the role of the complex conjugates (mirror over the real
>>> axis?),
>>
>> The complex conjugate is to handle a quirk of the GNURadio PLL block
>> before the subtraction.  When the PLL carrier tracking block does it's
>> downconversion of the tracked tone to DC, it doesn't have a phase angle
>> of 0 degrees (a purely real number), instead it has a phase angle of
>> something a bit less than pi/4 radians.
>>
>> The complex conjugate is so when I do the following subtract, I will
>> get constellation points on opposite sides of the circle in the I-Q
>> plane.
>>
>>
>>>  subtract,
>>
>> This is standard for a coherent FSK demodulator and for certain non-
>> coherent FSK demodulators.  Google images should show a number of block
>> diagrams doing this.
>>
>>
>>>  c-to-f and add part?
>>
>> Well, after the subtraction you have I-Q plane constellation points of
>> about A*exp(j*pi/4) and A*exp(j*5*pi/4), and a fuzzy trajectory line
>> going approximately straight between those points.  I needed to convert
>> those to real values.
>>
>> I could have taken the complex magnitude and the complex argument and
>> somehow tried to assign the proper sign to the complex magnitude, but
>> that was work. :)  Since the two constellation points and the
>> trajectory is restricted to quadrants I and III of the I-Q plane, it
>> was easier to just add combine the real and imaginary parts to get a
>> real number. 
>>
>>
>>>   Are you "subtracting" the (locked) `0` square wave from the `1`
>>> square wave, why?
>>
>> No.
>>
>> Let's pretend GNURadio's quirky almost pi/4 angle output from the
>> downconverted tone is actually 0 radians instead of almost pi/4.
>>
>> When the mark PLL is locked on to the mark tone, it will output a value
>> of A.  When the space PLL is locked on to a space tone, it will output
>> a value of A as well.
>>
>> To have a mark symbol represented by A and a space symbol represented
>> by -A, we have to invert the output value of the space PLL, hence the
>> subtraction.
>>
>> Also note, that one should not receive mark and space tones at the same
>> time, so when the mark PLL is outputting A, the space PLL is ideally
>> outputting 0, and vice-versa.
>>
>>
>>> I think I understand most of the rest (the `missing block` from their
>>> names :) )
>>>
>>> Thanks,
>>> HLL
>>>
>>> P.S. FYI, The capture I'v attached contains 4 bursts of 2 devices, 2
>>> from device A and 2 from device B.
>>
>> Yes, I noticed 4 bursts, two at one energy level and two at another
>> energy level.
>>
>> Regards,
>> Andy
>>
>>> P.S.2 It is probably some cheapo electronic components or re-using
>>> the micro that is already there.
>>
>> _______________________________________________
>> Discuss-gnuradio mailing list
>> address@hidden
>> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>
> 




reply via email to

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