高斯光束的简单matlab仿真「建议收藏」

高斯光束的简单matlab仿真「建议收藏」clcclearallcloseall%%假设在z=0处有一振幅为A的高斯光束N=100;lambda=1064e-6;%波长为1064nmk=2*pi/lambda;%波矢A=1;%振幅w=3;%高斯光束的束宽[x1,y1]=meshgrid(linspace(-10,10,N…

大家好,又见面了,我是你们的朋友全栈君。

clc
clear all
close all
%%  
N = 100;
lambda = 1064e-6;   %波长为1064nm
k = 2*pi/lambda;    %波矢
w = 3;              %高斯光束的束宽
[x1,y1] = meshgrid(linspace(-10,10,N));
E1 = exp(-(x1.^2+y1.^2)/w^2);   
I1 = E1.*conj(E1);
I1 = I1/max(max(I1));
figure;mesh(x1,y1,I1)
set(gca,'fontname','times new roman','fontsize',16);    %设置图形对象属性
xlabel('x/mm','fontname','times new roman','fontsize',16);
ylabel('y/mm','fontname','times new roman','fontsize',16);
zlabel('归一化强度','fontname','华文中宋','fontsize',16);
%% 传输程序
f = 500;
A = 0;  B = f;  D = 0;
x = linspace(-0.1,0.1,N); y = linspace(-0.1,0.1,N);
[x2,y2] = meshgrid(x,y);
for a = 1:N
    for b = 1:N
        E2(a,b) = sum(sum(E1.*exp(i*k/2/B*(A*(x1.^2+y1.^2)+D*(x(a).^2+y(b).^2)-2*(x1.*x(a)+y1.*y(b))))));
    end
    a
end
I2 = E2.*conj(E2);
I2 = I2/max(max(I2));
figure;mesh(x2,y2,I2)
set(gca,'fontname','times new roman','fontsize',16);    %设置图形对象属性
xlabel('x/mm','fontname','times new roman','fontsize',16);
ylabel('y/mm','fontname','times new roman','fontsize',16);
zlabel('归一化强度','fontname','华文中宋','fontsize',16);

结果如下图:
图一
图2
第一部分假设在z=0平面有一高斯光束,然后绘制其光场图像;第二部分是其通过一个焦距为500mm的透镜聚焦后的光场,用到的公式是柯林斯(Collins)广义衍射积分。

参考书:
[1]吕百达. 激光光学:光束描述、传输变换与光腔技术物理[M]. 高等教育出版社, 2003.

环形光束的MATLAB仿真

clc
clear all
close all
%%
N = 100;
lambda = 1064e-6;       %波长为1064nm
k = 2*pi/lambda;        %波矢
w = 3;                  %束宽
[x1,y1] = meshgrid(linspace(-10,10,N));
E1 = exp(-(sqrt(x1.^2+y1.^2)-5).^12/w^12);
I1 = E1.*conj(E1);
I1 = I1/(max(max(I1)));
figure;mesh(x1,y1,I1)
set(gca,'fontname','times new roman','fontsize',16);
xlabel('x/mm','fontname','times new roman','fontsize',16);
ylabel('y/mm','fontname','times new roman','fontsize',16);
zlabel('归一化强度','fontname','华文中宋','fontsize',16);
%%
f = 500;                %透镜焦距为500mm
A = 0;  B = f;  D = 0;
x = linspace(-0.1,0.1,N);   y = linspace(-0.1,0.1,N);
[x2,y2] = meshgrid(x,y);
for a=1:N
    for b=1:N
        E2(a,b) = sum(sum(E1.*exp(i*k/2/B*(A*(x1.^2+y1.^2)+D*(x(a).^2+y(b).^2)-2*(x1.*x(a)+y1.*y(b))))));
    end
end
I2 = E2.*conj(E2);
I2 = I2/max(max(I2));
figure;mesh(x2,y2,I2)
set(gca,'fontname','times new roman','fontsize',16);
xlabel('x/mm','fontname','times new roman','fontsize',16);
ylabel('y/mm','fontname','times new roman','fontsize',16);
zlabel('归一化强度','fontname','华文中宋','fontsize',16);

结果如下:
II1
I2
这个和上面的高斯光束一样,只不过是光源部分的公式发生了改变。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/139465.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • leetcode-49字母异位词分组(map)[通俗易懂]

    leetcode-49字母异位词分组(map)[通俗易懂]原题链接给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”]输出:[ [“ate”,”eat”,”tea”], [“nat”,”tan”], [“bat”]]说明:所有输入均为小写字母。不考虑答案输出的顺序。tclass Solution {public: vector<vector<string>> g

    2022年8月9日
  • maven学习系列——(六)maven搭建私服

    这一篇学习和整理私服的搭建 私服的使用在公司还是比较多的 ,会整理在window上搭建私服和linux上搭建私服!

    2022年2月25日
  • UFT使用技巧

    UFT使用技巧1 UFT基本功能的使用         UFT的基本功能包括两大部分:一部分是提供给初级用户使用的关键字视图;另一部分是提供给熟悉VBScript脚本编写的自动化测试工程师使用的专家视图。但是,并没有严格的区分,在实际的自动化测试项目中完全可以两者结合着使用。 1.1 UFT自动化测试的基本过程          使用UFT进行自动化测试的基本过程与使用其他自动化测试工具进行自动化功能测试的过…

    2022年5月26日
  • Oracle NUMBER类型细讲

    Oracle NUMBER类型细讲1>.NUMBER类型细讲:Oraclenumberdatatype语法:NUMBER[(precision[,scale])]简称:precision–>p     scale    –>sNUMBER(p,s)范围:1保存数据范围:-1.0e-130保存在机器内部的范围:1~22bytes有效为:从左边第一个不为0的数算起的位数。s的情况:s>0  

    2022年7月24日
  • 基于ssm酒店管理系统的毕业设计_酒店管理系统

    基于ssm酒店管理系统的毕业设计_酒店管理系统开发工具(eclipse/idea):eclipse4.5/4.8或者idea2018,jdk1.8数据库:mysql功能模块:登录界面可以选择普通账号登录,酒店管理员登录和系统管理员登录。普通账号注册功能:注册时需填写用户名、密码、姓名、性别、邮箱等个人信息登录功能:登录已经注册过的账号,没注册的无法登录忘记密码功能:登录时忘记密码可通过填写姓名,邮箱查询密码。预订酒店:可以选择预订众多酒店其中的一个酒店的一个房间,可以选择日期住宿管理:可以看到自己是否预订成功,预订成功则有

    2022年9月24日
  • 如何将本地文件传到虚拟机linux_怎么把文件放到虚拟机里的系统里

    如何将本地文件传到虚拟机linux_怎么把文件放到虚拟机里的系统里一、使用FileZilla上传文件1.启动虚拟机,打开Linux终端,输入ifconfig命令查看IP地址IP地址为192.168.59.62.打开FileZilla,输入IP地址,用户名,密码,端口号,点击快速连接连接成功后,左边为本机资源目录,右边为虚拟机目录,左边选中文件,右键选择上传,即可上传成功二、使用SecureCRT或Xshell上…

    2022年8月22日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号