激光原理by 贾而穑 130212114

厄米高斯光束MATLAB 仿真

其中主程序文件:plotHermiteGaussianBeams.m

子程序文件:HermitePoly.m

程序如下:

plotHermiteGaussianBeams.m

%-------------------------------------------------------------------------% % auther:Erse Jia

% Student ID 130212114

%-------------------------------------------------------------------------% %% Hermite Gaussian Beams

%% SET PARAMETERS

% Physical parameters

lambda = 500; % nm

k = 2*pi/lambda;

% The two parameters for the gaussian beam (and derived quantities) z0 = 1;

A0 = 1;

W0 = sqrt(lambda*z0/pi);

W = @(z) W0*sqrt(1+(z/z0)^2);

R = @(z) z*(1+(z/z0)^2);

Zeta = @(z) atan(z/z0);

% The coefficients for the Hermite-Gaussian (HG) beam of order (l,m)

A = [ 1 0 0 0;

1 1 0 0;

0 0 0 0;

0 0 .2 0];

% Display Parameters

res = 800;

z = 1e-9;

x = linspace(-2*W(z),2*W(z),res);

y = linspace(-2*W(z),2*W(z),res);

[X Y] = meshgrid(x,y);

X = X(:);

Y = Y(:);

%% RUN THE SIMULATION

% Preallocate Memory

U = zeros(length(X),1);

Utemp = zeros(length(X),1);

Utemp2 = zeros(length(X),1);

% Calculate Values that are independent of HG Polynomial order

lpf = exp(-1i*k*z - 1i*k*(X.^2 + Y.^2)/(2*R(z))); %lateral phase factor u = sqrt(2)*X/W(z);

v = sqrt(2)*Y/W(z);

for l = 1:size(A,1)

%if there are any terms of this order, calculate the x-HG (so you don't %need to repeat for each value of m

if sum(A(l,:) ~= 0) ~= 0

Utemp2 = (W0/W(z))*polyval(HermitePoly(l-1),u).*exp(-u.^2/2); else

continue;

end

for m = 1:size(A,2)

if A(l,m) ~= 0

Utemp = Utemp2.*(polyval(HermitePoly(m-1),v)).*exp(-v.^2/2); Utemp = A(l,m)*Utemp.*lpf*exp(1i*(l+m+1)*Zeta(z));

U = U + Utemp;

end

end

end

%% DRAW PLOTS

figure;

U = reshape(U,res,res);

imagesc(x,y,abs(U).^2);

axis square;

set(1,'color','w');

title('Hermite-Gaussian Beam of Order');

xlabel('x (nm)');

ylabel('y (nm)');

HermitePoly.m

%-------------------------------------------------------------------------% % HermitePoly.m by Erse Jia

% Student ID 130212114

% Given nonnegative integer n, compute the

% Hermite polynomial H_n. Return the result as a vector whose mth

% element is the coefficient of x^(n+1-m).

% polyval(HermitePoly(n),x) evaluates H_n(x).

%-------------------------------------------------------------------------%

function hk = HermitePoly(n)

if n==0

hk = 1;

elseif n==1

hk = [2 0];

else

hkm2 = zeros(1,n+1);

hkm2(n+1) = 1;

hkm1 = zeros(1,n+1);

hkm1(n) = 2;

for k=2:n

hk = zeros(1,n+1);

for e=n-k+1:2:n

hk(e) = 2*(hkm1(e+1) - (k-1)*hkm2(e));

end

hk(n+1) = -2*(k-1)*hkm2(n+1);

if k

hkm2 = hkm1;

hkm1 = hk;

end

end

end

结果:

拉盖尔高斯光束MATLAB 仿真

主程序文件:DrawtheLaguerreGaussbeam.m

子程序文件:LG.m

DrawtheLaguerreGaussbeam.m

%-------------------------------------------------------------------------% % auther:Erse Jia

% Student ID 130212114

%-------------------------------------------------------------------------% clear all;

close all; clc

params = [0 0 1];

% Use function handle

u0 = @(rho, phi)LG(params, rho, phi);

R = @(x, y)(x=0);

u = @(rho, phi)R(rho.*cos(phi), rho.*sin(phi)).*u0(rho, phi);

[X, Y] = meshgrid(linspace(-5, 5, 200));

Rho = sqrt(X.^2 + Y.^2);

Phi = atan(Y./X);

figure(1)

set(1,'color','w');

Z = u(Rho, Phi);

surf(X, Y, -Z)

shading interp

set(gca,'box','on');

grid off;

xlabel('x position');

ylabel('y position');

zlabel('z');

colorbar;

LG.m

function y = LG( params, rho, phi )

m = abs(params(1));

p = params(2);

w = params(3);

if w==0

msgbox('params(0) can not be equal to 0');

end

t = rho./w;

y = sqrt(2*factorial(p)/pi/factorial(m+p))/w.* (sqrt(2).*t).^m ...

.* L([p m], 2*t.^2).* exp(-t.^2 + 1i*m*phi);

function y = L(params, x)

fact = @(x)arrayfun(@factorial, x);

n = params(1); % p

k = params(2); % m

m = 0:n;

a = factorial(n+k)*ones(1,length(m));

b = fact(n-m);

c = fact(k+m);

d = fact(m);

e = (-1).^m;

y = zeros(size(x));

for s = 1:n+1

y = y + a(s) ./ b(s) ./ c(s) ./ d(s) .* e(s) .* x.^m(s); end

end

end

结果:

matlab 画光束等相面,拉盖尔高斯光束_厄米高斯光束MATLAB仿真 - 范文中心相关推荐

  1. 厄米高斯光束 matlab,拉盖尔高斯光束_厄米高斯光束MATLAB仿真

    <拉盖尔高斯光束_厄米高斯光束MATLAB仿真>由会员分享,可在线阅读,更多相关<拉盖尔高斯光束_厄米高斯光束MATLAB仿真(4页珍藏版)>请在人人文库网上搜索. 1.激光原 ...

  2. matlab 画光束等相面,一种新型贝塞尔光束器件的设计方法

    1 引言 衍射是波普遍具有的性质.因为衍射效应的存在,所以即便不考虑成像系统的误差也不可能完全分辨极小物点.1987年,Durnin等[提出存在径向光强分布满足贝塞尔函数的无衍射光束,即贝塞尔光束.贝 ...

  3. matlab中sqp的算法原理_最优化方法及其Matlab程序设计 马昌凤

    内容简介<最优化方法及其Matlab程序设计>较系统地介绍了非线性最优化问题的基本理论和算法,以及主要算法的Matlab程序设计,主要内容包括(精确或非精确)线搜索技术.最速下降法与(修正 ...

  4. 用matlab画单位冲激序列,实验一 基于Matlab的数字信号处理基本操作.doc

    实验一 基于Matlab的数字信号处理基本操作 信号来表示,自变量必须是整数. 离散时间信号的波形绘制在MATLAB中一般用stem函数.stem函数的基本用法和plot函数一样,它绘制的波形图的每个 ...

  5. matlab将图片旋转的代码_我的MATLAB魔方新玩法:拼出任意图案!

    更新: 添加代码链接:nkyang/MagicCube 有时间的话,会陆续把之前文章的代码都整理好了传到github上去,这样个人文章里面就不会出现代码,文章可读性更好. 我又回来更新了,在上一次的文 ...

  6. matlab做三次拉格朗日插值多项式_从零开始的matlab学习笔记——(24)曲线拟合...

    matlab应用--求极限,求导,求积分,解方程,函数绘图,三维图像,拟合函数....更多内容尽在个人专栏:matlab学习 才发现这个数据插值的返回值不是个函数表达式,是一系列点集,不能使用poly ...

  7. matlab 指定区域随机游走_统计学原理与matlab——(5)正态分布

    统计学原理中的matlab应用--方差,平均数,二项分布,排列组合,几何与超几何分布.正态分布.... 这一篇文章主要聊一聊matlab与正态分布那些事儿. 说正态分布之前,先区分一组概念:离散型随机 ...

  8. 用matlab画曲顶柱体费用数据,数值积分的matlab实现

    实验10 数值积分 实验目的: 1.了解数值积分的基本原理: 2.熟练掌握数值积分的MATLAB 实现: 3.会用数值积分方法解决一些实际问题. 实验内容: 积分是数学中的一个基本概念,在实际问题中也 ...

  9. matlab将二值图像与原图重叠_[转载]图像处理matlab及图像融合图像镶嵌图像拼接...

    在实际的对图像处理过程中,由于我们读出的图像是unit8型,而在MATLAB的矩阵运算中要求所有的运算变量为double型(双精度型).因此读出的图像数据不能直接进行相加求平均,因此必须使用一个函数将 ...

  10. matlab 度分秒转换成度_如何利用matlab统一处理照片亮度对比度

    第一:下软件MATLAB,和插件SHINEtoolbox.安装路径最好不要有中文. 将插件复制到文件夹下见图片 注意:不用学习matlab的具体应用,会使用插件就行了,插件是已经做好的编程,仅需把插件 ...

最新文章

  1. HDU1203_I NEED A OFFER!【01背包】
  2. 2019年上海市数学建模讲座笔记(2)概率统计模型
  3. Nginx和uWSGI和Flask的关系
  4. spring 监听器 IntrospectorCleanupListener简介
  5. 关注CIO:IT运维如何实现“向管理要效益”(转载)
  6. P1886 滑动窗口(求连续区间最值的O(N)解法,单调队列)
  7. Selenium2之Web自动化编写API(Java)
  8. 多种协议数据包的结构
  9. linux date 常用格式,5、总结Linux常用命令使用格式,并用实例说明。例如echo、screen、date、ifconfig、export等命令...
  10. android textview 白色,android – AutoCompleteTextview默认情况下,颜色设置为白色
  11. shp格式详解(一)
  12. 力扣(leetcode)66.加一——c语言新手入门
  13. 2021 Alexa SmartHome Skill 对接(二)配置及服务对接
  14. dds:publish
  15. 如何高效建设传奇的DAO
  16. 1.1.2 Linux epoll详解
  17. git之pull与push
  18. 如何使用万用表测量三级管的阻值
  19. 23种设计模式:(二)结构型模式
  20. CS5518设计MIPI转LVDS转换方案/MIPI转LVDS方案芯片

热门文章

  1. html怎么添加视频链接,PPT怎么将超链接添加到视频图文教程
  2. RapidMiner介绍与实践(三)K-Means
  3. 服装店商家不离手的十大服装进销存管理软件,功能大对比
  4. VC++设置默认音频设备(附源码)
  5. 用python的tkinter做游戏(九)—— 坦克大战 正式篇
  6. Ghostscript沙箱绕过(CVE-2021-3781)分析
  7. 量子保密通信技术基本原理
  8. linux系统中归档管理器,深度商店应用归档管理器、KShutdown、7-Zip、California
  9. 小程序的学习资料收集
  10. Ambari安装和汉化(转)