劉 維,徐珺楠,金玳冉,石文孝*,曹景太,2
(1.吉林大學 通信工程學院,吉林 長春130012;2.中國科學院 長春光學精密機械與物理研究所,吉林 長春130033)
自由空間光通信(Free Space Optical Communication,FSOC)是一種無線通信技術,具有抗電磁干擾能力強、無需許可證費用以及易于部署等優勢[1]。根據通信體制的不同可以將FSOC技術劃分為兩種類型:非相干光通信和相干光通信。非相干光通信是采用強度調制/直接檢測的方法實現通信的一種技術。這種通信方式在技術上較為成熟且成本較低。與非相干光通信系統相比,相干光通信系統在接收端采用的是相干檢測的方式,主要具有調制/解調方式多樣化、接收靈敏度更高以及無中繼傳輸距離更遠等優勢,是FSOC技術未來的重要發展方向之一。
當相干FSOC系統在大氣環境中通信時,通信性能會受到大氣湍流的影響。自適應光學(Adaptive Optics,AO)技術已經被證明可以有效降低大氣湍流對FSOC系統傳輸性能的影響[2]。劉超等應用127單元的AO系統對零差檢測FSOC系統進行了波前畸變補償實驗,實驗結果顯示AO技術可以顯著降低大氣湍流對系統傳輸性能的影響[3]。李明等對海洋大氣湍流影響下相干FSOC系統的通信性能進行了研究。實驗結果顯示,當應用閉環AO系統對波前畸變進行補償時,相干FSOC系統的BER明顯降低[4]。中國科學院長春光學精密機械與物理研究所的研究人員將基于349單元連續鏡面變形鏡的大規模高速AO系統應用于相干FSOC系統中,分析了相干FSOC系統的性能變化情況,計算了不同Greenwood頻率下的混頻效率和誤碼率并將其作為相干FSOC系統的性能指標。實驗結果表明,相干FSOC系統的性能得到了顯著提升[5]。
傳統AO系統主要包括波前傳感器、波前控制器和波前校正器[6]。除此之外,一種新型的AO技術——無波前傳感AO技術也受到了越來越多的關注。李兆坤等提出了一種基于反向傳播神經網絡的波前檢測方法,有效提升了AO系統的實時性[7]。馬慧敏等提出了一種基于卷積神經網絡(Convolutional Neural Networks,CNN)的無波前傳感算法。卷積神經網絡的作用是根據輸入圖像預測其對應的澤尼克系數。結果顯示,經過畸變補償后,光斑的斯特列爾比有了明顯提高[8]。西安理工大學的研究人員開發了AO校正模塊和偏振控制模塊來緩解大氣湍流對長距離相干FSOC系統性能的影響,并建立了基于外差差分二進制相移鍵控調制的相干FSOC系統,實現了10.2 km的遠距離視頻傳輸,其中AO校正模塊采用了無波前傳感技術[9]。
隨機并行梯度下降算法(Stochastic Parallelism Gradient Descent,SPGD)是使用范圍最廣的無波前傳感算法之一,容易實現且較為成熟,廣泛應用于高分辨率成像領域。但其收斂速度較慢,實時性較差,這對相干FSOC系統的應用存在不利影響。自適應增益系數的Admspgd算法是一種提高收斂速度的有效算法[10],此算法通過對增益系數的實時調整,改善了光纖激光組合系統的收斂速度、魯棒性和有效帶寬。朱丹等[11]對彈性反向算法和SPGD算法的像差校正能力比較后,得到了SPGD算法在復雜波前畸變的恢復能力較強的結論,證明了SPGD算法的巨大潛力。
為了提升SPGD算法的像差校正速度,本文將卷積神經網絡與SPGD算法相結合,提出了CNN-SPGD算法。CNN用來對輸入光斑進行分類,得到光斑的類型,進而得到對應的像差類型,之后由SPGD算法完成波前像差校正。實驗的結果表明,在達到相同系統性能的前提下,CNNSPGD算法相比于SPGD算法像差校正速度更快。
無波前相干FSOC的系統框圖如圖1所示[9],經過大氣湍流擾動的光波通過變形鏡的閉環控制得以校正,其中CCD被用來讀取光斑,PC通過算法得到相應的控制電壓來控制變形鏡進行形變,從而將畸變波前校正至正常波前,然后對信號光進行相干檢測接收。

圖1 相干FSOC系統框圖Fig.1 Block diagram of coherent FSOC system
在接收端,信號光與本地振蕩器生成的本振光進行混頻。本振光偏振態較為穩定,而信號光經過光學系統和大氣后偏振態可能會發生一些變化。在相干FSOC系統中可以采用偏振控制器保持信號光穩定的偏振態輸出。信號光和本振光可以表示為如下形式[12]:


其中:AS、ωS和φS分別表示信號光的振幅、角頻率和初始相位;ALO,ωLO和φLO分別表示本振光的振幅、角頻率和初始相位。
信號光和本振光在光電檢測器上形成的光場可以用|ES+ELO|表示。根據檢測器的平方定律可以得到光電檢測器響應輸出的電流為:

其中,K為比例系數。
式(3)中,電流I可以看作由四個單項式的和組成:第一個單項式和第二個單項式表示直流項。第三個單項式中,ωS+ωLO的頻率較高,一般的檢測器無法響應。令ωIF=ωS-ωLO,當ωIF低于檢測器的截止頻率ωC時,檢測器的響應電流為[13]:

由式(4)可以看出,檢測器的響應輸出電流中包含直流和交流分量,所要傳輸的信息包含在交流分量中。相干接收機接收到的信號頻率一般限制在以ωIF為中心的帶通范圍內,可直接過濾掉不含信息的直流分量。直流分量被濾除后,可以用下式表示檢測器響應電流的中頻分量[12]:

式(4)還可以用光功率的形式描述(將式中的光強度AS和ALO用光功率PS和PLO代替)[14]:

其中,R為檢測器的響應度。根據ωS和ωLO的關系,相干檢測可以進一步分為零差檢測和外差檢測兩種檢測方式[13]。當ωIF≠0,即ωS≠ωLO時,這種檢測方式稱之為外差檢測;反之,稱為零差檢測。
在AO系統中,求解波前校正器最優控制電壓屬于多維變量最優化問題。SPGD算法適用于多個控制變量的優化過程,其結構簡單且算法復雜度低。采用SPGD算法進行像差校正的數學模型為[15]:

其中:J[u(r)]是表征性能指標J與控制變量u(r)之間關系的目標函數,本文使用SR作為性能指標J評估SPGD算法對零差檢測FSOC系統混頻效率的影響;u(r)是波前校正器生成的補償相位,作為控制變量;假設經過k次迭代校正后的殘余波前像差為φk(r),則k+1次迭代校正后的波前為:

當k=0時,φ0(r)稱為初始像差。
SPGD算法的計算流程可以描述為:
定義性能指標J的變化量:

新的控制電壓V可以通過下式獲得:

其中:γ是正的增益系數;k代表迭代次數;ΔV(k)=代表第k次迭代時生成的擾動電壓;m的值等于驅動器的個數。
SPGD算法的具體過程為:
(1)設置增益系數γ和控制電壓V的初始值V(0);
(2)生 成 隨 機 擾 動 向 量 ΔV(k)=
(3)由式(11)更新電壓值,生成新的電壓向量V(k+1);
(4)計算k+1次迭代校正后性能指標J的值。如果迭代次數達到最大值μ則停止迭代;否則返回(2)并繼續生成擾動電壓直至迭代次數達到最大值μ。
本文的實驗中采用的波前校正器是標準分布的32單元連續鏡面變形鏡(Deformable Dirrors,DMs)[15],其驅動器分布如圖2所示。其中黑點表示波前校正器的中點,32個變形鏡按照標號的位置均勻分布在波前校正器上,標號1~32。這32個變形鏡就可以完美覆蓋大圓圈中所示的波前校正器,其實物圖如圖3,為中國科學院長春光學精密機械與物理研究所研制的32單元連續鏡面變形鏡。

圖2 32單元連續鏡面變形鏡驅動器分布示意圖Fig.2 Diagram of 32-unit continuous deformable mirrors driver distribution

圖3 32單元連續鏡面變形鏡實物圖Fig.3 Picture of 32-unit continuous mirror deformable mirror
每一個變形鏡由電機驅動,其電壓大小可以線性控制變形鏡的位置,使波前像差得到補償。如圖4所示。

圖4 變形鏡與電機驅動示意圖Fig.4 Schematic diagram of deformable mirror and drive motor

一般可以用高斯函數模型來模擬DMs的光學影響函數。DMs鏡面坐標(x,y)處,第i個驅動器生成的補償相位可以表示為如下形式[16]:其中:x i和yi分別代表第i個驅動器在DMs鏡面中的橫坐標和縱坐標;ω指相鄰驅動器之間的交聯值;d代表驅動器的歸一化間距;α是高斯函數指數。DM的某個子孔徑的局部斜率就是其波前函數在該范圍的局部導數,而電壓與變形鏡的斜率線性相關,所以通過相位共軛原理就可使變形鏡的補償相位與畸變波前相位相符。
在多個驅動器的共同作用下,變形鏡會發生形變,產生的全部補償相位為[17]:

其中,V j是施加到第j個驅動器上的電壓。
混頻效率是評估相干FSOC系統性能的一項重要指標。信號光在與本振光混頻之前,會受到諸如空間傳輸、大氣湍流等多種因素的影響,這些影響最終會在混頻效率這一性能指標上得到體現。因此,混頻效率可以被認為是一個綜合性的指標。對于采用零差檢測的FSOC系統,混頻效率定義為[17]:

其中:Δφ=φS-φLO,φS和φLO分別表示信號光和本振光的相位;AS和ALO分別代表信號光和本振光的振幅;U代表光電檢測器的入射場。
對于采用零差檢測的相干FSOC系統,混頻效率近似等于遠場焦平面圖像的斯特列爾比(Strehl Rate,SR),這一結論對于評估相干FSOC系統的性能很有意義,實驗中將通過計算SR來分析畸變補償前后零差檢測FSOC系統混頻效率的變化情況。SR與波前像差的均方根(Root Mean Square,RMS)之間存在如下近似關系[18]:

其中,RMS的計算公式為:

相干FSOC系統的誤碼率(Bit error rate,BER)定義為[19]:

其中,erfc(x)為互補誤差函數,具體表達式為:

Q定義為:

其中,SNR是相干FSOC系統的信噪比。
對于一個采用BPSK調制的通信系統,接收端的光信號功率為[20]:

其中:NP為接收端單比特光子數;h、v和B分別為普朗克常數、載波頻率和數據比特率。
在沒有大氣湍流影響時,SNR定義為[20]:

其中,δ是光電檢測器的量子效率。
對于采用零差檢測的通信系統,SNR和SNR0的關系為[17]:

其中,η代表混頻效率。
將式(17)、(19)和(22)聯立可以得到:

進一步,根據混頻效率和SR的近似關系,可以通過式(23)得到BPSK調制的零差檢測相干FSOC系統的誤碼率。
卷積神經網絡具備利用局部操作實現分級抽象表示的能力,因此非常適合計算機視覺處理。在一個典型的CNN模型中,一般包括卷積層、池化層和全連接層。CNN使用局部連接的方式解決了全連接的權重矩陣參數爆炸問題。此外,經過計算的特征圖依然保持著原來的空間位置,同時通過權值共享的方式,使得網絡的權重系數進一步減小。
本文提出的CNN-SPGD算法是將CNN模型與SPGD算法組合后進行波前像差校正。在算法中,像差被分為8大類,每一類都有唯一對應的初始電壓,CNN負責選出當前像差的類別,在類別被確定的同時,控制器就會得到與之相應的初始電壓,這里的初始電壓只是大類電壓的數學期望,而真正的最優電壓還需要通過SPGD算法進一步獲得。
CNN-SPGD算法的具體實現過程為:
(1)設置SPGD算法中增益系數γ的初始值;
(2)CNN模型對接收到的光斑進行分類;
(3)根據光斑的分類結果得到對應的像差類型,之后對電壓進行選擇,選擇出最優電壓作為SPGD算法的初始控制電壓V(0);
(4)生成隨機擾動向量;
(5)由式(11)更新電壓值,生成新的電壓向量V(k+1);
(6)計算k+1次迭代校正后性能指標J的值。如果迭代次數達到最大值μ則停止迭代;否則返回(4)繼續生成擾動電壓直至迭代次數達到最大值μ。
CNN-SPGD系統控制回路圖和系統工作框圖分別如圖5和圖6所示。

圖5 CNN-SPGD系統控制回路圖Fig.5 CNN-SPGD system control loop diagram

圖6 CNN-SPGD系統框圖Fig.6 Block diagram of CNN-SPGD system
我們可以使用一系列Zernike多項式的線性組合表示波前像差[21]。在Zernike多項式中,第一項是活塞模式(常數),對成像質量不產生影響;第二項和第三項是傾斜像差,可以采用專用的傾斜校正系統進行校正,所以在本文的實驗中不考慮前三階像差,用第四階到第十一階Zernike多項式來表示初始像差,即:

本文采用Nicolas Roddier提出的方法來獲取 初 始Zernike系 數[22]:首 先 構 造 獨 立 的Karhunen-Loeve系數,之后轉換為Zernike系數。參數D/r0設置為4,其中D代表接收孔徑,r0代表大氣相干長度。引入的初始像差Zernike系數如表1所示。

表1 初始像差的Zernike系數Tab.1 Zernike coefficients of initial aberration
相關的參數設置如下:驅動器的交聯值ω設為0.2,歸一化間距d為0.392,高斯函數指數α為2;加載到變形鏡驅動器上的初始控制電壓V(0)設置為[0,0…,0]T;增益系數γ的值設為1.2;隨機擾動向量為32維的向量,每個元素之間相互獨立,服從伯努利分布,實驗中設置為|ΔV i|=0.3。通過式(15),可以得到初始SR為0.33。
為確定各階系數的范圍,生成了多組Zernike系數(參數D/r0同樣設置為4)。對各階系數aj進行了區間劃分,因此,可以將輸入像差劃分為4×4×4×2×2=256種類型。
各階Zernike多項式的系數范圍呈對稱分布。考慮到這一特點,對劃分好的各階Zernike多項式的系數區間作進一步處理,將對稱區間歸為同一類,如表2所示。

表2 各階Zernike系數的區間劃分方法Tab.2 Interval partition method of Zernike polynomial coefficients of various orders
如表2所示,各階Zernike系數的區間經過重組后,像差分為8大類,其中a4,a5和a6各有兩大種,組合為8種,則光斑也被相應的劃分為8個大類別;每一個大類別的像差中,又可以通過表2細分為2×2×2×2×2=32個小類別,其中a4,a5,a6,a7和a8各有兩種,組合為32種。CNN模型的作用是預測出輸入光斑屬于8大類光斑中的哪一類,根據分類結果就可以得到相應的像差類型。對于每一大類像差,生成對應的10 000張焦平面光斑作為訓練集樣本,1 000張焦平面光斑作為驗證集樣本,1 000張焦平面光斑作為測試集樣本,所以訓練集樣本包含80 000張圖像,驗證集樣本包含8 000張圖像,測試集樣本包含8 000張圖像,每張圖像的分辨率設置為128×128像素,生成的圖像為jpg格式。每張圖像的命名規則為:類別_個數_jpg。例如0_156_jpg,指第0類光斑中(類別從0開始計數,0~7共8大類)的第156張圖像,jpg表示生成圖像的格式為jpg。圖7展示了部分類別光斑的圖像樣本。

圖7 部分類別光斑的圖像樣本Fig.7 Image sample of partial category spot
對于每一小類別的波前像差,取每一階系數范圍的中點作為標準點形成一個“標準Zernike系數向量”,處于該區間的Zernike系數向量都可以歸類為預先設定好的“標準Zernike系數向量”[23]。按照這種方法,一共可以獲得256組“標準Zernike系數向量”。由“標準Zernike系數向量”構成的波前像差稱之為“標準像差”。選擇初始電壓的具體步驟為:
(1)在像差校正過程開始前,預先用SPGD算法校正256個標準像差,使SR≥0.9時的電壓,稱之為“標準電壓”。
(2)用CNN模型對輸入光斑進行分類,根據光斑的分類結果得到相應的像差類型,每一大類像差中包含32個“標準像差”,自然也對應32個“標準電壓”。
(3)逐一用32個“標準電壓”生成補償相位校正波前像差,選擇使SR最大的“標準電壓”作為SPGD算法的初始電壓。
實驗中采用Keras完成CNN模型的搭建。Keras是一個高層神經網絡應用程序編程接口。Keras的底層實現選擇Tensorflow,CNN模型用Python語言編寫。
實驗中構建的CNN模型共計有5個卷積層,5個池化層,2個全連接層和一個輸出層,其具體結構如圖8所示。模型中的Dropout是一種針對神經網絡模型的正則化方法,主要是為了減輕模型的過擬合問題[23],其基本思想為在對輸入樣本進行訓練過程中,隨機的忽略部分神經元,這樣可以增強模型的泛化性,因為模型不會過于依賴某些局部的特征。

圖8 CNN模型結構示意圖Fig.8 Schematic diagram of CNN model structure
CNN模型構建完成后,在GPU上進行了訓練。實驗硬件環境如表3所示。

表3 實驗硬件環境Tab.3 Experimental hardware environment
訓練網絡時參數設置如下:訓練輪數epochs=20;每一批次讀取樣本的數量batch_size=200。故在每一輪訓練中,在訓練集中運行的步數steps_per_epoch=80000/200=400步。訓練效果可以通過調用evaluate_generator函數來評估。訓練結果如圖9所示。經過20輪訓練后,訓練集的準確率為97.62%,測試集的準確率為

圖9 訓練集和測試集的損失值和準確率Fig.9 Loss and accuracy of training set and test set
91.46%。
CNN模型訓練完成后,像差校正過程開始。由表1中的Zernike系數生成的波前像差對應的焦平面圖像如圖10所示。

圖10 初始波前像差對應的焦平面圖像Fig.10 Focal plane image corresponding to initial wavefront aberration
初始波前像差以及CNN-SPGD算法進行畸變補償后的殘余波前像差隨迭代次數變化如圖11所示;相應的焦平面上光斑圖像如圖12所示。

圖11 CNN-SPGD算法校正前后波前像差Fig.11 Wavefront aberration before and after CNN-SPGD algorithm correction
由圖12可以看出,經過基于CNN-SPGD算法的無波前傳感AO系統像差校正后,焦平面的光斑圖像分布逐漸集中,說明波前像差已得到校正,光束質量得到改善,在500次迭代時得以收斂,這也驗證了CNN-SPGD算法的有效性。為了更直觀的對比CNN-SPGD算法相對于SPGD算法在像差校正速度方面的優勢,我們將兩種無波前傳感算法對系統混頻效率和誤碼率的影響曲線進行比較,結果如圖13所示。

圖12 CNN-SPGD算法校正前后焦平面圖像Fig.12 Focal plane image before and after CNN-SPGD algorithm correction
由圖13可見,在混頻效率方面,SPGD算法使混頻效率達到0.80、0.85和0.9需要的迭代次數分別為110次、161次和280次;在使混頻效率達到相同值的前提下,CNN-SPGD算法所需的迭代次數分別為4次、37次和141次。為了對比CNN-SPGD算法和SPGD算法在時間復雜度上的關系,我們在1 660 s的GPU上進行了一百次重復實驗,在實驗中,光斑分類和電壓選擇所需的平均時間約為SPGD算法16次迭代的時間。也就是說,CNN-SPGD算法只需大約16次迭代的過程,這可以節省數十次甚至上百次的迭代運算,故CNN-SPGD算法相比于SPGD算法在校正速度上得到了提升。用兩種算法對八種不同的初始像差進行像差校正,系統混頻效率大于等于0.90時所需的迭代次數如表4所示。在誤碼率方面,CNN-SPGD算法經過152次迭代后,便可以使BER達到10-6;而達到同樣的誤碼率,SPGD算法需要334次迭代。即便考慮到光斑分類和電壓選擇的過程,CNN-SPGD算法的校正速度依然更快。

表4 兩種算法使混頻效率大于等于0.90時所需的迭代次數Tab.4 Number of iterations required for the two algorithms to make the mixing efficiency greater than or equal to 0.90

圖13 混頻效率和誤碼率變化曲線Fig.13 Changing curve of mixing efficiency and BER
由于CNN模塊分類后,每類初始控制電壓對應的Zernike系數是該類像差的Zernike系數的期望,所以在該類像差的區間內,無論湍流強度如何,CNN模塊都能在一次迭代過程中將像差補償到很小的程度。在達到相同系統性能的前提下,考慮到光斑分類和電壓選擇的過程,CNNSPGD算法與SPGD算法相比仍減少了迭代次數,像差校正速度得到了提升。
為了進一步驗證CNN-SPGD算法在不同湍流強度的效果,以大氣折射率結構常數作為強弱指標,根據Davis不等式生成了強度不同的三組湍流。其湍流強度和BER常數如表5所示。

表5 不同湍流強度的BER變化Tab.5 BER variation with different turbulence intensity
分析表5可知,未校正時的BER與湍流強度有關,湍流強度越強,初始BER越大,而經過CNN-SPGD算法的校正后,BER可以下降三個數量級左右,使系統性能得到提升,證明了算法的有效性。
本文針對SPGD算法對大氣湍流造成的像差影響補償的迭代次數較多,畸變補償速度較慢的缺點,改進了傳統自適應光學的校正機制,提出了CNN-SPGD優化方法。該方法通過訓練CNN的模型得到像差的分類結果,再把CNN模型和SPGD算法相結合。通過CNN模型對輸入光斑進行分類達到減少迭代次數的效果,再使用SPGD校正殘余高階像差,從而提高系統性能,改善校正結果。在自由空間光通信系統中,CNN-SPGD模型使誤碼率下降到10-6時的迭代次數相對傳統SPGD可以降低約80%。而在混頻效率達到0.9時,CNN-SPGD模型可以降低約85%的迭代次數。綜上可以得出結論,在達到相同系統性能的前提下,即便CNN-SPGD算法有光斑分類和電壓選擇的過程,相比較于SPGD算法仍減少了迭代次數,有效提升了像差校正的速度,對FSOC的設計有一定的意義。在未來的工作中,我們將優化本系統的訓練模型,同時更換更好的GPU來提高訓練準確率,降低算法收斂時間。