<< Chapter < Page Chapter >> Page >

Consider the alternative performance function J ( θ ) = | u ( k T s ) | , where u ( k T s ) is defined in [link] . Derive the appropriate adaptive element, and implement it by imitating the code in pllconverge.m . In what ways is this algorithm better than the standard PLL?In what ways is it worse?

The PLL can be used to identify the phase offset of the carrier.It can be derived as a gradient descent on a particular performance function, and can be investigated via simulation(with variants of pllconverge.m , for instance). When the phase offset changes,the PLL can track the changes up to some maximum rate. Conceptually, tracking a small frequencyoffset is identical to tracking a changing phase, and "Frequency Tracking" investigates how to use the PLL as a building block for the estimation of frequencyoffsets. "Generalized PLL" also shows how a linearized analysis of the behavior of the PLL algorithmcan be used to concretely describe the convergence and tracking performance of the loopin terms of the implementation of the LPF.

The costas loop

The PLL and the SD algorithms are two ways of synchronizing the phase at the receiverto the phase at the transmitter. Both require that the received signal be preprocessed(for instance, by a squaring nonlinearity and a BPF as in [link] ) in order to extract a “clean” version of the carrier,albeit at twice the frequency and phase. An alternative approach operates directly on the received signal r ( k T s ) = s ( k T s ) cos ( 2 π f c k T s + Φ ) by reversing the order of the processing: first modulating to DC, then low pass filtering,and finally squaring. This reversal of operations leads to the performance function

J C ( θ ) = avg { ( LPF { r ( k T s ) cos ( 2 π f 0 k T s + θ ) } ) 2 } .

The resulting algorithm is called the Costas loop after its inventor J. P. Costas. Because of the way that the squaring nonlinearityenters J C ( θ ) , it can operate without preprocessing of the received signal as in [link] . To see why this works, suppose that f c = f 0 , and substitute r ( k T s ) into [link] :

J C ( θ ) = avg { ( LPF { s ( k T s ) cos ( 2 π f 0 k T s + Φ ) cos ( 2 π f 0 k T s + θ ) } ) 2 } .

Assuming that the cutoff of the LPF is larger than the absolute bandwidth of s ( k T s ) , and following the same logic as in [link] but with Φ instead of 2 Φ , θ in place of 2 θ and 2 π f 0 k T s replacing 4 π f 0 k T s shows that

LPF { s ( k T s ) cos ( 2 π f 0 k T s + Φ ) cos ( 2 π f 0 k T s + θ ) } = 1 2 LPF { s ( k T s ) } cos ( Φ - θ ) .

Substituting [link] into [link] yields

J C ( θ ) = avg 1 2 s ( k T s ) cos ( Φ - θ ) 2 = 1 4 avg { s 2 ( k T s ) cos 2 ( Φ - θ ) ) } 1 4 s avg 2 cos 2 ( Φ - θ ) ,

where s avg 2 is the (fixed) average value of the square of the data sequence s ( k T s ) . Thus J C ( θ ) is proportional to cos 2 ( Φ - θ ) . This performance function is plotted(for an “unknown” phase offset of Φ = - 0 . 8 ) in the bottom part of [link] . Like the error surface for the PLL (the middle plot),this achieves a maximum when the estimate θ is equal to Φ . Other maxima occur at Φ + n π for integer n . In fact, except for a scaling and a constant, this is the same as J P L L because cos 2 ( Φ - θ ) = 1 2 ( 1 + cos ( 2 Φ - 2 θ ) ) , as shown using  [link] .

The Costas loop can be implemented as a standard adaptive element [link] . The derivative of J C ( θ ) is approximated by swapping the order of the differentiation and the averaging, applying the chain rule,and then swapping the derivative with the LPF. In detail, this is

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