9.3. Decision-directed Phase-locked Loop#

  • For continuous transmission or long packets, the carrier frequency offset may vary. As a result, we need to track changes on \(\omega_o\) and \(\theta\).

  • Let \(\phi(t) \triangleq \omega_o t + \theta\) be the phase function that incorporates both the carrier frequency and phase offsets. Rewrite the joint ML estimation of \((\omega_o, \theta)\) in terms of tracking \(\phi(t)\). Setting the derivative of the decision statistic in (9.1) w.r.t. \(\phi(t)\) to \(0\) gives the following necessary condition for the ML estimator \(\hat\phi(t)\):

    (9.5)#\[\begin{equation} \text{Re} \left\{ -j \int_{-\infty}^{\infty} r(t) x^*(t) e^{-j\hat \phi(t)} dt \right\} = 0. \end{equation}\]
  • We may use the following PLL to solve for \(\hat\phi(t)\) in (9.5):

    Basic phase-locked loop
  • The integration in (9.5) is implemented by the loop filter shown in the PLL above. The loop filter is a narrow-bandwidth lowpass filter with transfer function \(H(s)\).

  • The voltage-controlled oscillator (VCO) generates the LO carrier \(e^{-j \left(\hat\phi(t) + \frac{\pi}{2} \right)}\). The instantaneous frequency of the VCO is \(\frac{d \hat\phi(t)}{dt} = c e(t)\) where \(c\) is a constant and \(e(t)\) is the input to the VCO. In the Laplace domain, we have \(s\hat\Phi(s) = c E(s)\), where the upper-case symbols are the Laplace transforms of the signals denoted by the corresponding lower-case symbols.

  • To investigate the operation of the PLL and the proper choice of \(H(s)\), let us ignore the presence of the AWGN and assume \(r(t) = x(t) e^{j\phi(t)}\). Under this assumption, the input signal of the loop filter is thus \(|x(t)|^2 e^{j \left( \phi_e(t) - \frac{\pi}{2} \right)}\), where \(\phi_e (t) \triangleq \phi(t) - \hat\phi(t)\) is the phase error signal.

  • Suppose that the bandwidth of the phase error signal \(\phi_e(t)\) is much smaller than that of \(x(t)\) and that the loop filter is to have a bandwidth similar to that of \(\phi_e(t)\). Then the output of the loop filter is approximately \(A_x h(t) * e^{j \left( \phi_e(t) - \frac{\pi}{2} \right)}\), where \(A_x = \int_{-\infty}^{\infty} |x(t)|^2 dt\) is the dc component of \(|x(t)|^2\). Let’s restrict the impulse response \(h(t)\) of the loop filter to be real-valued, and assume that \(|\phi_e(t)|\) is small. Hence the input signal applied to the VCO is

    (9.6)#\[\begin{equation} e(t) \approx A_x h(t) * \sin \phi_e(t) \approx A_x h(t) * \phi_e(t) \end{equation}\]

    where the second approximation, which linearizes the problem, results from the fact that \(\sin x \approx x\) if \(|x| \ll 1\). In the Laplace domain, (9.6) becomes \(E(s) = A_x H(s) \Phi_e(s)\).

  • Putting \(E(s) = A_x H(s) \Phi_e(s)\) and \(\hat\Phi(s) = \Phi(s) - \Phi_e(s)\) into \(s\hat\Phi(s) = c E(s)\), we obtain

    (9.7)#\[\begin{equation} s\hat{\Phi}(s) = cA_xH(s) \Phi_e(s), \end{equation}\]

    or equivalently

    (9.8)#\[\begin{equation} \Phi_e(s) = \frac{s \Phi(s)}{s+cA_xH(s)} = \frac{\frac{\omega_o}{s} + \theta}{s+cA_xH(s)} . \end{equation}\]
  • First-order loop: Select \(H(s) = 1\) in the passband. Applying the final value theorem to (9.8), we get

    \[\begin{equation*} \lim_{t \rightarrow \infty} \phi_e(t) = \lim_{s \rightarrow 0} s\Phi_e(s) = \frac{\omega_o}{cA_x}. \end{equation*}\]

    Thus, the PLL is able to track the carrier frequency offset but has a phase error of \(\frac{\omega_o}{cA_x}\) at steady state after it settles.

  • Second-order loop: Select \(H(s) = 1+ \frac{a}{s}\) in the passband. Applying the final value theorem to (9.8), we get

    \[\begin{equation*} \lim_{t \rightarrow \infty} \phi_e(t) = \lim_{s \rightarrow 0} s\Phi_e(s) = 0. \end{equation*}\]

    Thus, the PLL is able to track the both carrier frequency and phase offsets at steady state.

9.3.1. USRP implementation#

  • Multiplying both sides of (9.7) by \(s\) and employing the second-order loop \(H(s)\), we get the following time-domain differential equation equivalent to (9.7):

    (9.9)#\[\begin{equation} \frac{d}{dt} \left(\frac{d\hat\phi(t)}{dt} \right) = cA_x \frac{d\phi_e(t)}{dt} + caA_x \phi_e(t) \end{equation}\]

    in the passband of \(H(s)\).

  • If the signals are sampled at the symbol rate \(\frac{1}{T}\) and derivatives are approximated by the corresponding differences, we can solve (9.9) by the following iterative algorithm in discrete time:

    (9.10)#\[\begin{split}\begin{align} \phi[n] &= \angle ( \hat r[n]) \\ \phi_e[n] &= \phi[n] - \hat\phi[n] \\ \dot\phi[n] &= \dot\phi[n-1] + \mu ( \phi_e[n] - \phi_e[n-1]) + \nu \phi_e[n] \\ \hat\phi[n+1] &= \hat \phi[n] + \dot\phi[n] \end{align}\end{split}\]

    where \(\mu\) and \(\nu\) are small positive constants chosen to implement the narrowband lowpass property of \(H(s)\). Note that \(\phi[n] = \angle ( \hat r[n])\) is the angle of the (decision-) pilot-corrected MF output sampled at the symbol rate.

  • Note that the iterative algorithm in (9.10) is unstable. We may add the stabilizing constant \(\lambda\) (slightly smaller than 1) to the algorithm as below:

    (9.11)#\[\begin{split}\begin{align} \phi[n] &= \angle ( \hat r[n]) \\ \phi_e[n] &= \phi[n] - \hat\phi[n] \\ \dot\phi[n] &= \lambda \dot\phi[n-1] + \mu ( \phi_e[n] - \phi_e[n-1]) + \nu \phi_e[n] \\ \hat\phi[n+1] &= \lambda \hat \phi[n] + \dot\phi[n]. \end{align}\end{split}\]

    Or we may limit the range of \(\dot\phi[n]\) in (9.10) to the maximum range of possible (normalized) frequency offset by noting that \(\dot\phi[n] = T \frac{d\hat\phi(t)}{dt} \big|_{t=nT}\).

  • After the PL settles, we may correct the frequency and phase offsets by multiplying the MF output \(\tilde r[n]\) with \(e^{-j\hat\phi[n]}\).