使用英特尔开发板控制空间光相位调制器进行激光光斑质量优化

描述

作者:

胡乔木 Intel Devkit征文比赛参赛者 

1前言

随着激光器的发展,激光在光通信、光学检测、光学加工等领域起着越来越重要的作用。激光光斑质量是激光系统性能的重要指标,直接影响其在科学研究、工业加工和通信等领域的应用效果。影响激光光斑质量的因素主要包括:

激光器内部元件(如增益介质、不均匀泵浦、镜片)或外部系统(如空气湍流、热效应)引起波前的不平整;

模式纯度;

激光器输出角度不稳定或准直光学元件调整不佳等。

激光质量差可能直接导致光斑形状畸变,聚焦能力下降,远场发散角增大,最终导致能量分布不集中降低信息传输准确率和能量利用率。

这里我们搭建了一套光学波前实时测量-校准系统,并在哪吒开发版上部署控制系统用于实时观测光斑质量信息和优化LCOS空间光相位调制器改进光斑质量算法。

2实验设备

2.1 光学平台设备

本实验平台包含:

光纤激光器光源(中心波长1550nm,最大光功率13.5mdB);

半透射半反射镜BS;

LCOS液晶空间光相位调制器(Meadowlark Optics公司生成,最大分辨率1920*1200);

中红外相机

实验平台装置如下图所示:

激光器

实验原理为激光光源经过BS后一半能量透射出去,入射进LCOS液晶空间光相位调制器,经过相位调制后反射回BS,这一半的光能量再经过BS反射到SID4相位检测系统检测相位。

2.2 哪吒开发板简介

激光器

哪吒(Nezha)开发套件以信用卡大小(85 x 56mm)的开发板-哪吒(Nezha)为核心,哪吒采用Intel N97处理器(Alder Lake-N),最大睿频3.6GHz,Intel UHD Graphics内核GPU,可实现高分辨率显示;板载LPDDR5内存、eMMC存储及TPM 2.0,配备GPIO接口,支持Windows和Linux操作系统,这些功能和无风扇散热方式相结合,为各种应用程序构建高效的解决方案,适用于如自动化、物联网网关、数字标牌和机器人等应用。

配置:

Intel Processor N97

板载LPDDR5内存, 8GB

板载eMMC存储, 64GB

1Gigabit LAN x 1

HDMI 1.4b x 1

USB 3.2 Gen 2 (Type-A) x 3, 10针 USB 2.0 x 2/UART x 1

40针 GPIO x 1

12V直流输入, 5A

TPM 2.0

3实验过程

1.1 设备系统安装与连接

哪吒开发板安装WIndows 10系统即可。具体参考:

https://inteldevkit.csdn.net/66fc055f82931a478c062cd3.html
 

windows系统下载地址:

https://msdn.itellyou.cn/


安装完后,建议安装net framework runtime

通过2.2小节的设备介绍我们可以看到,哪吒开发版包含一个HDMI 1.4b x 1视频接口和3个USB 3.2 Gen2 接口,以及一个网口。


HDMI 1.4b 已经支持4K视频输出,可以用于连接LCOS液晶空间光相移器.连接后以扩展屏幕的形式出现。


NIR Cameras 近红外相机可以通过哪吒开发板的USB串口传输数据。

2.2 光斑测量

高斯激光的公式描述了高斯光束在空间中的分布情况,通常采用以下形式:

电场分布公式

高斯光束的电场分布可以用以下公式表示:

激光器

参数解释:

( E(r, z) ):在横向距离 ( r ) 和传播方向 ( z ) 上的电场分布。

( E_0 ):最大电场振幅。

( w(z) ):光束在传播方向 ( z ) 上的光斑半径,定义为光强衰减到 ( 1/e^2 ) 的半径:

激光器

( w_0 ):光束在焦点处的最小光斑半径(束腰)。

( z_R ):瑞利长度(Rayleigh range),表示光束聚焦后保持准直的距离:

激光器

其中 ( lambda ) 为光的波长。

( R(z) ):波前曲率半径:

激光器

( psi(z) ):高斯光束的古依相位(Gouy phase):

激光器

( k ):波数,( k = frac{2pi}{lambda} )。

( r ):横向坐标,表示距离光束中心轴的距离。

光强分布公式

光强 ( I(r, z) ) 是电场平方的模:

激光器

其中:

( I_0 ) 是焦点处的最大光强。

光斑质量评价公式

计算待测光斑与理论高斯光斑的重合度通常可以用归一化交集面积重合因子(Overlap Factor)来衡量。具体步骤如下:

如果两个光斑分布是 ( I_ ext{exp}(x, y) )(实验数据)和 ( I_ ext{theory}(x, y) )(理论高斯光斑),可以通过以下公式计算重合度:

激光器

Python代码如下:

 

def overlap_factor(exp_data, theory_data, dx, dy):
    intersection = np.sum(exp_data * theory_data) * dx * dy
    exp_norm = np.sum(exp_data**2) * dx * dy
    theory_norm = np.sum(theory_data**2) * dx * dy
    # 计算重合度
    C = intersection / np.sqrt(exp_norm * theory_norm)
    return C

 

光斑测量结果

如下图所示:

激光器

2.3 光斑优化

将相位加载上LCOS调制器

LCOS调制器通过视频格式输入,其中灰度0对应相移量为0,灰度255对应相移量为Π。这里首先通过phase_to_gray()函数计算对应的灰度图像值。然后通过pygame模块实现全屏显示。

 

pygame.init()
def phase_to_gray(phase, levels=256):
    gray = np.round(phase / (2 * np.pi) * (levels - 1)).astype(np.uint8)
    return gray
def phase_to_LCOS(phase, levels=256)
    image = phase_to_gray(phase, levels=levels)
    # 设置全屏模式
    screen = pygame.display.set_mode((0, 0), pygame.FULLSCREEN)
    # 调整图像大小以适配屏幕
    image = pygame.transform.scale(image, screen.get_size())
    # 显示图像
    screen.blit(image, (0, 0))
    pygame.display.flip()

 

随机梯度下降优化光斑质量

这里我们生成一个1920x1200大小的相位矩阵 (Phi_0),其中每个元素满足:

激光器

这里 (m, n) 是矩阵的维度1920x1200。在每次迭代中,生成一个与相位矩阵同维度的随机微扰矩阵 (P_k),其中:

激光器

(Delta) 是微扰的幅值范围,设定为0.1。测量使用上面的函数测量并计算光斑质量$Q_k$。

计算因微扰引起的光斑质量变化:

激光器

根据质量变化 (Delta Q_k) 和微扰 (P_k),更新相位矩阵:

激光器

其中:

(eta) 是学习率。

重复步骤 2 至 5,直到达到最大迭代次数或质量收敛。

 

import numpy as np


# 随机生成初始相位矩阵
def generate_phase_matrix(shape):
    """
    随机生成一个相位矩阵,值范围在 [0, 2π)。
    """
    return np.random.uniform(0, 2 * np.pi, shape)


# 添加随机微扰
def add_perturbation(phase_matrix, perturbation_scale):
    """
    给相位矩阵添加随机微扰。
    """
    perturbation = np.random.uniform(-perturbation_scale, perturbation_scale, phase_matrix.shape)
    return phase_matrix + perturbation, perturbation


# 迭代优化相位矩阵
def optimize_phase_matrix(initial_phase, iterations, perturbation_scale, learning_rate):
    """
    通过迭代优化相位矩阵以提升光斑质量。
    """
    phase_matrix = initial_phase.copy()
    quality_history = []


    for i in range(iterations):
        # 测量当前质量
        initial_quality = test(phase_matrix)
        # 添加随机微扰
        perturbed_phase, perturbation = add_perturbation(phase_matrix, perturbation_scale)
        # 测量微扰后的质量
        phase_to_LCOS(perturbed_phase, levels=256)
        overlap_factor(exp_data, theory_data, dx, dy)
        # 计算质量变化
        quality_change = new_quality - initial_quality
        # 更新相位矩阵
        phase_matrix += learning_rate * quality_change * perturbation
        # 记录质量变化
        quality_history.append(new_quality)
        print(f"Iteration {i+1}/{iterations}, Quality: {new_quality:.4f}, Change: {quality_change:.4f}")


    return phase_matrix, quality_history


# 参数设置
matrix_shape = (1920, 1200)  # 相位矩阵大小
iterations = 50  # 迭代次数
perturbation_scale = 0.1  # 微扰幅度
learning_rate = 0.01  # 学习率


# 初始化相位矩阵
initial_phase = generate_phase_matrix(matrix_shape)


# 开始优化
optimized_phase, quality_history = optimize_phase_matrix(initial_phase, iterations, perturbation_scale, learning_rate)

 

优化结果示意

原始光斑,可以看到光斑中心不在中间且不均匀。

激光器

优化后光斑,光斑形状近似圆形。

激光器

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分