【文章內(nèi)容簡(jiǎn)介】
面的制作 由于制作了多種圖像顯示方式,為了方便使用,設(shè)計(jì)了如下圖的 GUI 界面: 激光原理課程設(shè)計(jì) 9 在 GUI中可以動(dòng)態(tài)地顯示振幅和相位在 x 方向以及在鏡面上相對(duì)分布。 程序見附錄 。 四、 本設(shè)計(jì)改進(jìn)建議 由于時(shí)間有限,只討論了方形鏡平行平面腔 。而且在計(jì)算 積分的時(shí)候運(yùn)用了循環(huán)的嵌套,使得計(jì)算效率比較低。 相位分布圖像由于 matlab 函數(shù)問題有一段會(huì)變得很大(略小于 360,其實(shí)應(yīng)該為 0) 。 五、 設(shè)計(jì)感想 通過這個(gè)課程設(shè)計(jì)收獲主要有兩點(diǎn):一是練習(xí)了 matlab軟件的使用,學(xué)會(huì)了一些用matlab做光學(xué)仿真的方法;二是更深入理解了激光諧振腔在激光器中的地位和作用,鞏固了課本上的知識(shí)。 六、主要參考文獻(xiàn) [1] 周炳琨 . 激光原理 (第 六 版 ) [M] . 北京 : 國防工業(yè)出版社 , 2020. [2] Fox,Tingye Li. Resonant Modes in a Maser Interferometer. [J].BellSystem Technology, 1961, 40: 453488. 附錄 GUI 程序: function varargout = Laser_GUI(varargin) % LASER_GUI Mfile for % LASER_GUI, by itself, creates a new LASER_GUI or raises the existing % singleton*. % % H = LASER_GUI returns the handle to a new LASER_GUI or the handle to % the existing singleton*. % % LASER_GUI(39。CALLBACK39。,hObject,eventData,handles,...) calls the local % function named CALLBACK in with the given input arguments. % % LASER_GUI(39。Property39。,39。Value39。,...) creates a new LASER_GUI or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before Laser_GUI_OpeningF gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to Laser_GUI_OpeningF via varargin. % % *See GUI Options on GUIDE39。s Tools menu. Choose GUI allows only one 激光原理課程設(shè)計(jì) 10 % instance to run (singleton). % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help Laser_GUI % Last Modified by GUIDE 21Apr2020 16:07:57 % Begin initialization code DO NOT EDIT gui_Singleton = 1。 gui_State = struct(39。gui_Name39。, mfilename, ... 39。gui_Singleton39。, gui_Singleton, ... 39。gui_OpeningF39。, @Laser_GUI_OpeningF, ... 39。gui_OutputF39。, @Laser_GUI_OutputF, ... 39。gui_LayoutF39。, [] , ... 39。gui_Callback39。, [])。 if nargin amp。amp。 ischar(varargin{1}) = str2func(varargin{1})。 end if nargout [varargout{1:nargout}] = gui_mainf(gui_State, varargin{:})。 else gui_mainf(gui_State, varargin{:})。 end % End initialization code DO NOT EDIT % Executes just before Laser_GUI is made visible. function Laser_GUI_OpeningF(hObject, eventdata, handles, varargin) % This function has no output args, see OutputF. % hObject handle to figure % eventdata reserved to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin mand line arguments to Laser_GUI (see VARARGIN) % Choose default mand line output for Laser_GUI = hObject。 % Update handles structure guidata(hObject, handles)。 % UIWAIT makes Laser_GUI wait for user response (see UIRESUME) % uiwait()。 激光原理課程設(shè)計(jì) 11 axes() LOGO=imread(39。39。)。 imshow(LOGO) % Outputs from this function are returned to the mand line. function varargout = Laser_GUI_OutputF(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT)。 % hObject handle to figure % eventdata reserved to be defined i