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: Martin Dvh
Subject: Re: [Discuss-gnuradio] QAM, carrier tracking and clock recovery
Date: Mon, 29 Jan 2007 23:50:06 +0100
User-agent: Debian Thunderbird 1.0.2 (X11/20061113)

Tom Rondeau wrote:
>>-----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.
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
> 
> 
> 





reply via email to

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