[Top][All Lists]

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

Re: [Discuss-gnuradio] Ettus N210 GMSK 9600

From: Tom Golden
Subject: Re: [Discuss-gnuradio] Ettus N210 GMSK 9600
Date: Sat, 26 Mar 2016 11:36:29 -0600

Thanks.  I'm climbing the learning curve. :)

The radio I'm testing isn't AFSK, it's GMSK/FSK 9600.  So I think it may be scrambled.  I'm sending packets that are 255 bytes contains 0xA5 - and I have a ruby program that checks starting at every bit for A5, the inverse of A5, NRZ decode for A5, and NRZI decode for A5.  Regardless of the corr_est, the MSK Timing Recovery does seem to recovery the timing and bits for most of the packet which should yield some strings of A5 is the bits.  But I'm just not seeing that.

I did see some references on the web about scrambling for FSK9600 - so that's the rabbit hole I went down.

On Sat, Mar 26, 2016 at 11:20 AM, Tom McDermott <address@hidden> wrote:
HI Tom - AX.25 is NRZI coded.   What that means is that the
encoder toggles the state of a flip flop when the input data is zero
(i.e. a JK flip flop). The output of that flipflop is the NRZI encoded
data stream.

AX.25 FM Radio AFSK audio is not scrambled.
Some 9600 baud FSK (not audio) links may be scrambled.

To un-do the NRZI coding, send the NRZI data into one input of an
exclusive-or gate and the D input of a D flip flop at the same time.
The Q-bar output of the flipflop is exclusive-or'ed with the NRZI data
(XOR the D-in and Q-bar output of the FF).

-- Tom, N5EG

On Sat, Mar 26, 2016 at 9:13 AM, Tom Golden <address@hidden> wrote:
Thanks - I'll give it a try.

On Sat, Mar 26, 2016 at 10:09 AM, Andy Walls <address@hidden> wrote:
Hi Tom,

The corr_est block needs to match against the NRZI encoded symbols, so yes I used 7 ones for the hdlc flag.

The HDLC flag has two possible NRZI encodings depending on the initial state:

  01111110   - HDLC flag byte
1 00000001  - NRZI encoded HDLC flag byte, initial state 1

  01111110  - HDLC flag byte
0 11111110  - NRZI encoded HDLC flag byte, initial state 0

So encoding your two byte sequence:

  01111110 00100001
1 00000001 01101011
0 11111110 10010100

You should build your corr_est preamble samples based on one of these.


Discuss-gnuradio mailing list

reply via email to

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