<< Chapter < Page Chapter >> Page >

Direct frequency estimation

Perhaps the simplest setting in which to begin frequency estimation is to assume that the received signal is r ( t ) = cos ( 2 π f c t ) where f c is unknown. By analogy with the squared difference method of phase estimation in "Squared Difference Loop" , a reasonable strategy is to try to choose f 0 so as to minimize

J ( f 0 ) = 1 2 LPF { ( r ( t ) - cos ( 2 π f 0 t ) ) 2 } .

Following a gradient strategy for updating the estimates f 0 leads to the algorithm

f 0 [ k + 1 ] = f 0 [ k ] - μ d J ( f 0 ) d f 0 f 0 = f 0 [ k ] = f 0 [ k ] - μ LPF { 2 π k T s ( r ( k T s ) - cos ( 2 π k T s f 0 [ k ] ) ) sin ( 2 π k T s f 0 [ k ] ) } .

How well does this algorithm work? First, observe that the update is multiplied by 2 π k T s . (This arises from application of the chain rulewhen taking the derivative of sin ( 2 π k T s f 0 [ k ] ) with respect to f 0 [ k ] .) 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?

The frequency estimation algorithm Equation 41 appears to function well at first. But over time, the estimates diverge from the desired answer.
The frequency estimation algorithm [link] appears to function well at first. But over time, the estimates diverge from the desired answer.

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] , J ( f 0 ) can be rewritten

J ( f 0 ) = 1 2 LPF { 1 + 1 2 cos ( 4 π f c t ) + 1 2 cos ( 4 π f 0 t ) - cos ( 2 π ( f c - f 0 ) t ) - cos ( 2 π ( f c + f 0 ) t ) } = 1 2 - 1 2 LPF { cos ( 2 π ( f c - f 0 ) t ) } ,

assuming that the cutoff frequency of the lowpass filter is less than f c and that f 0 f c . At the point where f 0 = f c , J ( f 0 ) = 0 . For any other value of f 0 , however, as time progresses,the cosine term undulates up and down with an average value of zero. Hence J ( f 0 ) averages to 1 2 for any f 0 f c ! This pathological situation is shown in [link] .

When f 0 is far from f c , 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 f 0 f c , 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 ...

The error surface corresponding to the frequency estimation performance function Equation 40 is flat everywhere except for a deep crevice at the correct answer f_0=f_c.
The error surface corresponding to the frequency estimation performance function [link] is flat everywhere except for a deep crevice at thecorrect answer f 0 = f c .

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Software receiver design. OpenStax CNX. Aug 13, 2013 Download for free at http://cnx.org/content/col11510/1.3
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Software receiver design' conversation and receive update notifications?

Ask