A PD would only be a truelinear 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 noncritical phaseambiguity and some modeling details, an absolute time reference is not needed.
Knowing
θr
θr
and
θo
θo
modulo2π is both practical and sufficient. For datamodulated signals, say BPSK, the main effect of piecewise (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 piecewiselinear sawtooth PD outputs the result of (
θr

θo
θrθo
)mod2π.
Consider the case where the VCO "mixes" the reference signal to complexvalued baseband (also called zeroIF) signal I+jQ where the realvalued I is called the inphase channel and the realvalued 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 complexvalued signal
r
ej
θe
rej
θe
which can written in rectangular coordinates as the complexvalued 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
=
tan1
θe=tan1
(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 FPGAbased) PD.
As
tan1
tan1
(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
tan1
tan1.
As accuracy is improved via a larger lookup table, more memory is required and lookup time increased.