Costas loop
A Costas loop is a phase-locked loop (PLL) based circuit which is used for carrier frequency recovery from suppressed-carrier modulation signals (e.g. double-sideband suppressed carrier signals) and phase modulation signals (e.g. BPSK, QPSK). It was invented by John P. Costas at General Electric in the 1950s .[1] Its invention was described[2] as having had "a profound effect on modern digital communications". The primary application of Costas loops is in wireless receivers. Its advantage over the PLL-based detectors is that at small deviations the Costas loop error voltage is as compared to . This translates to double the sensitivity and also makes the Costas loop uniquely suited for tracking Doppler-shifted carriers especially in OFDM and GPS receivers.[3]
Contents
Classical implementation
In the classical implementation of a Costas loop,[4] a local voltage-controlled oscillator (VCO) provides quadrature outputs, one to each of two phase detectors, e.g., product detectors. The same phase of the input 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 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.
Mathematical models
In the time domain
In the simplest case . Therefore, does not affect the input of noise-reduction filter. Carrier and voltage-controlled oscillator (VCO) signals are periodic oscillations with high-frequencies . Block shifts phase of VCO signal by . Block is an analog multiplier.
From the mathematical point of view, a linear filter can be described by a system of linear differential equations
Here, is a constant matrix, is a state vector of filter, and are constant vectors.
The model of a VCO is usually assumed to be linear
where is a free-running frequency of voltage-controlled oscillator and is an oscillator gain. Similarly, it is possible to consider various nonlinear models of VCO.
Suppose that the frequency of master generator is constant Equation of VCO and equation of filter yield
The system is non-autonomous and rather difficult for investigation.
In phase-frequency domain
In the simplest case, when
the standard engineering assumption is that the filter removes the upper sideband with frequency from the input but leaves the lower sideband without change. Thus it is assumed that VCO input is This makes a Costas loop equivalent to a phase-locked loop with phase detector characteristic corresponding to the particular waveforms and of input and VCO signals. It can be proved that inputs and of VCO for phase-frequency domain and time domain models are almost equal.[5] [6] [7]
Thus it is possible [8] to study more simple autonomous system of differential equations
- .
The Krylov–Bogoliubov averaging method allows one to prove that solutions of non-autonomous and autonomous equations are close under some assumptions. Thus the block-scheme of Costas Loop in the time space can be asymptotically changed to the block-scheme on the level of phase-frequency relations.
The passage to analysis of autonomous dynamical model of Costas loop (in place of the non-autonomous one) allows one to overcome the difficulties, related with modeling Costas loop in time domain where one has to simultaneously observe very fast time scale of the input signals and slow time scale of signal's phase.
Frequency acquisition
References
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- This article incorporates public domain material from the General Services Administration document "Federal Standard 1037C".