<< Chapter < Page | Chapter >> Page > |
Perhaps the simplest setting in which to begin frequency estimation is to assume that the received signal is where is unknown. By analogy with the squared difference method of phase estimation in "Squared Difference Loop" , a reasonable strategy is to try to choose so as to minimize
Following a gradient strategy for updating the estimates leads to the algorithm
How well does this algorithm work? First, observe that the update is multiplied by . (This arises from application of the chain rulewhen taking the derivative of with respect to .) This factor increases continuously, and acts like a stepsize that grows over time.Perhaps the easiest way to make any adaptive element fail is to use a stepsize that is too large; the form of this updateensures that eventually the “stepsize” will be too large.
Putting on our best engineering hat, let us just remove this offending
term, and go ahead and simulate the method.
The
code is available in the program
pllfreqest.m
on the website. At first glance it might seem that the method works well.
[link] shows 20 different starting values.
All 20 appear to converge nicely within one second to the unknownfrequency value at
fc=100
. But then something strange happens:
one by one, the estimates
diverge . In the figure, one peels
off at about 6 seconds, and one at about 17 seconds.Simulations can never prove conclusively that an algorithm
is good for a given task, but if even simplified and idealized simulationsfunction poorly, it is a safe bet that the algorithm is somehow flawed.
What is the flaw in this case?
Recall that error surfaces are often a good way of picturing the behavior of gradient descent algorithms.Expanding the square and using the standard identities [link] and [link] , can be rewritten
assuming that the cutoff frequency of the lowpass filter is less than and that . At the point where , . For any other value of , however, as time progresses,the cosine term undulates up and down with an average value of zero. Hence averages to for any ! This pathological situation is shown in [link] .
When is far from , this analysis does not hold because the LPF no longer removes the first twocosine terms in [link] . Somewhat paradoxically, the algorithm behaves welluntil the answer is nearly correct. Once , the error surface flattens, and the estimates wander around.There is a slight possibility that it might accidently fall into the exact correct answer, but simulations suggest that such luck is rare.Oh well, never mind
Notification Switch
Would you like to follow the 'Software receiver design' conversation and receive update notifications?