matlab 画光束等相面,拉盖尔高斯光束_厄米高斯光束MATLAB仿真 - 范文中心
激光原理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仿真 - 范文中心相关推荐
- 厄米高斯光束 matlab,拉盖尔高斯光束_厄米高斯光束MATLAB仿真
<拉盖尔高斯光束_厄米高斯光束MATLAB仿真>由会员分享,可在线阅读,更多相关<拉盖尔高斯光束_厄米高斯光束MATLAB仿真(4页珍藏版)>请在人人文库网上搜索. 1.激光原 ...
- matlab 画光束等相面,一种新型贝塞尔光束器件的设计方法
1 引言 衍射是波普遍具有的性质.因为衍射效应的存在,所以即便不考虑成像系统的误差也不可能完全分辨极小物点.1987年,Durnin等[提出存在径向光强分布满足贝塞尔函数的无衍射光束,即贝塞尔光束.贝 ...
- matlab中sqp的算法原理_最优化方法及其Matlab程序设计 马昌凤
内容简介<最优化方法及其Matlab程序设计>较系统地介绍了非线性最优化问题的基本理论和算法,以及主要算法的Matlab程序设计,主要内容包括(精确或非精确)线搜索技术.最速下降法与(修正 ...
- 用matlab画单位冲激序列,实验一 基于Matlab的数字信号处理基本操作.doc
实验一 基于Matlab的数字信号处理基本操作 信号来表示,自变量必须是整数. 离散时间信号的波形绘制在MATLAB中一般用stem函数.stem函数的基本用法和plot函数一样,它绘制的波形图的每个 ...
- matlab将图片旋转的代码_我的MATLAB魔方新玩法:拼出任意图案!
更新: 添加代码链接:nkyang/MagicCube 有时间的话,会陆续把之前文章的代码都整理好了传到github上去,这样个人文章里面就不会出现代码,文章可读性更好. 我又回来更新了,在上一次的文 ...
- matlab做三次拉格朗日插值多项式_从零开始的matlab学习笔记——(24)曲线拟合...
matlab应用--求极限,求导,求积分,解方程,函数绘图,三维图像,拟合函数....更多内容尽在个人专栏:matlab学习 才发现这个数据插值的返回值不是个函数表达式,是一系列点集,不能使用poly ...
- matlab 指定区域随机游走_统计学原理与matlab——(5)正态分布
统计学原理中的matlab应用--方差,平均数,二项分布,排列组合,几何与超几何分布.正态分布.... 这一篇文章主要聊一聊matlab与正态分布那些事儿. 说正态分布之前,先区分一组概念:离散型随机 ...
- 用matlab画曲顶柱体费用数据,数值积分的matlab实现
实验10 数值积分 实验目的: 1.了解数值积分的基本原理: 2.熟练掌握数值积分的MATLAB 实现: 3.会用数值积分方法解决一些实际问题. 实验内容: 积分是数学中的一个基本概念,在实际问题中也 ...
- matlab将二值图像与原图重叠_[转载]图像处理matlab及图像融合图像镶嵌图像拼接...
在实际的对图像处理过程中,由于我们读出的图像是unit8型,而在MATLAB的矩阵运算中要求所有的运算变量为double型(双精度型).因此读出的图像数据不能直接进行相加求平均,因此必须使用一个函数将 ...
- matlab 度分秒转换成度_如何利用matlab统一处理照片亮度对比度
第一:下软件MATLAB,和插件SHINEtoolbox.安装路径最好不要有中文. 将插件复制到文件夹下见图片 注意:不用学习matlab的具体应用,会使用插件就行了,插件是已经做好的编程,仅需把插件 ...
最新文章
- HDU1203_I NEED A OFFER!【01背包】
- 2019年上海市数学建模讲座笔记(2)概率统计模型
- Nginx和uWSGI和Flask的关系
- spring 监听器 IntrospectorCleanupListener简介
- 关注CIO:IT运维如何实现“向管理要效益”(转载)
- P1886 滑动窗口(求连续区间最值的O(N)解法,单调队列)
- Selenium2之Web自动化编写API(Java)
- 多种协议数据包的结构
- linux date 常用格式,5、总结Linux常用命令使用格式,并用实例说明。例如echo、screen、date、ifconfig、export等命令...
- android textview 白色,android – AutoCompleteTextview默认情况下,颜色设置为白色
- shp格式详解(一)
- 力扣(leetcode)66.加一——c语言新手入门
- 2021 Alexa SmartHome Skill 对接(二)配置及服务对接
- dds:publish
- 如何高效建设传奇的DAO
- 1.1.2 Linux epoll详解
- git之pull与push
- 如何使用万用表测量三级管的阻值
- 23种设计模式:(二)结构型模式
- CS5518设计MIPI转LVDS转换方案/MIPI转LVDS方案芯片