Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Costas loop
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{short description|Phase-locked loop-based demodulator circuit}} A '''Costas loop''' is a [[phase-locked loop]] (PLL) based circuit which is used for [[carrier signal|carrier]] frequency [[Carrier recovery|recovery]] from suppressed-carrier [[modulation]] signals (e.g. double-[[sideband]] suppressed carrier signals) and phase modulation signals (e.g. [[Phase-shift keying#Binary phase-shift keying (BPSK)|BPSK]], [[Phase-shift keying#Quadrature phase-shift keying (QPSK)|QPSK]]). It was invented by [[John P. Costas (engineer)|John P. Costas]] at [[General Electric]] in the 1950s.<ref>{{cite journal |title = Synchronous communications |first = John P. |last=Costas |journal = Proceedings of the IRE |volume = 44 |issue = 12 |pages =1713–1718 |date= 1956 |doi=10.1109/jrproc.1956.275063 }}</ref><ref>{{cite journal |last=Costas |first=John P. |title=Synchronous Communications |journal=Proceedings of the IEEE |date=August 2002 |orig-year=1956 |volume=90 |issue=8 |pages=1461–1466 |doi= 10.1109/JPROC.2002.800876}}</ref> Its invention was described<ref name="Taylor">{{cite journal |title = Introduction to 'Synchronous Communications', A Classic Paper by John P. Costas |first = D. |last=Taylor |journal = Proceedings of the IEEE |volume = 90 |issue = 8 |pages =1459–1460 |date=August 2002 |doi=10.1109/jproc.2002.800719 }}</ref> as having had "a profound effect on modern digital communications". The primary application of Costas loops is in wireless receivers. Its advantage over other PLL-based detectors is that at small deviations the Costas loop error voltage is <math>\sin(2(\theta_i-\theta_f))</math> as compared to <math>\sin(\theta_i-\theta_f)</math>. This translates to double the sensitivity and also makes the Costas loop uniquely suited for tracking [[Doppler-shifted]] carriers, especially in [[OFDM]] and [[GPS receiver]]s.<ref name="Taylor"/> == Classical implementation == [[File:Costas loop model.svg|500px|center|thumb|Costas loop working in the locked state.]] In the classical implementation of a Costas loop,<ref>{{cite journal |url = http://rfdesign.com/images/archive/0102Feigin20.pdf |title = Practical Costas loop design |first = Jeff |last = Feigin |date = January 1, 2002 |journal = [[RF Design]] |pages = 20–36 |access-date = February 17, 2010 |archive-url = https://web.archive.org/web/20120211194804/http://rfdesign.com/images/archive/0102Feigin20.pdf |archive-date = February 11, 2012 |url-status = dead }}</ref> a local [[voltage-controlled oscillator]] (VCO) provides [[quadrature phase|quadrature]] outputs, one to each of two [[phase detector]]s, ''e.g.'', [[product detector]]s. The same phase of the input [[signal (information theory)|signal]] is also applied to both phase detectors, and the output of each [[phase detector]] is passed through a [[low-pass filter]]. The outputs of these low-pass filters are inputs to another phase detector, the output of which passes through a noise-reduction filter before being used to control the voltage-controlled oscillator. The overall loop response is controlled by the two individual low-pass filters that precede the third phase detector, while the third low-pass filter serves a trivial role in terms of gain and phase margin. The above figure of a Costas loop is drawn under the "locked" state, where the VCO frequency and the incoming carrier frequency have become the same due to the Costas loop process. The figure does not represent the "unlocked" state. == Mathematical models == === In the time domain === [[File:Costas-non-equal-freq-high-res.png|thumb|left|Time domain model of BPSK Costas loop]] In the simplest case <math>m^2(t) = 1</math>. Therefore, <math>m^2(t) = 1</math> does not affect the input of the noise-reduction filter. The carrier and [[voltage-controlled oscillator]] (VCO) signals are periodic oscillations <math>f_{ref,vco}(\theta_{ref,vco}(t))</math> with high-frequencies <math>\dot\theta_{ref,vco}(t)</math>. The block <math>\bigotimes</math> is an [[analog multiplier]]. A [[linear filter]] can be described mathematically by a system of linear differential equations: :<math>\begin{array}{ll} \dot x = Ax + b u_{d}(t),& u_{LF} = c^*x. \end{array} </math> where <math>A</math> is a constant matrix, <math>x(t)</math> is a state vector of the filter, <math>b</math> and <math>c</math> are constant vectors. The model of a VCO is usually assumed to be linear: :<math> \begin{array}{ll} \dot\theta_{vco}(t) = \omega^{free}_{vco} + K_{vco} u_{LF}(t),& t \in [0,T], \end{array} </math> where <math>\omega^{free}_{vco}</math> is the free-running frequency of the VCO and <math>K_{vco}</math> is the VCO gain factor. Similarly, it is possible to consider various nonlinear models of VCO. Suppose that the frequency of the master generator is constant <math> \dot\theta_{ref}(t) \equiv \omega_{ref}. </math> Equation of VCO and equation of filter yield :<math> \begin{array}{ll} \dot{x} = Ax + bf_{ref}(\theta_{ref}(t))f_{vco}(\theta_{vco}(t)),& \dot\theta_{vco} = \omega^{free}_{vco} + K_{vco}c^*x. \end{array} </math> The system is [[Non-autonomous system (mathematics)|non-autonomous]] and rather tricky for investigation. === In the phase-frequency domain === [[File:Costas-phase-pll-ics-high-res.png|thumb|left|Equivalent phase-frequency domain model of Costas loop]] [[File:PLL trainsient process phase domain.svg|thumb|left|VCO input for phase-frequency domain model of Costas loop]] In the simplest case, when : <math>\begin{align} f_{ref}\big(\theta_{ref}(t)\big) = \cos\big(\omega_{ref} t\big),\ f_{vco}\big(\theta_{vco}(t)\big) &= \sin\big(\theta_{vco}(t)\big) \\ f_{ref}\big(\theta_{ref}(t)\big)^2 f_{vco}\left(\theta_{vco}(t)\right) f_{vco}\left(\theta_{vco}(t) - \frac{\pi}{2}\right) &= -\frac{1}{8}\Big( 2\sin(2\theta_{vco}(t)) + \sin(2\theta_{vco}(t) - 2\omega_{ref} t) + \sin(2\theta_{vco}(t) + 2\omega_{ref} t) \Big) \end{align}</math> The standard engineering assumption is that the filter removes the upper sideband frequency from the input but leaves the lower sideband without change. Thus it is assumed that the VCO input is <math>\varphi(\theta_{ref}(t) - \theta_{vco}(t)) = \frac{1}{8}\sin(2\omega_{ref} t - 2\theta_{vco}(t)).</math> This makes a Costas loop equivalent to a [[phase-locked loop]] with [[phase detector characteristic]] <math>\varphi(\theta)</math> corresponding to the particular waveforms <math>f_{ref}(\theta)</math> and <math>f_{vco}(\theta)</math> of the input and VCO signals. It can be proved that filter outputs in the time and phase-frequency domains are almost equal.<ref> {{cite journal | title = Differential equations of Costas loop | url = http://www.math.spbu.ru/user/nk/PDF/2012-DAN-Nonlinear-analysis-Costas-loop-PLL-simulation.pdf |first1= G. A. |last1=Leonov |first2=N. V. |last2=Kuznetsov |first3=M. V. |last3=Yuldashev |first4=R. V. |last4=Yuldashev |journal = Doklady Mathematics |volume = 86 |issue = 2 |pages =723–728 |date=August 2012 |doi=10.1134/s1064562412050080 | s2cid = 255276607 }}</ref><ref>{{cite journal |title = Analytical method for computation of phase-detector characteristic |url = http://www.math.spbu.ru/user/nk/PDF/2012-IEEE-TCAS-Phase%20detector-characteristic-computation-PLL.pdf |last1 = Leonov |first1 = G. A. |last2 = Kuznetsov |first2 = N. V. |last3 = Yuldashev |first3 = M. V. |last4 = Yuldashev |first4 = R. V. |journal = IEEE Transactions on Circuits and Systems Part II |volume = 59 |issue = 10 |pages = 633–637 |year = 2012 |doi = 10.1109/tcsii.2012.2213362 |s2cid = 2405056 }}{{Dead link|date=July 2019 |bot=InternetArchiveBot |fix-attempted=yes }}</ref><ref> {{cite journal | title = Nonlinear dynamical model of Costas loop and an approach to the analysis of its stability in the large | last1=Leonov | first1=G. A. | last2=Kuznetsov | first2=N. V. | last3=Yuldashev | first3=M. V. | last4=Yuldashev | first4=R. V. | journal = Signal Processing | volume = 108 | pages = 124–135 | year = 2015 | publisher = Elsevier | doi = 10.1016/j.sigpro.2014.08.033 | url=https://jyx.jyu.fi/bitstream/123456789/50667/1/leonovetal1s2.0s0165168414003971main.pdf |archive-url=https://ghostarchive.org/archive/20221009/https://jyx.jyu.fi/bitstream/123456789/50667/1/leonovetal1s2.0s0165168414003971main.pdf |archive-date=2022-10-09 |url-status=live | doi-access=free | bibcode=2015SigPr.108..124L }}</ref> Thus it is possible<ref>{{cite book |last1=Kuznetsov |first1=N. V. |last2=Leonov |first2=G. A. |last3=Neittaanmaki |first3=P. |last4=Seledzhi |first4=S. M. |last5=Yuldashev |first5=M. V. |last6=Yuldashev |first6=R. V. |title=2012 IEEE 4th International Conference on Nonlinear Science and Complexity (NSC) |chapter=Nonlinear mathematical models of Costas Loop for general waveform of input signal |number = 6304729 |pages =75–80 |year = 2012 |publisher = IEEE Press |doi = 10.1109/NSC.2012.6304729 |isbn = 978-1-4673-2703-9 |s2cid=5812970 }}</ref> to study the simpler [[Autonomous system (mathematics)|autonomous system]] of differential equations :<math>\begin{align} \dot{x} &= Ax + b\varphi(\Delta\theta), \\ \Delta\dot{\theta} &= \omega_{vco}^{free} - \omega_{ref} + K_{vco}c^*x, \\ \Delta\theta &= \theta_{vco} - \theta_{ref}. \end{align}</math>. The [[Krylov–Bogoliubov averaging method]] allows one to prove that solutions of non-autonomous and autonomous equations are close under some assumptions. Thus, the Costas loop block diagram in the time domain can be asymptotically changed to the block diagram on the level of phase-frequency relations. The transition to the analysis of an autonomous dynamical model of the Costas loop (in place of the non-autonomous one) allows one to overcome the difficulties related to modeling the Costas loop in the time domain, where one has to simultaneously observe a very fast time scale of the input signals and slow time scale of signal's phase. This idea makes it possible<ref> {{cite journal |title = Nonlinear model of the optical Costas loop: pull-in range estimation and hidden oscillations |last1 = Kuznetsov |first1=N. V. |last2 = Leonov |first2=G. A. |last3=Seledzhi |first3=S. M. |last4=Yuldashev |first4=M. V. |last5=Yuldashev |first5=R. V. |journal = IFAC-PapersOnLine |volume = 50 |pages = 3325–3330 |year = 2017 |publisher = ELSEVIER |issn = 2405-8963 |doi = 10.1016/j.ifacol.2017.08.514 |doi-access=free }}</ref> to calculate core performance characteristics - [[Phase-locked loop ranges|hold-in, pull-in, and lock-in ranges]]. ==Frequency acquisition== {| style="float:center; margin:auto" |[[File:Costas loop before sync.png|340px|thumb|Costas loop before synchronization]] |[[File:Costas loop after sync.png|290px|thumb|Costas loop after synchronization]] |} {| style="float:center; margin:auto" |[[File:Costas loop signals before sycnhronization.svg|290px|thumb|Carrier and VCO signals before synchronization]] |[[File:Costas loop trainsient process.svg|160px|thumb|VCO input during synchronization]] |[[File:Costas loop after synchronization.svg|290px|thumb|Carrier and VCO signals after synchronization]] |} The classical Costas loop will work towards making the phase difference between the carrier and the VCO become a small, ideally zero, value.<ref>{{harvnb|Costas|1956}} states, "The local oscillator must be maintained at proper phase so that the audio output contributions of the upper and lower sidebands reinforce one another. If the oscillator phase is 90° away from the optimum value, a null in audio output will result, which is typical of detectors of this type. The actual method of phase control will be explained shortly, but for the purpose of this discussion, maintenance of correct oscillator phase shall be assumed."</ref><ref>Using a loop filter with an integrator allows a steady-state phase error of zero. See {{section link|PID controller|Integral term}}.</ref><ref>{{cite book |last=Best |first=Roland E. |title=Phase-Locked Loops |edition=third |location=New York |publisher=McGraw-Hill |date=1997 |pages=44–45 |isbn=0-07-006051-7}}</ref> The small phase difference implies that frequency lock has been achieved. == QPSK Costas loop == The classical Costas loop can be adapted to [[Phase-shift keying#Quadrature phase-shift keying (QPSK)|QPSK]] modulation for higher data rates.<ref>{{cite patent | country = US | number = 4,085,378 | status = patent | title = QPSK demodulator | pubdate = 1976-11-26 | pridate = 1975-06-11 | invent1 = Carl R. Ryan | invent2 = James H. Stilwell | assign1 = Motorola Solutions Inc. | url = https://patents.google.com/patent/US4085378A/en }}</ref> [[File:QPSK-costas-loop2.png|thumb|left|Classical QPSK Costas loop]] The input [[phase-shift keying#Quadrature phase-shift keying (QPSK)|QPSK]] signal is as follows :<math> m_1(t)\cos\left(\omega_\text{ref} t\right) + m_2(t)\sin\left(\omega_\text{ref} t\right), m_1(t) = \pm 1, m_2(t) = \pm 1. </math> Inputs of low-pass filters LPF1 and LPF2 are :<math>\begin{align} \varphi_1(t) &= \cos\left(\theta_\text{vco}\right)\left(m_1(t)\cos\left(\omega_\text{ref} t\right) + m_2(t)\sin\left(\omega_\text{ref} t\right)\right), \\ \varphi_2(t) &= \sin\left(\theta_\text{vco}\right)\left(m_1(t)\cos\left(\omega_\text{ref} t\right) + m_2(t)\sin\left(\omega_\text{ref} t\right)\right). \end{align}</math> After synchronization, the outputs of LPF1 <math>Q(t)</math> and LPF2 <math>I(t)</math> are used to get demodulated data (<math>m_1(t)</math> and <math>m_2(t)</math>). To adjust the frequency of the VCO to the reference frequency, signals <math>Q(t)</math> and <math>I(t)</math> are limited and cross-multiplied: :<math>u_d(t) = I(t)\sgn(Q(t)) - Q(t)\sgn(I(t)).</math> Then the signal <math>u_d(t)</math> is filtered by the loop filter and forms the tuning signal for the VCO <math>u_\text{LF}(t)</math>, similar to BPSK Costas loop. Thus, QPSK Costas can be described<ref> {{cite journal | title = Tutorial on dynamic analysis of the Costas loop | last1 = Best | first1=R. E. | last2 = Kuznetsov | first2=N. V. | last3 = Leonov | first3=G. A. | last4 = Yuldashev | first4=M. V. | last5 = Yuldashev | first5=R. V. | journal = Annual Reviews in Control | volume = 42 | pages = 27–49 | year = 2016 | publisher = ELSEVIER | doi = 10.1016/j.arcontrol.2016.08.003 | arxiv = 1511.04435 | s2cid = 10703739 }}</ref> by a system of [[ordinary differential equations]]: :<math>\begin{align} \dot{x}_1 &= A_\text{LPF} x_1 + b_\text{LPF}\varphi_1(t),\\ \dot{x}_2 &= A_\text{LPF} x_2 + b_\text{LPF}\varphi_2(t),\\ \dot{x} &= A_\text{LF} x + b_\text{LF}\big(c_\text{LPF}^* x_1\sgn(c_\text{LPF}^* x_2) - c_\text{LPF}^* x_2\sgn(c_\text{LPF}^* x_1)\big),\\ \dot{\theta}_\text{vco} &= \omega_\text{vco}^\text{free} + K_\text{VCO}\Big(c^*_\text{LF} x + h_\text{LF}\big(c_\text{LPF}^* x_1\sgn(c_\text{LPF}^* x_2) - c_\text{LPF}^* x_2\sgn(c_\text{LPF}^* x_1)\big)\Big).\\ \end{align}</math> Here <math>A_\text{LPF}, b_\text{LPF}, c_\text{LPF}</math> are parameters of LPF1 and LPF2 and <math>A_\text{LF}, b_\text{LF}, c_\text{LF}, h_\text{LF}</math> are parameters of the loop filter. ==References== {{reflist|30em}} * {{FS1037C}} [[Category:Electronic oscillators]] [[Category:Communication circuits]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Cite book
(
edit
)
Template:Cite journal
(
edit
)
Template:Cite patent
(
edit
)
Template:Dead link
(
edit
)
Template:FS1037C
(
edit
)
Template:Harvnb
(
edit
)
Template:Reflist
(
edit
)
Template:Section link
(
edit
)
Template:Short description
(
edit
)