[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Discuss-gnuradio] rules for clock recovery parameters
From: |
Eric Blossom |
Subject: |
Re: [Discuss-gnuradio] rules for clock recovery parameters |
Date: |
Thu, 20 Mar 2008 10:01:42 -0700 |
User-agent: |
Mutt/1.5.17 (2007-11-01) |
On Thu, Mar 20, 2008 at 11:19:38AM -0400, George Nychis wrote:
> Hi all,
>
> I was wondering if anyone knows the rules for selecting clock recovery
> parameters for the gr_clock_recovery_mm_* block. In specific, I'm
> wondering about the following parameters:
> mu, gain mu, omega, omega gain, and omega limit
>
> I would like to verify the clock recovery parameters chosen by UCLA's
> 802.15.4 implementation:
> https://moo.cmcl.cs.cmu.edu/trac/cmu_sdrg/browser/802.15.4/trunk/src/python/ieee802_15_4.py#L100
>
> The reason is that we experience no loss when using file source/sinks but
> experience loss using coax, which might be due to timing errors introduced
> by the hardware.
>
> I'd greatly appreciate any help.
> Thanks!
> George
Have you taken a look at the books and papers referenced in the header files?
/*!
* \brief Mueller and Müller (M&M) based clock recovery block with float input,
float output.
* \ingroup clock
*
* This implements the Mueller and Müller (M&M) discrete-time error-tracking
synchronizer.
*
* See "Digital Communication Receivers: Synchronization, Channel
* Estimation and Signal Processing" by Heinrich Meyr, Marc Moeneclaey, &
Stefan Fechtel.
* ISBN 0-471-50275-8.
*/
/*!
* \brief Mueller and Müller (M&M) based clock recovery block with complex
input, complex output.
* \ingroup clock
*
* This implements the Mueller and Müller (M&M) discrete-time error-tracking
synchronizer.
* The complex version here is based on:
* Modified Mueller and Muller clock recovery circuit
* Based:
* G. R. Danesfahani, T.G. Jeans, "Optimisation of modified Mueller and
Muller
* algorithm," Electronics Letters, Vol. 31, no. 13, 22 June 1995, pp.
1032 - 1033.
*/
mu specifies the point between two samples that you want the
interpolated value of. It's in [0.0, 1.0]. It's the input to the
gri_mmse_fir_interpolator. The rest of the parameters are for the
control loop.
/*!
* \brief Compute intermediate samples between signal samples x(k*Ts)
* \ingroup filter
*
* This implements a Mininum Mean Squared Error interpolator with 8 taps.
* It is suitable for signals where the bandwidth of interest B = 1/(4*Ts)
* Where Ts is the time between samples.
*
* Although mu, the fractional delay, is specified as a float, it is actually
* quantized. 0.0 <= mu <= 1.0. That is, mu is quantized in the interpolate
* method to 32nd's of a sample.
*/
class gri_mmse_fir_interpolator_cc