MATLAB仿真:基于GS算法的经大气湍流畸变涡旋光束波前校正仿真

GS算法流程

GS(Gerchberg-Saxton)相位恢复算法是一种基于傅里叶变换的最速下降算法,可以通过输出平面和输入平面上光束的光强分布计算出光束的相位分布。图1是基于GS算法的涡旋光束畸变波前校正系统框图,在该框图中,已知输入平面涡旋光束振幅和相位以及输出平面的涡旋光束振幅,经过算法多次迭代运算并满足误差需求后可以得到需要的校正相位信息,进而实现校正效果。

图1:GS算法流程[1]

GS算法恢复涡旋光束畸变波前的具体流程如下[2]:

  1. 将LG涡旋光束作为输入平面初始参考光,计算出参考光的振幅和相位。
  2. 将初始参考光束进行快速傅里叶变换,得到其幅度谱A0(kx,ky)和相位谱Φ0(kx,ky)。
  3. 使用畸变光束的幅度谱替换A0(kx,ky),将替换后的幅度谱与相位谱Φ0(kx,ky)组合成新的函数,再通过傅里叶逆变换即可得到光束的空域幅度a0(x,y)和相位H0(x,y)。
  4. 用参考光的振幅代替a0(x,y),并与H0(x,y)组合成新函数,将新的函数做快速傅里叶变换后得到新的幅度谱A1(kx,ky)和相位谱Φ1(kx,ky)。将A1(kx,ky)与畸变涡旋光束的幅度谱做差,若满足误差则输出H(x,y),否则就使用新的幅度谱和相位谱进行下一轮的计算。
  5. 得出预估相位与理想相位差距,对畸变相位进行校正。

仿真结果展示

文章中所用的光束为拉盖尔高斯涡旋光束,光束经大气湍流MATLAB仿真详见之前的文章:MATLAB仿真:涡旋光束经大气湍流后的光强及相位分布基于蒙特卡洛相位屏法

仿真参数:波长lambda=632.8e-9m;波失k = 2 * pi / lambda;束腰w=5e-3;拓扑荷l=3;外尺度L0=1.0m;内尺度l0=1.0e-3;传播距离z=1000m;湍流屏张数n=10

如图2展示了不同大气湍流下迭代次数为500轮的GS算法校正结果。由图可以看出GS算法可以有效校正大气湍流带来的光束畸变。图3展示了在不同迭代次数较强湍流中涡旋光束的校正结果。可以看到随着迭代次数增加,校正效果越好,能量越集中。

图2不同大气湍流下迭代次数为500轮的GS算法校正结果。

图3:不同迭代次数较强湍流中涡旋光束的GS校正结果。

参考文献:

  1. 《大气湍流下涡旋光束波前校正及模式检测研究》
  2. 《液晶相控阵波前相位校正算法研究》

MATLAB部分仿真代码:

喜欢的话给小编点个关注点个赞

有任何问题可以在评论区留言

更多完整代码进T店博士生牛马赚点小钱
clc;clear;close;
%% 坐标
N=512;
delta1=0.6/N;
[x,y]=meshgrid((-N/2:1:N/2-1).*delta1);
[phi,r1]=cart2pol(x,y);
deltaf1=1/(N*delta1);
%% 光束参数
lambda=632.8e-9;%m
k = 2 * pi / lambda;
w=5e-3;
l=3;
%% 模拟测量面经过湍流的LG光束光强
Cn2=1.0e-13;
L0=1.0;
l0=1.0e-3;
z=1000;
n=10;
dz=z/n;
r0=(0.423 * k^2 * Cn2 *dz) .^(-3/5);
E1= (sqrt(r1.^2)./w).^abs(l).*exp(-(r1.^2)./(w.^2)).*exp(1i.*l.*phi);
%% 初始光场假定未经过湍流的自由空间传播光强
E0= (sqrt(r1.^2)./w).^abs(l).*exp(-(r1.^2)./(w.^2)).*exp(1i.*l.*phi);
[xn, yn, G0]=ang_spec_prop(E0,lambda,delta1,delta1,z);
%gs循环
max_iter = 1000;%迭代次数
iter = 0;
epsilon = 1e-3;
ER = inf;

figure(1)
subplot(2,3,1)
imagesc(I_vac);axis square;title('未畸变光强','FontSize',15);axis off
subplot(2,3,2 )
imagesc(I_tur);axis square;title('畸变光强','FontSize',15);axis off
subplot(2,3,3 )
imagesc(I_correct);axis square;title('校正后光强','FontSize',15);axis off
subplot(2,3,4 )
imagesc(p0);axis square ; title('未畸变相位','FontSize',15);axis off
subplot(2,3,5 )
imagesc(p12);axis square;title('畸变相位','FontSize',15);axis off
subplot(2,3,6 )
imagesc(pcor);axis square;title('校正后的相位','FontSize',15);axis off

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/949356.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言笔记之`char*`、`const char*` 和 `char[]`辨析

C语言笔记之char*、const char* 和 char[]辨析 code review! 参考笔记 1.C语言笔记之char*、const char* 和 char[]辨析 2.C++笔记之int、size_t、uint8_t、unsigned char*区别 3.C++之char和string字符串类探究 4.C++笔记之字节数组的处理 5.C++笔记之如何给 const char* 类型…

十种基础排序算法(C语言实现,带源码)(有具体排序例子,适合学习理解)

学习了十种常见的排序方法,此文章针对所学的排序方法进行整理(通过C语言完成排序)。 参考内容: https://blog.csdn.net/mwj327720862/article/details/80498455 https://www.runoob.com/w3cnote/ten-sorting-algorithm.html 1. 冒…

Timer、Ticker使用及其注意事项

Timer、Ticker使用及其注意事项 在刚开始学习golang语言的时候就听说Timer、Ticker的使用要尤其注意,很容易出现问题,这次就来一探究竟。 本文主要脉络: 介绍定时器体系,并介绍常用使用方式和错误使用方式源码解读 timer、tic…

密码学科普

1 信息传输中的安全隐患 1. 窃听 解决方案:明文加密,X只能窃听到密文 2. 假冒 解决方案:消息认证码或者数字签名 3. 篡改 解决方案:消息认证码或者数字签名 4. 事后否认 解决方案:数字签名 2 对称加密/非对称加密 1…

MMPose关键点检测实践(一)

一,安装环境 这一步,需根据自己的硬件环境,按照以下文档安装即可,最大的变数就是不同的硬件,对应的软件版本不一样,这个因人而异,没有统一版本。mmpose安装说明: https://mmpose.r…

指针 const 的组合

1、首先来了解一下常量 const int num 5; 那么num的值是5, num的值不可修改 2、来了解一下指针 int value 5; int* p &value; 我喜欢吧指针和类型放一起,来强调p是一个指针类型, 而赋值的时候就得赋值一个int类型的地址…

Unity-Mirror网络框架从入门到精通之Attributes属性介绍

前言 在现代游戏开发中,网络功能日益成为提升游戏体验的关键组成部分。Mirror是一个用于Unity的开源网络框架,专为多人游戏开发设计。它使得开发者能够轻松实现网络连接、数据同步和游戏状态管理。本文将深入介绍Mirror的基本概念、如何与其他网络框架进…

【大数据】(选修)实验4 安装熟悉HBase数据库并实践

实验4 安装熟悉HBase数据库并实践 1、实验目的 (1)理解HBase在Hadoop体系结构中的角色; (2)熟练使用HBase操作常用的Shell命令; (3)熟悉HBase操作常用的Java API。 2、实验平台 操作系统:Linux Hadoop版本:2.6.0或以上版本 HBase版本:1.1.2或以上版本 JDK版…

VVenC 编码器源码结构与接口函数介绍

VVenC VVenC(Fraunhofer Versatile Video Encoder)是由德国弗劳恩霍夫海因里希研究所(Fraunhofer Heinrich Hertz Institute, HHI)开发的一个开源的高效视频编码器。它实现了最新的视频编码标准——Versatile Video Coding (VVC)…

Nginx与frp结合实现局域网和公网的双重https服务

背景: 因为局域网内架设了 tiddlywiki、 Nextcloud 等服务,同时也把公司的网站架设在了本地,为了实现局域网直接在局域网内访问,而外部访问通过frps服务器作为反向代理的目的,才有此内容。 实现的效果如下图琐事 不喜欢…

PDFelement 特别版

Wondershare PDFelement Pro 是一款非常强大的PDF编辑软件,它允许用户轻松地编辑、转换、创建和管理PDF文件。这个中文特别版的软件具有许多令人印象深刻的功能,PDFelement Pro 提供了丰富的编辑功能,可以帮助用户直接在PDF文件中添加、删除、…

SPSS实现中介效应与调节效应

1. 中介效应 SPSS 实现 本例研究的自变量(X) “工作不被认同”;中介变量(M)为“焦虑”,因变量(Y)为“工作绩效”。探讨焦虑是否在工作不被认同与工作绩效间的作用。 (2&…

Spring 复习笔记

文章目录 Spring IoC / DISpring IoC / DI 核心概念Spring 组件管理概念Spring IoC / DI 概念Spring Ioc 容器具体接口和实现类Spring Ioc 的管理方式 基于 XML 方式管理 BeanSpring IoC/ / DI 实现步骤第一步:导入依赖配置元数据第二步:实例化 IoC 容器…

免费GEMINI模型使用及API调用

一、概述 谷歌最新发布的Gemini 2.0 FLASH模型为AI应用带来了新的可能性。该模型分为两个版本:gemini-2.0-flash-exp 和 gemini-2.0-flash-thinking-exp-1219。这两个模型目前限时免费使用,用户可以通过智匠MindCraft客户端或小程序直接体验,…

探索 ES6 Set:用法与实战

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

《探秘计算机视觉与深度学习:开启智能视觉新时代》

《探秘计算机视觉与深度学习:开启智能视觉新时代》 一、追溯起源:从萌芽到崭露头角二、核心技术:解锁智能视觉的密码(一)卷积神经网络(CNN):图像识别的利器(二&#xff0…

HTML+CSS+JS制作高仿小米官网网站(内附源码,含6个页面)

一、作品介绍 HTMLCSSJS制作一个高仿小米官网网站,包含首页、商品详情页、确认订单页、订单支付页、收货地址管理页、新增收获地址页等6个静态页面。其中每个页面都包含一个导航栏、一个主要区域和一个底部区域。 二、页面结构 1. 顶部导航栏 包含Logo、主导航菜…

ssl证书免费申请指南!一行命令,一分钟搞定SSL证书自动续期。

一行命令,一分钟轻松搞定SSL证书自动续期。 快速开始 ​一行命令,一分钟轻松搞定SSL证书自动续期。 适合nginx配置过SSL证书的用户,如果是第一次配置SSL证书,请参考手把手教程 一、安装httpsok 登陆PC控制台 👉 &…

cat命令详解

cat 是 Linux/Unix 中的一个非常常用的命令,主要用于 连接 文件并显示文件内容。它的名称来源于 concatenate(连接),不仅可以查看文件内容,还能将多个文件合并为一个文件,或用作其他数据流操作。 以下是对 …

【Linux】Linux命令

目录 ​编辑 系统维护命令 man man:查看 man 手册 sudo passwd 用户名:修改用户密码 su:切换用户 echo ”输出内容“:向终端输出内容,默认换行 date查看当前系统的日期 clear:清屏 df -Th /df -h&…