1 引 言 隨機序列是一組滿足特定統計學規律的數據,在信號理論分析中應用非常普遍。由于 精確的隨機序列生成方法較為復雜,產生的隨機序列不具有可重復性等特點,在很多應用 場合使用偽隨機序列。偽隨機序列在擴頻通信、信息加密和系統測試等諸多領域中都有著 廣泛的應用。在自適應光學SPGD 算法中,偽隨機序列亦有相當重要的作用。 Vorontsov 等人在1997 年將SPGD 算法引入到自適應光學領域。國內在近幾年開始了對 SPGD 算法在自適應光學系統應用的研究,并且在計算機上用軟件編程實現了算法,進行 了自適應光學的系統實驗。自適應光學SPGD 控制算法的研究趨勢是使用專用的信號處 理硬件電路作為算法的實現平臺,以獲得更高的迭代速度和更好的收斂效果。Cauwenberghs等人設計了專用的模擬超大規模集成電路實現SPGD 控制算法,并且在一些應用領域進行 了實驗。目前自適應光學系統的規模普遍達到幾十上百單元。針對多單元自適應光學系 統SPGD 控制算法的特殊要求,本文提出了一種適合于用FPGA 硬件電路產生滿足算法要 求的多路偽隨機序列的生成方法,完成了FPGA 電路的硬件實現,并將其用于實現61 單 元自適應光學SPGD 控制算法,同時進行自適應光學的閉環實驗。 2 自適應光學 SPGD 控制算法對偽隨機序列的要求 SPGD(the Stochastic Parallel Gradient Descent algorithm)算法通過對多路的控制參數加 入隨機并行的擾動,使用性能指標測量值的變化量與控制參數的變化量進行控制參數的梯 度估計,以迭代方式在梯度下降方向上進行控制參數的搜索。在自適應光學SPGD 算法中, 控制參數為變形鏡的控制電壓,隨機并行的擾動通過多路偽隨機序列模擬。SPGD 算法中 隨機并行擾動的特性,對偽隨機序列也提出了相應的要求: (1) 路數多。路數等于變形鏡單元數(即變形鏡上驅動單元的數目)。例如在一個61 單 元的自適應光學系統中,就需要產生61 路的偽隨機序列。 (2) 偽隨機序列兩兩相互獨立。相互獨立可避免變形鏡各驅動單元間的相互耦合。 (3) 偽隨機序列符合伯努利分布,兩個樣本值出現的概率各為0.5。 3 硬件電路實現偽隨機序列的傳統方法 傳統的生成偽隨機序列的方法較多,如線性反饋移位寄存器法(LFSR,可產生M 序列), 乘同余法,線性同余法,Gold 序列等。M 序列是一種常用的隨機序列,符合SPGD 算 法中單路隨機序列伯努利分布的要求。但使用M 序列作為SPGD 算法中多路隨機序列在實 現上存在難點:算法要求多路偽隨機序列,用多個不同的LFSR 結構去生成多路的偽隨機 序列,需要耗費大量的硬件資源,并且構造多路不同的LFSR 結構需耗費巨大的工作量。 Gold 序列優點在于只由兩個M 序列構造,能夠節省資源;并且改變兩個M 序列模二 和的相對位置即可構成多個Gold 序列,從而滿足SPGD 算法中多路偽隨機序列的要求。 但在實際工程中如何方便改變兩個M 序列的相對位置以產生多路的Gold 序列亦有難度。 同時,Gold 序列亦存在非平衡性問題,不完符合伯努利分布。 國外最早使用模擬超大規模集成電路(Analog VLSI)做出SPGD 控制算法的Vorontsov 等人設計的隨機數發生器,其本質也是LFSR 結構,使用了抽頭的方法從而可以用一個 LFSR 結構同時產生19 路的偽隨機序列。這種方法的缺陷是如果偽隨機序列的路數序 列超過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,完成閉環控制。 連 續抽樣法結構的主要參數: LFSR1 和LFSR2 對應的本原多項式為: 本原抽樣數N 為68。該設計可產生68路, 周期為1023 的Gold 序列。該參數設計主要以實驗為主,本原多項式1F (x)的選取原則是反饋少,實現簡單。本原抽樣數要比61 稍大,保證能產生足夠多的Gold 序列,如果過大亦會造成資源的浪費。 SPGD 算法包括偽隨機序列發生器都在Xilinx 公司的VII3000 FPGA 內實現。通過 ChipScope 在線邏輯分析儀記錄68 路Gold 序列,經計算驗證這68 路Gold 滿足相互獨立 的要求。針對Gold 序列的非平衡性問題,根據序列的周期性及對偶性,實驗運用了一個簡 單的方法加以解決:將偶數周期的兩個樣本值互相交換,即應該輸出1 時輸出0,應該輸 出0 時輸出1。因此每兩個周期內的兩個樣本值出現的概率各為0.5,只要序列發生的時間 足夠長,長期統計平均,其概率亦各為0.5。因此通過實驗驗證表明連續抽樣方法能夠滿足 自適應光學SPGD 算法的要求。 自適應光學系統實驗方面,以均值半徑作為本實驗中SPGD 算法的性能指標[4],向極 小的方向進行梯度搜索,性能指標的收斂曲線如圖4(a)所示。在迭代1000 次后,曲線就已 接近極小值。圖4(b)和7(c)是進行校正前后,CCD 相機中獲取的遠場光斑的光強分布圖。 校正前的峰值為96,校正后的峰值為230,校正后的遠場光斑接近艾里斑,結果說明使用 SPGD 算法對靜態的波前畸變達到了良好的效果,同時也驗證了本方法所產生的偽隨機序 列能夠在實際的SPGD 控制算法中正常工作。 6 結論 利用FPGA硬件電路生成了61單元自適應光學系統SPGD控制算法要求的68路偽隨機序 列。開展了基于SPGD控制算法自適應光學系統實驗,系統能夠實時閉環,結果表明了該方 法的實用性。同時,該方法除了滿足自適應光學系統SPGD控制算法的專用性外,也為生成 大量的、任意多路的偽隨機序列提供了一種通用的方法,在信號處理、信號加密等工程領域 也具有一定的實際意義。 本文作者創新點:針對自適應光學系統的SPGD 控制算法對偽隨機序列的要求,分析 了兩種適合于硬件實現的偽隨機序列――M 序列及Gold 序列的特點,及直接用于SPGD 控制算法存在的問題。在M 序列抽樣方法的基礎上,提出了一種連續抽樣生成多路Gold 序列的方法。該方法在對時間未要求的基礎上,以時間來換取空間資源,減少了空間資源 的占用,只需要兩個LFSR 結構,解決了生成大量LFSR 結構的工作量問題,方便地實現 了SPGD 控制算法要求的多路、獨立偽隨機序列的生成,并提出了解決了Gold 序列非平 衡性問題的方法。 |