倍频晶体的允许角随波长的变化matlab代码
时间: 2023-08-30 11:12:10 浏览: 52
倍频晶体的允许角随波长的变化可以使用KDP晶体的Sellmeier方程来计算。以下是使用Matlab编写的代码示例:
```matlab
% 倍频晶体的允许角随波长的变化
% 使用KDP晶体的Sellmeier方程计算
% 定义常量
lambda = linspace(0.5, 1.5, 100); % 波长范围
n1 = 1.4934; % KDP的折射率
n2 = 1.4598;
n3 = 1.4442;
A = 0.29968;
B = 0.20206;
C = 0.04756;
D = 0.02708;
% 计算折射率
n = sqrt(1 + A*lambda.^2./(lambda.^2 - B) + C*lambda.^2./(lambda.^2 - D));
% 计算倍频晶体的允许角
theta = asin(n1./n.*sin(acos(n2./n))-acos(n3./n));
% 绘图
plot(lambda, theta);
xlabel('波长 (\mum)');
ylabel('倍频晶体的允许角 (rad)');
title('倍频晶体的允许角随波长的变化');
```
在此示例中,我们使用KDP晶体的Sellmeier方程来计算折射率,并使用公式计算倍频晶体的允许角。最后,我们将波长与允许角绘制成图表。
相关问题
倍频晶体KTP的允许角随波长的变化matlab代码
倍频晶体KTP的允许角随波长的变化可以通过以下代码实现:
```matlab
% 倍频晶体KTP的允许角随波长的变化
% 声明常量
lambda = linspace(0.5, 1.5, 1000); % 波长范围
L = length(lambda);
d = 3.5; % KTP 晶体厚度
n1 = sqrt(3.0066 + 0.03901./(lambda.^2 - 0.04251)); % 基波折射率
n2 = sqrt(3.0333 + 0.04154./(lambda.^2 - 0.04547)); % 二倍频折射率
theta = zeros(1, L); % 允许角
% 计算允许角
for i = 1:L
k1 = 2*pi/lambda(i)*n1(i);
k2 = 2*pi/lambda(i)*n2(i);
theta(i) = asin(sqrt((k1^2 - k2^2)/(2*k1^2)));
end
% 绘制允许角随波长的变化曲线
plot(lambda, theta*180/pi, 'linewidth', 2);
xlabel('波长 (μm)');
ylabel('允许角 (°)');
title('倍频晶体KTP的允许角随波长的变化');
```
代码中,使用 `linspace` 函数定义了波长范围,使用 `sqrt` 函数计算了基波和二倍频的折射率,并使用 `asin` 函数计算了允许角。最后,使用 `plot` 函数绘制了允许角随波长的变化曲线。
倍频晶体的允许角随波长的变化代码
倍频晶体的允许角随波长的变化可以用下面的代码来实现:
```python
import numpy as np
# 定义常数
c = 299792458 # 光速
n1 = 1.5 # 基底折射率
n2 = 2.5 # 晶体折射率
l1 = 1064e-9 # 基波波长
l2 = 532e-9 # 二倍频波长
# 计算允许角
theta1 = np.arcsin(n2/n1 * np.sin(np.arcsin(l1/(2*c*n1))))
theta2 = np.arcsin(n2/n1 * np.sin(np.arcsin(l2/(2*c*n1))))
# 输出结果
print("1064 nm 允许角: ", np.degrees(theta1))
print("532 nm 允许角: ", np.degrees(theta2))
```
其中,`np.arcsin()` 函数用于计算反正弦函数,`np.degrees()` 函数用于将弧度转换为角度。这段代码可以输出1064 nm和532 nm两种波长下的允许角。