3.5.1_2 信道划分介质访问控制(下)
在这个视频中,我们重点探讨码分复用技术,英文缩写叫CDM,先介绍码分复用技术的现实背景,在曾经的2G、3G移动网络时代,那个时候我记得我们的手机可以选择网络的格式,GSM或者 CDMA,GSM和CDMA就是两种网络通信的技术,其中CDMA技术在后来的3G时代也被广泛的使用,CDMA技术可以用于实现节点和节点之间的通信,CDMA技术背后的底层原理其实就是码分复用技术,英文缩写叫CDM。
为了方便理解码分复用技术,接下来我们引入一个模型。我们假设有这样的三个通信基站,分别叫 A 站、B站、C站,这几个节点之间使用CDMA技术进行通信。在这种技术的支持下,A站和B站可以同时给C站发送信号。如果有更多的站点,比如说D站、E站想要同时发送数据,都没有问题。比如说A站发出了101,B站发出了110这样的三个比特,两个站点发出的信号在传输的过程当中,会相互影响,相互叠加,C站会接收到相互叠加的信号。但是在码分复用技术的支持下,C站有办法可以把来自各个节点的信号值给分离出来。具体是怎么做的呢,接下来我们展开来探讨一下。
在这儿做了一个码分复用技术的总结。接下来会结合这张导图去介绍码分复用技术,每一步需要做什么。
首先第一件事,需要给各个节点分配一个专属的码片序列,一个码片序列会包含m个码片,也就是包含m个信号值,我们可以理解为m维的向量。同时,这个m维向量的分量通常为了方便计算,会取1或者-1。
直接来看例子,假设现在我们用4维的码片序列去做这样的设计,给A这个结点分配一个码片序列,这个码片序列当中包含四个分量,分别是1,1,1,1,每一个分量就是一个所谓的码片,四个分量结合起来就是所谓的码片序列,可以用线性代数的向量去理解这个所谓的m维码片序列。其实就是m维的向量,而这个向量的每一个分量要么取1,要么取-1,至于为什么要这么取,我们一会儿再来填这个坑。这是A站点的专属码片序列,同样的道理,B站点和C站点也会有各自专属的码片序列,并且各个站点的码片序列是不同的。接下来看一下这个码片序列有什么作用。
假设现在A站要给C站发送101这样的三个比特,A结点如果想要发送二进制的1,就需要发出四个信号值1111,也就是和它的码片序列保持一致,如果要发送二进制的零,那么就会发出四个信号值负一负一负一,也就是和它的码片序列刚好完全相反。我们会用m个信号值去表示一个比特。对于其他站点也是一样的,假如B站点要给C站点发送一个二进制的1,它应该发出四个信号值一负一一负一,如果要发送二进制0,发出的四个信号值就应该是全部取反,负一一负一一,如果用线性代数来解释的话,相当于二进制1对应的是m维的向量,二进制0对应的是负的m维向量。在这个例子中101这几个二进制对应的信号值就应该是上图那样的三组。接下来C站收到了这样的三组信号值,每一组有四个分量组成,在码分复用技术当中,各个站点会提前知道彼此的码片序列,也就是说C站点是知道A站点的码片序列是多少,也知道B站点的码片序列是多少,当C站点收到这样的一些信号值的时候,经过对比发现111,是 A 站点的码片序列,而负一负一负一负一,这个是 A 站点码片序列的取反,所以就知道这三组信号肯定是A站点发过来的,而且它对应的是101这样的三个比特。
回到这张导图,刚才我们说相互通信的各个节点会知道彼此的码片序列等于多少,另外一点需要补充的是,在CDM技术当中,要求给各个节点分配的码片序列,也就是每个节点的m维向量必须相互正交。在线性代数当中,我们学过如果A和B两个向量相互正交,这两个向量的内积应该是等于零,所以在刚才这个例子当中,大家可以自己暂停来验算一下,就是A、B、C这几个向量两两内积,结果都是0,这就意味着这三个向量相互正交。为什么要保证这些码片序列要相互正交呢,一会儿会感受到它的作用。
我们让故事继续,刚才例子中,只有A正在给C发送数据,接下来我们让情况变得复杂一点,让B站点也同时发送数据,假设在某个时刻A正在给C发送比特1,B正在给C发送比特0,B站点发出的四个信号值就应该等于向量-b,A站点发出的四个信号值对应的就是向量a,此时对于C站点来说,它会收到两个信号的叠加,也就是要把这两个向量进行一个加和,所以C站此时收到的信号值就是零二零二,这组信号值的数学本质就是向量a加上负的向量b。接下来,C站点如何从这个叠加信号当中把A和B发过来的数据给分离出来呢?这就需要使用到一些数学手段。我们先尝试着把结点A发过来的比特给分离出来,我们可以这么做:用结点A的码片序列和接收方收到的叠加信号进行内积,然后再乘以m分之一,这儿的m等于4,因为是四维向量,我们可以把这个运算称为规格化内积。结合线性代数的知识我们知道,由于向量a和向量b相互正交,所以这个式子应该等于m分之一a向量和a向量的内积,再加上m分之一a向量和负b向量的内积,刚才说a、b两个向量是正交的,所以后面部分就应该等于0,这部分去掉就只剩下式子的前半部分,就应该等于m分之一乘以a向量和它自身的内积,由于a向量的每一个分量都是1,所以它和它自己的内积应该是等于1+1+1+1,也就等于m,再乘以一个m分之一就等于1。如果规格化内积的结果等于1,那么站点C就可以确定节点A 发过来的比特应该是1。接下来看节点B,做法也是一样的,我们可以用节点B的向量去乘以节点C 收到的叠加信号,同样的道理B和A相互正交,所以二者相乘应该等于0,b和负b进行内积,由于向量b的每个分量,要么是一,要么是负一,所以这个内积的结果肯定是负的m,再乘以前面的m分之一,运算的结果就应该等于负一。计算结果等于负一,意味着结点b发过来的比特应该是0。
再整体梳理一遍,A站要给C站发送一个比特1,它需要发出的信号值就应该等于a这个向量,B站要给C站发送比特0,它发出的信号值就应该等于负b向量,a和负b这两个向量,或者说这两组信号值在传输的过程当中相互叠加,C站收到的叠加的信号值从数学的角度看,就应该是等于a向量加上负b向量,接下来C站需要从这个叠加信号当中,把A和B两个结点发过来的数据进行分离,分离出A结点发来的数据的方法就是用A结点的码片序列和收到的信号值进行规格化内积运算的结果等于1,表示A结点发了一个比特1。同样的道理,要把B结点发过来的数据分离出来,C站点需要做的事情就是把C站点收到的叠加信号和B站点的这个码片序列进行规格化内积,运算的结果等于负一,表示 B 站点发来了一个比特0。
接下来我们再举个例子,如果A和B同时发送三个比特,A 站发出的信号就是向量a,负的向量a,向量a,B站点发出的信号就是向量b,向量b,负的向量b,C站点收到的信号就应该是上图这样的。第一组向量对应的是a+b,第二组对应的是-a+b,第三组对应的是 a+-b。接下来C站点要从这几组信号值中分辨出节点A发来的是什么数据,它会用节点A的码片序列和这三组向量分别做规格化内积,第一组和向量a规格化内积等于1,表示这是比特1,第二组和向量a规格化内积等于负一,表示比特0,第三组和向量a进行规格化内积结果等于1,表示这是比特1,所以C站点就可以确定,A站点发送了三个比特,分别是101。
分离B站点发来的数据也是完全一样的道理,这儿就不再赘述。
刚才讲解的这个例子其实是来自于2014年的真题第37题,站点A、B、C通过CDMA共享电路 ,这些数据和刚才举的例子一模一样,然后C站点从链路上收到四组信号,每组信号有四个分量组成好。题目问C站点收到A站点发送的数据是多少?
可以带入具体的数值去算一下,用四组信号值分别和A站点的码片序列做规格化内积,第一组运算得到的结果是1,表示比特1,第二组信号得到结果是负一,表示比特0,第三组得到结果是1,表示比特1,所以A发过来的数据就是101,这个题目选择B选项。作为训练,大家也可以把B站点发过来的数据尝试着分离一下。
在这个小节中,我们介绍了用信道划分的方式去实现介质访问控制。首先,我们学习了时分复用技术,时分复用技术就是会把信道的使用时间拆分成固定大小的时间片,然后各个节点依次分配一个时间片,轮流去使用。时分复用技术对于时间片的分配是不灵活的,因此提出了统计时分复用技术,会在时分复用的基础上给各个节点按需分配时间片,传输需求大,就多分配几个时间片,采用这样的策略就可以大幅提升信道的利用率。紧接着介绍了频分复用技术,频分复用技术的思想,就是会把一个信道的总频带拆分成几条互不相交的子频带,并且子频带和子频带之间会加入隔离频带,用于防止子频带之间相互干扰。每一个发送节点会被分配一条子频带,类似的原理,当我们对光信号进行频分复用的时候,我们可以把它称为波分复用技术。因为本质上光的这个波长和光的频率是有关的,所以光的波分复用本质上就是光的频分复用,原理和频分这种技术是类似的。最后介绍了码分复用技术,英文缩写叫CDM,在CDM技术当中,首先我们需要给各个节点分配一个专属的、唯一的码片序列,一个码片序列会包含m个码片,也就是m个信号值,可以把码片序列看作是一个m维的向量,为了方便对这个向量进行处理,也就是为了方便做规格化内积,会规定m维向量的每个分量,要么取1,要么取负一。另一方面,为了从叠加信号当中分离出每个发送方发来的数据,所以要求给各个节点分配的码片序列,或者说给各个节点分配的m维向量,必须相互正交。这是由向量的数学特性决定的。相互通信的各个节点需要提前知道彼此的码片序列,每个节点有了自己专属的码片序列之后,它就可以开始发送数据。如果要发送比特1,就发送和码片序列相同的m个信号值,如果是要发送比特0,就要发出和码片序列相反的m个信号值,如果多个结点同时发送信号值,这些信号会在传输过程当中相互叠加。信号值的相互叠加,它的数学本质就是m维向量的加法。最后接收方收到叠加信号之后,要从叠加信号当中分离出各个发送方发来的数据,这就需要使用一些数学手段,接收方会用他收到的叠加信号与某一个发送方的码片序列进行规格化内积。如果规格化内积的结果为1,表示它受到的是比特1,如果规格化内积结果为负一,表示它收到的是比特0。
大家可以再结合这页PPT进行回顾,以上就是这一小节的全部内容。