[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: |
Fri, 14 Jul 2017 00:33:27 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux i686; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 |
On 07/12/2017 05:39 PM, Cinaed Simson wrote:
>
>
> On 07/12/2017 03:56 AM, HLL wrote:
>>
>>
>> On Wed, Jul 12, 2017 at 1:56 AM, Cinaed Simson <address@hidden
>> <mailto:address@hidden>> wrote:
>>
>> It seems odd that a device with a maximum power 116 dBm would have such
>> a weak signal.
>>
>> As I mentioned earlier, I'm not really sure what is the frequency of the
>> device is, I just scanned the 300 + area and I found a few that
>> correlate with the device transmission
>> This one was taken on 440.15M; I Also have another similar capture,
>> captured at 419.562M
>
> At least the ones in the US operate between at 4 frequencies between
> 450-470 MHz.
>
> The frequency band will vary with country.
>
>>
>>
>> Maybe the antenna was to close? The distance of the receiving antenna
>> was roughly 0.1 of the carrier wavelength from transmitting antenna.
>>
>> I guess it was, distance was around 8-15 cm or so, as the wavelength is
>> 68.15cm, When capturing I didn't considered it (or even known it is a
>> factor)
>
> The wavelength for 450 is 1.5 meters. I really don't know where the
> boundary is between near field and far field - but I would guess far
> field the other side of a full wave length.
Opps - Andy Walls I had the numbers upside down - should have checked
the units.
In any case, the wave length is 2/3 of meter and not 1.5 meters.
>
>
>> The antenna used is the stock RTL SDR one.
>
> It's quarter wave antenna I believe for around 800-900 MHz.
>
>>
>> If you can recommend some hackish (DIY or even retail) antenna to better
>> receive that signal that would be grate.
Actually, my PCB antennas are log periodic - they don't need a external
ground.
The problem with these antennas is need to build a stand. Probably not
worth the cost.
I would just put a large piece of metal under the antenna - quarter wave
antennas need a good ground - dirt is poor conductor. But then power is
116 dBm - you could probably use a paper clip soldered into a SMA
connector :).
>
> Let me think about it. I use a RTL dongle from NooElec which has a SMA
> connector.
>
>>
>>
>> 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.
>>
>> Well, As Andy mentioned, it's not FSK, so the documentation may be
>> talking about other version of the device.
>> I Downsampled the capture to 8khz after centering because that was much
>> more then 2 times of bandwidth I've seen on the FFT on active burst
>
> Actually, that should read 7-12.5 kHz. If I was doing it, and the
> documents indicated it uses a channel between 7-12.5 KHz, then I would
> sample at 64 kHz.
>
> -- Cinaed
>
>
>>
>>
>> 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.
>>
>> If that helps, I kindda made a quick graph that does similar thing to
>> Andy's graph, and I got similar results:
>>
>> Inline image 1
>>
>> now it seems that a large CFO glitch translates to short glitchs in the
>> digital signal
>>
>> Graph:
>> Inline image 2
>>
>>
>>
>>
>>
>> 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 <mailto:address@hidden>
>> > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>> <https://lists.gnu.org/mailman/listinfo/discuss-gnuradio>
>> >
>>
>>
>> _______________________________________________
>> Discuss-gnuradio mailing list
>> address@hidden <mailto:address@hidden>
>> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>> <https://lists.gnu.org/mailman/listinfo/discuss-gnuradio>
>>
>>
>>
>>
>> _______________________________________________
>> Discuss-gnuradio mailing list
>> address@hidden
>> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>
>
- Re: [Discuss-gnuradio] Decoding 2FSK Compensating for carrier jitter/skewing (CFO), (continued)
Re: [Discuss-gnuradio] Decoding 2FSK Compensating for carrier jitter/skewing (CFO), Andy Walls, 2017/07/14