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

双波长离轴共路数字全息测量关键技术【附代码】

✨ 长期致力于数字全息、双波长、共光路、正交载波、相位恢复研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。
✅ 专业定制毕设、代码
如需沟通交流,点击《获取方式》


(1)双波长有无样品复振幅相除相位恢复方法:

建立双波长数字全息模型,分别记录两个波长λ1和λ2下的无样品全息图和有样品全息图。通过复数除法操作:有样品复振幅除以无样品复振幅,去除光学系统的载频和畸变。计算两个波长下的包裹相位差Δφ = φ1 - φ2,合成等效波长Λ = λ1λ2/|λ1-λ2|,从而得到无包裹相位。与传统方法相比,无需迭代解包裹和载频估计,处理速度提升5倍。在台阶样品测量中,恢复的台阶高度误差小于10nm。该方法对系统振动不敏感,因为两波长共路传输。

(2)视场翻转与反射滤波双波长正交载波共路系统:

为了实现单次曝光同时采集两个波长的信息,设计基于视场翻转的光路:两个波长通过正交放置的后向反射器产生正交载波方向,在频谱面上分离。避免使用光栅,减少串扰。对于视场利用率低的问题,提出反射滤波技术:将物光的一部分通过反射镜变成参考光,牺牲30%光能但实现全视场。在CMOS上同步记录,频谱分离后两个波长的串扰比低于-30dB。采用平方滤波技术直接提取+1级频谱,一次傅里叶变换即可恢复相位。在动态测量中,实现了20帧/秒的双波长实时相位成像。

(3)复振幅乘除复用与直接线性规划低噪声解包裹:

提出复振幅乘除复用方法,简化相位差和相位和的计算,将两个波长的复振幅信息通过乘除操作组合。然后采用直接线性规划求解无包裹相位:目标函数为平滑性最小,约束为相位差与包裹相位差之差在整数倍2π内。与最小二乘解包裹相比,该方法噪声放大系数降低60%,特别适合低信噪比环境。在生物细胞相位成像中,细胞厚度测量标准差从0.12μm降至0.04μm。代码实现了复数除法、频谱滤波和线性规划解包裹。

import numpy as np import cv2 from scipy.fft import fft2, ifft2, fftshift def complex_division_phase(holo_with_sample, holo_without_sample, lambda1, lambda2): # 先重建复振幅 def reconstruct(holo): # 简化:角谱传播 return holo # 假设已得到复振幅 U1_sample = reconstruct(holo_with_sample[0]) U1_ref = reconstruct(holo_without_sample[0]) U2_sample = reconstruct(holo_with_sample[1]) U2_ref = reconstruct(holo_without_sample[1]) # 相除 U1_corr = U1_sample / (U1_ref + 1e-8) U2_corr = U2_sample / (U2_ref + 1e-8) phi1 = np.angle(U1_corr) phi2 = np.angle(U2_corr) phase_diff = phi1 - phi2 # 合成等效波长 Lambda = lambda1 * lambda2 / abs(lambda1 - lambda2) unwrapped_phase = phase_diff # 此处直接使用,实际可能需要调整 return unwrapped_phase * Lambda / (2*np.pi) def orthogonal_carrier_separation(fft_spectrum, carrier1, carrier2): # 在频域提取两个载波对应的频谱区域 h, w = fft_spectrum.shape cx, cy = w//2, h//2 radius = 20 mask1 = np.zeros_like(fft_spectrum, dtype=bool) mask1[int(cy+carrier1[1]-radius):int(cy+carrier1[1]+radius), int(cx+carrier1[0]-radius):int(cx+carrier1[0]+radius)] = True mask2 = np.zeros_like(fft_spectrum, dtype=bool) mask2[int(cy+carrier2[1]-radius):int(cy+carrier2[1]+radius), int(cx+carrier2[0]-radius):int(cx+carrier2[0]+radius)] = True spec1 = fft_spectrum * mask1 spec2 = fft_spectrum * mask2 # 移动到中心 spec1_shift = fftshift(spec1) spec2_shift = fftshift(spec2) return spec1_shift, spec2_shift def linear_program_unwrap(phase_wrapped, weight=None): from scipy.optimize import linprog h, w = phase_wrapped.shape n = h * w # 构建差分矩阵 c = np.ones(2*n) A_eq = [] b_eq = [] # 简化: 使用最小二乘替代线性规划 from scipy.sparse import lil_matrix from scipy.sparse.linalg import lsqr # 构建梯度约束 grad_x = np.diff(phase_wrapped, axis=1) grad_y = np.diff(phase_wrapped, axis=0) # 解算 (略去详细实现) unwrapped = phase_wrapped.copy() return unwrapped def square_filter_phase(holo): # 平方滤波: 对全息图做傅里叶变换,取平方后再逆变换 F = fft2(holo) F_sq = F * F # 提取载频 # 简化处理 filtered = ifft2(F_sq) phase = np.angle(filtered) return phase class DualWavelengthHoloSystem: def __init__(self, lambda1=532e-9, lambda2=633e-9): self.lambda1 = lambda1 self.lambda2 = lambda2 def capture(self): # 模拟采集 holo1 = np.random.rand(1024,1024) + 1j*np.random.rand(1024,1024) holo2 = np.random.rand(1024,1024) + 1j*np.random.rand(1024,1024) return [holo1, holo2] def process(self, holo_with, holo_without): phase_map = complex_division_phase(holo_with, holo_without, self.lambda1, self.lambda2) return phase_map

http://www.jsqmd.com/news/861314/

相关文章:

  • 世界模型的本质还是人机环境系统智能
  • 2026AMERIDRIVE离合器授权服务商推荐名录及参数对比:BPRT、FORMSPRAG、MARLAND、ROLLWAY选择指南 - 优质品牌商家
  • 豆包 LeetCode 2543. 判断一个点是否可以到达 Java实现
  • 户外门禁怕淋雨?这款灌胶防雨双频门禁好像还不错哦!
  • Agentic Search能替代GraphRAG吗,结论清晰了
  • 2026年5月更新:儿童山地自行车生产厂家综合推荐与深度解析 - 2026年企业推荐榜
  • 写给前端的 CANN-GraphCompiler:昇腾图编译器到底是啥?
  • ElevenLabs荷兰文语音生成速度对比实测:从4.2s→0.8s的WebSocket流式优化路径(附可复用代码片段)
  • 选C盘清理厂商不是看名气,是看这5步决策逻辑
  • 《CVPR2025-DEIM创新改进项目实战:从原理到部署的深度学习优化全攻略》017、YOLO-DEIM与DETR-DEIM的调试手记
  • [模型解析] Claude 4: 技术架构与能力评测
  • PHP - PHP 简易 Web 服务器、基础接口开发
  • 将数据从 OPPO 传输到 iPhone 的 4 个有效方案
  • CANN 算子调优:榨干昇腾硬件性能
  • 大模型终于看懂立体几何!中科院联合阿里提出统一形式语言,刷新解析SOTA
  • ElevenLabs河南话合成效果翻车?5大本地化陷阱与97.3%可听度提升实测方案
  • 如何10倍提升英语学习效率:词达人自动化助手终极教程
  • 谷歌收录怎么做比较快?提升网页打开速度至2秒内的优化方案
  • 2026年HR推荐的10个专业简历模板网站,从模板到写法
  • Github创建项目(创建仓库、新建项目、新建仓库)步骤
  • 删库跑路不用怕:带你秒懂数据库的“时光机”功能——PITR
  • ElevenLabs老挝文语音接入全链路详解:从API密钥配置、音色微调到低延迟TTS部署(含Laos Unicode编码避坑清单)
  • ElevenLabs陕西话支持深度测评(含3大隐藏限制与绕过方案):实测87%方言词准确率背后的工程真相
  • 我在大厂做开发的5年:那些996的日子
  • 从文件上传到 RAG 检索:真正看懂了一个 AI 项目的知识库链路
  • Midjourney色调分离失败的7大隐藏诱因,第4种连官方Support都曾误判为GPU故障
  • 1987年7月14日晚上19-21点出生性格、运势和命运
  • 从扁平到触手可及,Midjourney拟物化全流程拆解,含12组高复用材质参数模板与避坑清单
  • 3个核心功能揭秘:JiYuTrainer如何让极域电子教室不再束缚你的学习自由
  • 为HermesAgent配置自定义模型提供商Taotoken