discuss-gnuradio
[Top][All Lists]
Advanced

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

RE: [Discuss-gnuradio] QAM, carrier tracking and clock recovery


From: Tom Rondeau
Subject: RE: [Discuss-gnuradio] QAM, carrier tracking and clock recovery
Date: Mon, 29 Jan 2007 16:54:19 -0500

> -----Original Message-----
> From: Martin Dvh [mailto:address@hidden
> 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: address@hidden [mailto:discuss-
> >>address@hidden 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.

Tom






reply via email to

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