news 2026/4/6 13:04:31

生成模拟干涉图

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
生成模拟干涉图

移相算法求解相位,相位解包裹,泽尼克多项式拟合程序

最近在实验室折腾相位测量,发现光干涉数据处理的三个关键环节:移相算法提取相位、相位解包裹操作、泽尼克多项式拟合。这几个步骤环环相扣,实测中经常需要代码实现,咱们今天就手撕几个代码片段来聊聊。

移相算法实战

假设我们拿到四幅移相干涉图(相位差π/2),核心代码其实就五行:

import numpy as np I1 = 100 + 50*np.cos(phase) # 0相位 I2 = 100 + 50*np.cos(phase + np.pi/2) # π/2 I3 = 100 + 50*np.cos(phase + np.pi) # π I4 = 100 + 50*np.cos(phase + 3*np.pi/2) # 3π/2 # 计算包裹相位 calc_phase = np.arctan2(I4 - I2, I1 - I3) # 关键操作

这里有个坑要注意:np.arctan2直接算出[-π, π]的包裹相位,但实际相位可能是连续变化的。比如当真实相位是3π时,这里会被压缩成-π,这时候就得靠相位解包裹来展开。

相位解包裹的暴力美学

最简单的行展开法代码长这样:

def unwrap_row(phase): offset = 0 unwrapped = np.zeros_like(phase) for i in range(1, len(phase)): delta = phase[i] - phase[i-1] if delta > np.pi: offset -= 2*np.pi elif delta < -np.pi: offset += 2*np.pi unwrapped[i] = phase[i] + offset return unwrapped

这方法在噪声大的地方容易翻车,实测中发现用skimage的unwrap_phase更靠谱:

from skimage import restoration unwrapped_phase = restoration.unwrap_phase(wrapped_phase)

但自己实现的版本有助于理解原理——本质上就是在相位跳变超过π时加减2π的补偿操作。

泽尼克多项式拟合实战

测完相位数据后,我们经常要分解波前像差。泽尼克系数计算可以用现成轮子:

from zernike import RZern cart = RZern(6) # 6阶多项式 cart.fit(phase_data) # 拟合数据 coef = cart.coef # 获取系数

想自己造轮子的话,得先实现泽尼克基函数。比如径向多项式部分:

def zernike_radial(n, m, rho): if (n - m) % 2 != 0: return 0 total = 0 for k in range((n - m)//2 + 1): num = (-1)**k * np.math.factorial(n - k) den = (np.math.factorial(k) * np.math.factorial((n + m)//2 - k) * np.math.factorial((n - m)//2 - k)) total += num / den * rho**(n - 2*k) return total

这个递归实现效率不高,但胜在直观。实际项目里建议用矩阵最小二乘法求解系数,避免重复计算基函数。

调试时记得验证拟合效果——把拟合后的波前与原始数据相减,残差应该接近随机噪声。遇到过拟合的情况就把泽尼克阶数调低,实测发现前15项通常能搞定大部分光学系统的像差分析。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/3 22:17:11

百度昆仑芯PaddlePaddle适配:能否转换VibeThinker模型?

百度昆仑芯与PaddlePaddle适配VibeThinker模型的可行性探索 在大模型参数规模不断攀升的今天&#xff0c;一个反向趋势正悄然兴起&#xff1a;越来越多的研究开始关注“小而精”的推理专用模型。这类模型不追求通用对话能力&#xff0c;而是聚焦于数学证明、算法设计等高逻辑密…

作者头像 李华
网站建设 2026/4/5 5:47:20

广告点击率CTR预估模型:逻辑回归特征工程代码自动生成

广告点击率CTR预估模型&#xff1a;逻辑回归特征工程代码自动生成 在数字广告系统中&#xff0c;每一次曝光背后都隐藏着一场关于“是否会被点击”的预测博弈。而这场博弈的核心&#xff0c;正是点击率&#xff08;Click-Through Rate, CTR&#xff09;预估——它决定了广告能否…

作者头像 李华
网站建设 2026/4/5 14:38:45

揭秘Docker容器监控数据导出难题:3步实现自动化日志与指标收集

第一章&#xff1a;Docker监控数据导出的核心挑战在现代容器化部署环境中&#xff0c;Docker已成为应用运行的基础设施。然而&#xff0c;随着服务规模扩大&#xff0c;如何高效、准确地导出监控数据成为运维团队面临的关键问题。监控数据不仅包括容器的CPU、内存、网络和磁盘使…

作者头像 李华
网站建设 2026/4/3 8:59:38

Terraform基础设施即代码:创建GPU云服务器AI辅助写法

Terraform基础设施即代码&#xff1a;创建GPU云服务器AI辅助写法 在人工智能研究日益平民化的今天&#xff0c;一个研究生或独立开发者能否快速获得稳定、可复现的算力环境&#xff0c;往往决定了项目的成败。尤其是面对数学推理、算法生成这类高密度计算任务时&#xff0c;哪怕…

作者头像 李华
网站建设 2026/4/3 6:02:55

物理力学题自动解法生成:牛顿定律综合题多步骤求解演示

物理力学题自动解法生成&#xff1a;牛顿定律综合题多步骤求解演示 在高中物理竞赛或大学基础力学课程中&#xff0c;学生常遇到这样的题目&#xff1a;两个质量不同的滑块通过轻绳连接&#xff0c;跨过无摩擦滑轮&#xff0c;一个悬空下落&#xff0c;另一个沿斜面滑动。要求计…

作者头像 李华
网站建设 2026/4/5 7:20:09

阿里云GN6i实例实测:VibeThinker推理延迟与吞吐量统计

阿里云GN6i实例实测&#xff1a;VibeThinker推理延迟与吞吐量统计 在大模型席卷AI应用的今天&#xff0c;一个1.5B参数的小模型却悄然在数学和编程推理赛道上跑出了惊人的性能——微博开源的 VibeThinker-1.5B-APP 不仅训练成本仅7800美元&#xff0c;还在AIME等高难度任务中超…

作者头像 李华