1 、引 言
隨機序列是一組滿足特定統(tǒng)計學規(guī)律的數(shù)據(jù),在信號理論分析中應用非常普遍。由于 精確的隨機序列生成方法較為復雜,產生的隨機序列不具有可重復性等特點,在很多應用 場合使用偽隨機序列。偽隨機序列在擴頻通信、信息加密和系統(tǒng)測試等諸多領域中都有著 廣泛的應用。在自適應光學SPGD 算法中,偽隨機序列亦有相當重要的作用。
Vorontsov 等人在1997 年將SPGD 算法引入到自適應光學領域。國內在近幾年開始了對 SPGD 算法在自適應光學系統(tǒng)應用的研究,并且在計算機上用軟件編程實現(xiàn)了算法,進行 了自適應光學的系統(tǒng)實驗。自適應光學SPGD 控制算法的研究趨勢是使用專用的信號處 理硬件電路作為算法的實現(xiàn)平臺,以獲得更高的迭代速度和更好的收斂效果。Cauwenberghs等人設計了專用的模擬超大規(guī)模集成電路實現(xiàn)SPGD 控制算法,并且在一些應用領域進行 了實驗。目前自適應光學系統(tǒng)的規(guī)模普遍達到幾十上百單元。針對多單元自適應光學系 統(tǒng)SPGD 控制算法的特殊要求,本文提出了一種適合于用FPGA 硬件電路產生滿足算法要 求的多路偽隨機序列的生成方法,完成了FPGA 電路的硬件實現(xiàn),并將其用于實現(xiàn)61 單 元自適應光學SPGD 控制算法,同時進行自適應光學的閉環(huán)實驗。
2 、自適應光學 SPGD 控制算法對偽隨機序列的要求
SPGD(the Stochastic Parallel Gradient Descent algorithm)算法通過對多路的控制參數(shù)加 入隨機并行的擾動,使用性能指標測量值的變化量與控制參數(shù)的變化量進行控制參數(shù)的梯 度估計,以迭代方式在梯度下降方向上進行控制參數(shù)的搜索。在自適應光學SPGD 算法中, 控制參數(shù)為變形鏡的控制電壓,隨機并行的擾動通過多路偽隨機序列模擬。SPGD 算法中 隨機并行擾動的特性,對偽隨機序列也提出了相應的要求:
(1) 路數(shù)多。路數(shù)等于變形鏡單元數(shù)(即變形鏡上驅動單元的數(shù)目)。例如在一個61 單 元的自適應光學系統(tǒng)中,就需要產生61 路的偽隨機序列。
(2) 偽隨機序列兩兩相互獨立。相互獨立可避免變形鏡各驅動單元間的相互耦合。
(3) 偽隨機序列符合伯努利分布,兩個樣本值出現(xiàn)的概率各為0.5。
3 、硬件電路實現(xiàn)偽隨機序列的傳統(tǒng)方法
傳統(tǒng)的生成偽隨機序列的方法較多,如線性反饋移位寄存器法(LFSR,可產生M 序列), 乘同余法,線性同余法,Gold 序列等。M 序列是一種常用的隨機序列,符合SPGD 算 法中單路隨機序列伯努利分布的要求。但使用M 序列作為SPGD 算法中多路隨機序列在實 現(xiàn)上存在難點:算法要求多路偽隨機序列,用多個不同的LFSR 結構去生成多路的偽隨機 序列,需要耗費大量的硬件資源,并且構造多路不同的LFSR 結構需耗費巨大的工作量。
Gold 序列優(yōu)點在于只由兩個M 序列構造,能夠節(jié)省資源;并且改變兩個M 序列模二 和的相對位置即可構成多個Gold 序列,從而滿足SPGD 算法中多路偽隨機序列的要求。 但在實際工程中如何方便改變兩個M 序列的相對位置以產生多路的Gold 序列亦有難度。 同時,Gold 序列亦存在非平衡性問題,不完符合伯努利分布。
國外最早使用模擬超大規(guī)模集成電路(Analog VLSI)做出SPGD 控制算法的Vorontsov 等人設計的隨機數(shù)發(fā)生器,其本質也是LFSR 結構,使用了抽頭的方法從而可以用一個 LFSR 結構同時產生19 路的偽隨機序列。這種方法的缺陷是如果偽隨機序列的路數(shù)序 列超過19 路后,則用這個電路結構產生的各路偽隨機數(shù)之間不是完全相互獨立的。
4 、連續(xù)抽樣生成多路偽隨機序列的方法
通過以上對M 序列,Gold 序列的分析,結合M 序列易于硬件實現(xiàn),Gold 序列可生成 多路序列的優(yōu)點,以及基于時間抽樣的思想,設計了如圖1 所示硬件結構的68 路偽隨機 Gold 序列發(fā)生器。
圖中所示結構包括兩個時鐘,兩個相同的線性反饋移位寄存器,N 進制計數(shù)器,以及N 路偽隨機序列的存取單元。兩個時鐘有特殊的關系,即時鐘1 是時鐘2 的N 分頻。N 進 制計數(shù)器的輸出作為N 路偽隨機序列存取單元的存儲地址。存取單元及地址譯碼器可視為 一個整體,在實現(xiàn)時使用深度為N,寬度為1bit 的雙端口RAM 代替(一個端口存數(shù)據(jù), 另一個端口取數(shù)據(jù))。此外,圖中的“+”表示模二和。結構中的N 值,為本原抽樣數(shù), 即使用N 對M 序列抽樣后,可得到另一同周期的M 序列。
上述結構產生多路Gold 序列的原理如下:
該方法需要選定兩個可構成Gold 序列的理想M 序列對,之后將能夠從一個M 序列抽 樣出另一M 序列的本原抽樣數(shù)N 預先計算出來。由于是預先計算,不需在硬件內實現(xiàn), 不占用硬件資源。因此該方法占用的資源較少,同時結構化的設計也適合于用硬件描述語 言進行設計。
5 、實驗及結果分析
為驗證上述偽隨機序列生成方法的可行性,在FPGA 內對上述結構進行了硬件設計, 并搭建了基于SPGD 控制算法的自適應光學系統(tǒng)平臺。自適應光學系統(tǒng)實驗平臺的結構如 下圖3 所示,主要由激光器和擴束系統(tǒng)、傾斜鏡TM、變形鏡DM、CCD 相機、基于FPGA 的SPGD 算法控制處理器、數(shù)字到模擬轉換器DAC 和高壓放大器HVA 等組成。光源從激 光器發(fā)出后經TM 和DM 反射至CCD 相機,相機將圖像數(shù)據(jù)傳輸給FPGA 板進行算法迭 代,再輸出電壓至數(shù)模轉換,最后經高壓放大后控制61 單元的變形鏡DM(驅動器的排布 見圖(3)和傾斜鏡TM,完成閉環(huán)控制。
SPGD 算法包括偽隨機序列發(fā)生器都在Xilinx 公司的VII3000 FPGA 內實現(xiàn)。通過 ChipScope 在線邏輯分析儀記錄68 路Gold 序列,經計算驗證這68 路Gold 滿足相互獨立 的要求。針對Gold 序列的非平衡性問題,根據(jù)序列的周期性及對偶性,實驗運用了一個簡 單的方法加以解決:將偶數(shù)周期的兩個樣本值互相交換,即應該輸出1 時輸出0,應該輸 出0 時輸出1。因此每兩個周期內的兩個樣本值出現(xiàn)的概率各為0.5,只要序列發(fā)生的時間 足夠長,長期統(tǒng)計平均,其概率亦各為0.5。因此通過實驗驗證表明連續(xù)抽樣方法能夠滿足 自適應光學SPGD 算法的要求。
自適應光學系統(tǒng)實驗方面,以均值半徑作為本實驗中SPGD 算法的性能指標,向極 小的方向進行梯度搜索,性能指標的收斂曲線如圖4(a)所示。在迭代1000 次后,曲線就已 接近極小值。圖4(b)和7(c)是進行校正前后,CCD 相機中獲取的遠場光斑的光強分布圖。 校正前的峰值為96,校正后的峰值為230,校正后的遠場光斑接近艾里斑,結果說明使用 SPGD 算法對靜態(tài)的波前畸變達到了良好的效果,同時也驗證了本方法所產生的偽隨機序 列能夠在實際的SPGD 控制算法中正常工作。
6 、結論
利用FPGA硬件電路生成了61單元自適應光學系統(tǒng)SPGD控制算法要求的68路偽隨機序列。開展了基于SPGD控制算法自適應光學系統(tǒng)實驗,系統(tǒng)能夠實時閉環(huán),結果表明了該方 法的實用性。同時,該方法除了滿足自適應光學系統(tǒng)SPGD控制算法的專用性外,也為生成 大量的、任意多路的偽隨機序列提供了一種通用的方法,在信號處理、信號加密等工程領域 也具有一定的實際意義。
針對自適應光學系統(tǒng)的SPGD 控制算法對偽隨機序列的要求,分析 了兩種適合于硬件實現(xiàn)的偽隨機序列――M 序列及Gold 序列的特點,及直接用于SPGD 控制算法存在的問題。在M 序列抽樣方法的基礎上,提出了一種連續(xù)抽樣生成多路Gold 序列的方法。該方法在對時間未要求的基礎上,以時間來換取空間資源,減少了空間資源 的占用,只需要兩個LFSR 結構,解決了生成大量LFSR 結構的工作量問題,方便地實現(xiàn) 了SPGD 控制算法要求的多路、獨立偽隨機序列的生成,并提出了解決了Gold 序列非平 衡性問題的方法。
-
FPGA
+關注
關注
1629文章
21736瀏覽量
603419 -
集成電路
+關注
關注
5388文章
11547瀏覽量
361834 -
譯碼器
+關注
關注
4文章
310瀏覽量
50336
發(fā)布評論請先 登錄
相關推薦
評論