Signal Processing

Code Acquisition

The initial synchronization process in a spread-spectrum receiver that searches for and aligns the locally generated spreading code with the incoming signal's code to within one chip of the correct timing. Acquisition must resolve both code phase (timing offset) and carrier Doppler frequency before the signal can be despread and data extracted. It precedes the finer code tracking loop that refines alignment to sub-chip precision.
Category: Signal Processing
Search space: Code phase × Doppler
Accuracy: ±1 chip (coarse)

Understanding Code Acquisition

Before a DSSS receiver can process any data, it must find the correct code phase, which is the time offset between the locally generated spreading code and the code embedded in the received signal. With a code length of N chips, there are 2N possible half-chip offsets to search. Additionally, the carrier frequency may be shifted by several kHz due to satellite/transmitter motion and receiver clock error, creating a frequency dimension.

The receiver must search this 2D uncertainty space (code phase × Doppler) systematically. At each candidate cell, it correlates the received signal with the local code at the hypothesized phase and frequency. If the correlation exceeds a threshold, acquisition is declared. If not, the receiver moves to the next cell.

Acquisition Search Parameters
Code phase cells:
Nphase = 2 × code length / step size
GPS C/A: 2 × 1023 / 0.5 = 4092 (at half-chip steps)

Doppler cells:
NDoppler = 2 × Δfmax / Δfbin
GPS: 2 × 10 kHz / 500 Hz = 40 bins

Total cells:
Ntotal = Nphase × NDoppler
GPS: 4092 × 40 = 163,680 cells

Serial search time (mean):
Tacq ≈ (2 − Pd) × Ntotal × Tdwell / (2 × Pd)

Serial at 1 ms dwell: ~82 seconds. Parallel FFT: ~40 ms.

Acquisition Methods

MethodCode Phases/TestGPS Cold StartHardware
Serial Search160-300 s1 correlator
Parallel Code (FFT)All (N)40-200 msFFT engine
Parallel Frequency12-10 sFilter bank
Massive ParallelAll × all<100 msFPGA/ASIC
Common Questions

Frequently Asked Questions

Why is code acquisition difficult?

The 2D search space (code phase × Doppler) is enormous: GPS has ~164,000 cells. Serial search at 1 ms dwell takes minutes. Modern receivers use FFT-based parallel search to test all code phases simultaneously per Doppler bin, reducing acquisition to milliseconds.

How does parallel FFT acquisition work?

FFT the received block, multiply by conjugate FFT of local code, IFFT the result. Output is the correlation for all code phases simultaneously. Tests all 2046 phases per FFT operation. With 40 Doppler bins: 40 ms total vs. hundreds of seconds serial.

What happens after acquisition?

Acquisition gives ±1 chip alignment. Code tracking (DLL, early-late correlator) refines to sub-chip (<1/100 chip for GPS). Carrier tracking locks frequency/phase. If tracking cannot pull in from acquisition accuracy, the signal is lost and re-acquisition is needed.

RF Engineering Resources

Request a Quote

Need GNSS receivers, CDMA test equipment, or FPGA development boards? Contact our engineering team.

Get in Touch