Tom Rondeau wrote: >>-----Original Message----- >>From: Martin Dvh [mailto:[EMAIL PROTECTED] >>Sent: Monday, January 29, 2007 4:37 PM >>To: Tom Rondeau; gnuradio mailing list >>Subject: Re: [Discuss-gnuradio] QAM, carrier tracking and clock recovery >> >>Tom Rondeau wrote: >> >>>>-----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. >> >>Yes, I already have similar working code. >> >>>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. >> >> >>Do you have any links for a desciption of the MM algorithm and its >>parameters and/or performance. > > > Yep, and it's in the code ;) If you look at gr_clock_recovery_mm_cc.h, > there's a reference to a good receiver book that goes over the basic M&M > loop. In my developer branch, gr_mpsk_receiver_cc.h has a link to a paper > with a modified M&M loop implemented here. Thanks, but I was hoping for some info which doesn't require an IEEE subscription or buying a book. (Free as in Beer)
But I will just try to grasp it by staring at the code a little longer. That usually has on of two results: I get it I don't get it. I start writing my own algorithm. After much tweaking I end up with the original algorithm, but now I know why. Greetings, Martin > > Tom > > > _______________________________________________ Discuss-gnuradio mailing list [email protected] http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
