MATLAB 透镜成像特征曲线及分析(一)

运用matlab画出正透镜系统和负透镜系统的物象特征曲线和垂轴放大率曲线。

(均为空气中的透镜系统f=-f')

代码如下:

clear;clc
f = input('Select the focal length value you want to apply\n');%输入焦距,正值为正透镜,负值为负透镜
l = linspace(-1000,1000,2001);%物距范围
ll = f*l./(f+l);%根据高斯公式计算像距
beta = ll./l;%计算垂轴放大率
subplot(1,2,1);
plot(l,ll,'LineWidth',2,'Color',[0 0 1]);
xlabel('物距[mm]');
ylabel('像距[mm]');
title('物距像距关系特征曲线');
grid on
subplot(1,2,2);
plot(l,beta,'LineWidth',2,'Color',[1 0 0]);
xlabel('物距[mm]');
ylabel('垂轴放大率');
title('物距与垂轴放大率特征曲线');
grid on;
%f焦距  l物距  ll像距  beta垂轴放大率​

运行效果:

正透镜(输入焦距为10)

注:物距与垂轴放大率图中(0,1)处实际有意义,即物距为零时垂轴放大率为1。

由图可分析:

1.物距为二倍焦距时,像距也为二倍焦距,垂轴放大率为-1,成倒立等大实像。

2.物距趋于无穷时,像距趋于像方焦距,垂轴放大率趋于零,反映了无穷远处光轴上一点发出的光线(平行光)经过正透镜会聚于像方焦点。

3.物距距大于零时(正透镜右侧),像距大于零小于一倍焦距,说明成像始终在一倍焦距内。


 负透镜(输入焦距为-10)

 注:物距与垂轴放大率图中(0,1)处实际有意义,即物距为零时垂轴放大率为1。

 由图可分析:

1.物距小于零或大于一倍物方焦距时,像距小于零,像在负透镜左侧;物距大于零小于一倍物方焦距时,像距大于零,像在透镜右侧为实像,这就是负透镜成实像的条件。

2.虚物物距为二倍焦距时,像距也为二倍焦距,垂轴放大率为-1,成倒立等大虚像。

3.物距趋于负无穷时,像距趋于像方焦距(透镜左侧),垂轴放大率趋于零,反映了无穷远处光轴上一点发出的光线(平行光)经过负透镜反向延长线会聚于像方焦点。


以上为运用matlab研究正透镜系统和负透镜系统的物象特征曲线和垂轴放大率曲线的内容,用于辅助几何光学的学习,仅供大家参考。

当然了中间还有很多不完美的地方,比如不能表示物距为零时候的垂轴放大率等等,欢迎大家的讨论和改善的建议。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
以下是一个简单的 Matlab 代码,可以用于计算六路高斯光经过透镜聚焦后的光强分布: ```matlab % 定义六路高斯光的参数 w0 = 1; % 光斑半径 zR = pi * w0^2 / 2; % 焦深 k = 2 * pi / 1064e-9; % 波矢量 % 定义透镜的参数 f = 10e-3; % 焦距 D = 10e-3; % 孔径直径 % 定义计算区域 L = 10e-3; % 计算区域大小 N = 512; % 离散点数 x = linspace(-L/2, L/2, N); y = x; [X, Y] = meshgrid(x, y); % 计算光波复振幅 u = zeros(N); for n = 1:6 u = u + exp(-(X.^2 + Y.^2) / w0^2) .* exp(-1i * k * (X * cos((n-1)*pi/3) + Y * sin((n-1)*pi/3))); end % 计算透镜传输函数 kx = 2*pi/L * (-N/2:N/2-1); ky = kx; [KX, KY] = meshgrid(kx, ky); H = exp(-1i * pi * lambda * f * (KX.^2 + KY.^2)); % 计算透镜聚焦后的光强分布 u_f = ifft2(fft2(u) .* H); I = abs(u_f).^2; % 显示结果 figure; subplot(1,2,1); imagesc(x, y, abs(u).^2); xlabel('x (m)'); ylabel('y (m)'); title('初始光强分布'); axis square; subplot(1,2,2); imagesc(x, y, I); xlabel('x (m)'); ylabel('y (m)'); title('透镜聚焦后的光强分布'); axis square; ``` 在这个代码中,我们首先定义了六路高斯光的参数,包括光斑半径、焦深和波矢量。然后定义了透镜的参数,包括焦距和孔径直径。接着定义了计算区域的大小和离散点数,并生成了网格点坐标矩阵。然后计算了光波复振幅,并通过傅里叶变换计算了透镜传输函数。最后通过傅里叶变换和逆傅里叶变换计算了透镜聚焦后的光强分布,并将结果显示出来。 需要注意的是,这个代码只是一个简单的示例,实际的光学系统可能会更加复杂,需要根据具体情况进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值