云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > MATLAB 高斯光束传播轨迹的模拟

MATLAB 高斯光束传播轨迹的模拟

  • 62 次阅读
  • 3 次下载
  • 2025/5/1 16:35:42

B1:高斯光束传播轨迹的模拟

设计任务:

作图表示高斯光束的传播轨迹

(1)基模高斯光束在自由空间的传播轨迹; (2)基模高斯光束经单透镜变换前后的传播轨迹; (3)基模高斯光束经调焦望远镜变换前后的传播轨迹。

function varargout = B1(varargin) % B1 M-file for B1.fig

% B1, by itself, creates a new B1 or raises the existing % singleton*. %

% H = B1 returns the handle to a new B1 or the handle to % the existing singleton*. %

% B1('CALLBACK',hObject,eventData,handles,...) calls the local

% function named CALLBACK in B1.M with the given input arguments. %

% B1('Property','Value',...) creates a new B1 or raises the

% existing singleton*. Starting from the left, property value pairs are % applied to the GUI before B1_OpeningFunction gets called. An

% unrecognized property name or invalid value makes property application % stop. All inputs are passed to B1_OpeningFcn via varargin. %

% *See GUI Options on GUIDE's Tools menu. Choose \% instance to run (singleton)\%

% See also: GUIDE, GUIDATA, GUIHANDLES

% Copyright 2002-2003 The MathWorks, Inc.

% Edit the above text to modify the response to help B1

% Last Modified by GUIDE v2.5 21-Oct-2010 17:52:32

% Begin initialization code - DO NOT EDIT gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ...

'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @B1_OpeningFcn, ... 'gui_OutputFcn', @B1_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []);

if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1}); end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else

gui_mainfcn(gui_State, varargin{:}); end

% End initialization code - DO NOT EDIT

% --- Executes just before B1 is made visible.

function B1_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % 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 command line arguments to B1 (see VARARGIN)

% Choose default command line output for B1 handles.output = hObject;

% Update handles structure guidata(hObject, handles);

% UIWAIT makes B1 wait for user response (see UIRESUME) % uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line. function varargout = B1_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure varargout{1} = handles.output;

% --- Executes on button press in pushbutton1.

function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

handles.W0=str2double(get(handles.editW0,'string')); handles.B=str2double(get(handles.editB,'string')); guidata(hObject,handles); Z=-100:100;

W=(handles.W0*10^4)*(sqrt(1+handles.B^2*(Z*10^6).^2./(pi^2*(handles.W0*10^4)^4))); plot(Z,W,'b',Z,-W,'b');

% --- Executes on button press in pushbutton2.

function pushbutton2_Callback(hObject, eventdata, handles) % hObject handle to pushbutton2 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

handles.W0=str2double(get(handles.editW0,'string')); handles.B=str2double(get(handles.editB,'string'))/1000; handles.Z=str2double(get(handles.editZ,'string'))*1000; handles.f=str2double(get(handles.editf,'string'))*10;

L=(handles.Z-handles.f)*handles.f^2/((handles.Z-handles.f)^2+pi^2*handles.W0^4/handles.B^2)+handles.f;

T1=-handles.Z:1:handles.Z;

Y1=handles.W0*sqrt(1+T1.^2*handles.B^2/(pi^2*handles.W0^4)); T2=handles.Z:1:(handles.Z+2*L);

W1=(handles.W0*handles.f/sqrt((handles.f-handles.Z)^2+pi^2*handles.W0^4/handles.B^2)); Y2=W1*sqrt(1+(T2-handles.Z-L).^2/(pi^2*W1^4/handles.B^2)); plot(T1,Y1,'b',T1,-Y1,'b',T2,Y2,'r',T2,-Y2,'r');

% --- Executes on button press in pushbutton3.

function pushbutton3_Callback(hObject, eventdata, handles) % hObject handle to pushbutton3 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

handles.W0=str2double(get(handles.editW0,'string')); handles.B=str2double(get(handles.editB,'string'))/1000; handles.f1=str2double(get(handles.editf1,'string'))*10; handles.Z=str2double(get(handles.editZ,'string'))*1000; handles.f2=str2double(get(handles.editf2,'string'))*10;

L=(handles.Z-handles.f1)*handles.f1^2/((handles.Z-handles.f1)^2+pi^2*handles.W0^4/handles.B^2)+handles.f1;

T1=-handles.Z:1:handles.Z;

Y1=handles.W0*sqrt(1+T1.^2*handles.B^2/(pi^2*handles.W0^4)); T2=handles.Z:1:(handles.Z+L+handles.f2);

W1=(handles.W0*handles.f1./sqrt((handles.f1-handles.Z)^2+pi^2*handles.W0^4./handles.B^2)); Y2=W1*sqrt(1+(T2-handles.Z-L).^2./(pi^2*W1^4/handles.B^2)); W2=W1*sqrt(1+handles.f2^2/(pi^2*W1^4/handles.B^2)); T3=(handles.Z+L+handles.f2):1:3*(handles.Z+L+handles.f2); Y3=W2;

plot(T1,Y1,'b',T1,-Y1,'b',T2,Y2,'r',T2,-Y2,'r',T3,Y3,'g',T3,-Y3,'g'); grid on;

function editW0_Callback(hObject, eventdata, handles) % hObject handle to editW0 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of editW0 as text

% str2double(get(hObject,'String')) returns contents of editW0 as a double

% --- Executes during object creation, after setting all properties. function editW0_CreateFcn(hObject, eventdata, handles) % hObject handle to editW0 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc

set(hObject,'BackgroundColor','white'); else

set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end

function editB_Callback(hObject, eventdata, handles) % hObject handle to editB (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of editB as text

% str2double(get(hObject,'String')) returns contents of editB as a double

搜索更多关于: MATLAB 高斯光束传播轨迹的模拟 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

B1:高斯光束传播轨迹的模拟 设计任务: 作图表示高斯光束的传播轨迹 (1)基模高斯光束在自由空间的传播轨迹; (2)基模高斯光束经单透镜变换前后的传播轨迹; (3)基模高斯光束经调焦望远镜变换前后的传播轨迹。 function varargout = B1(varargin) % B1 M-file for B1.fig % B1, by itself, creates a new B1 or raises the existing % singleton*. % % H = B1 returns the handle to a new B1 or the handle to % the existing singleton*.

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com