> -----Original Message----- > From: [EMAIL PROTECTED] [mailto:discuss- > [EMAIL PROTECTED] On Behalf Of Martin Dvh > Sent: Sunday, January 28, 2007 6:15 PM > To: gnuradio mailing list > Subject: [Discuss-gnuradio] QAM, carrier tracking and clock recovery > > Hi All, > I am trying to build a working QAM modulator/demodulator, based on the > existing BPSK/QPSK code. > > Is the Mueller and Muller clock-recovery as used in the current QPSK > examples also usable for QAM? > > I couldn't find a good description of the algorithm or the parameters. > > For clock recovery the only options I found on the net which are supposed > to work for QAM are modified early/late tracking and modified > zero-crossing. > Has anybody any info on this? > > I am also looking for the best option for carrier-tracking. > For QAM there are special requirements for carrier-tracking and clock- > recovery. > A simple costas loop will not do for carrier tracking. > > This is what I have so far: > > For now I implemented a to-the fourth-power PLL for carrier tracking. > (PLL locks to the fourth power of the input, output is divided by four) > This is supposed to work for all QAM versions and should NOT suffer from > catastrophic collaps when the BER gets too high. > (The other option. Decision based carrier-tracking does suffer from > catastrophic collaps.) > The disadvantage is the long time before lock. > > For clock-recovery I am trying to use the existing clock-recovery. > > I am fiddling with the parameters and I do get a non-very-stable but > recognisable QAM constellation as output of the clock-recovery when I use > a > very slow timeconstant for my PLL. > No packets get through yet, I think because the PLL only locks after a lot > of symbols are missed and the constellation is not very stable. > > The output constellation of the output of the clock-recovery now can be > seen in: > http://www.olifantasia.com/projects/gnuradio/QAM/screenshots/ > The output files (--log) before and after clock-recovery is in > http://www.olifantasia.com/projects/gnuradio/QAM/ > > greetings, > Martin
Martin, I've been doing a bit of work on this problem and have two developer branches open for this. In branches/developers/trondeau/digital-wip you will find QAM modulator code; I have transmitted this and received it on my Signature signal analyzer and see the perfect constellations. The code also performs Gray coding on the constellation. This code only has the QAM modulator side and no demodulator. This should be very quick to work up, and it sounds like you might already have it. In branches/developers/trondeau/digital-wip2, I've been doing modifications on the MPSK receiver and implementing D8PSK. This work is almost complete and will be merged into the branch soon. I would look the 'gr_mpsk_receiver' block code from now on. It's decision-aided and does the Costas loop and M&M (a modified version) at the same time and improves the DQPSK reception. The mpsk_receiver should be fairly easily extended to work for QAM, too, with improved decision making on the quadrant and "shell" the symbols are in. It's similar to what you said, except it does joint estimation of the timing. I'm swamped with other responsibilities right now, so I won't have time to hack on the QAM work, although I really want to get the 8PSK code into the trunk, so expect that soon. If this code helps you in working on your QAM solutions, please use it, and we can hopefully work together to get this done and part of the release. Tom _______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org http://lists.gnu.org/mailman/listinfo/discuss-gnuradio