A PD would only be a true-linear PD only if the phases are all "unwrapped" with respect to some absolute location in time, say, by referencing both the input reference and the PLL output to a common clock.
Unfortunately, in a system for which the reference signal and the PLL are operated on different clocks, there is no way to define and track such an absolute time reference.
Yet, outside of perhaps a non-critical phase-ambiguity and some modeling details, an absolute time reference is not needed.
Knowing
θr
θr
and
θo
θo
modulo-2π is both practical and sufficient. For data-modulated signals, say BPSK, the main effect of piece-wise (rather than absolute) linearity is an ambiguity between between the +1s and the -1s which must be cleared up by the use of a preamble or through differential encoding. We will also find later, that piecewise linearity results in depressing the Phase Detector gain constant when the reference signal is noisy.
The piecewise-linear sawtooth PD outputs the result of (
θr
-
θo
θr-θo
)mod-2π.
Consider the case where the VCO "mixes" the reference signal to complex-valued baseband (also called zero-IF) signal I+jQ where the real-valued I is called the in-phase channel and the real-valued Q is called the quadrature channel. This is known as the QAM (Quadrature Amplitude Modulation) Receiver. In the figure below,
θr=2πf_c tθr=2πf_c t
and
θo=2 π f_c_hat t + theta_hatθo=2 π f_c_hat t + theta_hat.
The received reference signal is rotated by
-
θo
-θo
to produce the new complex-valued signal
r
ej
θe
rej
θe
which can written in rectangular coordinates as the complex-valued point (I Q) where
I+jQ=
r
ej
θe
I+jQ=rej
θe
.
If the PLL has perfectly tracked the input in frequency and phase, then
θe
θe (and
Ve
Ve)
will be equal to 0. This also implies I equals +/- r and Q is zero.
In other words, the sawtooth PD outputs exactly
θe
=
tan-1
θe=tan-1
(q/i).
Of course, such a device must be easily implemented in hardware for an analog PD or must be compuatationally efficient for a software (or FPGA-based) PD.
As
tan-1
tan-1
(x) generally is not, a suitable approximation is often sought.
The first solution might be to utilize a lookup table for the argument x mapping it to
tan-1
tan-1.
As accuracy is improved via a larger lookup table, more memory is required and lookup time increased.