编写矩孔衍射、单缝衍射、圆孔衍射、圆孔衍射的MATLAB仿真代码
时间: 2023-09-10 11:13:48 浏览: 89
以下是矩孔衍射、单缝衍射、圆孔衍射和圆孔衍射的MATLAB仿真代码示例:
矩孔衍射代码示例:
```matlab
% 定义参数
wavelength = 632.8e-9; % 光波长
distance = 1; % 光屏到观察平面的距离
a = 10e-6; % 矩形孔宽度
b = 20e-6; % 矩形孔高度
screen_size = 0.1; % 观察平面大小
% 定义空间坐标
N = 1000; % 空间采样点数
x = linspace(-screen_size/2, screen_size/2, N);
y = linspace(-screen_size/2, screen_size/2, N);
[X, Y] = meshgrid(x, y);
% 计算衍射场
field_rectangular = (sin(pi*a*X/wavelength)./ (pi*a*X/wavelength)) .* (sin(pi*b*Y/wavelength)./ (pi*b*Y/wavelength)) .* exp(1i*2*pi*distance/wavelength*sqrt(X.^2 + Y.^2));
% 绘制衍射图样
figure;
imagesc(x, y, abs(field_rectangular).^2);
colormap('gray');
axis square;
title('矩孔衍射图样');
xlabel('x');
ylabel('y');
```
单缝衍射代码示例:
```matlab
% 定义参数
wavelength = 632.8e-9; % 光波长
distance = 1; % 光屏到观察平面的距离
slit_width = 10e-6; % 缝宽
screen_size = 0.1; % 观察平面大小
% 定义空间坐标
N = 1000; % 空间采样点数
x = linspace(-screen_size/2, screen_size/2, N);
y = linspace(-screen_size/2, screen_size/2, N);
[X, Y] = meshgrid(x, y);
% 计算衍射场
field_single_slit = slit_width * sinc(X/wavelength) .* exp(1i*2*pi*distance/wavelength*sqrt(X.^2 + Y.^2));
% 绘制衍射图样
figure;
imagesc(x, y, abs(field_single_slit).^2);
colormap('gray');
axis square;
title('单缝衍射图样');
xlabel('x');
ylabel('y');
```
圆孔衍射代码示例:
```matlab
% 定义参数
wavelength = 632.8e-9; % 光波长
distance = 1; % 光屏到观察平面的距离
radius = 10e-6; % 圆孔半径
screen_size = 0.1; % 观察平面大小
% 定义空间坐标
N = 1000; % 空间采样点数
x = linspace(-screen_size/2, screen_size/2, N);
y = linspace(-screen_size/2, screen_size/2, N);
[X, Y] = meshgrid(x, y);
% 计算衍射场
r = sqrt(X.^2 + Y.^2);
field_circular = (2*besselj(1, (2*pi*radius/wavelength)*r) ./ (2*pi*radius/wavelength*r)) .* exp(1i*2*pi*distance/wavelength*r);
% 绘制衍射图样
figure;
imagesc(x, y, abs(field_circular).^2);
colormap('gray');
axis square;
title('圆孔衍射图样');
xlabel('x');
ylabel('y');
```
圆孔衍射的代码示例与单缝衍射的代码示例相似,只是在计算衍射场时使用了不同的数学函数。在圆孔衍射的代码示例中,我们使用了贝塞尔函数(besselj)来计算衍射场。
通过运行这些代码示例,你可以分别观察到矩孔衍射、单缝衍射和圆孔衍射的图样。这些图样可以帮助你理解和验证不同孔径的衍射现象。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)