<< Chapter < Page | Chapter >> Page > |
Perhaps the best loved method of phase tracking is known as the phase locked loop (PLL). This section shows that the PLLcan be derived as an adaptive element ascending the gradient of a simple performance function. The key idea is to modulatethe (processed) received signal of [link] down to DC, using a cosine of known frequency and phase . After filtering to remove the high-frequency components, the magnitude of the DC term can be adjusted by changing the phase. The value of that maximizes the DC component is the same as the phase of .
To be specific, let
Using the cosine product relationship [link] and the definition of from [link] under the assumption that , becomes
assuming that the cutoff frequency of the lowpass filter is well below . This is shown inthe middle plot of [link] and is the same as , except for a constant and a sign. The sign change implies that,while needs to be minimized to find the correct answer, needs to be maximized. The substantive difference between the SD and the PLLperformance functions lies in the way that the signals needed in the algorithm are extracted.
Assuming a small stepsize, the derivative of [link] with respect to at time can be approximated as
The corresponding adaptive element,
is shown in [link] . Observe that the sign of the derivative is preserved in the update(rather than its negative), indicating that the algorithm is searching for a maximum of the error surface rather than a minimum.One difference between the PLL and the SD algorithms is clear from a comparison of [link] and [link] . The PLL requires oneless oscillator (and one less addition block). Since the performance functions and are effectively the same, the performance characteristics of the two are roughly equivalent.
Suppose that
is the frequency of the transmitter and
is the assumed frequency at the receiver
(with
close to
). The following
program simulates
[link] for
time
seconds. Note that the
firpm
filter creates an
h
with a zero phase at the center frequency and so
is set to zero.
Ts=1/10000; time=1; t=Ts:Ts:time; % time vector
fc=1000; phoff=-0.8; % carrier freq. and phaserp=cos(4*pi*fc*t+2*phoff); % simplified received signal
fl=100; ff=[0 .01 .02 1]; fa=[1 1 0 0];h=firpm(fl,ff,fa); % LPF design
mu=.003; % algorithm stepsizef0=1000; % assumed freq. at receiver
theta=zeros(1,length(t)); theta(1)=0; % initialize vector for estimatesz=zeros(1,fl+1); % initialize buffer for LPF
for k=1:length(t)-1 % z contains past fl+1 inputs z=[z(2:fl+1), rp(k)*sin(4*pi*f0*t(k)+2*theta(k))]; update=fliplr(h)*z'; % new output of LPF
theta(k+1)=theta(k)-mu*update; % algorithm updateend
pllconverge.m simulate Phase Locked Loop
(download file)
Notification Switch
Would you like to follow the 'Software receiver design' conversation and receive update notifications?