基于FPGA 的伪随机序列的生成方法及应用

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

摘要:通过分析各种伪随机序列生成方法,提出了一种基于M 序列的连续抽样方法,可以生成满足自适应光学系统SPGD 控制算法要求的多路、相互独立以及服从伯努利分布的伪随机序列。该方法适合于用FPGA等超大规模集成电路实现,且具有占用硬件资源较少,实现方便等优点。用FPGA 实现了用于61 单元自适应光学系统SPGD 控制算法的伪随机序列,并将此方法应用于基于SPGD 控制算法的自适应光学系统实验中,实验表明,该方法能够满足自适应光学系统SPGD 算法的需求,系统实现成功闭环。

1 引言

随机序列是一组满足特定统计学规律的数据,在信号理论分析中应用非常普遍。由于精确的随机序列生成方法较为复杂,产生的随机序列不具有可重复性等特点,在很多应用场合使用伪随机序列。伪随机序列在扩频通信、信息加密和系统测试等诸多领域中都有着广泛的应用。在自适应光学SPGD 算法中,伪随机序列亦有相当重要的作用。

Vorontsov 等人在1997 年将SPGD 算法引入到自适应光学领域[2]。国内在近几年开始了对 SPGD 算法在自适应光学系统应用的研究,并且在计算机上用软件编程实现了算法,进行了自适应光学的系统实验[3]。自适应光学SPGD 控制算法的研究趋势是使用专用的信号处理硬件电路作为算法的实现平台,以获得更高的迭代速度和更好的收敛效果。Cauwenberghs等人设计了专用的模拟超大规模集成电路实现SPGD 控制算法,并且在一些应用领域进行了实验[5]。目前自适应光学系统的规模普遍达到几十上百单元。针对多单元自适应光学系统SPGD 控制算法的特殊要求,本文提出了一种适合于用FPGA 硬件电路产生满足算法要求的多路伪随机序列的生成方法,完成了FPGA 电路的硬件实现,并将其用于实现61 单元自适应光学SPGD控制算法,同时进行自适应光学的闭环实验。

2 自适应光学 SPGD 控制算法对伪随机序列的要求

SPGD(the Stochastic Parallel Gradient Descent algorithm)算法通过对多路的控制参数加入随机并行的扰动,使用性能指标测量值的变化量与控制参数的变化量进行控制参数的梯度估计,以迭代方式在梯度下降方向上进行控制参数的搜索。在自适应光学SPGD 算法中,控制参数为变形镜的控制电压,随机并行的扰动通过多路伪随机序列模拟。SPGD 算法中随机并行扰动的特性,对伪随机序列也提出了相应的要求[5]:

(1) 路数多。路数等于变形镜单元数(即变形镜上驱动单元的数目)。例如在一个61 单元的自适应光学系统中,就需要产生61 路的伪随机序列。

(2) 伪随机序列两两相互独立。相互独立可避免变形镜各驱动单元间的相互耦合。

(3) 伪随机序列符合伯努利分布,两个样本值出现的概率各为0.5。

3 硬件电路实现伪随机序列的传统方法

传统的生成伪随机序列的方法较多,如线性反馈移位寄存器法(LFSR,可产生M 序列),乘同余法,线性同余法,Gold 序列等[6],[7]。M 序列是一种常用的随机序列,符合SPGD 算法中单路随机序列伯努利分布的要求。但使用M 序列作为SPGD 算法中多路随机序列在实现上存在难点:算法要求多路伪随机序列,用多个不同的LFSR 结构去生成多路的伪随机序列,需要耗费大量的硬件资源,并且构造多路不同的LFSR 结构需耗费巨大的工作量。

Gold 序列优点在于只由两个M 序列构造,能够节省资源;并且改变两个M 序列模二和的相对位置即可构成多个Gold 序列,从而满足SPGD 算法中多路伪随机序列的要求。但在实际工程中如何方便改变两个M 序列的相对位置以产生多路的Gold 序列亦有难度。同时,Gold 序列亦存在非平衡性问题,不完符合伯努利分布。

国外最早使用模拟超大规模集成电路(Analog VLSI)做出SPGD 控制算法的Vorontsov 等人设计的随机数发生器,其本质也是LFSR 结构,使用了抽头的方法从而可以用一个 LFSR 结构同时产生19 路的伪随机序列[8],[1]。这种方法的缺陷是如果伪随机序列的路数序列超过19 路后,则用这个电路结构产生的各路伪随机数之间不是完全相互独立的。

4 连续抽样生成多路伪随机序列的方法

通过以上对M 序列,Gold 序列的分析,结合M 序列易于硬件实现,Gold 序列可生成多路序列的优点,以及基于时间抽样的思想,设计了如图1 所示硬件结构的68 路伪随机Gold 序列发生器。

图中所示结构包括两个时钟,两个相同的线性反馈移位寄存器,N 进制计数器,以及N 路伪随机序列的存取单元。两个时钟有特殊的关系,即时钟1 是时钟2 的N 分频。N 进制计数器的输出作为N 路伪随机序列存取单元的存储地址。存取单元及地址译码器可视为一个整体,在实现时使用深度为N,宽度为1bit 的双端口RAM 代替(一个端口存数据,另一个端口取数据)。此外,图中的“+”表示模二和。结构中的N 值,为本原抽样数,即使用N 对M 序列抽样后,可得到另一同周期的M 序列。

上述结构产生多路Gold 序列的原理如下:

⑤将这N个不同相位的M2 序列与M1 序列模二和,生成N 个不同的Gold 序列。该方法需要选定两个可构成Gold 序列的理想M 序列对,之后将能够从一个M 序列抽样出另一M 序列的本原抽样数N 预先计算出来。由于是预先计算,不需在硬件内实现,不占用硬件资源。因此该方法占用的资源较少,同时结构化的设计也适合于用硬件描述语言进行设计。

5 实验及结果分析

为验证上述伪随机序列生成方法的可行性,在FPGA 内对上述结构进行了硬件设计,并搭建了基于SPGD 控制算法的自适应光学系统平台。自适应光学系统实验平台的结构如下图3 所示,主要由激光器和扩束系统、倾斜镜TM、变形镜DM、CCD 相机、基于FPGA 的SPGD 算法控制处理器、数字到模拟转换器DAC和高压放大器HVA 等组成。光源从激光器发出后经TM 和DM 反射至CCD 相机,相机将图像数据传输给FPGA 板进行算法迭代,再输出电压至数模转换,最后经高压放大后控制61 单元的变形镜DM(驱动器的排布见图(3)和倾斜镜TM,完成闭环控制。

相关文档
最新文档