Hi, I am trying to decode CPM signal according to your email but I have problem with understanding some things. What I'd like to do is to decode some kind of I/Q samples according to following scenario: - decimation of symbol rate N-times - decoding I/Q symbols according to FSM file and provided constellation
For VA I am using: dimensionality = 1 va = trellis.viterbi_combined_cb(f,K,0,-1,dimensionality,constellation,trellis.TRELLIS_EUCLIDEAN) However the results are not as expected to be. My guess is that something might be wrong with FSM file - I've looked through *.fsm files example and seems that table OS (output symbols) is generated somehow. What I know about my state machine is: - there is S unique states - each state can have transition to one of I states - each input symbol is equal to IB bits - transition from state S(i-1) to S(i) corresponds to O output symbols - each output symbol is written on OB bits So in general - I have defined NS table. I thought that OS table in *.fsm file is just table that tells: transition from state S(a) to state S(b) is equal to output symbol O(ab) but it seems that I'm wrong. Is there any easy way to generate OS table in *.fsm file? I have seen fsm constructor that generates these values according to (n,k) and G - is that only way to generate OS table? Regards, On Tue, Feb 3, 2009 at 11:23 PM, Achilleas Anastasopoulos <anas...@umich.edu > wrote: > 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<http://www.eecs.umich.edu/%7Eanastas/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 <bistro...@hotmail.com> > Subject: [Discuss-gnuradio] extending gr-trellis to perform Viterbi > MLSD on GMSK > To: gnuradio <discuss-gnuradio@gnu.org> > Message-ID: <col104-w83311cfd96ff650fd0de58a6...@phx.gbl> > 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/discuss-gnuradio@gnu.org/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 > > > > _______________________________________________ > Discuss-gnuradio mailing list > Discuss-gnuradio@gnu.org > http://lists.gnu.org/mailman/listinfo/discuss-gnuradio >
_______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org http://lists.gnu.org/mailman/listinfo/discuss-gnuradio