weibinv matlab,利用MATLAB进行夫琅和费衍射
我已经发过相关的帖子,是我以前做过的课程论文。
近来看见有很多人回帖说需要程序,故而总结一下方法和共享程序:通过MATLAB软件编程实现夫琅和费衍射的方法:(1)用衍射积分(2)傅立叶变换一、衍射积分
相关程序如下:
1.单缝衍射clear
lamba=500e-9;%波长
a=1e-3;D=1;
ym=3*lamba*D/a;%屏幕上y的范围
n=51;%屏幕上的点数
ys=linspace(-ym,ym,n);
n=51;%屏幕上的点数
yp=linspace(0,a,n);
fori=1:n
sinphi=ys(i)/D;
alpha=pi*yp*sinphi/lamba;
sumcos=sum(cos(alpha));
sumsin=sum(sin(alpha));
B(i,:)=(sumcos^2+sumsin^2)/n^2;
end
N=256;%确定灰度的等级
Br=(B/max(B))*N;
subplot(1,2,1)
image(ym,ys,Br);
colormap(gray(N));%色调处理
subplot(1,2,2)
plot(B,ys,'k');
2.多缝衍射
clear
lamda=500e-9; %波长
N=2; %缝数,可以随意更改变换
a=2e-4;D=5;d=5*a;
ym=2*lamda*D/a;xs=ym;
n=1001;
ys=linspace(-ym,ym,n);
for i=1:n
sinphi=ys(i)/D;
alpha=pi*a*sinphi/lamda;
beta=pi*d*sinphi/lamda;
B(i,:)=(sin(alpha)./alpha).^2.*(sin(N*beta)./sin(beta)).^2;
B1=B/max(B);
end
NC=256; %确定灰度的等级
Br=(B/max(B))*NC;
subplot(1,2,1)
image(xs,ys,Br);
colormap(gray(NC)); %色调处理
subplot(1,2,2)
plot(B1,ys,'k');
3.矩孔衍射
clear
lamda=500e-9;
a=1e-3;
b=1e-3;
f=1;
m=500;
ym=8000*lamda*f;
ys=linspace(-ym,ym,m);
xs=ys;
n=255;
for i=1:m
sinth1=xs(i)/sqrt(xs(i)^2+f^2);
sinth2=ys./sqrt(ys.^2+f^2);
angleA=pi*a*sinth1/lamda;
angleB=pi*b*sinth2./lamda;
B(:,i)=(sin(angleA).^2.*sin(angleB).^2.*5000./(angleA.^2.*angleB.^2));
end
subplot(1,2,1)
image(xs,ys,B)
colormap(gray(n))
subplot(1,2,2)
plot(B(m/2,:),ys,'k')
4.正弦光栅
clear all
xm=10*pi;ys=xm;
xs=linspace(-xm,xm,500);
B=cos(xs)+1;
N=255;
Br=B/2*N;
image(xs,ys,Br);
colormap(gray(N));
二、傅里叶变换
(1)基本思想:
在傅立叶变换光学中夫琅和费衍射场的强度分布就等于屏函数的功率谱。因此我们可以直接将光屏进行傅立叶变换,再处理得到衍射图样。
(2)具体操作:首先,物体图像的生成:(1)直接由矩阵运算生成(2)也可利用Windows下的画图工具,生成一幅黑白图像。其次,并调用命令函数imread()输入图像,输入的图像是一个巨大的二维矩阵,利用MATLAB函数库中的fft2()命令对该矩阵进行二位离散傅立叶变换,得到图像的频谱,该频谱是一个复数矩阵,然后用取模函数abs()对该复数矩阵取模,得到振幅谱矩阵,利用函数fftshift()对取模后的矩阵进行频谱位移,这是因为变换后的二维矩阵的直流分量位于图像的周边角,该函数交换矩阵的1、3象限和2、4象限,使直流分量移到频谱中心,从而使FFT频谱可视效果与实际图像相吻合。最后利用imshow()函数将图像显示出来。
***具体图像参考:https://www.ilovematlab.cn/thread-25982-1-1.html
基本的程序:
clear
a=imread('***');%你的图像的位置或直接编写孔生成
grid on
figure(1)
imshow(a,[])
afft=fft2(a);
aabs=abs(afft);
aabss=fftshift(aabs);
figure(2)
imshow(aabss,[])
colormap(gray);
colorbar
figure(3)
plot(aabss)
colormap(gray);
figure(4)
meshc(aabss)
maxx1=max(max(aabss));
如果还有什么不懂的直接发到我邮箱!!!
weibinv matlab,利用MATLAB进行夫琅和费衍射相关推荐
- 环形网络潮流计算matlab 利用matlab编程计算任意环形网络牛拉法潮流计算程序
环形网络潮流计算matlab 利用matlab编程计算任意环形网络牛拉法潮流计算程序,程序通用性强,通过修改参数可以得到任意节点和网络的环形网络牛拉法潮流计算. YID:856064261479453 ...
- 环形网络潮流计算matlab 利用matlab编程计算任意环形网络牛拉法潮流计算程序,程序通用性强
环形网络潮流计算matlab 利用matlab编程计算任意环形网络牛拉法潮流计算程序,程序通用性强,通过修改参数可以得到任意节点和网络的环形网络牛拉法潮流计算. 现有:6960642614794538 ...
- 环形网络潮流计算matlab 利用matlab编程计算任意环形网络牛拉法潮流计算程序,程序通用性强,通过修改参数
环形网络潮流计算matlab 利用matlab编程计算任意环形网络牛拉法潮流计算程序,程序通用性强,通过修改参数可以得到任意节点和网络的环形网络牛拉法潮流计算. 现有:6960642614794538 ...
- 热传递 matlab,利用matlab程序解决热传导问题
利用matlab程序解决热传导问题 1哈佛大学能源与环境学院课程作业报告作业名称:传热学大作业--利用 matlab 程序解决热传导问题院系:能源与环境学院专业:建筑环境与设备工程学号:5201314 ...
- 神经网络人口预测matlab,利用MATLAB工具模拟实现人口预测实例分析.doc
摘要:人口预测对于国民经济计划的制定和社会战略目标的决策具有重要参考价值.本文主要利用MATLAB软件对中国1974-2015年的人口总数数据进行统计分析,建立BP神经网络预测模型.把它与一元非线性回 ...
- 二维静电场有限元matlab,利用MATLAB计算电磁场有关分布
<利用MATLAB计算电磁场有关分布>由会员分享,可在线阅读,更多相关<利用MATLAB计算电磁场有关分布(17页珍藏版)>请在人人文库网上搜索. 1.电磁场实验报告实验一 模 ...
- 物联网控制原理与技术--基于Matlab/利用MATLAB进行频域分析(伯德图)的应用(超详细/设计/实验/作业/练习)
目录 课程名:物联网控制原理与技术 内容/作用:设计/实验/作业/练习 学习:利用MATLAB进行频域分析(伯德图) 一.前言 二.环境与设备 三.原理 四.内容 五.结果与分析 课程名:物联网控制原 ...
- 投入产出实例matlab,利用MATLAB进行基础的投入产出表分析实验报告.doc
利用MATLAB进行基础的投入产出表分析实验报告 学 生 实 验 报 告 学 院: XX学院 课程名称:宏观经济数量分析方法与模型 专业班级: 姓 名: 学 号: 学生实验报告 学生姓名学号同组人实验 ...
- 单闭环调速仿真matlab,利用Matlab仿真平台设计单闭环直流调速系统
内容简介: 毕业论文 利用Matlab仿真平台设计单闭环直流调速系统 共21页,3989字. 目 录 一.摘要 --------------------------2 二.总体方案设计 ------- ...
- 多普勒谱matlab,利用MATLAB仿真多普勒效应.doc
利用MATLAB仿真多普勒效应 利用MATLAB仿真多普勒效应 某某某 摘 要:分析多普勒效应特性,建立数学模型,利用MATLAB软件对其进行仿真试验,进行定量分析,根据仿真试验结果绘制出听者接收到的 ...
最新文章
- NASA 悬赏 10 万招编程高手 世界最令人头疼的编程语言
- ruby中DBI连接MySQL数据库步骤详解
- ibatis中的xml配置文件
- java封装对象数组_java解析JSON对象和封装对象的示例
- JavaScript实现常见的数据结构
- 强化学习DQN算法实战之CartPole
- Web 爬虫现已合法?
- Python处理json字符串转化为字典
- 2016中国地理信息产业百强企业公示名单(转)
- C语言学习笔记(五):《C语言深度剖析》笔记
- LIRE的使用:搜索相似的图片
- 希捷硬盘维修工具 v5.10.6 绿色免费版
- 南大计算机专业考研2019分数,南京大学2019考研分数线公布
- 如何暴力破解wifi密码
- STANDARD_FULLSCREEN
- 由加速度计解算得到姿态角
- 个人成长:2021年8月记
- ios支付宝客户端集成流程
- Make sure that `gem install libv8 -v '3.16.14.3'` succeeds before bundling.
- 嵌入式系统移植课笔记1(学通)