<< Chapter < Page | Chapter >> Page > |
Suppose first that the channel was a pure delay.
(For instance, set
chan=[0 1]
in Example
[link] ). Then the
timing algorithm will change the estimates
tau
(in this case, by one) to
maximize the output powerto account for the added delay. When the channel is more
complicated, the timing recovery again moves theestimates to that position which maximizes the output power,
but the actual value attained is a weighted version ofall the taps. For example, with
chan=[1 1]
, the
energy is maximized halfway between the two taps and theanswer is offset by
. Similarly, with
chan=[3 1]
,
the energy is located a quarter of the way between the taps and theanswer is offset by
. In general, the offset is
(roughly) proportional to thesize of the taps and their delay.
To see the general situation, consider the received analog signal due to a single symbol triggeringthe pulse shape filter and passing through a channel with ISI. An adjustment in the baud-timing settingat the receiver will sample at slightly different points on the received analog signal.A change in is effectively equivalent to a change in the channel ISI.This will be dealt with in Chapter [link] when designing equalizers.
With the signal generated as in
clockrecDD.m
, the following code
resamples (using sinc interpolation) the received signalto simulate a change in the underlying period
by a factor of
fac
.
z(i)=interpsinc(x,t(i),l); % to create received signal
fac=1.0001; z=zeros(size(x)); % percent change in periodt=l+1:fac:length(x)-2*l; % vector of new times
for i=1:length(t) % resample x at new rate z(i)=interpsinc(x,t(i),l); % to create received signal
end % with period offsetx=z; % relabel signal
clockrecperiod.m
resample to change the period
(download file)
If this code is followed by one of the timing recovery schemes, then the timing parameter follows the changing period. For instance, in [link] , the timing estimation converges rapidly to a “line” withslope that is proportional to the difference in period between the assumed value of the period at the receiver and theactual value used at the transmitter.
Thus, the standard timing recovery algorithms can handle the case in which the clock periods at the transmitter and receiverare somewhat different. More accurate estimates could be made using two timing recovery algorithms analogous to the dual-carrierrecovery structure of [link] or by mimicking the second-order filter structure of the PLL in the article Analysis of the Phase Locked Loop , which can be found on the website. There are also other commontiming recovery algorithms such as the early–late method, the method of Mueller and Müller, and band-edge timingalgorithms.
Modify
clockrecOP.m
to implement one of the alternative
performance functions of
[link] :
,
, or
.
Modify
clockrecOP.m
by changing the channel as
in
[link] . Use different values
of
beta
in the SRRC pulse shape routine.
How does this affect the convergence speed of thealgorithm? Do different pulse shapes change the convergent value?
Investigate how the error surface depends on the input signal.
using a channel of your own choosing. Do you expect that the eye will always be able to open?
Instead of the ISI channel used in [link] , include a white noise channel. How does this change the timing estimates?
Explore the limits of the period tracking in
[link] . How large can
fac
be made and still have the estimates converge to a line?
What happens to the cluster variance when the estimatescannot keep up? Does it help to increase the size of
the stepsize
mu
?
A comprehensive collection of timing and carrier recovery schemes can be found in the following two texts:
Notification Switch
Would you like to follow the 'Software receiver design' conversation and receive update notifications?