数字全息图的记录、显示以及重构

本文详细描述了一个使用Scalar_Bluestein函数模拟数字全息图的实验过程,包括物体图像的加载处理、相位设置、物理参数设定、全息图记录、衍射图计算、参考光的加入、全息图的生成以及最后的全息重建,展示了从记录到重构的完整步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数字全息图的记录、显示以及重构过程。下面是详细的功能分析:

1. 初始化

使用clear all, close all, clc清除所有变量、关闭所有图形窗口和清空命令窗口,为后续操作提供一个干净的环境。

2. 加载并处理物体图像:

使用imread加载名为’guang.bmp’的图像,并将其转换为双精度数据。
将图像中值为1的像素替换为122。
使用imresize将图像大小调整为1024x1024像素。

3. 设置物体相位:

通过与由peaks函数生成的相位分布相乘,模拟相位型物体。这里,peaks函数生成一个具有多个峰值的曲面,用于模拟物体的相位分布。

4. 设置物理参数:

定义光波波长(lamda)为6328e-10米(即632.8纳米,红光波长)。
根据波长计算波数(k)。
设置物体到全息记录面的距离(zo)为0.3086米。
设置衍射面(物体)的尺寸(Lo)为0.005米。
5. 全息图记录:

使用Scalar_Bluestein函数(这可能是一个自定义函数,用于模拟光的衍射过程)计算物体在全息记录面上的光场分布。这个函数可能实现了某种形式的菲涅尔或夫琅禾费衍射算法。

6. 计算并显示衍射图:

计算全息记录面上的物光强分布,并使用imagesc显示。
在这里插入图片描述

7. 加入平面参考光:

创建一个与物体图像相同大小的网格。
设置参考光与x轴和y轴之间的夹角(alpha和beita)。
根据这些角度和波数计算参考光的复振幅分布。

8. 计算并显示全息图:

将物体光和参考光相加,得到干涉图案。
计算干涉图案的光强分布,并使用imagesc显示全息图。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

9. 全息重建:

使用与记录过程类似的Scalar_Bluestein函数来重建物体图像。这里,通过将全息图与参考光的共轭相乘来消除参考光的影响。
计算重建图像的光强分布,并使用imagesc显示-1级重构像。
另外,还显示了重建图像的包裹相位图,这可能有助于分析物体的相位信息。

% 清除所有变量,关闭图形窗口,清空命令窗口  
clear all;    
close all;    
clc;  
  
% 调入作为物的图像,并转为双精度  
Uo = imread('guang.bmp');            
Uo = double(Uo(:,:,1));              
Uo(Uo==1)=122;
Uo=imresize(Uo,[1024,1024]);
% 获取图像尺寸  
[r, c] = size(Uo);  
  
% 在物体上叠加相位,模拟相位型物体  
Uo = Uo .* exp(1i .* peaks(r) .* 2);   
  
% 赋值波长、波数  
lamda = 6328e-10;   
k = 2*pi/lamda;  
  
% 物到全息记录面的距离(单位:米)  
zo = 0.3086;                         
  
% 赋值衍射面(物)的尺寸(单位:米)  
Lo = 5e-3;                       
  
% 全息图记录过程,使用Scalar_Bluestein算法完成的衍射仿真  
[O, ooo] = Scalar_Bluestein(Uo, r, c, Lo/r, zo, -Lo/2, Lo/2, -Lo/2, Lo/2, r, c, lamda, k);  
  
% 计算全息记录面上的物光强分布  
I = O .* conj(O);                   
  
% 显示衍射图  
figure;   
imagesc(I); 
title('衍射图');  
  
% 加入平面参考光  
xo = linspace(-Lo/2, Lo/2.2, r);   
yo = linspace(-Lo/2, Lo/2.2, c);    
[xo, yo] = meshgrid(xo, yo);     % 创建网格    
  
% 设置参考光与x轴和y轴间的夹角  
alpha = pi/2.12;                     
beita = pi/2.00;                     
  
% 计算参考光  
R = exp(1i*k*(xo*cos(alpha) + yo*cos(beita)));   
  
% 计算参、物光在全息记录面上的干涉,得到全息图  
inter = O ./ max(max(sqrt(I))) + R;      
IH = inter .* conj(inter);             
  
% 显示全息图  
figure;   
imagesc(IH);   
title('全息图');  
  
% 全息重建  
Ui1 = Scalar_Bluestein(IH .* conj(R), r, c, Lo/r, zo, -Lo/2, Lo/2, -Lo/2, Lo/2, r, c, lamda, k);  
Ii1 = Ui1 .* conj(Ui1);                

% 显示-1级重构像  
figure;   
imagesc(Ii1); 
title('-1级重构像');

figure;   
imagesc(angle(Ui1));  
title('包裹相位');
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值