码分多路复用 CDM

根据大佬博客改编      参考博客

大概思想:结合初中物理知识,如果我们将要传输的数据比作分力的话,那么由经过被称为码的东西处理后所有的分力变成了合力,合力传输后,通过CDMA的方式让合力变成分力

也就是从分到和,再从和到分的一种思想

 

首先,举个栗子:

这是一段乱码的文字

码分多路复用 CDM_第1张图片

用一张挖有小洞的白纸罩在这一段乱码的文字上,这时你会发现上面写着一句话

码分多路复用 CDM_第2张图片

 

要发送的数据可以比喻为上图那段乱码的文字

码可以比喻为挖有小洞的白纸(解密的道具)

也就是说不同的码可以得到不同的内容

 

下面要讲一下沃尔什向量

沃尔什向量:如下图,将“1”换成了“+”,将“-1”换成了“-”,沃尔什矩阵中只有“1”和“-1”  所以某个数的平方都为1(后面要用)

码分多路复用 CDM_第3张图片

观察发现,任意两行或者任意两列是正交的

好了,现在要举个要算的栗子了

例子

1.用户1的码:a1=(-1 -1 -1 -1 1 1 1 1)--第2行
2.用户2的码:a2=(-1 1 -1 1 1 -1 1 -1)--第7行
3.用户1的数据:d1=110
4.用户2的数据:d2=010

其中码为向量     数据为标量     

码与数据相乘的结果如下

a1 x d1 =  (-1 -1 -1 -1 1 1 1 1)|(-1 -1 -1 -1 1 1 1 1)|(0 0 0 0 0 0 0 0) 

a2 x d2 =  (0 0 0 0 0 0 0 0)|(-1 1 -1 1 1 -1 1 -1)|(0 0 0 0 0 0 0 0) 

可以看到  数据为1的部分替换成了码   数据为0的部分替换成了0向量

二者叠加后为:   (相加)

(-1 -1 -1 -1 1 1 1 1)|(-1 -1 -1 -1 1 1 1 1)|(0 0 0 0 0 0 0 0)
(0   0  0  0 0 0 0 0)|(-1 1 -1 1 1 -1 1 -1)|(0 0 0 0 0 0 0 0)
_______________________________________________________________
(-1 -1 -1 -1 1 1 1 1)|(-2  0 -2 0 2 0  2 0)|(0 0 0 0 0 0 0 0)

所以最终结果是:

(-1 -1 -1 -1 1 1 1 1)|(-2  0 -2 0 2 0  2 0)|(0 0 0 0 0 0 0 0)

这个结果也就是最开始比喻的合力

用户1的数据和用户2的数据(两组数据)通过各自的码处理后相加变成了一组数据

那么,怎么分开呢?

前方高能!!!


设a向量为(即码a):(a^1 a2 ... am) 设b向量为(即码b):(b1 b2 ... bm) 码a和一个0或者1,总之记为k的数相乘得到:设a向量为(即码a):\begin{pmatrix} a_{1} & a_{2} &...&a_m \end{pmatrix}
设b向量为(即码b):\begin{pmatrix} b_{1} & b_{2} &...&b_m \end{pmatrix}
码a和一个0或者1,总之记为k的数相乘得到:\begin{pmatrix} a_{1}k & a_{2}k&...&a_{m}k \end{pmatrix}
同理码b和一个数据r得到:\begin{pmatrix} b_1r & b_2r &...&b_mr \end{pmatrix}
二者叠加得到叠加信号:\begin{pmatrix} a_{1}k+b_1r & a_{2}k+b_2r &...&a_{m}k+b_mr \end{pmatrix}

这就是上述过程的公式化

然后分开的方式

叠加信号到达拥有码a的用户那儿时,与码a相乘得到:
\begin{pmatrix} a_{1}k+b_1r & a_{2}k+b_2r &...&a_{m}k+b_mr \end{pmatrix}.\begin{pmatrix} a_{1}& a_{2}&...&a_{m} \end{pmatrix}= \begin{pmatrix} a_{1}^2k+a_{1}b_1r & a_{2}^2k+a_{2}b_2r &...&a_{m}^2k+a_{m}b_mr \end{pmatrix}

因为\begin{pmatrix} a_{1} & a_{2} &...&a_m \end{pmatrix}的值为1或-1,(沃尔什向量的值只有“1”和“-1”  )所以a_m无论为何值,都有a_m^2=1  

因为码a和码b之间是相互正交,所以a_{m}b_m=0

所以有   \begin{pmatrix} a_{1}^2k+a_{1}b_1r & a_{2}^2k+a_{2}b_2r &...&a_{m}^2k+a_{m}b_mr \end{pmatrix}

             = \begin{pmatrix}k& k&...&k\end{pmatrix}

            = k\begin{pmatrix}1& 1&...&1\end{pmatrix}           //m个1的向量的值为m    不太清楚是为什么?  有哪位大佬知道的话麻烦留言告知,感谢~

            =km

所以  \frac{km}{m}=k    又得到了k的值     注意 k为0或1  说明也就是一个二进制数

 

写了一下午,终于写完了~~~ 呼  好累啊(;´д`)ゞ

你可能感兴趣的:(计算机基础知识)