Quiz Entry - updated: 2026.07.05
What are OVSF codes and how does the OVSF tree generate orthogonal channelization codes?
OVSF (Orthogonal Variable Spreading Factor) codes are generated from a binary tree structure where each level doubles the code length (and halving the data rate), ensuring all codes at any level are orthogonal to each other.

* OVSF tree generating orthogonal spreading codes. — Pplecke, CC BY-SA 3.0, via Wikimedia Commons. *
The OVSF tree:
SF=1: (1)
├── SF=2: (1,1)
│ ├── SF=4: (1,1,1,1)
│ └── SF=4: (1,1,-1,-1)
└── SF=2: (1,-1)
├── SF=4: (1,-1,1,-1)
└── SF=4: (1,-1,-1,1)
SF = Spreading Factor:
- SF=1: 1 chip per bit → highest data rate, only 1 code available
- SF=2: 2 chips per bit → half data rate, 2 codes available
- SF=4: 4 chips per bit → quarter data rate, 4 codes available
- In UMTS, SF ranges from 4 to 512
Code properties:
- Each code is a vector of +1 and -1 values (chips)
- Code elements: c_i ∈ {+1, -1}
- Any two codes at the same SF level are orthogonal (their dot product = 0)
- Constraint: if a code is in use, its parent and children codes cannot be used simultaneously (they wouldn't be orthogonal)
Variable data rates: A user needing high data rate gets a short code (low SF), while a user needing only voice gets a long code (high SF). Both share the same spectrum simultaneously. This flexibility is a major advantage of CDMA over fixed-slot TDMA.
Go deeper:
CDMA orthogonal spreading codes (Electronics Notes) — why codes must be orthogonal (cross-correlation → 0), and how the UMTS/WCDMA spreading factor sets the code length and the resulting data rate.
Code-division multiple access (Wikipedia) — the orthogonal-code construction (Walsh/Hadamard) that the OVSF tree generates, with worked separation examples (kept for the diagram carousel).