一 分步光束传播方法

到目前为止,人们已经设计出传播算法,用于模拟通过真空和通过可用光线矩阵描述的简单光学系统的传播。

其中分步光束传播方法除了描述上述传播过程,还有更复杂的应用,包括:部分时间和空间相干光源、通过确定结构(如光纤)和集成光学设备的相干传播、通过随机介质(如大气湍流)的传播等。

分步光束传播方法包括:

两步传播方法:分两个步骤估算菲涅尔衍射积分,网格间隔可以通过两个传播的距离进行调整;

角频谱传播方法:使用了菲涅尔衍射积分卷积形式的一些代数运算,运算引入了一个直接设定观察面网格间隔的自由参数。

二 大气湍流

给出大气湍流的基础理论

首先,介绍了Kolmogorov对湍流的初始分析,这一理论最终产生了大气湍流折射率起伏空间功率谱模型。

然后,利用微扰理论(Rytov和Born近似方法)求解由麦克斯韦方程组的得到的波动方程,从而得到观察面光场有用的统计属性。

注:事实证明,Born近似和Rytov近似方法仅在弱湍流起伏区域或短距离传输时有效,两者的主要区别在于Born近似方法认为湍流扰动项是加性的,而Rytov近似方法认为湍流扰动性是乘性的,适用于弱到强湍流起伏区域的是广义Huygens-Fresnel衍射积分方法。

大气性质(如log振幅、相位和辐照度等)的方差、相位和光谱密度发挥两个与模拟相关的工作:

第一个作用:产生分步光束传播方法相互作用因子的随机图像;

第二个作用:在仿真湍流介质传播之后,处理观察平面场来确定大气统计性质,并与理论结果进行比较,证明仿真结果的正确性。

分层大气模型

若大气湍流是一个简单的统计模型,则有可能推导出大气湍流影响光束传播的解析结果。

然而,当需要考虑更复杂的场景时(如使用自适应光学系统),通常不能求解出修正光场统计量的收敛解。

为了数学上的简化,一种常用的技术就是将湍流处理成有限数目的分立层。这个方法常用于实验室内的解析计算、计算机模拟和湍流仿真。

每一层作为一个单位振幅的薄相位屏,表征一个非常厚的湍流体积。如果相位屏后面的厚度远远小于屏后的传播距离,则认为相位屏是薄的。

相位屏是大气相位扰动的一种实现方法,且其联合式(9.2)可计算出折射率算符的表达式,这就是如何将大气相位屏引入分步光束传播方法来仿真大气传播的方法。

1. 分层湍流理论

为从理论上将大气表征为相位屏,可以简单地把湍流曲线改写成有效结构参数项Cni^2(局部湍流强度的度量),沿传播路径位置zi和第i个相位屏对应扩展湍流平板的厚度Δzi的形式

基于上述改写,利用有效结构参数项Cni^2计算的大气相干直径r0与平面波pw或发散球面波sw(点)源,log振幅方差δΧ2积分形式可以写成离散形式

进而表示成第i层相干半径的关系式

举例说明

2.蒙特卡洛相位屏

   见下一节

Day5 Numerical simulation of optical wave propagation之通过随机介质(如大气湍流)的传播(一)的更多相关文章

  1. Day7 Numerical simulation of optical wave propagation之通过随机介质(如大气湍流)的传播(三)

    三  执行湍流仿真 基本参数设置: 光场条件:波长wvl,源平面的光场U 传播几何结构:观察面孔径尺寸D2,传播距离Dz 湍流条件:大气折射率结构常数Cn2 1. 准备工作 确定传播几何结构 (程序: ...

  2. Day6 Numerical simulation of optical wave propagation之通过随机介质(如大气湍流)的传播(二)

    2.蒙特卡洛相位屏 大气折射率变化是一个随机的过程,通过大气的光程长度也同样是随机的.因此,湍流模型仅给出统计平均值,如折射率变量的结构函数和功率谱. 建立大气相位屏的问题就是产生随机过程独立表达式的 ...

  3. Day1 Numerical simulation of optical wave propagation之标量衍射理论基本原理(一)

    <Numerical simulation of optical  wave propagation>内容 1. 介绍光波传输的基础理论.离散采样方法.基于MATLAB平台的编码实例以及具 ...

  4. Day4 Numerical simulation of optical wave propagation之数字傅里叶变换

    标量衍射理论是波动光学模拟的物理基础.这一理论基础的结果是将电磁波在真空中的传播作为线性系统进行处理. 对于单色波,系统观察平面的电场矢量是源平面电场矢量和自由空间脉冲响应的卷积. 因此,线性系统理论 ...

  5. Day3 Numerical simulation of optical wave propagation之标量衍射理论基本原理(三)

    3.标量衍射理论 光源通常不是简单地平面.球面或高斯光束波.对于更一般的情况,必须使用更老练的方法来求解标量赫姆霍兹方程,需要利用格林定理并灵活使用边界条件. 基本问题:给定源平面光场U(x1,y1) ...

  6. Day2 Numerical simulation of optical wave propagation之标量衍射理论基本原理(二)

    2.麦克斯韦方程组的简单行波解 讨论通过线性.各向同性.均匀.无色散.无限电荷和电流的电介质材料的光波传输.在这种情况下,介质具有如下属性: (1)推导获得波动方程( 由麦克斯韦方程组导出的.描述电磁 ...

  7. 【转载】PMC/PEC Boundary Conditions and Plane Wave Simulation

    原文链接 PMC/PEC Boundary Conditions and Plane Wave Simulation (FDTD) OptiFDTD now has options to use Pe ...

  8. Visualizing wave interference using FireMonkey(很美)

      Visualizing wave interference using FireMonkey By: Anders Ohlsson Abstract: This article discusses ...

  9. 标签传播算法(Label Propagation Algorithm, LPA)初探

    0. 社区划分简介 0x1:非重叠社区划分方法 在一个网络里面,每一个样本只能是属于一个社区的,那么这样的问题就称为非重叠社区划分. 在非重叠社区划分算法里面,有很多的方法: 1. 基于模块度优化的社 ...

随机推荐

  1. NLP入门(六)pyltp的介绍与使用

    pyltp的简介   语言技术平台(LTP)经过哈工大社会计算与信息检索研究中心 11 年的持续研发和推广, 是国内外最具影响力的中文处理基础平台.它提供的功能包括中文分词.词性标注.命名实体识别.依 ...

  2. Java 使用Arrays.sort排序 从大到小排列

    前言 一般情况,我们在Java中给数组排序,比起自己写个冒泡排序,更加喜欢使用Java中自带的sort方法,也就是Arrays.sort方法 但是,这个方法只会将数组从小到大排列,如果我们需要从大到小 ...

  3. BaseServlet的编写

    在BaseServlet之前,需要提及工厂factory去管理dao以及service,以及页面转发或重定向的管理 1.创建一个工厂类,以及一个资源文件,资源文件中以键值对的形式去存储key,以及对应 ...

  4. Android远程桌面助手(Build 0737)

    Android Remote Displayer and Controller Build 0737, Aug 02, 2017 新增功能: 录制MP4文件,突破了Android原生180S的限制 截 ...

  5. Xamarin 打包生成 Android apk 文件

    Visual Studio 支持 apk 发布 Xamarin.Forms项目或Xamarin.Android项目开发完成之后需要发布.比较常规的发布方式是生成 apk 文件,微软也考虑到开发者有发布 ...

  6. Android 性能优化之减少UI过度绘制

    什么是过度绘制(OverDraw) 在多层次重叠的UI结构里面,如果不可见的UI也在做绘制的操作,会导致某些像素区域被绘制了多次.这样就会浪费大量的CPU以及GPU资源.过度绘制最直观的影响就是会导致 ...

  7. Docker 镜像编排并部署SpringBoot应用

    Docker-compose是一个基于Docker的编排工具,所谓编排个人理解就是将不同的镜像通过配置,组成一个新的运行环境,官方定义是:Compose is a tool for defining ...

  8. MTK Android O1平台预置apk

    在MTK Android O1平台预置apk为可卸载时.预置到旧的路径system/vendor/operator/app会编译报错,"You cannot install files to ...

  9. Jenkins自动化部署-----持续交付【转】

    感谢之前带领过我的leader,让我能够知道什么是好的开发方法. 在很早之前就接触过敏捷开发.什么是敏捷开发,简单来说就是让软件可靠地,快速地发布出来的一种开发方法和技巧. 而敏捷开发中有许多的实践, ...

  10. c/c++ 重载运算符 ==和!=的重载

    重载运算符 ==和!=的重载 问题:假如有一个类似于vector的类,这个类只能存放string,当有2个这个类的对象时,如何比较这2个对象. 自己重载==和!= 代码(重载==,!=) #inclu ...