想象一个鸡尾酒会,几百人同时在一个大厅里说话,没有隔间,没有轮流发言,所有人用的是同一个频段、同一个时间。按常理这应该是灾难性的吵闹,谁也听不清谁。但CDMA(码分多址)技术偏偏就把这事干成了——而且干得很好。它支撑了第二代半到第三代移动通信(IS-95、cdma2000、WCDMA),它的思想至今还活在GPS、北斗、蓝牙、Wi-Fi乃至5G的边边角角里。
CDMA的核心魔法只有一句话:用"密码"把信号变成噪声,再让接收方用同样的密码把噪声变回信号。别人听到的全是噪声,只有拿着正确钥匙的人能解出信息。这就是"扩频通信"。
理解CDMA,本质上是理解四个层层递进的概念:扩频、处理增益、码分正交、功率控制。它们环环相扣,缺一不可。本文就带你把这四件事彻底想明白,而且要回答那个最关键的问题——这个技术为什么非得这么设计。
普通通信里,你要传一个9.6kbps的语音信号,它天然占据的带宽也就几kHz到十几kHz,这叫窄带信号。窄带信号有个致命弱点:它太"尖"了,在频谱上像一根针,干扰一来就容易把它整根折断。
扩频的思路很粗暴:发射前,故意把信号在频域上"拍扁",铺开到几MHz甚至更宽的频带上。这就把一根针变成了一张薄饼——总能量没变,但单位频率上的功率大大降低,低到甚至可以沉到背景噪声电平以下。
一个未被授权的监听者用频谱仪去看,看到的是一片平坦的"白噪声",根本意识不到里面藏着信号。这叫低截获概率(LPI),是扩频最初被军用看中的原因。
实现扩频最常用的办法叫直接序列扩频(Direct Sequence Spread Spectrum, DSSS),原理出奇地简单:
你有一个低速的数据比特流(信息位,bit rate $R_b$),再产生一个高速的伪随机码(叫扩频码/码片序列,chip rate $R_c$),然后把数据与扩频码逐位相乘。
flowchart LR
A["数据位<br/>9.6 kbps<br/>例: +1"] --> M(("X"))
B["扩频码<br/>1.2288 Mcps<br/>例: +1 -1 +1 +1 -1..."]
B --> M
M --> C["扩频后信号<br/>宽带1.25MHz<br/>铺开的薄饼"]
C --> CH["无线信道<br/>(叠加噪声+干扰)"]
CH --> D["接收端"]
D --> M2(("X"))
B2["同款扩频码<br/>(同步)"] --> M2
M2 --> E["解扩:还原出<br/>原始数据 +1"]
style C fill:#ffe0b2
style E fill:#c8e6c9
关键点:相乘用的是一个比数据快得多的码。一个信息位被"切"成很多个小片(chip),每个chip用扩频码的一个值去乘。因为码的变化速率远高于数据,乘出来的信号带宽就被撑开了。带宽撑开的倍数,正好等于码片速率与数据速率之比。
为什么相乘能扩频? 数学上,时域相乘对应频域卷积。一个窄带信号(带宽$\propto R_b$)和一个宽带伪码(带宽$\propto R_c$)卷积,结果取宽的那个,所以信号被"拉宽"到$R_c$量级。这正是香农定理$C = B\log_2(1+S/N)$告诉我们的:想靠加带宽来换通信能力。
接收端只要用同一个扩频码、且严格同步,再乘一次,信号就被"收拢"回窄带。这一步叫解扩(despreading),是CDMA的真正神来之笔:
$$ \text{数据} \times \text{扩频码} \times \text{扩频码} = \text{数据} \times (\text{扩频码}^2) = \text{数据} \times 1 = \text{数据} $$
因为扩频码取值是$\pm 1$,平方恒为1。数据被原样还原。但请注意,这里的"魔法"不在数据本身,而在噪声和干扰的处理方式上。
处理增益(Processing Gain, $G_p$)是CDMA最重要的参数,它定义了扩频带来的"红利":
$$ G_p = \frac{R_c}{R_b} = \frac{\text{扩频后带宽}}{\text{原始数据带宽}} $$
举个例子:IS-95 CDMA里,码片速率$R_c = 1.2288$ Mcps,语音速率$R_b = 9.6$ kbps,于是:
$$ G_p = \frac{1.2288\times10^6}{9.6\times10^3} = 128 \approx 21 \text{ dB} $$
这21 dB意味着什么?意味着系统可以忍受比有用信号强21dB的干扰仍然正常工作。换句话说,CDMA天生就在"噪声里游泳"。
这是理解CDMA最关键的一点。我们分两种干扰看:
情况一:窄带干扰(比如某个杂散信号、邻居的强单频)。 窄带干扰在进入接收机时是窄的。接收端用扩频码做解扩(相乘+积分)时,对有用信号是"收拢",对窄带干扰反而是"摊开"——因为干扰没有经过同步扩频,它和本地码相乘后带宽被撑到$R_c$宽,能量被稀释。积分器只取中心窄带那部分,绝大部分干扰能量被滤掉了。这就是$G_p$带来的干扰抑制。
情况二:宽带噪声/其他用户的信号。 解扩过程对它们不带来额外增益(它们本来就是宽带的),但有用信号被集中了$G_p$倍。所以信噪比改善了$G_p$倍:
$$ \left(\frac{S}{I}\right){\text{输出}} = G_p \cdot \left(\frac{S}{I}\right)\right)}} \quad\Longleftrightarrow\quad 10\log_{10}\left(\frac{S}{I{\text{out}} = 10\log) $$}\left(\frac{S}{I}\right)_{\text{in}} + G_p(\text{dB
| 参数 | 数值(IS-95示例) | 说明 |
|---|---|---|
| 码片速率 $R_c$ | 1.2288 Mcps | 扩频码的变化速率 |
| 信息速率 $R_b$ | 9.6 kbps | 原始语音/数据速率 |
| 处理增益 $G_p$ | 128(21 dB) | 抗干扰/多址能力的根本来源 |
| $E_b/N_0$ 要求 | ~7 dB | 解调所需每比特能量/噪声谱密度 |
| 可承受干扰余量 | 21−7 = 14 dB | 系统还能扛住14dB的干扰 |
注意,$G_p$不是越大越好。$G_p$大意味着同样的数据速率要用更宽的频带,频谱效率下降。CDMA有一个迷人的特性叫软容量:用户越多,总干扰越大,但系统不会像FDMA/TDMA那样"满了就拒绝接入",而是让所有用户都稍微变差一点,直到某个用户达不到$E_b/N_0$要求才掉话。这就像那个鸡尾酒会——人多到一定程度,大家说话都吃力,但不会突然谁都听不见。
既然单个用户能靠扩频码解出自己的信号,那多个用户只要用不同的扩频码,就能在同一时间、同一频率上同时通信,互不干扰——这就是"码分多址"。
| 维度 | FDMA(频分) | TDMA(时分) | CDMA(码分) |
|---|---|---|---|
| 区分维度 | 频率 | 时间 | 扩频码 |
| 类比 | 划分房间,各用各的 | 排队轮流发言 | 说不同语言,同时说 |
| 频率复用 | 需要规划,7小区复用 | 需要规划 | 同频复用,频率复用因子≈1 |
| 软容量 | 无(硬性信道数) | 无 | 有(干扰受限) |
| 软切换 | 不支持 | 不支持 | 支持(宏分集) |
| 典型系统 | 1G AMPS | 2G GSM | IS-95 / WCDMA / cdma2000 |
CDMA的"频率复用因子=1"是个巨大优势:所有小区用同一频率,不需要复杂的频率规划,容量也大幅提升(理论上比GSM高好几倍)。
要实现码分多址,理想情况是每个用户的扩频码两两完全正交。正交意味着:
$$ \sum_{k=0}^{N-1} c_i(k)\cdot c_j(k) = 0 \quad (i\neq j) $$
也就是两个码逐位相乘再求和等于0——它们彼此"完全不相关"。这样用户$i$的信号在用户$j$的接收机里解扩后是0,毫无干扰。
Walsh码(Walsh-Hadamard序列)就是这样一组理想的正交码。它由Hadamard矩阵递推生成:
$$ H_1 = [+1],\quad H_{2N} = \begin{bmatrix} H_N & H_N \ H_N & -H_N \end{bmatrix} $$
64阶Walsh码能产生64条两两正交的序列,IS-95前向链路(基站→手机)就用它区分64个信道。在前向链路,所有用户的信号由同一个基站发射,到达任何一个手机时走的路径基本相同,所以Walsh码能保持良好正交性。
flowchart TB
subgraph BS["基站(前向链路)"]
U1["用户1数据 × Walsh1"]
U2["用户2数据 × Walsh2"]
U3["用户3数据 × Walsh3"]
U1 & U2 & U3 --> SUM(("Σ 相加"))
SUM --> TX["同一射频发射"]
end
TX --> M1["手机1: 用Walsh1解扩→得到用户1"]
TX --> M2["手机2: 用Walsh2解扩→得到用户2"]
TX --> M3["手机3: 用Walsh3解扩→得到用户3"]
style SUM fill:#ffe0b2
style TX fill:#bbdefb
但Walsh码有个限制:只有完全同步时才正交。如果用户间有时间偏移(哪怕偏半个码片),正交性就被破坏,互相关不再为0。
在反向链路(手机→基站),这个问题很棘手:每个手机位置不同、传播时延不同,它们的Walsh码到达基站时不可能对齐,正交性荡然无存。所以反向链路不靠Walsh码做用户区分,而是用PN(伪随机噪声)码。
PN码的互相关虽然不为0(准正交),但自相关性极好——只要码相位对齐,自相关是个尖峰;偏开一点,立刻掉到接近0。这让基站能精确锁定每个手机的码相位,靠不同的PN码相位偏置区分用户。每个用户看起来都是一片噪声,靠$G_p$和处理增益各自解出。
flowchart LR
subgraph 现实["反向链路(手机→基站)的困境"]
D1["问题: 各手机传播时延不同<br/>Walsh码无法对齐→正交性丢失"]
D2["解决: 用PN伪随机码<br/>靠准正交+自相关尖峰区分"]
D1 --> D2
end
D2 --> Q["代价: 用户间互相关不为0<br/>→互相构成干扰→需要功率控制"]
style Q fill:#ffcdd2
这就引出了CDMA两个"不得不做"的配套工程:为了区分用户而产生的互干扰,必须靠处理增益对抗;为了对抗互干扰的失衡,必须靠功率控制。下面进入第四部分。
现在考虑反向链路的真实场景。基站收到的信号,是所有手机信号的叠加。问题来了:离基站近的手机,信号到达基站时很强;离基站远的手机,信号到达时很弱。
因为用户间的扩频码是准正交(互相关≠0),强信号会对弱信号构成干扰。如果不管控,一个近处手机的大功率会像太阳一样盖住远处手机的微弱信号,远处用户直接断联。这就是著名的近远效应(Near-Far Effect)。
类比:教室里,前排同学用正常音量说话,后排同学拼命喊。如果老师不做管理,后排同学的声音会被前排盖住,老师只听得见前排几个。解决办法:让前排小声点,后排大声点,让所有声音到达老师耳朵时差不多大。
近远效应是CDMA特有的问题,FDMA/TDMA因为频率/时间隔离,不存在这个问题。它是CDMA必须啃下的硬骨头。
为了把所有用户的接收功率"拉平"到差不多,CDMA设计了精密的功率控制系统:
flowchart TB
UE["手机UE"] -->|测量下行信号强度| OL["开环功率控制<br/>(粗调, UE自估)"]
OL --> P0["初步设定发射功率"]
UE -->|发射| BS["基站"]
BS -->|测量接收SIR| CL["闭环功率控制<br/>(精调)"]
CL -->|TPC指令:↑/↓| UE
CL --> OL2["内环: 1.25ms一次, ±1dB<br/>外环: 调整目标SIR"]
style OL fill:#fff9c4
style CL fill:#c8e6c9
① 开环功率控制(Open Loop): 手机自己根据收到的下行信号强度粗略估计路径损耗,反推自己该用多大功率发射。下行信号强→说明离基站近/路损小→少发点;反之多发点。这是"自估",速度快但不够准(因为上下行频率不同、衰落独立),只作粗调。
② 闭环功率控制(Closed Loop): 基站实际测量每个手机到达时的信干比(SIR),与目标值比较,然后给手机下功率控制指令(TPC):高了让手机降功率,低了让手机升功率。这个过程极快——IS-95/WCDMA中每1.25ms(或更密)就调整一次,每次±1dB。这么高频的调整是为了跟上快衰落(手机移动时信号快起伏)。
闭环又分两层: - 内环: 比较实测SIR与目标SIR,发升降指令。 - 外环: 根据实际的误码率/帧错误率动态调整目标SIR——质量差就把目标SIR调高,质量好就调低,保证刚好满足业务质量,不浪费功率。
功率控制做得好不好,直接决定CDMA的容量。因为CDMA容量是干扰受限的:
$$ \text{容量} \approx \frac{G_p}{(S/I)_{\text{required}}} \cdot \frac{1}{1+\beta} \quad(\text{每扇区用户数}) $$
其中$\beta$是其他小区干扰系数。如果功率控制完美,每个用户只发"刚好够用"的功率,总干扰最小,能塞的用户最多;如果功率控制差,用户都多发,互相干扰螺旋上升,容量骤降甚至系统崩溃。可以说,没有功率控制,CDMA一天都活不下去。
CDMA还有一个杀手锏:RAKE接收机("耙子"接收机)。在多径环境里(信号被建筑反射,走不同路径到达),普通通信技术视多径为敌——不同路径信号叠加会产生码间干扰。
但CDMA的扩频码自相关性极强:只有码相位对齐时才有尖峰。RAKE接收机利用这一点,把每一条到达的多径信号分别用不同"手指(finger)"对齐、解扩,再把能量相干合并。多径不但不捣乱,反而成了额外的信号能量来源——这叫多径分集。
flowchart LR
S["发射信号"] -->|直射路径 d1| R
S -->|反射路径 d2| R
S -->|反射路径 d3| R
R["RAKE接收机"] --> F1["finger1: 对齐d1解扩"]
R --> F2["finger2: 对齐d2解扩"]
R --> F3["finger3: 对齐d3解扩"]
F1 & F2 & F3 --> M(("最大比合并"))
M --> OUT["输出: 多径能量叠加→信噪比提升"]
style M fill:#c8e6c9
style OUT fill:#bbdefb
这是CDMA在市区环境下抗多径、抗衰落能力远超GSM的关键之一。FDMA/TDMA用均衡器苦苦对抗多径,CDMA却把多径吃干抹净。
CDMA并非铁板一块,历史上分两大分支,思想同源但参数迥异:
| 特性 | IS-95 / cdma2000(高通系) | WCDMA(3GPP系) |
|---|---|---|
| 码片速率 | 1.2288 Mcps | 3.84 Mcps |
| 带宽 | 1.25 MHz | 5 MHz |
| 处理增益 | ~21 dB(9.6kbps) | ~25 dB(12.2kbps AMR) |
| 同步方式 | 基站间GPS同步 | 基站间异步 |
| 功控速率 | 800 Hz | 1500 Hz |
| 多载波 | cdma2000可3载波聚合 | 单载波宽带 |
高通的IS-95是CDMA商用鼻祖(1995年),WCDMA则是3G时代3GPP主导的全球主流标准。二者核心思想完全一致——扩频、处理增益、码分、功率控制、RAKE——只是工程参数和细节不同。
CDMA虽然优雅,但在追求极致频谱效率的4G LTE时代被OFDM取代了。原因有几条:
但CDMA的思想没死:扩频、正交码、处理增益这些概念,在GPS定位(靠PN码测距)、北斗、蓝牙(跳频扩频)、军事通信、甚至5G的上行覆盖增强里,都还能看到它们的影子。理解CDMA,就是理解了一整类"用码来扛事"的通信哲学。
对1-3年经验的工程师,CDMA原理在以下场景特别有用:
理解干扰受限系统的本质。 现在的5G虽然不用CDMA,但"系统容量受限于干扰"的思想无处不在。理解CDMA的功率控制和软容量,能帮你理解为什么5G要做这么复杂的调度和干扰协调。
GPS/北斗定位原理。 卫星导航系统底层就是DS-CDMA扩频。理解扩频码的自相关尖峰,你才能理解接收机怎么靠"码相位"测出到卫星的距离(伪距)。定位精度问题排查时,"多径""码跟踪环""相关峰"这些概念都来自CDMA。
物联网与抗干扰通信。 LoRa用的就是线性调频扩频(Chirp Spread Spectrum),蓝牙BLE用跳频,很多工业无线靠DSSS抗干扰。扩频思想在IoT领域是主流。
理解"为什么上行比下行难"。 CDMA反向链路的功率控制、近远效应,深刻揭示了"上行多用户汇入单点"的根本困难。这个困难在5G NR上行依然存在(所以5G上行才用SC-FDMA来降低峰均比、做上行调度)。
调试陷阱:把"码不正交"误判为硬件故障。 CDMA/WCDMA基站侧如果出现某用户持续干扰,老工程师第一反应不是查射频,而是查码分配冲突、扰码规划、功率控制是否异常。很多"虚警"都源于对正交性前提的忽视。
误解: "CDMA信号功率低于噪声,那它不是更难解出来吗?" 真相: 单位频率上功率确实低于噪声,但解扩过程把分散在宽带的能量重新集中,处理增益$G_p$把它"抬"到噪声之上。CDMA是在宽带噪声里游泳,但游泳时有"处理增益"这个氧气瓶。
误解: "Walsh码正交,所以多用户完全没干扰。" 真相: Walsh码只在严格同步时正交,这只在前向链路(同源发射)成立。反向链路因时延不同,正交性破坏,用户间存在互干扰——这正是需要功率控制的根源。
误解: "处理增益越大系统越好。" 真相: $G_p$大意味着同样数据速率要占更宽频带,频谱效率下降。CDMA是在"抗干扰/多址能力"和"频谱效率"之间权衡,没有免费午餐。
最后我们用一张图把CDMA的四块拼图连起来,看清它们为什么"不得不如此":
flowchart TB
A["① 扩频<br/>窄带→宽带, 藏身噪声"] --> B["② 处理增益 Gp<br/>解扩时有用信号集中,干扰被稀释<br/>信噪比改善Gp倍"]
B --> C["③ 码分多址<br/>不同扩频码区分用户<br/>同频同时间复用"]
C --> D{"用户间正交吗?"}
D -->|"前向(同步): Walsh正交"| E["干扰小, 容量高"]
D -->|"反向(异步): PN准正交"| F["用户间互干扰"]
F --> G["④ 功率控制<br/>克服近远效应, 拉平接收功率<br/>→容量最大化"]
B --> H["RAKE接收机<br/>把多径变分集"]
style A fill:#fff9c4
style B fill:#ffe0b2
style C fill:#bbdefb
style G fill:#ffcdd2
style H fill:#c8e6c9
一句话总结:CDMA用"扩频"获得抗干扰与隐蔽性,用"处理增益"把宽频带换成信噪比,用"正交码"实现同频多址,用"功率控制"拯救由准正交带来的近远效应,用"RAKE"把多径敌人变成朋友。 每一步都是上一步的必然结果,每一项设计都在回答一个"为什么"。
当你下次再看到那个"几百人同时说话却互不干扰"的鸡尾酒会,希望你能看见背后的密码、增益、正交与功率控制——这才是一场真正的通信魔术的全部机关。
Q1: CDMA和OFDM到底什么关系?为什么4G换成OFDM了? A: 二者都是宽带多址技术,但思路相反。CDMA靠"扩频+码"让多用户挤在同一宽频带里,本质是干扰受限;OFDM把宽频带切成正交的窄子载波,每个用户分到不同子载波,本质是频率正交的FDMA变体。4G换OFDM,是因为数据业务需要更高频谱效率和更好适配MIMO,CDMA的扩频"浪费"带宽且互干扰限制了峰值速率。但CDMA的"处理增益抗干扰"思想仍在物联网和定位领域发光。
Q2: 处理增益21dB具体能帮我扛住多大的干扰? A: 21dB意味着有用信号可以比干扰弱约128倍仍能正常解调。假设解调需要7dB的$E_b/N_0$,那么系统还有21−7=14dB的干扰余量,即可承受比信号强约25倍的干扰。这就是CDMA"在噪声里游泳"的底气,也是它抗干扰、抗截获、能做软容量的根源。
Q3: 为什么前向链路用Walsh码、反向却用PN码? A: Walsh码需严格同步才正交。前向链路所有用户信号由同一个基站发射,到任一手机的传播路径基本一致,码能对齐,Walsh正交成立,干扰极小。反向链路各手机位置/时延不同,Walsh码到达基站时无法对齐,正交性破坏,所以只能用自相关性好的PN码(靠相位偏置区分),代价是用户间存在互干扰,必须靠功率控制对抗。
Q4: 功率控制如果失效会怎样? A: 轻则单个用户掉话、容量下降,重则整个扇区雪崩。近处手机功率失控会盖住所有远处用户,远处用户被迫抬升功率,又干扰更多用户,形成正反馈雪崩,最终扇区拥塞。这也是为什么CDMA系统对功率控制的实时性(1.25ms/1500Hz)和可靠性要求极高——它是系统的生命线。
Q5: CDMA都退网了,学它还有什么用? A: 三个层面仍有价值:①思想迁移——扩频、处理增益、正交码、功率控制、干扰受限这些概念,是理解一切多址和抗干扰技术的根基,5G/IoT里反复出现;②GPS/北斗定位底层就是CDMA扩频测距,不懂它搞不懂导航原理;③理解通信系统设计的"为什么"——CDMA是最能体现"用带宽换增益、用复杂度换容量"哲学的经典案例,对培养系统性思维极有帮助。退网的是技术形态,留下的是设计智慧。
本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护,聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
