EDA365电子论坛网
标题:
MATLAB源程序代码分享:杨氏双孔干涉实验的MATLAB计算模拟
[打印本页]
作者:
House
时间:
2020-3-19 11:24
标题:
MATLAB源程序代码分享:杨氏双孔干涉实验的MATLAB计算模拟
2 F6 R4 Y' N6 r P
MATLAB源程序代码分享:杨氏双孔干涉实验的MATLAB计算模拟
- U# H/ {1 u, n1 B
%% 定义实验的参数
8 {" ^4 }7 T) C6 Y1 {
clear;clc;close all
7 B8 H# s: L9 v- x% G O$ h* B
lambda=3000e-9; % 光的波长
# t$ p9 H ?7 F* |- ~
d=7e-5; % 双孔的距离
) G% T s3 `3 v" O8 M3 @! A
D=1.2; % 屏幕距双孔的距离
6 _" L, e* V( j0 l- N: W
, [$ B4 F p! ?
%% 定义观察屏幕的范围, 并计算各个观测点的坐标值
+ l1 h8 C: ?/ h3 E/ Z
xa=-2; % 最小的横坐标值
3 ^) ~1 L3 c9 ~
xb=2; % 最大的横坐标值
8 b+ j4 N; Q* l g9 c& Q
ya=-0.5; % 最小的纵坐标值
$ t! e( O; K# b4 G
yb=0.5; % 最大的纵坐标值
- L$ ~- T& ?# o) Q' v0 H
n1=1000; % x 方向等分份数
, _( @8 _0 r' a# T) y& I' K
n2=1000; % y 方向等分份数
& a$ Y, A/ e7 o! F- u$ D" e: F4 V
# V2 h) W3 `* X' T: V1 l
x=linspace(xa,xb,n1); % x 坐标
, w: y3 C" t9 B4 m/ R @/ w! j
y=linspace(ya,yb,n2); % y 坐标
2 j( n! o" k; q6 ]4 R' v* F9 t
[xx,yy]=meshgrid(x,y); % 网格化处理, 得到观测点的坐标值
7 }/ M- S* g& ~; R; }
M- I+ \" v w L
%% 计算各个观测点处的光强
& i8 t! r% Z$ W( \% Z U
k=2*pi/lambda; % 计算波数
1 c5 S; n. C9 l: |
r1=sqrt((xx-d/2).^2+yy.^2+D^2); % 观测点到孔 1 的距离
) x: T( d1 q& y5 E3 _ E
r2=sqrt((xx+d/2).^2+yy.^2+D^2); % 观测点到孔 2 的距离
* h3 X3 V4 A+ m+ q+ h
I=(cos(k*r1)./r1+cos(k*r2)./r2).^2+(sin(k*r1)./r1+sin(k*r2)./r2).^2; % 计算观测点处的光强
4 M0 {3 K7 }; _. M# C! ^$ k) d
I=I/(max(max(I))); % 归一化处理
6 O8 O2 Y$ s; S3 b% T0 @) u! v
+ Q/ M2 v/ i( V: Z
%% 绘制杨氏双孔干涉条纹
3 f' M/ |/ ~+ s; ^5 ]( ~: g0 H6 x
figure
/ w$ I) N( E8 q, ~3 ]- u/ r0 ?
set(gcf,'units','normalized','position',[0.2 0.2 0.6 0.6]); % 设置 figure 窗口的位置和尺寸
/ Z7 x' N" ~/ R" l- }- j$ e- {
subplot(2,1,1)
0 Y* v3 i5 ]( b o& B0 Q, G
image([xa xb],[ya yb],I*255) % 显示条纹在屏幕上的二维图像
$ T$ `- e D6 A8 ^- h
colormap(gray(255)) % 图像显示为黑白, 图像的灰度值为 255 级
6 |/ |; Z. V2 X
axis equal
& v" O3 Q4 d6 w0 f7 j o
axis([xa xb ya yb])
8 n. f/ I5 N0 L# k$ r
xlabel('x (m)')
: p' S% W* J. K1 ]
ylabel('y (m)')
; }* T& d; F0 A
title('杨氏双孔干涉条纹')
/ n: l; `* M- V2 H
1 N/ e( l; G0 [. M
%% 绘制光强分布的三维图
) T3 s* ^" x! L A
subplot(2,1,2)
8 S1 ^, U# y/ { F
mesh(xx,yy,I)
" [, x$ |7 r0 T8 v- V- g
xlabel('x (m)')
4 i8 r! [6 h/ G' s v2 G' w
ylabel('y (m)')
5 c( J- L( T& d& j
zlabel('光强')
8 ~, q( `% R8 `5 Y2 w! B" ]
title('光强分布')
作者:
wu68aq
时间:
2020-3-19 18:16
杨氏双孔干涉实验的MATLAB计算模拟1 N5。
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2