当前位置: 首页 > news >正文

多步相移小记

本文聚焦 截断(包裹)相位 ϕwrapped∈[−π,π)\phi_{\text{wrapped}} \in [-\pi, \pi)ϕwrapped[π,π) 的求解公式与误差特性,比对常用的 3 步、4 步 以及 通用 N 步 相移法。文中约定投影/干涉条纹的理想强度模型为

$Ik(x,y)=I0(x,y)+Im(x,y)cos⁡ ⁣[ϕ(x,y)+αk],k=1…NI_k(x,y)=I_0(x,y)+I_m(x,y)\cos\!\bigl[\phi(x,y)+\alpha_k\bigr], \qquad k=1\ldots NIk(x,y)=I0(x,y)+Im(x,y)cos[ϕ(x,y)+αk],k=1N$

其中 I0I_0I0 为平均光强,ImI_mIm 为调制度,ϕ\phiϕ 为待求物面相位,αk\alpha_kαk 为已知相移。


1 · 三步相移(Δα = 120°)

属性说明
典型相移序列{0,  2π/3,  4π/3}\{0,\;2\pi/3,\;4\pi/3\}{0,2π/3,4π/3}
截断相位公式ϕwrap=tan⁡−1 ⁣[3 (I1−I3)   2I2−I1−I3]\phi_{\text{wrap}}=\tan^{-1}\!\Bigl[\sqrt3\,(I_1-I_3)\,\;2I_2-I_1-I_3\Bigr]ϕwrap=tan1[3(I1I3)2I2I1I3]
采样数3 帧 → 帧率高、抖动窗口短
噪声方差σϕ2≈2σI2/(3Im2)\sigma_\phi^2 \approx 2\sigma_I^2 /(3I_m^2)σϕ22σI2/(3Im2)(白噪声假设)
优/缺点帧数最少→速度快;但对光强非线性和相移误差更敏感,偶次谐波无法抵消,SNR 较 4 步低约 33 %

2 · 四步相移(Δα = 90°,最常用)

属性说明
相移序列{0,  π/2,  π,  3π/2}\{0,\;\pi/2,\;\pi,\;3\pi/2\}{0,π/2,π,3π/2}
截断相位公式ϕwrap=tan⁡−1 ⁣[I4−I2,  I1−I3]\phi_{\text{wrap}}=\tan^{-1}\!\bigl[I_4-I_2,\;I_1-I_3\bigr]ϕwrap=tan1[I4I2,I1I3]
采样数4 帧
噪声方差σϕ2≈2σI2/(4Im2)=σI2/(2Im2)\sigma_\phi^2 \approx 2\sigma_I^2 /(4I_m^2)=\sigma_I^2/(2I_m^2)σϕ22σI2/(4Im2)=σI2/(2Im2)
优/缺点对偶次谐波(γ\gammaγ 失真)具有完全抵消能力;相移校准误差对相位的偶函数——一阶不敏感;相比 3 步,SNR 提升 ≈ 1.33 ×,但帧数多一帧;仍易受振动影响,需要帧间稳定

3 · 通用 N 步相移(均匀步距 2π/N)

  • 同步检测/DFT 公式

    ϕwrap=− atan2!(∑k=1NIksin⁡αk,  ∑k=1NIkcos⁡αk),αk=2π(k−1)N\phi_{\text{wrap}} = -\,\mathrm{atan2}!\Bigl( \sum_{k=1}^{N} I_k\sin\alpha_k,\; \sum_{k=1}^{N} I_k\cos\alpha_k \Bigr),\qquad\alpha_k=\tfrac{2\pi(k-1)}{N}ϕwrap=atan2!(k=1NIksinαk,k=1NIkcosαk),αk=N2π(k1)

  • 误差与冗余
    σϕ2≈2σI2/(NIm2)\sigma_\phi^2 \approx 2\sigma_I^2 /(N I_m^2)σϕ22σI2/(NIm2):噪声方差随帧数增加而下降,故增加步数能显著提高信噪比与抗伪影能力,但对运动/振动的容忍度降低,采集时间线性变长。

  • 谐波抑制
    若 N ≥ 4,偶次谐波可通过加权设计进一步抵消;N 为奇数时需专门的包络补偿或双频技术降低 γ‑畸变误差。


4 · 截断相位计算常见实现要点

  1. 使用 atan2(y,x) —— 可直接获得 (‑π, π] 内的主值;别忘了数值环境下对 x=y=0 的保护。

  2. 包裹 → 解包 —— 相位解包方法(行/列贯通、质量门限或多频异步解包)与相移步数无关,但高 SNR (多步)可显著降低解包跳变。

  3. 调制度 & 直流 ——

    I0=1N∑kIk,Im=2N(∑Ikcos⁡αk)2+(∑Iksin⁡αk)2I_0=\tfrac1N\sum_k I_k,\quad I_m = \frac{2}{N}\sqrt{\bigl(\sum I_k\cos\alpha_k\bigr)^2+\bigl(\sum I_k\sin\alpha_k\bigr)^2}I0=N1kIk,Im=N2(Ikcosαk)2+(Iksinαk)2

    低调制度区域应在相位图上作置信度掩码,避免噪声放大。

  4. 相移误差校准 —— 采用自标定(例如 Hariharan 4+4 帧、Carré 5 帧)或离线标定消除固定伺服误差;4 步在 ±5 % 相移偏差下的相位误差与 3 步几乎相当,但用 5 步可再降 1 个数量级。

  5. γ‑畸变对策 —— 若投影或传感器非线性明显:

    • 用 4、N=2^m 步并配合正余弦权重抵消偶次谐波;

    • 或采用“平均分两趟”双频复合相移;

    • 或直接线性化 LUT / γ‑校正。


5 · 选型建议小结

方案适用场景优势劣势
3 步 (120°)高速 动态采集、帧率瓶颈严重最少帧数、实现简单SNR 最低,对 γ 相移误差最敏感
4 步 (90°)通用静态/准动态测量SNR 较高、偶次谐波抵消、一阶相移误差抵消帧数略增;对振动仍敏感
N 步 (≥5)高精度、对噪声/非线性很苛刻的离线测量SNR 随 N 提升,误差可设计抑制采集时间长,硬件稳定性要求高
http://www.dtcms.com/a/297936.html

相关文章:

  • epoll_event数据结构及使用案例详解
  • springboot(3.4.8)整合mybatis
  • 分布式方案 一 分布式锁的四大实现方式
  • android app适配Android 15可以在Android studio自带的模拟器上进行吗,还是说必须在真机上进行
  • HashMap底层实现原理与核心设计解析
  • AI同传领域,字节跳动与科大讯飞激战进行时
  • 【Linux系统】基础IO(下)
  • 深度学习篇---图像数据采集
  • classgraph:Java轻量级类和包扫描器
  • 深度学习篇---深度学习中的卡尔曼滤波
  • Vmware VSAN主机停机维护流程
  • RAG、Function Call、MCP技术笔记
  • Java中给List<String>去重的4种方式
  • 数据结构:对角矩阵(Diagonal Matrix)
  • Android UI 组件系列(八):ListView 基础用法与适配器详解
  • python语法笔记
  • 《剑指offer》-数据结构篇-链表
  • GDB调试命令学习
  • spring boot项目使用Spring Security加密
  • k8s开启审计日志
  • 【SSL证书校验问题】通过 monkey-patch 关掉 SSL 证书校验
  • Fluent遇上AI:深度学习重塑计算流体动力学的未来
  • 【记录】C++生产者 / 消费者 案例
  • 刷题日记0725
  • 篇五 网络通信硬件之PHY,MAC, RJ45
  • PytorchLightning最佳实践基础篇
  • 谷歌母公司Alphabet发布超预期业绩,提高全年资本支出至850亿美元
  • 从 Elastic 到 ClickHouse:日志系统性能与成本优化之路
  • 【大模型实战】提示工程(Prompt Engineering)
  • 优秀案例:基于python django的智能家居销售数据采集和分析系统设计与实现,使用混合推荐算法和LSTM算法情感分析