Signal Processing

Costas Loop

/KOS-tuhs loop/
Invented by John P. Costas in 1956, this synchronous detector recovers a coherent local-oscillator reference from a suppressed-carrier signal that contains no usable carrier tone of its own. The input is mixed against two VCO outputs 90° apart to form in-phase (I) and quadrature (Q) baseband arms; multiplying the two arms strips the data modulation and yields a phase-error term proportional to sin(2θe) that drives a loop filter and a voltage-controlled oscillator. This makes it the workhorse carrier recovery circuit for BPSK and QPSK demodulators in satellite modems, telemetry receivers, and software-defined radios, typically operating at IF with loop bandwidths of 0.5 to 5 percent of the symbol rate.
Category: Signal Processing
Phase Error Slope: ∝ sin(2θe)
Lock Points: 2 (BPSK) / 4 (QPSK)

How the Costas Loop Recovers a Suppressed Carrier

Phase-shift keying intentionally suppresses the carrier: a BPSK waveform is the carrier multiplied by ±1, so its spectrum is a pair of data sidebands with no discrete line at the carrier frequency. A plain phase-locked loop has nothing to lock onto, and the 180° data transitions would whipsaw a single mixer's output. The Costas loop sidesteps this by performing the synchronous detection and the phase comparison at the same time. The received IF is split and mixed against two replicas of the VCO, one in phase and one shifted 90°. After lowpass filtering, the I arm carries cos(θe) times the data and the Q arm carries sin(θe) times the data, where θe is the phase error between the incoming carrier and the VCO.

The trick is the third multiplier. Forming the product I × Q gives a term proportional to sin(θe)cos(θe) = ½ sin(2θe), and because the data sign d = ±1 appears squared (d² = 1) it cancels out entirely. The result is a clean, data-free S-curve error voltage that is zero at lock and slopes through the origin, exactly what the loop filter needs to steer the VCO. For QPSK the same idea is extended with a four-quadrant arctangent or a hard-limited cross-coupled detector that produces a sin(4θe) characteristic with four stable lock points 90° apart.

Governing Equations

I and Q baseband arms (after LPF):
I = ½ A · d(t) · cos(θe)    Q = ½ A · d(t) · sin(θe)

Phase detector output (BPSK):
e(t) = I × Q = ⅛ A² · d²(t) · sin(2θe) ≈ k · sin(2θe)

Second-order loop natural frequency & bandwidth:
ωn = √(KdK01)    BL = (ωn/2)(ζ + 1/(4ζ))

Where A = signal amplitude, d(t) = ±1 data, θe = phase error, k = detector gain, ζ = damping factor (≈0.707 typical), BL = single-sided loop noise bandwidth. Design target: BL ≈ 0.005 to 0.05 × Rs (symbol rate).

Carrier Recovery Method Comparison

MethodModulationsPhase Error TermSNR @ LockAmbiguityNotes
Costas loopBPSK, QPSKsin(2θe) / sin(4θe)~5 to 8 dB Eb/N0180° / 90°Self-noise rises at low SNR
Squaring loopBPSKFrom 2× multiplied tone~6 to 9 dB180°Needs 2f0 PLL + divide-by-2
Decision-directedQPSK, QAMIm(r · conj(d̂))~7 to 10 dBPer constellationDegrades below decision threshold
RemodulatorBPSK, QPSKRe-strip then PLL~6 dB180° / 90°Lower self-noise than Costas
Pilot-tone PLLAny (residual carrier)Direct sin(θe)~0 to 3 dBNoneWastes power on the pilot
Common Questions

Frequently Asked Questions

Why does a Costas loop need both an I and a Q arm?

A suppressed-carrier BPSK signal has no discrete line at the carrier, so a plain PLL has nothing to lock to and the 180° data modulation would drag a single mixer around. Splitting into in-phase (I) and quadrature (Q) arms 90° apart lets the I arm demodulate data while the Q arm carries the phase error. The product I × Q removes the data because d² = 1, leaving a clean error term proportional to sin(2θe) that the loop locks on.

What is the phase ambiguity of a Costas loop and how is it resolved?

A BPSK Costas loop has stable lock points every 180°, and a QPSK loop has four points 90° apart, so the recovered bits may come out inverted or rotated. Differential encoding (DBPSK or DQPSK) carries information in the transition rather than absolute phase and is immune to the ambiguity. Alternatively a known unique word or preamble lets the demodulator detect the rotation and apply a fixed phase correction.

How do you set the loop bandwidth of a Costas loop?

It is a compromise: wide bandwidth acquires fast and tolerates frequency offset but admits more noise and raises jitter; narrow bandwidth cleans the carrier but acquires slowly and can drop lock under Doppler. A common rule sets the single-sided noise bandwidth BL between 0.5 and 5 percent of the symbol rate (roughly 5 to 50 kHz at 1 Msym/s), with damping near 0.707 and a sweep stage when the offset exceeds pull-in range.

Coherent Receivers

Specify Your Down-Conversion Chain

Building a BPSK or QPSK receiver that needs clean carrier recovery? Our frequency converters and integrated assemblies deliver the low-phase-noise IF your Costas loop depends on. Talk to our engineering team.

Get in Touch