Code Acquisition
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.
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
| Method | Code Phases/Test | GPS Cold Start | Hardware |
|---|---|---|---|
| Serial Search | 1 | 60-300 s | 1 correlator |
| Parallel Code (FFT) | All (N) | 40-200 ms | FFT engine |
| Parallel Frequency | 1 | 2-10 s | Filter bank |
| Massive Parallel | All × all | <100 ms | FPGA/ASIC |
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.