可以把共线相位匹配3.1这里讲解清楚,同时给我一个复现图2(b)的matlab代码吗,不报错
时间: 2025-01-05 14:38:22 浏览: 6
### 共线相位匹配(3.1)
#### 3.1.1 双o类型
**定义**:在双o类型相位匹配中,三束光中有两束光为o光(寻常光),另一束光为e光(非常光)。在这种情况下,相位匹配角指的是e光与光轴的夹角。
**计算公式**:
以负单轴晶体 ooe 为例,根据晶体光学的知识,e光的折射率 \( n(\theta) \) 可以表示为:
\[ n(\theta) = n_o \sqrt{1 + \tan^2 \theta} / \sqrt{1 + \left(\frac{n_o}{n_e}\right)^2 \tan^2 \theta} \]
其中:
- \( n_o \) 是o光的折射率
- \( n_e \) 是e光的折射率
- \( \theta \) 是e光与光轴的夹角
根据相位匹配条件:
\[ n_1 \lambda_1 + n_2 \lambda_2 = n_3 \lambda_3 \]
设:
\[ A = \frac{n_{o1}}{\lambda_1}, \quad B = \frac{n_{o2}}{\lambda_2}, \quad C = \frac{n_{o3}}{\lambda_3}, \quad D = \frac{n_{e1}}{\lambda_1}, \quad E = \frac{n_{e2}}{\lambda_2}, \quad F = \frac{n_{e3}}{\lambda_3} \]
则相位匹配条件可以写为:
\[ A + B = C \frac{1 + \tan^2 \theta}{1 + \left(\frac{F}{E}\right)^2 \tan^2 \theta} \]
解上述方程,得到相位匹配角 \( \theta \):
\[ \tan^2 \theta = \frac{W \left(1 - U/V\right)}{1 - W} \]
其中:
\[ U = \left(\frac{A + B}{C}\right)^2, \quad V = \left(\frac{A + B}{F}\right)^2, \quad W = 1 \]
**其他类型**:eoo 和 oeo 类型的计算过程类似,不再赘述。
#### 3.1.2 双e类型
**定义**:在双e类型相位匹配中,三束光中有两束光为e光(非常光),另一束光为o光(寻常光)。在这种情况下,相位匹配角指的是o光与光轴的夹角。
**计算公式**:
以负单轴晶体 oee 为例,根据晶体光学的知识,e光的折射率 \( n(\theta) \) 可以表示为:
\[ n_1 = n_{o1}, \quad n_2 = \frac{n_{o2} \sqrt{1 + \tan^2 \theta}}{\sqrt{1 + \left(\frac{n_{o2}}{n_{e2}}\right)^2 \tan^2 \theta}}, \quad n_3 = \frac{n_{o3} \sqrt{1 + \tan^2 \theta}}{\sqrt{1 + \left(\frac{n_{o3}}{n_{e3}}\right)^2 \tan^2 \theta}} \]
根据相位匹配条件:
\[ \frac{A + B}{1 + \tan^2 \theta} \left(1 + \left(\frac{A + B}{A + E}\right)^2 \tan^2 \theta\right) = \frac{C}{1 + \tan^2 \theta} \left(1 + \left(\frac{F}{C}\right)^2 \tan^2 \theta\right) \]
解上述方程,得到相位匹配角 \( \theta \):
\[ \tan^2 \theta = \frac{W \left(1 - U/V\right)}{1 - W} \]
其中:
\[ U = \left(\frac{C}{A + B}\right)^2, \quad V = \left(\frac{F}{A + E}\right)^2, \quad W = \left(\frac{F}{C}\right)^2 \]
### 复现图2(b)的MATLAB代码
以下是一个简单的MATLAB代码,用于复现图2(b)中的相位匹配角误差与折射率椭圆离心率的关系。
```matlab
% 定义参数
lambda1 = 1588.1e-9; % 波长1
lambda2 = 800e-9; % 波长2
lambda3 = 532e-9; % 波长3
no1 = 1.64; % o光折射率1
no2 = 1.64; % o光折射率2
no3 = 1.64; % o光折射率3
ne1 = 1.51; % e光折射率1
ne2 = 1.51; % e光折射率2
ne3 = 1.51; % e光折射率3
% 计算A, B, C, D, E, F
A = no1 / lambda1;
B = no2 / lambda2;
C = no3 / lambda3;
D = ne1 / lambda1;
E = ne2 / lambda2;
F = ne3 / lambda3;
% 定义离心率范围
eccentricities = linspace(0, 0.6, 100);
% 初始化误差数组
errors = zeros(size(eccentricities));
% 计算每个离心率下的误差
for i = 1:length(eccentricities)
e = eccentricities(i);
% 修改折射率
ne1_mod = sqrt((1 - e^2) * no1^2 + e^2 * no1^2);
ne2_mod = sqrt((1 - e^2) * no2^2 + e^2 * no2^2);
ne3_mod = sqrt((1 - e^2) * no3^2 + e^2 * no3^2);
% 重新计算A, B, C, D, E, F
A_mod = no1 / lambda1;
B_mod = no2 / lambda2;
C_mod = no3 / lambda3;
D_mod = ne1_mod / lambda1;
E_mod = ne2_mod / lambda2;
F_mod = ne3_mod / lambda3;
% 计算相位匹配角
U_mod = (A_mod + B_mod) / C_mod;
V_mod = (A_mod + B_mod) / F_mod;
W_mod = F_mod / C_mod;
theta_mod = atan(sqrt(W_mod * (1 - U_mod / V_mod) / (1 - W_mod)));
% 数值解
theta_num = fzero(@(theta) A_mod + B_mod - C_mod * (1 + tan(theta)^2) / (1 + (F_mod / E_mod)^2 * tan(theta)^2), pi/4);
% 计算误差
errors(i) = abs(theta_mod - theta_num) * 180 / pi;
end
% 绘制误差与离心率的关系图
figure;
plot(eccentricities, errors, 'LineWidth', 2);
xlabel('Refractive Index Ellipse Eccentricity');
ylabel('Phase Matching Angle Error (degrees)');
title('Phase Matching Angle Error vs Refractive Index Ellipse Eccentricity');
grid on;
```
这段代码首先定义了各个波长和折射率,然后计算了不同离心率下的相位匹配角误差,并绘制了误差与离心率的关系图。运行这段代码后,你应该能够看到类似于图2(b)的结果。
阅读全文