MatlabCode

本站所有资源均为高质量资源,各种姿势下载。

您现在的位置是:MatlabCode > 资源下载 > 一般算法 > 计算全息图生成与数字全息频谱滤波重构系统

计算全息图生成与数字全息频谱滤波重构系统

资 源 简 介

本项目旨在构建一个完整的数字全息处理平台,利用MATLAB编程实现计算机制全息图(CGH)的生成以及数字全息图的后期处理。主要功能包括:1. 计算全息图生成:根据输入的二维图像数据,利用光的衍射理论(如菲涅耳衍射或夫琅禾费衍射公式)及编码算法(如罗曼型或李型编码),模拟物光与参考光的干涉过程,生成计算机全息图。2. 频谱分析与滤波:对生成的全息图或实验采集的数字全息图进行二维快速傅里叶变换(FFT),将其从空间域变换到频率域。在频域内,程序能够自动或手动识别零级项(直流分量)、实像和共轭像的频谱位置。3. 频谱滤波操作:通过设计特定的频域滤波器(如矩形窗或圆形窗),剔除干扰严重的零级衍射斑和共轭像频率成分,仅提取物光频谱。4. 全息重构:对滤波后的频谱进行逆傅里叶变换(IFFT),实现无干扰的数字全息重构,从而获得高质量的原始物体强度图和相位分布,有效消除数字全息重构中的零级亮斑和孪生像噪声。

详 情 说 明

计算全息图生成与数字全息频谱滤波系统

项目简介

本项目是一个基于MATLAB构建的完整数字全息处理平台。系统实现了从原始物体的光场构建、光波在自由空间中的衍射传播模拟、离轴全息图的干涉记录,到最终的全息图频谱分析、滤波与数字重构的全流程仿真。该平台重点展示了利用通过角谱法(Angular Spectrum Method)进行波前传播模拟,以及通过频域滤波技术消除零级衍射斑和共轭像,从而实现高质量的全息重建。

功能特性

  • 复振幅物体模拟:能够自动生成包含幅度信息(基于Shepp-Logan Phantom)和二次球面相位信息的模拟物体光场。
  • 精确的衍射传播计算:采用角谱法(ASM)计算光波在自由空间的传播,支持正向传播(生成全息图)和逆向传播(全息重构)。
  • 离轴全息图生成:模拟参考光与物光的干涉过程,引入特定的载频角度以实现频谱分离,并模拟CCD的量化噪声和高斯噪声。
  • 频谱自动分析与滤波:对全息图进行二维FFT变换,自动识别物光频谱侧带位置,应用圆形窗函数滤除直流分量(零级项)和孪生像干扰。
  • 波前重构:通过频谱中心化(解调)和逆向衍射传播,从全息图中恢复物体的原始强度和相位分布。

系统要求

  • MATLAB R2016a 或更高版本
  • Image Processing Toolbox(用于 phantomimagescimnoise 等函数)

使用方法

  1. 直接在MATLAB环境中运行主程序脚本。
  2. 程序执行后将生成包含8个子图的窗口,依次展示:原始物体幅度/相位、生成的数字全息图、全息图频谱、滤波后频谱、中心化频谱、重构物体强度及重构物体相位。
  3. 系统参数(如波长、采样点数、记录距离)可在代码开头的参数设置部分进行修改。

程序实现逻辑与细节

主程序严格按照数字全息的物理过程进行编写,主要包含以下七个核心步骤:

1. 系统参数初始化

程序首先定义了全息记录系统的物理参数,包括采样分辨率(1024x1024)、激光波长(632.8nm)、像素尺寸(4.65um)以及记录距离(0.3m)。同时构建了空间坐标网格,为后续的波面计算提供基础。

2. 原始物光场构建

利用MATLAB内置的 phantom 函数生成物体的振幅分布,模拟复杂的物体透射率。相位分布则构建为一个简单的球面波模型(基于二次曲面公式),将两者结合形成复振幅物光场 $U_0$。

3. 计算全息图生成 (CGH)

  • 物光传播:调用 angular_spectrum_propagate 函数,计算物光从物体平面传播到全息记录平面的复振幅分布。
  • 参考光构造:生成一个倾斜的平面波作为参考光。代码中设定了特定的入射角(接近奈奎斯特频率的0.8倍),以确保在频域中物光频谱与零级项能有效分离。
  • 干涉记录:将在全息面上的一束物光与参考光叠加,计算其模的平方得到强度分布。
  • 噪声模拟:对生成的强度图进行归一化,并添加微量的高斯噪声,模拟真实CCD相机的成像过程。

4. 频谱分析

对生成的全息图强度进行二维快速傅里叶变换(FFT),并使用 fftshift 将低频分量移至频谱中心。为了便于观察,对幅度谱进行了对数变换显示。

5. 频谱滤波

这是系统的核心处理环节:
  • 频率坐标计算:根据物理尺寸建立频域坐标系。
  • 自动寻峰:程序采用自动化算法寻找物光频谱的位置。它首先屏蔽频谱中心的直流(DC)区域,然后在剩余区域搜索能量最大值,从而精确定位+1级(或-1级)侧带的中心位置。
  • 滤波器设计:以搜索到的侧带峰值为中心,构建一个圆形掩膜(Mask)。掩膜半径基于估算的物体带宽设定,用于保留物光信息并剔除零级项和共轭像。

6. 数字重构

  • 频谱解调(中心化):计算侧带峰值相对于频谱中心的位移量,利用 circshift 函数将提取出的物光频谱移回频谱中心,以此去除参考光引入的载波频率。
  • 逆变换:对中心化后的频谱进行逆傅里叶变换(IFFT),得到全息平面上的复振幅。
  • 逆向传播:再次调用 angular_spectrum_propagate 函数,但传入负的传输距离($-z$),模拟光波从全息面逆向传播回物体平面的过程。

7. 结果显示

程序最后在统一的图形窗口中展示各个阶段的处理结果,包括重构后的强度图和相位图,以便直观评估全息重构的质量。

关键算法说明

角谱传播算法 (Angular Spectrum Method)

代码中封装的衍射传播函数基于角谱理论。该算法在频域通过传递函数 $H$ 对光场进行操作。
  • 传递函数:$H = exp(i cdot k cdot z cdot sqrt{1 - (lambda f_x)^2 - (lambda f_y)^2})$。
  • 倏逝波处理:算法中包含了对倏逝波(Evanescent waves)的判断,当空间频率过高导致根号内为负值时(即 $f_x^2 + f_y^2 > 1/lambda^2$),强制将其振幅置零,防止计算出现非物理的复数增益。

频谱自动定位与滤波

不同于手动指定滤波区域,本代码通过计算频谱能量分布自动定位一阶衍射斑。逻辑如下:
  1. 创建一个临时频谱副本。
  2. 将中心区域(零级项所在位置)的数值强制置零。
  3. 查找剩余部分的全局最大值索引,该索引即为载频主峰位置。
  4. 基于此位置生成圆形滤波器,实现了滤波过程的自动化和自适应性。