1000
就是说能够做这个DS的,是一个pseudo noise,PN,伪随机数。
什么是伪随机数呢?
也就是说,我们实际上做不了真随机数。
无论我们是用C语言,还是verilog的random系统任务,它实际上并不是一个真随机数。
它的内部有一个随机数表。
是不是?
数学上有一个随机数表。
按照随机数表给你生成的数。
所以它并不是一个真随机数。
真正的符合随机规律的这个模型呢,也是现在前沿研究的一个热点。
但是大多数情况之下,我们用伪随机数都可以。
就是用随机数表产生的随机数。
1001
用一个伪随机数来做这个直接序列。
它起到的作用,就是用它来做扩频的秘钥。
伪随机数,刚才我们说了,10100011,并不一定符合这个特征。
首先呢,它要一定的隐蔽性,还要有一定的统计规律。
这个伪随机数,pseudo noise,从随机数表上得到。
但是,我们加上一个pseudo,也就是说,它便于便利地实现。
现在我们选用的,称之为M序列。
什么是M序列呢?
1002
M序列只是一个特殊的名词。
它是说有一种电路结构,外形上长得有点像英文字母的M。
所以说我们把这种特定的电路结构,称之为M序列。
这个M序列呢,它是可以实现的。它可以生成pseudo noise,伪随机数PN。
这个M序列在现在的文献上,又称之为负反馈线性移位寄存器。
也是比较现代、比较前沿热门的一个词汇,负反馈线性移位寄存器。
之后我会把相关的一些文献、引文发给大家。
现在我们来看看,这个M序列它具有哪些特征?
1003
pseudo noise,要用PN来做这个M序列。
M序列,它是符合这个特征的。
PN伪随机数,你可以查随机数表,但是它并不便于实现。
功能上比较方便的,就是使用M序列来做它的随机数。
要说到M序列呢,我们就或多或少要说到一些数学工具。
说到数字通信里面的二元序列运算的方法。
在数字通信里面,大多数要处理的是二进制。
仅仅是0和1组成的这个序列不一定是二进制,但是可以称之为是二元。
只有两个元素的,二元的这种数学模型。
对于这个二元序列的运算,在数字通信里面,它是用一种特殊的方式,数学的线性多项式来描述。
用线性多项式来描述一个线性序列。
1004
这个需要一些数学背景。
但是呢,我们可以把它简单地看成一个内部电路。
1005
MS,用它来做直接序列。
就像我们现在看见的这个电路,它的外形有点像英文字母的M。
你把这个电路搭建出来,它的输出,将会得到一个随机数。
这个电路,你加上时钟,加上复位,这个输出的就是一个伪随机数。
虽然它是伪的。
就像我们查数学的随机数表一样,你查随机数表每次都是一样的。
并不是一个真的随机数。
我们来看它的结构是什么样的。
1006
它就是一个特定的电路。
Rn-1。
Rn-2。
1007
R1。
R0。
输出ms。
这是顶层。
这是它里面的架构。
这是寄存器。
时钟、复位我就不画了。
直接相连,是一个移位寄存器。
所以说,为什么把M序列称之为负反馈线性移位寄存器呢?
它就是一个移位寄存器。
这个移位寄存器都是顺序加载的嘛。
N-2用的是n-1的输出,0用的是1的输出。
它最终是一个反馈回来的。
我们也可以用一个数字开关来描述。
1008
每一级都有一个数字开关。
输入端、输出端都接了一个数字开关。
1009
这个数字开关我们给它进行编码。
C0、C1、C2,Cn-2、Cn-1、Cn。
这个开关有0到n个,一共n+1个开关。
一头一尾都有开关。
然后呢,是摩尔运算,就是二元值运算定理。
用异或门,
