伪随机序列产生

  • 格式:doc
  • 大小:289.00 KB
  • 文档页数:10

2.4 m序列产生器的设计原理

m序列是最长线性反馈移位寄存器序列,其产生方法比较简单,可以通过移位寄存器的级联实现任意m序列,本文是结合FPGA芯片的结构特点,以Altera的QuartusⅡ软件为开发平台,设计出了m序列产生器。通过FPGA平台,我们可以采用硬件描述语言VHDL语言来实现m序列产生器,也可以通过输入原理图来实现m序列产生器,也可以通过两者的结合来实现m序列产生器。由于m 序列产生器的实现方法已经能够成熟,本文采用输入原理图的方法实现m 序列产生器的仿真设计。

利用n级移位寄存器可以产生长度为2n-1的m序列。m序列的设计主要解决的问题是寻求系统的特征多项式为本原多项式的过程,部分本原多项式可以通过查表方法很方便的得到。本文通过设计一个码长为L=31的m序列,来说明任意m序列产生器如何进行仿真设计。由码长为31可知道所需的移位寄存器的数目为5,特征多项式的系数通过查表可以选择为100101,110111,111101三个反馈系数,可以从中选择100101来构成m序列产生器。则特征多项式系数取值为C5=C2=C0=1,C4=C3=C1=0.

根据特征多项式就可以构造出该m序列,图5就是L=31的m序列产生器的原理图。

图5 L=31的m序列产生器

图5利用D触发器级联的方式完成移位寄存器的功能, CLRN是清零信号,低电平有效。在系统初始时,CLRN置低电平使系统清零,D触发器的输出状态均为低电平,当CLRN置高时新非零值被置入。CLK为外界时钟脉冲信号,当CLK上升沿来临时实现移位功能。通过异或门将反馈接入系统的输入端,反馈系数根据特征多项式的系数来断定是否接入反馈,在模2加后面加入一个非门,避免了m序列产生器输出静止的状态,如不加非门直接接入反馈到输入端,系统无法自动运动起来,造成输出序列进入了全“1”的静止状态,这样就无法产生m序列。图中的Q1-Q5是五个D触发器的输出,这些点均可得到同宗序列,只序列的初始相位不同而已。在Q5输出加以非门作为m序列的输出,是由于反馈后加非门的原因。

2.5 m序列产生器的仿真结果分析

L=31的m序列产生器的仿真结果如图6所示,仿真设置CLK的周期为10ns,系统截止时间设为10us,从上往下依次是从左边第一个移位寄存器到右边移位寄存器的输出,最终的输出结果为OUT的波形。Q1、Q2、Q3、Q4、Q5依次是延迟一个周期的不同相位同宗的序列。

图6 L=31的m序列产生器的仿真波形

从图6中我们可以得到m序列产生器的输出为:

0011010010000101011101100011111依次往后循环。从图中我们可以验证输出的m序列,以80ns为起点,经过310ns以后输出的序列与此段时间的序列相同,依次往后循环,从而可以说明产生的序列长度L=31满足25-1=31.由输出的一个周期的序列可知“0”有15个,“1”有16个,满足均衡性;输出序列有25-1=16个游程,在1≤l≤3时,占游程总数的1/2l,还有一个游程长度为4的连“0”游程和一长度为5的连“1”游程,体现了m序列的游程特性。

下面从寄存器的状态出发来分析仿真结果,状态的转换表如表2所示,从表格可知道其寄存器状态每隔31个时钟周期循环一次。

表2 L=31的m序列产生器的移存器的状态表

寄存器 D1 D2 D3 D4 D5

初始状态 0 0 0 0 0

运转后的状态

1 1 0 0 0 0

2 1 1 0 0 0

3 0 1 1 0 0

4 0 0 1 1 0

5 1 0 0 1 1

6 0 1 0 0 1

7 1 0 1 0 0

8 1 1 0 1 0

9 0 1 1 0 1

10 1 0 1 1 0

11 1 1 0 1 1

12 1 1 1 0 1

13 1 1 1 1 0

14 0 1 1 1 1

15 1 0 1 1 1

16 0 1 0 1 1

17 1 0 1 0 1

18 0 1 0 1 0

19 0 0 1 0 1

20 0 0 0 1 0

21 1 0 0 0 1

22 0 1 0 0 0

23 0 0 1 0 0

24 1 0 0 1 0

25 1 1 0 0 1

26 1 1 1 0 0

27 0 1 1 1 0

28 0 0 1 1 1

29 0 0 0 1 1

30 0 0 0 0 1

31 0 0 0 0 0

32 1 0 0 0 0

3 基于m序列的特殊序列的FPGA仿真设计

3.1基于m序列的M序列产生器

3.1.1 M序列概述

由非线性反馈移位寄存器产生的周期最长的序列简称为M序列。它和m序列不同,后者是由线性反馈寄存器产生的周期最长的序列。目前对M序列的研究还不成熟,关于它的产生方法及性能尚无完整的一般理论分析,本文只是介绍一些关于M序列的基本概念。

n级m序列产生器只可能有2n-1种不同的状态。但是n级移存器最多可有2n种状态,因此,非线性反馈移存器的周期最长可以达到2n,我们称这种周期长达2n的序列为M序列。目前,如何产生M序列的问题,尚未从理论上完全解决,人们只是找到了很少几种构造它的方法,本文主要是从m序列推出M序列的逻辑表达式来构造M序列。

通过对m序列的输出逻辑式进行修改可以得到M序列的输出表达式,n级m序列产生器变成M序列产生器,其递推方程为

1111211niikniiknkkkikniikaaaaaaca

(11)

有了递推公式就不难得到M序列产生器。

M序列与m序列类似,也在一定程度上具有噪声特性,因此,它具有的性质如下:(1)均衡性

在M序列的一个周期中,出现的“0”与“1”的数目相等。

(2)游程特性

在n级M序列一个周期中,游程共有2n-1个,其中长度为k的游程占1/2k,1≤k≤n-2;长度为n的游程有两个,没有长度为(n-1)的游程。在同样长的游程中,“0”游程和“1”游程各占一半。

(3)M序列不在具有m序列的的移位—相加—移位特性,及双值自相关特性。

M序列与m序列相比,最主要的优点是数量大,即,同样级数n的移位寄存器能产生平移不等价M序列总数比m序列的大得多,且随着n的增大迅速增大。目前M序列主要用于通信加密系统中。

3.1.2 M序列产生器的设计原理

目前,M序列产生器的相关理论尚未被人们解决,本文主要论述M序列产生器从m序列的输出公式来推导得到M序列的输出逻辑公式,从而可以利用m序列产生器来设计M序列产生器。M序列的设计从其原理图来进行仿真分析。由公式(11)可得到M序列的原理框图,同样我们设计的是L=32的M序列为例来介绍任意M序列的设计。由公式(11)可写出L=32的M序列的递推公式为

aaaaaaakkkkkkk432152

(12)

由递推公式可以得到其原理框图如图7所示,

图7 L=32的M序列产生器的原理框图

因此,从图7我们可以知道,M序列产生器可以从m序列产生器得到。由原理框图我们可以得到M序列产生器的原理图如图8所示。图中CLK为时钟信号,CLRN为清零信号,低电平有效,当时钟信号上升沿来临时实现移位功能。

图8 L=32的基于m序列的M序列产生器

3.1.3 M序列产生器的仿真结果分析

M序列产生器仿真结果如图9所示,

图9 L=32的M序列产生器的仿真结果

L=32的M序列产生器仿真结果的输出为:01011101100011111001101001000001,长度为32,依次往后循环。图9时钟周期为10ns,截止时间为10us,从图中可以看出从序列产生的起始点经过320ns序列出现了重复,从而说明序列的长度L=25=32。由输出结果可以知道“0”有16个,“1”也有16个,体现M序列的均衡性;同时共有25-1=16个游程;长度为1的游程有8个,占总游程的1/2,长度为2的游程有4个,占总游程的1/4,长度为3的游程有2个,占总游程的1/8,因此,长度为k的游程占了1/2k,1≤k≤3;还有游程为5的序列有2个,没有游程为4的序列,所以仿真的结果表明M序列的游程特性。下面再从D触发器的状态来分析产生的结果,其分析的结果如表3所示:

表3 L=32的M序列产生器的移存器的状态表

寄存器 D1 D2 D3 D4 D5

初始状态 1 0 0 0 0

运转后的状态 1 0 1 0 0 0

2 1 0 1 0 0

3 0 1 0 1 0

4 1 0 1 0 1

5 1 1 0 1 0

6 1 1 1 0 1

7 0 1 1 1 0

8 1 0 1 1 1

9 1 1 0 1 1

10 0 1 1 0 1

11 0 0 1 1 0

12 0 0 0 1 1

13 1 0 0 0 1

14 1 1 0 0 0

15 1 1 1 0 0

16 1 1 1 1 0

17 1 1 1 1 1

18 0 1 1 1 1

19 0 0 1 1 1

20 1 0 0 1 1

21 1 1 0 0 1

22 0 1 1 0 0

23 1 0 1 1 0 24 0 1 0 1 1

25 0 0 1 0 1

26 1 0 0 1 0

27 0 1 0 0 1

28 0 0 1 0 0

29 0 0 0 1 0

30 0 0 0 0 1

31 0 0 0 0 0

32 1 0 0 0 0

从表3中可以看出寄存器的状态经历了32种状态,将5个D触发器的状态全部遍历,然后循环再次遍历。

3.2 基于m序列的Gold序列产生器

3.2.1 Gold序列概述

由于m序列构成优选对的数目很少,不便于在码分多址系统中应用,R·Gold于1967年提出了一种基于m序列优选对的码序列,称为Gold码序列,它是m序列的组合码,由优选对的两个m序列逐位模2加得到,当改变其中一个m序列的相位时,可以得到一个新的Gold的序列。Gold序列虽然是由m序列模2加得到的,但它已不是m序列,不过它具有m序列优选对类似的自相关和互相关特性,而且构造简单,产生的序列数多,因而获得了广泛的应用。

(1)Gold序列的生成

一对周期为P=2n-1的m序列优选对{an}和{bn},{an}与其后移τ位的{bn+τ },(τ =0,1,„,P-1)逐位模2加所得的序列{an+bn+τ }是不同的Gold序列。Gold序列一般的产生电路模型如图10所示。图中m序列发生器1和2产生的m序列是一m序列优选对,m序列发生器1的初始状态固定不变,调整m序列发生器2的初始状态,在同一时钟脉冲控制下,产生两个m序列经过模2加后可得到Gold序列,通过设置m序列发生器2的不同初始状态,可以得到不同的Gold序列。