discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: [Discuss-gnuradio] extending gr-trellis to perform Viterbi, MLSD on


From: Achilleas Anastasopoulos
Subject: Re: [Discuss-gnuradio] extending gr-trellis to perform Viterbi, MLSD on GMSK
Date: Tue, 03 Feb 2009 17:23:07 -0500
User-agent: Thunderbird 2.0.0.19 (Windows/20081209)

Nick,

there is no change required in the modules that perform viterbi decoding
in order to implement either MLSD in ISI or (coherent) GMSK demod.
The whole idea around gr-trellis was to disentangle the trellis aspect
of a modulation scheme from the details of the modulation/channel.

So, if you want to implement general (coherent) CPM demodulation, all
you have to do is to represent the CPM signal as a FSM followed by a
memoryless modulator. Look up the paper by
Bixio Rimoldi: A decomposition approach to CPM, or take a look at my
notes on this at
http://www.eecs.umich.edu/~anastas/docs/cpm.pdf

You will only need to write an additional
constructor for the fsm class that takes the CPM parameters and produces
the appropriate FSM. Similarly, you'll need to write a piece of code
that takes the incoming waveform and does the metrics calculations
(eithar as a separate block as in trellis-metrics or inside the viterbi
block as in trellis-viterbi-combined).

If you want to work on this general problem for a generic CPM modulation
I can help you.

Adding ISI to this is a piece of cake: you need to combine the two
trellises into either a combined trellis or to use hard/soft decisions
from one to feed the other detector.


Achilleas


-------------------
Date: Tue, 3 Feb 2009 02:43:01 +0000
From: Nick Foster <address@hidden>
Subject: [Discuss-gnuradio] extending gr-trellis to perform Viterbi
        MLSD on GMSK
To: gnuradio <address@hidden>
Message-ID: <address@hidden>
Content-Type: text/plain; charset="windows-1252"


Hi all,

I've spent a few days familiarizing myself with gr-trellis as best as I
can, and I'm interested in extending the gr-trellis module to handle
Viterbi equalization of ISI channels for GMSK demodulation. I saw Toby
Oliver's thread in Sept. '06
(http://www.mail-archive.com/address@hidden/msg05615.html)
discussing a possible modification with Achilleas Anastasopoulos but
never saw anything checked in as a result. I'm just looking to use the
trellis code to demodulate low-BT GMSK in a more optimal way than the
current Gnuradio implementation, and I have similar questions to Toby's:

* How should I go about modifying make_isi_lookup() to add support for
two-dimensional modulations? What format is trellis expecting?

* I see the test_viterbi_equalization1.py file, which appears to do MLSD
on an ISI channel for 4-PAM (and other one-dimensional modulations). Am
I correct that if make_isi_lookup() is modified to support quadrature
modulations, simply changing the modulation type in this example would
be enough to make it work? I guess I'm asking more specifically if
trellis.viterbi_combined_X will support an ISI lookup table for PSK
modulations without modification.

* Is there a good reason I should avoid tackling this problem? I'd hate
to be duplicating someone else's work in this area, or barking up the
wrong tree.

For further information, I've written a packet-based AIS decoder for
Gnuradio, and I'm disappointed at the quality of the data coming out of
the GMSK demodulator. It's 9600 symbols per second @ BT=0.3, so there's
enough ISI that I think MLSD would provide significant reduction in
observed BER. Besides, it seems like it would be a useful capability to
have added to Gnuradio. Any other tips anyone has that might help me in
doing this would certainly be welcome!

Nick





reply via email to

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