Friday, September 17, 2021

Re: Proper GMSK Decoding with the Viterbi Algorithm

There aren't blocks in Gnuradio to do this out of the box, at least not on real signals. Unless you're working with low SNR signals, or the GMSK BT product is very low (under 0.25, let's say), it will be of somewhat limited benefit to use Viterbi decoding. Synchronization also becomes a limiting factor at these low SNRs: if you are working with short packets (like, say, AIS) you will have to use a data-aided estimator which operates on an entire packet since a normal bit-by-bit estimator will not converge fast enough, or accurately enough, at low SNR.

That said, a basic GMSK demodulator (without equalization, frequency offset correction, or Viterbi decoding) would look like this: AGC -> Symbol sync (use the D'Andrea and Mengali Gen MSK TED) -> Quadrature demod -> Binary slicer. At this point you have bits, and you can do what you like with them.

Nick

On Fri, Sep 17, 2021 at 4:04 PM <pwhines2@verizon.net> wrote:

Hello all,

 

I've been messing around with GNU Radio for the past couple of months, and I'm struggling to come up with a way to properly decode GMSK using the Viterbi algorithm.  The GMSK Demod block works just fine, but since the packet decoder block is deprecated I can't think of another way to get data out of the transmissions.  Basically I'm just looking for guidance in which blocks to use and what order to use them in, and I can handle the rest myself.  I've made a couple of flowgraphs that seem to be on to something, but I'm not really sure.  Any help would be appreciated.

 

Thanks,

Patrick

No comments:

Post a Comment