摘 要:設計計算機光學元件混合編程軟件對光學領域發展具有十分重要的現實意義,本文首先對計算機光學和混合編程方法進行了簡單介紹,然后對計算機光學元件混合編程設計進行了詳細論述。
關鍵詞:計算機光學元件;混合編程;軟件設計
電磁波作為光學領域中最常應用的一種射線,在實際應用中,由于需要的不同往往需要對光場分布方式進行改變,以達到應用目的。這就需要有一種科學有效的方法來對電磁波光場進行改變。有關實踐證明,利用計算機光學元件對電磁波場分布進行改變往往能夠達到較高的效果。但由于傳統計算機光學元件設計算法運算精度低,因而需要對現有計算機光學元件進行改進,以提高軟件運行效率。
1 計算機光學概述
計算機誕生后,在計算機的長期應用過程中,技術研究人員與科學家們自然而然的將光學元件應用到計算機當中來制造光計算機。在此背景下,計算機光學理論形成。隨著對光計算機研究的不斷深入,目前已產生多種計算機光學分析方法。其中,較為有效的方法就是計算機光學元件。但計算機光學元件設計在光學領域屬于一個逆向問題,設計難度極大[ 1 ]。所謂逆向問題,指的是對成像系統中已知的入射場和出射場分布形式,計算出相應元件平面上的相位浮雕高度,從而保證能夠對其入射波場分布進行正確調制,并給出期望光場分布。在科技不斷進步與相關理論不斷成熟的推動作用下,計算機光學元件設計理論取得了實質性的進展,標量衍射理論、幾何理論和矢量理論是目前較為成熟且使用較多的三種理論。在計算機光學元件混合編程軟件設計過程中,依據這些理論對軟件進行設計,可以為其提供相應的理論支持與依據。
2 混合編程方法
要想設計出計算機光學元件混合編程軟件,就需要采用相應的方法來實現多種編程語言的混合編程。目前,混合編程的實現主要有兩種方法,即利用動態連接庫和目標文件。動態連接庫方法,是指將FORTRAN程序構成動態連接庫之后,通過VC++編程軟件對其進行動態調用,從而實現兩種語言的混合編程[ 2 ]。目標文件方法是指,首先在FORTRAN和VC++各自的編程環境下編寫程序生成對應的目標文件,然后利用相關技術將兩種語言程序的目標文件連接起來,生成在VC++環境下可執行程序,這種程序即為混合編程程序。根據計算機光學元件軟件設計要求與應用場合,本文采用目標文件法來對計算機光學元件混合編程軟件的混合編程部分進行設計。
3 計算機光學元件混合編程軟件設計
3.1 軟件開發環境與設計目標
為實現計算機光學元件混合編程軟件的可視化,本文采用FORTRAN90和VC++6.0兩種編程軟件來開發計算機光學元件混合編程軟件。在FORTRAN編譯環境中,源程序文件擴展名為.f90,在VC++編譯環境中,源程序文件擴展名為.cpp。混合編程用VC++軟件來調用VC目標文件和FORTRAN目標文件實現。需要注意的是,要想實現兩種不同編程語言的混合調用,就需要保證兩種語言擁有相同的調用約定[ 3 ]。STDCALL是VC++和FORTRAN軟件擁有的相同程序調用約定,因而可以采用該約定。另外,用VC調用FOR程序時,必須用extern對FOR函數進行說明,強調該函數為一個外部函數,并且extern的位置必須放在所有被調用函數之前。
為增強軟件數據處理功能,采用MATLAB可視化軟件為元件圖樣處理過程中的矩陣、數據分析以及其他數據處理提供強大的數據計算功能,以提高程序運行效率與數據計算精確性,保障軟件運行具有良好的穩定性與可靠性。不僅如此,利用該可視化軟件還能夠促進VC與FOR軟件各自優點充分發揮。
根據計算機光學元件改變光波、微波、電磁波等各種光場分布這一作用,所設計的計算機光學元件混合編程軟件需要實現以下幾項功能:第一,應用程序能夠提供計算所需初始相位分布圖樣,即對任意目標圖樣(圖像數據)元件相位分布初始值的輸入,軟件都能夠進行相應的計算,從而為程序運行后期通過GS算法來實現對計算機光學元件的模擬設計提供所需必要數據。第二,軟件應具有驗證功能,即能夠對計算出的光學元件設計參數模擬出的實際光束經相位補償后得到的圖樣與實際光束圖樣進行對比。第三,采用透射式計算機光學元件對混合編程軟件設計過程進行模擬,以實現任意目標圖樣(數據)的模擬設計,進而得出光學元件相應的設計參數和相關圖樣數據文件,并能夠繪制出元件的相位浮雕高度圖樣。設計出的計算機光學元件混合編程軟件操作界面應友好大方,方便用戶執行各種操作,且執行效率高。此外,軟件還應具備數據瀏覽功能,使用戶可以方便快捷的瀏覽各種所需數據。整體而言,計算機光學元件混合編程軟件設計應能夠較好的滿足實際應用中用戶所需各項基本功能。
3.2 計算機光學軟件混合編程設計流程
首先,由用戶選擇預期的數據文件,即光學圖樣,并輸入初始參數,然后對輸入的初始參數進行判斷。若正確顯示出入射光斑和期望圖形,然后進行迭代計算,并保存產生的中間數據,經一系列計算后顯示出系統模擬的元件模擬圖樣、相位浮雕高度圖樣以及迭代的次數。最后進行驗證,并將驗證結果圖形顯示出來,供用戶瀏覽,最終完成計算機光學元件混合編程的設計。
4 總結
總而言之,計算機光學是光學領域發展的一種重要新興科目,也是計算機技術與光學技術有效融合的一個重要紐帶。設計并實現高集成化、高衍射效率、高運算精度、自由靈活、輕巧小型的計算機光學元件混合編程軟件,對推動光學技術與光計算機進一步發展具有重要的意義和影響。設計人員應對現有軟件算法進行不斷優化,不斷提高軟件整體工作性能,努力克服計算機光學元件設計中的各種難題。
參考文獻:
[1] 方恒楚.遺傳模擬退火算法在光學系統計算機輔助裝調中的應用[D].北京交通大學,2009.
[2] 姜瞳.基于飛秒激光直寫微光學元件的制備及性能表征[D].吉林大學,2014.
[3] 杜源.基于VB及MATLAB混合編程的數字實時全息再現系統[D].昆明理工大學,2011.
作者簡介:王雨農(1994-),男,內蒙古包頭人,專業或研究方向:計算機。