CDM(码分多路复用技术)总结

来源:互联网 发布:服装用料软件 编辑:程序博客网 时间:2024/05/16 13:51

码分多路复用是一种数学上的规律运用在数据链路层。

当想起CDM时,脑海中应该想起的是一个坐标系,简单的是二维平面直角坐标系,再复杂些是三维的空间直角坐标系。更高维的就难想象了。But, try it.

为什么想到坐标系呢?
先这么看,二维直角坐标系下:
x轴的方向向量最简单的是:(1,0);
y轴的方向向量最简单的是:(0,1)

任意给你一个向量,让你拆分为是多少个(1,0)和(0,1)我想几乎所有人都拆分得开。

升级为三维空间下:
x轴的方向向量最简单的是:(1,0,0);
y轴的方向向量最简单的是:(0,1,0)
z轴的方向向量最简单的是:(0,0,1)
同样的,任意给你一个三维空间下的向量,让你拆分为三个轴对应的向量表达式,我想也不会是难题。

换句话说,给你一个向量,我们能够从中看到三个向量在加和,如果把三个坐标轴看作三种信号呢?是不是说,当我们在传输一个向量的时候,就完美的传输了多个信号?

再升级到四维,五维….N维,是不是就是传递了更多的信号?

对的!
我猜这或许就是CDM能够产生出来的数学基础吧。

这里很关键的是,信号能够被拆分,也就意味着不同的信号不会干扰其他信号。我们在选取坐标轴的方向向量时,应该注意到它们是完美正交的。

在向量里,正交的定义是:向量S和T规格化内积是0、
简单说就是:两个向量相乘的积再除以向量分量的个数。

带着以上的认识再来看CDM,就非常自然且很容易理解:

每一个站点有一个芯片序列,芯片序列解读为向量。站点之间的向量要互相正交。

假设A向C发送信号,B也向C发送信号。
A的芯片序列是:00011011,这里常常把0表示为-1,拆分的时候更为方便。因此,A想发送1时,向量序列是:(-1,-1,-1,1,1,-1,1,1);想发送0时就取反:(1,1,1,-1,-1,1,-1,-1)
注意到,任何向量和自身的内积是1,和反码的内积是-1;
B的芯片序列是:00101101. ==> (-1,-1,1,-1,1,1,-1,1)先看A和B的内积是不是0:内积的时候不是用0,1来做而是用-1,1进行。
比如AB = (-1,-1,-1,1,1,-1,1,1) (-1,-1,1,-1,1,1,-1,1) = 0
要是用0,1进行计算:(0,0,0,1,1,0,1,1) (0,0,1,0,1,1,0,1) != 0

有了芯片序列,就可以发送数据了。

A发送的是1 = (-1,-1,-1,1,1,-1,1,1) = S
B发送的是0 = (1,1,-1,1,-1,-1,1,-1) = -T

进入公共信道需要叠加为S-T = (0,0,-2,2,0,-2,2,0)

拆分:A= S(S-T) = (-1,-1,-1,1,1,-1,1,1) (0,0,-2,2,0,-2,2,0) = 1
B = T(S-T) = (-1,-1,1,-1,1,1,-1,1)(0,0,-2,2,0,-2,2,0) = -1
这里特别需要注意的是:我们用的是发送数据得到组合,这个很自然。但是获取的时候,就是用每个站点的序列值进行内积得到数据。
所以,看着S-T很奇怪,实际表示的是:A发送的与序列值一致,B发送的与序列值相反。

我开始认为S-T写错了,现在才发现,自己理解的不对,还自以为是。

以上。

4 0
原创粉丝点击