Gauss光束在空间中的分布
Gauss光束强度的表达式为
ψ(x,y,z)=I0ω(z)exp[−r2ω2(z)]\psi(x,y,z)=\frac{I_0}{\omega(z)}\exp{[-\frac{r^2}{\omega^2(z)}]} ψ(x,y,z)=ω(z)I0exp[−ω2(z)r2]
其中,
{ω(z)=ω01+(zf)2=ω02+z2λ2π2ω02f=πω02λω0=fλπ\left\{\begin{aligned} \omega(z)=&\omega_0\sqrt{1+(\frac{z}{f})^2}\\ =&\sqrt{\omega_0^2+\frac{z^2\lambda^2}{\pi^2\omega^2_0}}\\ f=&\frac{\pi\omega_0^2}{\lambda}\\ \omega_0=&\sqrt{\frac{f\lambda}{\pi}} \end{aligned}\right. ⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧ω(z)==f=ω0=ω01+(fz)2ω02+π2ω02z2λ2λπω02πfλ
如图所示
左上图和左下图表示激光传输过程中的其束腰半径的变化情况;右图则表示高斯光束某一横截面处激光的能量分布。
绘制代码如下
import matplotlib.pyplot as plt
import numpy as np
def setLabel(ax,*args):ax.set_xlabel(args[0])ax.set_ylabel(args[1])if len(args)==3:ax.set_zlabel(args[2])def drawGauss(w0=1,dWave=1.064):# 轴向坐标z = np.linspace(-10,10,1000).reshape(1000,1)# z处光斑半径w = np.sqrt(w0**2+z**2*dWave**2/np.pi**2/w0**2)theta = np.linspace(0,np.pi*2,150).reshape(1,150)x = w*np.cos(theta)y = w*np.sin(theta)fig = plt.figure()# 三维的高斯光束等功率密度面变化图ax1 = fig.add_subplot(221,projection='3d')ax1.plot_surface(z,x,y)#,cmap=plt.get_cmap('rainbow'))ax1.set_title("waist shape changed by propagation")setLabel(ax1,"z","x","y")# 二维的高斯光束半径变化图ax3 = fig.add_subplot(223)ax3.plot(z,w,linewidth=1)ax3.plot(z,-w,linewidth=0.2)ax3.plot([z[0],z[-1]],[0,0],linewidth=0.5,linestyle=":")ax3.set_title("waist value changed by propagation")setLabel(ax3,"z","w")# Gauss光束在束腰处的切片X,Y = np.meshgrid(np.linspace(-5,5,100),np.linspace(-5,5,100))Psi = np.exp(-(X**2+Y**2)/w0**2)/w0ax2 = fig.add_subplot(222,projection='3d')ax2.plot_surface(X,Y,Psi)ax2.set_title("Intensity distribution on waist0")setLabel(ax2,"x","y","Instensity")# Gauss光束在束腰处的径向切片r = np.linspace(-5,5,200)Psi = np.exp(-r**2/w0**2)/w0ax4 = fig.add_subplot(224)ax4.plot(r,Psi)ax4.set_title("Intensity distribution on waist0")setLabel(ax4,"r","Instensity")plt.show()
如果沿着z轴方向,在不同的位置处对Gauss光束进行切片处理,则不同位置处径向功率分布如图所示
实现代码如下
import matplotlib.animation as animation
def GaussGif1d(w0=1,dWave=1.064):zAxis = np.arange(100)# 轴向坐标z = np.linspace(0,10,100)# z处的束腰半径w = np.sqrt(w0**2+z**2*dWave**2/np.pi**2/w0**2)x = np.linspace(-10,10,500)fig = plt.figure()ax = fig.gca(xlim=(-5,5),ylim=(0,1))ax.grid()line, = ax.plot([],[])time_text = ax.text(0.1,0.9,'',transform=ax.transAxes)# 初始化图像def init():line.set_data([],[])time_text.set_text("")return line, time_text# 图像迭代def animate(i):wi = w[i]Psi = np.exp(-x**2/wi**2)/wiline.set_data(x,Psi)time_text.set_text("z="+str(z[i]))return line, time_textani = animation.FuncAnimation(fig, animate, zAxis,interval=200, init_func=init)ani.save('gauss.gif',writer='imagemagick')plt.show()
Gauss光束在空间中的分布相关推荐
- 【转】程序在内存中的分布
前些天学习到了程序在虚拟内存中分布的一些知识点,结合在网上查阅的一些资料,整理一下知识点.本博客参考博主 hackbuteer1的<程序在内存中的分布>这篇文章. v 在现代的操作系统中, ...
- FedDG:在连续频率空间中通过情景学习进行医学图像分割的联合域泛化
摘要 论文地址:https://arxiv.org/pdf/2103.06030.pdf 联邦学习使分布式医疗机构可以共同学习具有隐私保护功能的共享预测模型.在进行临床部署时,如果将联合学习中训练 ...
- 使用脑电图慢皮层电位重建3D空间中的手,肘和肩的实际和想象的轨迹
导读 从神经活动中解码想象运动的运动学的能力对于开发可以帮助行动不便的人的假肢设备至关重要.当前采用脑电图(EEG)等无创记录方法解码实际和想象的手运动轨迹来控制神经运动假体,通常通过应用多维线性回归 ...
- 以下linux进程内存空间中按低地址,Linux 内核开发 - 进程空间
1.1 虚拟内存 Linux 的系统.假设每一个任务都独立的占用内存,则实际的物理内存将非常快消耗殆尽.实际上对于前台正在执行的任务来说,所须要要的内存并不多,非常多任务基本不须要执行,也就没有必要一 ...
- Computer Science Theory for the Information Age-3: 高维空间中的高斯分布和随机投影
Computer Science Theory for the Information Age-3: 高维空间中的高斯分布和随机投影 高维空间中的高斯分布和随机投影 (一)在高维球体表面产生均匀分布点 ...
- 当前最好的非深度迁移学习方法:流形空间下的分布对齐
作者丨王晋东 学校丨中国科学院计算技术研究所博士生 研究方向丨迁移学习.机器学习 本文即将发表在国际顶级会议 ACM Multimedia conference 2018 上,被评为 ORAL,而且是 ...
- c语言代码存放的区域 堆栈,C语言中内存分布及程序运行中(BSS段、数据段、代码段、堆栈)...
BSS段:(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域.BSS是英文Block Started by Symbol的简称.BSS段属于静态内存分配. 数据段 :数据 ...
- 空间中两随机向量间夹角的概率密度分布(越高维,越趋向于正交)
设空间维数为n, 则此空间中任意两个向量之间的夹角 θ 服从一定的分布, 其概率密度函数如下: 对二维平面, n=2,p(θ)=1/π, 对三维空间, n=3,p(θ)=1/2*sinθ 对于我们熟悉 ...
- 数字空间中的二值形态学
数字空间中的二值形态学 Binary Morphology in Digital Space Herry Herry 摘要:数学形态学作为图象处理与分析的基本理论和方法在视觉检测.生物医学图象分析.机 ...
- 从空间中理解线性代数
线性代数-从空间中理解 总结 向量 线性组合 空间的基 Basis 张成的空间 Span 线性相关和线性无关 向量空间的一组基 变换 线性变换 数值描述线性变换 复合变换 行列式 矩阵的用途 线性方程 ...
最新文章
- 传Exchange 15将于今年9月发布
- php json.parse,PHP JSON头导致JSON.parse出错(使用jQuery)
- maven package和install
- iptables 配置后连接不上数据库_Linux服务器配置-VSFTP服务配置(三)
- idea中二级包为什么创建不了_IDEA通过Maven打包JavaFX工程(OpenJFX11)
- 赠书 | SkyWalking 观测 Service Mesh 技术大公开
- 《史无前例!编程语言python斩获最有发展第一与排行榜第三!》深入 Python 流程控制
- oracle查看表空间里具体一张表的大小
- java批量实现1对1关系的自动匹配_杂谈Java内存Webshell的攻与防
- CVPR 2021|人脸属性风格解耦
- 一个较好的基础的数据库连接池知识
- U盘文件突然变成html文件,U盘里面的文件跟文件夹突然乱码了怎么办
- mysql利用二进制日志binlog恢复误删除操作
- 用python写一个专属字典生成器
- 瑞星发布可防未知勒索病毒工具 将逐月公布更多漏洞
- oracle11g在linux7的静默安装脚本
- 软件架构设计---软件架构视图
- 写尽自己一个人的孤独,却写不出心里的寂寞
- ## 7-7 大炮打蚊子 (15 分)
- 单商户商城系统功能拆解26—营销中心—限时秒杀