discuss-gnuradio
[Top][All Lists]
Advanced

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

[Discuss-gnuradio] gr_pll_carriertracking for atsc_fpll


From: Charles Swiger
Subject: [Discuss-gnuradio] gr_pll_carriertracking for atsc_fpll
Date: Wed, 14 May 2008 19:35:11 -0400

Is gr.pll_carriertracking_cc a suitable replacement for atsc_fpll? The
atsc one appears to have a loop filter that the carriertracking one does
not:

atsc_fpll:

    float input = agc.scale (in[k]);

    nco.step ();                // increment phase
    nco.sincos (&a_sin, &a_cos);  // compute cos and sin

    float I = input * a_sin;
    float Q = input * a_cos;

    out[k] = I;

    float filtered_I = afci.filter (I);
    float filtered_Q = afcq.filter (Q);

    // phase detector

    float x = atan2 (filtered_Q, filtered_I);

    nco.adjust_phase (alpha * x);
    nco.adjust_freq (beta * x);



pll_carriertracking:

    error = phase_detector(iptr[i],d_phase);

    d_freq = d_freq + d_beta * error;
    d_phase = mod_2pi(d_phase + d_freq + d_alpha * error);

    gr_sincosf(d_phase,&t_imag,&t_real);
    optr[i] = iptr[i] * gr_complex(t_real,-t_imag);



If we can use a complex pll it would eleminate one upconverter and lower
some sampling rates. It kinda works with lots of errors - comparison of
their output here:  http://www.swigerco.com/pll_compare.html

--Chuck






reply via email to

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