【光学】基于GS算法实现高斯光转换成高阶高斯光,一阶空心高斯光,贝塞尔高斯光附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测 雷达通信  无线传感器

信号处理 图像处理 路径规划 元胞自动机 无人机

⛄ 内容介绍

高阶贝塞尔-高斯(Bessel-Gauss)光束在一定条件下呈现"无衍射"特性,是一种具有广阔应用前景的空心光束.

⛄ 部分代码

function [U1]=frt(U,lambda,a,z)

%              U:        入射波前

%              lambda:   波长

%              a:        输入面图像的宽度

%              z:       输入面到输出面的距离

%              U1:       输出光场分布

k=2*pi/lambda;  %波矢

[M,N]  = size(U);

pix    = a;       %空域的采样间隔;

A      = fftshift(fft2(fftshift(U)));

deltaf = 1/(M*pix);                         % 频域的采样间隔

FX     =deltaf*(-M/2:M/2-1);                % 观察平面X轴方向的坐标

FY     = deltaf*(-N/2:N/2-1);               % 观察平面Y轴方向的坐标

[fx, fy]=meshgrid(FX,FY);                   % 观察平面的二维坐标

H=exp(1i*k*z*(1-(lambda*lambda*(fx.*fx+fy.*fy))).^(0.5)); %传递函数 

A0=(A.*H');     %观察平面的角谱

U1=ifftshift(ifft2(ifftshift(A0)));   %入射平面光场分布

⛄ 运行结果

⛄ 参考文献

[1]靳李丽, 朱艳英, 魏勇,等. 高阶Bessel-Gauss光束的产生方法[J]. 激光与红外, 2012, 42(3):7.

❤️ 关注我领取海量matlab电子书和数学建模资料

❤️部分理论引用网络文献,若有侵权联系博主删除

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是一个MATLAB环境下编写高斯贝塞尔-轨道角动量的编解码代码的示例: 首先,我们需要定义一些参数。例如,我们可以选择使用高斯-贝塞尔来传输信息。高斯-贝塞尔是一种横向模式具有平面波前的,其电场强度可以用以下公式表示: E(r,theta,z) = sqrt(2/pi)*E0*w0/w(z)*exp(-(r/w(z))^2)*exp(-i*k*z)*exp(i*l*theta)*exp(-i*(2*l+1)*tan^-1(z/zr)) 其中,E0是初始振幅,w0是束腰半径,w(z)是z处横向位置r的束半径,k是波矢,zr是瑞利范围,l是轨道角动量量子数,r是距离,theta是极角,z是纵向位置。 在MATLAB中,我们可以通过定义这些参数为变量来描述高斯-贝塞尔的电场强度。 接下来,我们可以编写编码器函数。编码器函数将要传输的信息编码到高斯-贝塞尔的轨道角动量上。例如,我们可以将信息转换为二进制字符串,并将其转换为轨道角动量的量子数,从而改变束的极角。这里是一个简单的编码器函数示例: function [l_out,theta_out] = encoder(info) % Convert info to binary string info_bin = dec2bin(info); % Convert binary string to quantized orbital angular momentum l_out = bin2dec(info_bin); % Set angle to the quantized orbital angular momentum theta_out = l_out*pi/180; end 在上面的编码器函数中,我们首先将要传输的信息转换为二进制字符串,然后将其转换为轨道角动量的量子数l_out。最后,我们将l_out转换为极角theta_out。 最后,我们可以编写解码器函数。解码器函数将从束中检测到的轨道角动量转换为传输的信息。例如,我们可以通过将轨道角动量的量子数转换为二进制字符串来恢复原始信息。这里是一个简单的解码器函数示例: function info_out = decoder(l_in) % Convert quantized orbital angular momentum to binary string info_bin = dec2bin(l_in); % Convert binary string to info info_out = bin2dec(info_bin); end 在上面的解码器函数中,我们首先将检测到的轨道角动量转换为轨道角动量的量子数l_in,然后将l_in转换为二进制字符串,并最终将其转换为原始信息info_out。 通过这些函数,我们可以将信息编码到高斯-贝塞尔的轨道角动量中,并从
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值