菲涅尔圆孔衍射matlab完整程序分享

news2024/11/11 5:15:58

       根据惠更斯 - 菲涅耳原理,光的衍射是光束内部的次波之间的相干叠加,衍射光波场的光振动符合菲涅耳积分公式。但直接运用菲涅耳积分公式计算衍射光场是很困难的。对于夫琅和费衍射(远场衍射),在光源和接收屏距离衍射屏均为无穷远的情况下,通过较为简单的积分运算即可得到较精确的衍射光振动和光强分布。而对于菲涅耳衍射(近场衍射),即光源和接收屏距离衍射屏至少一个为有限远,只能通过近似方法(如半波带法)半定量地得出轴上一点的衍射光强。当轴上点对应的半波带数 k = 奇数时,则该点为亮点,若半波带数 k = 偶数时,则该点为暗点。

       轴外光强分布的定量分析难度很大,目前未见系统的研究。MATLAB 软件具有强大的计算和可视化功能,可以较为精确地模拟光学实验的结果,可避开复杂的光学理论推导以及条件苛刻的光学实验测量,使复杂、抽象的光学现象变得具体、直观。

 完整代码:

clc;
clear;
close all;
warning off;
addpath(genpath(pwd));

step = 350;
lamda = 500e-6; %changed
k = 2*pi/lamda;
z = 12.5; %changed 
%确定衍射屏
N = 500; %圆屏采样点数
r = 0.25; %changed
I = zeros(N, N);
[m, n] = meshgrid(linspace(-N/step, N/step, N));
D = (m.^2+n.^2).^(1/2);
i = find(D <= r);
I(i) = 1;  %空半径范围内透射系数为1
q = exp(j*k*(m.^2+n.^2)/2/z);
subplot(2,2,1); %圆孔图像
imshow(I);
%imagesc(I) %衍射屏图像
%colormap([0 0 0;1 1 1]) %黑白区分

% I = I.*q;
L = 500;
M = 500; %取相同点数用于矩阵运算
[x, y] = meshgrid(linspace(-L/step, L/step, M));
h = exp(j*k*z)*exp((j*k*(x.^2+y.^2))/(2*z))/(j*lamda*z); %接收屏
%H = fftshift(fft2(h));
B = fftshift(fft2(I.*q));
G = h.*B; %
% U = fftshift(ifft2(G));
%Br = (abs(G)/max(abs(G))); %归一化
C = abs(G);
subplot(2,2,2);imagesc(C);
axis image;
colormap(hot);
% %figure;
subplot(2,2,3);mesh(x,y,abs(G));
subplot(2,2,4);
axis image;
d = C(251,:);
d = d/max(d);
plot(d);

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

实战:k8s证书续签-2023.6.19(测试成功)

实战&#xff1a;k8s证书续签-2023.6.19(测试成功) 目录 推荐文章 https://www.yuque.com/xyy-onlyone/aevhhf?# 《玩转Typora》 1、前言 k8s集群核心的证书有2套&#xff0c;还有1套非核心的(即使出问题也问题不大)。 ⚠️ 如果是kubeadm搭建的k8s集群&#xff0c;其有效期为…

chatgpt赋能python:Python烧录单片机:快速的开发工具

Python烧录单片机&#xff1a;快速的开发工具 简介 Python是一种高级的编程语言&#xff0c;被广泛应用于各种领域&#xff0c;包括机器学习、数据分析和物联网等领域。Python的易用性和简洁性已经成为其成功的关键因素之一。Python也能在烧录单片机时提供极大的方便性和灵活…

chatgpt赋能python:用Python自动爬取链接的内容——提升SEO效果的利器

用Python自动爬取链接的内容——提升SEO效果的利器 在当今数字化时代&#xff0c;SEO&#xff08;搜索引擎优化&#xff09;对于任何一个网站来说都至关重要。一种有用的SEO策略就是频繁地更新网站内容&#xff0c;吸引更多的访问者和搜索引擎爬虫。而最快捷的方法就是自动爬取…

chatgpt赋能python:Python爬虫解密:如何快速抓取网站数据

Python爬虫解密&#xff1a;如何快速抓取网站数据 在当今信息时代&#xff0c;人们越来越依赖互联网获取信息。不同的网站提供了大量数据&#xff0c;但是手动去抓取这些数据十分困难&#xff0c;效率也很低。Python爬虫技术是解决这一问题的有效工具之一&#xff0c;它可以帮…

使用npm安装pnpm包管理器

使用npm安装pnpm包管理器 一、安装 使用 npm install pnpm -g 命令安装pnpm npm install pnpm -g安装完成之后&#xff0c;使用pnpm -v命令查询是否成功安装&#xff0c;出现版本号即可 二、设置源 1.先查看源是否为淘宝的源 pnpm config get registry 2.设置源命令 pn…

TS:pip安装python库报ssl错误-2023.6.17(已解决)

2023.6.17-TS-pip安装python库报ssl错误(已解决) 目录 文章目录 2023.6.17-TS-pip安装python库报ssl错误(已解决)目录报错现象报错环境测试过程换其他源还是报错&#xff08;失败&#xff09;百度&#xff1a;替换为豆瓣源并加--trusted-host参数(成功) 参考文章关于我最后 报错…

一文理解多线程机制和多线程的优缺点

一文理解多线程机制 前言&#xff1a;多线程的优缺点。一、什么是多线程1.1、多线程的概念和基本原理1.2、多线程与单线程的区别 二、多线程的应用场景三、C 中的多线程3.1、C11 新增加的 thread 库3.2、C 线程同步机制&#xff08;mutex、condition_variable&#xff09; 四.、…

【Openvino01】Ubuntu安装inter的openvino2022.1以及遇到的各种错误解决

交代一下今天的文章背景&#xff1a; 于最近要使用inter的一款名为Intel Movidius™ Myriad™ X 的加速卡去实现对算法模型的加速推理能力&#xff0c;由于是就得第一步安装openvino&#xff0c;然后再使用卡去验证openvino是否安装ok&#xff0c;卡是否真的存在推理加速的能力…

python pytorch教程-带你从入门到实战(代码全部可运行)

python pytorch教程-带你从入门到实战&#xff08;代码全部可运行&#xff09; 其实这个教程以前博主写过一次&#xff0c;不过&#xff0c;这回再写一次&#xff0c;打算内容写的多一点&#xff0c;由浅入深&#xff0c;然后加入一些实践案例。 下面是我们的内容目录&#x…

2022(一等奖)D1073基于Himawari-8卫星遥感的黑龙江省地表水时空格局研究

作品介绍 1 项目简介 为探究黑龙江省地表水空间格局变化&#xff0c;本项目以黑龙江省为例&#xff0c;基于高时相Himawari-8号卫星数据&#xff0c;通过影像预处理、特征指数选择、自动阈值分类、集成学习和随机森林分类等步骤&#xff0c;融合IDL二次开发与GIS空间分析&…

chatgpt赋能python:Python求绝对值的三种方法

Python 求绝对值的三种方法 Python是一门面向对象、解释型、动态类型的高级编程语言&#xff0c;它被广泛应用于各种领域&#xff0c;特别是科学计算、数据分析、机器学习等领域。在Python中&#xff0c;求绝对值是一个常见的数学操作。本文将介绍Python求绝对值的三种方法&am…

Redis原理 - Redis网络模型

原文首更地址&#xff0c;阅读效果更佳&#xff01; Redis原理 - Redis网络模型 | CoderMast编程桅杆https://www.codermast.com/database/redis/redis-netword-model.html 思考 Redis 到底是单线程还是多线程&#xff1f; 如果仅仅针对 Redis 的核心业务部分&#xff08;命…

Vicuna-13B云服务器部署

Vicuna概述 Vicuna由一群主要来自加州大学伯克利分校的研究人员推出&#xff0c;仍然是熟悉的配方、熟悉的味道。Vicuna同样是基于Meta开源的LLaMA大模型微调而来&#xff0c;它的训练数据是来自ShareGPT上的7万多条数据&#xff08;ShareGPT一个分享ChatGPT对话的谷歌插件&am…

Geocomputation (3)Spatial data operations

Geocomputation &#xff08;3&#xff09;Spatial data operations 来源&#xff1a;https://github.com/geocompx/geocompy 1.准备 #| echo: false import pandas as pd import matplotlib.pyplot as plt pd.set_option("display.max_rows", 4) pd.set_option(&…

文件搜索引擎的搭建Elasticsearch+Fscrawler+SearchUI+Git+Nginx

文章目录 前言如何搭建文档搜索引擎服务器架构环境准备一、搭建Elasticsearch二、搭建Fscrawler三、搭建SearchUI服务四、定时拉取Git文件五、搭建Nginx文件下载服务器 前言 搭建一套文档搜索引擎。有时候&#xff0c;我们有一批文档&#xff0c;需要在这批文档中查找想要的内…

【从零开始学习JAVA | 第十篇】StringBuild介绍

前言&#xff1a; 本文会对StringBuild类进行详细的介绍&#xff0c;他相比较于String&#xff0c;在进行字符串拼接的时候大大提高了效率&#xff0c;是一个 很实用的工具。 StringBulider&#xff1a; StringBuilder是Java中的一个类&#xff0c;用于在一次创建和初始化后&a…

Java中反射机制,枚举,Lambda的使用

目录 一、反射机制 1、含义 2、作用 3、※反射相关的几个类 3.1、Class类&#xff08;Class对象是反射的基石&#xff09; 3.2、Class类中相关的方法 3.2.1 (※重要)常用获得类相关的方法 3.2.2 (※重要)常用获得类中属性、变量Field相关的方法 3.2.3 获得类中注解相…

详细设计报告

聊天系统设计与实现详细设计报告 1.编写目的 详细设计的主要任务是概要设计方案做完善和细化,本阶段主要对聊天应用系统进行过程化的描述,详细确定每一个功能模块的实现方式、执行流程,为程序员编码提供依据。设计用户界面。 2.总体方案确认 (1)系统总体结构确认 该项目管理…

Redis原理 - 通信协议RESP

原文首更地址&#xff0c;阅读效果更佳&#xff01; Redis原理 - 通信协议RESP | CoderMast编程桅杆https://www.codermast.com/database/redis/redis-communication-protocol.html RESP协议 Redis 是一个 CS 架构的软件&#xff0c;通信一般分两步&#xff08;不包括pipeli…

计算机组成与设计Patterson Hennessy 笔记_1 计算机概要与技术

Patterson & Hennessy 计算机概要与技术 计算机应用包括&#xff1a;个人计算机PC&#xff0c;服务器&#xff0c;嵌入式计算机。后PC时代出现了个人移动设备PMD&#xff08;手机&#xff09;&#xff0c;云计算&#xff08;在网络上提供服务的大服务器集群&#xff0c;供…