文章

CDMA正交计算

CDMA正交计算例题

CDMA正交计算

image-20260408113538 image-20260408113542

前置设定:规则介绍

在这个系统里,有4个基站(A、B、C、D)。

  1. 专属密码(码片): 系统给每个基站发了一串8位数的密码本(图a)。
    • C 的密码本是:C = (-1, +1, -1, +1, +1, +1, -1, -1)
  2. 发消息规则: 计算机世界只有 1 和 0。
    • 如果 C 想发送比特 1:就在空中原样广播密码本 C
    • 如果 C 想发送比特 0:就把密码本里所有的正负号反转(数学上叫 $\bar{C}$)。所以发 0 时,广播出去的是 (+1, -1, +1, -1, -1, -1, +1, +1)
    • 如果 C 什么都不发(没说话):广播出去的就是一串 0 (0, 0, 0, 0, 0, 0, 0, 0)

第一步:空气中的信号“大乱炖”(对应图 c 发送端)

现在发生了一个复杂情况,也就是图里 $S_6$ 这一行的场景: A发了1,B发了1,C发了0,D发了1 大家在同一时间、用同样的频率把电磁波发到了空气中。电磁波在空气中会物理叠加(直接相加)

我们把这四个基站发出的数字排成队,挨个加起来:

  • A 发 1 (原码):(-1, -1, -1, +1, +1, -1, +1, +1)
  • B 发 1 (原码):(-1, -1, +1, -1, +1, +1, +1, -1)
  • C 发 0 (反码):(+1, -1, +1, -1, -1, -1, +1, +1) <– 注意这里符号全反了
  • D 发 1 (原码):(-1, +1, -1, -1, -1, -1, +1, -1)

  • 空气中混合后的总信号 ($S_6$) = 上面四排竖着相加

让我们竖着算每一列(你对照着加一下):

  • 第1列: -1 -1 +1 -1 = -2
  • 第2列: -1 -1 -1 +1 = -2
  • 第3列: -1 +1 +1 -1 = 0
  • 第4列: +1 -1 -1 -1 = -2
  • 第5列: +1 +1 -1 -1 = 0
  • 第6列: -1 +1 -1 -1 = -2
  • 第7列: +1 +1 +1 +1 = +4
  • 第8列: +1 -1 +1 -1 = 0

所以,在空气中飞驰、最后到达你手机天线里的信号是一堆乱七八糟的数字: $S_6$ = (-2, -2, 0, -2, 0, -2, +4, 0)

你看,信号已经混成一锅粥了,从这串数字里,你根本看不出C到底发了什么。


第二步:奇迹般的“解码”(对应图 d 接收端)

你的手机现在收到了这坨混合信号 $S_6$。但你的手机正在和基站 C 通信,它只想知道 C 说了什么,根本不关心 A、B、D 说了什么。

手机该怎么做? 秘诀是:把收到的混合信号,与基站C的“专属密码本”做一次“点积运算”,最后除以密码长度(8)。

什么是“点积运算”? 很简单,就是把两串数字对应位置乘起来,然后再把8个乘积加在一起

咱们来给 $S_6$ 算一下:

  • 收到乱炖信号 $S_6$:(-2, -2, 0, -2, 0, -2, +4, 0)
  • 掏出C的密码本 $C$:(-1, +1, -1, +1, +1, +1, -1, -1)

对应位置相乘:

  • 第1个:(-2) × (-1) = +2
  • 第2个:(-2) × (+1) = -2
  • 第3个:( 0) × (-1) = 0
  • 第4个:(-2) × (+1) = -2
  • 第5个:( 0) × (+1) = 0
  • 第6个:(-2) × (+1) = -2
  • 第7个:(+4) × (-1) = -4
  • 第8个:( 0) × (-1) = 0

把上面8个乘积加起来: (+2) + (-2) + 0 + (-2) + 0 + (-2) + (-4) + 0 = -8

最后一步,除以密码的长度(8位): -8 ÷ 8 = -1

结论出来了:计算结果是 -1 ! 根据我们的规定,算出 -1 就代表基站发了比特 0。 回想一下我们在第一步的设定:C 当时确实发送的是 0(反码)。解码完全正确!


第三步:顺便验证一下“C没说话”的情况

你看图里还有个 $S_3$,那是 A 发了 1,B 发了 0,C和D都没说话(此时 $S_3 = A + \bar{B}$)。 幻灯片里算出空气中的 $S_3 = (0, 0, -2, +2, 0, -2, 0, +2)$。

如果你的手机这时候去听C说了什么呢?一样做点积运算:

  • 乱炖信号 $S_3$:( 0, 0, -2, +2, 0, -2, 0, +2)
  • C的密码本 $C$:(-1, +1, -1, +1, +1, +1, -1, -1)

乘起来并相加: (0×-1) + (0×1) + (-2×-1) + (2×1) + (0×1) + (-2×1) + (0×-1) + (2×-1) = 0 + 0 + 2 + 2 + 0 - 2 + 0 - 2 = 0

除以 8 依然是 0结论:算出 0,代表基站 C 什么都没发。 完全符合事实!


终极原理:为什么能这么神奇?

你可能会问:凭什么A、B、D的信号就被过滤掉了? 这就是数学家设计的“正交密码(Orthogonal Codes)”的魔力。

这种密码本有个逆天的数学特性:任何两个不同的密码本互相做点积,结果永远是 0。(比如 A 的密码本乘 C 的密码本,加起来等于 0;B 乘 C 也等于 0)。

当你的手机用 C 的密码去乘那坨混合信号 $(A + B + \bar{C} + D)$ 时,根据数学分配律: $C \times (A + B + \bar{C} + D) = (C\times A) + (C\times B) + (C\times \bar{C}) + (C\times D)$

因为正交特性,$(C\times A)$ 变成了0,$(C\times B)$ 变成了0,$(C\times D)$ 也变成了0!别人的信号就像魔法一样自动抵消了,变成了空气。 最后只剩下了 $(C\times \bar{C})$,也就是C自己的信号,被原原本本地提取了出来。

这就是码分复用的本质:大家都在同一个屋子里大声说话,但因为每个人用的“语言”(密码本)不同,而且语言之间互不干扰,所以你只听得懂你想听的那个人说的话,别人的声音在你耳朵里全变成了没有意义的“白噪音”。

本文由作者按照 CC BY 4.0 进行授权