基于S-FFT的相息图
光波是一种电磁波,它满足麦克斯韦方程组,将光波表示成球面波的形式,根据推导[1−4]^{[1-4]}[1−4],可以获得标量场下光波的菲涅尔衍射积分的表达式如下
U(x,y)=exp⁡(jkd)jλd∬−∞∞U0(x0,y0)exp⁡(jk2d[(x−x0)2+(y−y0)2])dxdyU(x,y)=\frac{\exp(jkd)}{j \lambda d} \iint_{-\infty}^{\infty}U_0(x_0,y_0)\exp(\frac{jk}{2d}[(x-x_0)^2+(y-y_0)^2])dxdyU(x,y)=jλdexp(jkd)​∬−∞∞​U0​(x0​,y0​)exp(2djk​[(x−x0​)2+(y−y0​)2])dxdy
上述式子中x0y0,xyx_0y_0,xyx0​y0​,xy分别为衍射面和观察面的平面坐标系,U0(x,y)U_0(x,y)U0​(x,y)为物平面函数,kkk为波数,λ\lambdaλ为光波波长。将上式改写为离散的傅里叶变换的形式为
U(pΔx,qΔy)=exp⁡(jkd)jλdexp⁡[jk2d(pΔx2)+qΔy2]×ϝ[U0(mΔx0,nΔy0)×exp⁡(jk2d(mΔx0)2,(nΔy0)2)]pΔxλd,pΔyλdU(p\Delta x,q\Delta y) = \frac{\exp(jkd)}{j\lambda d}\exp[\frac{jk}{2d}(p\Delta x^2)+q\Delta y^2]\\\times \digamma[U_0(m\Delta x_0,n\Delta y_0)\times\exp(\frac{jk}{2d}(m\Delta x_0)^2,(n\Delta y_0)^2)]_{\frac{p\Delta x}{\lambda d},\frac{p\Delta y}{\lambda d}}U(pΔx,qΔy)=jλdexp(jkd)​exp[2djk​(pΔx2)+qΔy2]×ϝ[U0​(mΔx0​,nΔy0​)×exp(2djk​(mΔx0​)2,(nΔy0​)2)]λdpΔx​,λdpΔy​​
其中ϝ\digammaϝ表示傅里叶变换,设衍射平面尺寸为L0L_0L0​,观察平面为LLL,采样数为NNN,则两者的关系可以由下式表示
L0=NλdLL_0=\frac{N\lambda d}{L}L0​=LNλd​
根据迭代的相关公式及知识,编写基于S-FFT的反复迭代相息图(MATLAB)程序具体如下:
% 功能: 调入一图像,用菲涅耳衍射的S-FFT计算形成
% 能够由空间光调制器LCOS显示图像的相息图
% 主要变量:
% h ——波长(mm); Ih ——相息图;
% L ——SLM宽度(mm); z0——记录相息
图的距离(mm);
% 取衍射距离1200mm,显示比例1,迭代次数15次
%-------------------------------------------------------------

clear;
close all;
chemin='D:\我的资料库\Pictures\3D\figs\';%图片路径
[nom,chemin]=uigetfile([chemin,'*.*'],['调入模拟物体图像'],100,100);
[XRGB,MAP]=imread([chemin,nom]);%获取图像
figure,imshow(XRGB);
X0=rgb2gray(XRGB);                       %彩色图像转换为灰度图像
figure,imshow(X0,[]);
[M0,N0]=size(X0);                            %获取灰度图像的像素数大小
N1=min(M0,N0);
N=1080;                                            %相息图取样数, 可按需要修改
m0=0.5                                          %图像在重建周期中的显示比例,
m0=input('图像在重建周期中的显示比例(0->1)');
X1=imresize(X0,N/N1*m0);
[M1,N1]=size(X1);
X=zeros(N,N);
X(N/2-M1/2+1:N/2+M1/2,N/2-N1/2+1:N/2+N1/2)=X1(1:M1,1:N1);h=0.532e-3;      %波长(mm), 可按需要修改
k=2*pi/h;
pix=0.0064;      %SLM像素宽度(mm), 可按需要修改
L=N*pix;         %SLM宽度(mm)
z0=1200          %----衍射距离(mm),
z0=input('衍射距离(mm)');
L0=h*z0/pix      %重建像平面宽度(mm)Y=double(X);
a=ones(N,N);
b=rand(N,N)*2*pi;
U0=Y.*exp(i.*b);  %叠加随机相位噪声,形成振幅正比于图像的初始场复振幅
X0=abs(U0);       %初始场振幅,后面叠代运算用
figstr=strcat('SLM平面宽度=',num2str(L),'mm');
figstr0=strcat('初始物平面宽度=',num2str(L0),'mm');
figure(1),imshow(X,[]),colormap(gray); xlabel(figstr);title('物平面图像');
np=input('叠代次数');
for p=1:np+1    %叠代次数
%---------------菲涅耳衍射的S-FFT计算开始
n=1:N;
x=-L0/2+L0/N*(n-1);
y=x;
[yy,xx] = meshgrid(y,x);
Fresnel=exp(i*k/2/z0*(xx.^2+yy.^2));
f2=U0.*Fresnel;
Uf=fft2(f2,N,N);
Uf=fftshift(Uf);
x=-L/2+L/N*(n-1);%SLM宽度取样(mm)
y=x;
[yy,xx] = meshgrid(y,x);
phase=exp(i*k*z0)/(i*h*z0)*exp(i*k/2/z0*(xx.^2+yy.^2));
Uf=Uf.*phase;
%---------------菲涅耳衍射的S-FFT计算结束
figstr=strcat('SLM宽度=',num2str(L),'mm');
figure(2),imshow(abs(Uf),[]),colormap(gray); xlabel(figstr);title('到达SLM平面的物光振幅分布');
Phase=angle(Uf)+pi;
Ih=uint8(Phase/2/pi*255);%形成0-255灰度级的相息图
figure(3),imshow(Phase,[]),colormap(gray); xlabel(figstr);title('相息图');
%---------------菲涅耳衍射的S-IFFT计算开始
U0=cos(Phase-pi)+i*sin(Phase-pi);
n=1:N;
x=-L/2+L/N*(n-1);
y=x;
[yy,xx] = meshgrid(y,x);
Fresnel=exp(-i*k/2/z0*(xx.^2+yy.^2));
f2=U0.*Fresnel;
Uf=ifft2(f2,N,N);
x=-L0/2+L0/N*(n-1);%SLM宽度取样(mm)
y=x;
[yy,xx] = meshgrid(y,x);
phase=exp(-i*k*z0)/(-i*h*z0)*exp(-i*k/2/z0*(xx.^2+yy.^2));
Uf=Uf.*phase;
figure(4),imshow(abs(Uf),[]),colormap(gray); xlabel(figstr0);title('逆运算重建的物平面振幅分布');
%---------------保持相位不变,引用原图振幅,重新开始新一轮计算
Phase=angle(Uf);
U0=X0.*(cos(Phase)+i*sin(Phase));
end;figure(5),imshow(Ih,[]),colormap(gray); xlabel(figstr);title('相息图');


参考书目
[1] 古德曼 ,傅里叶光学导论[M],北京:电子工业出版社,2006,第3版
[2]李俊昌,衍射计算及数字全息[M],北京:科学出版社,2014
[3] 钱晓凡,信息光学数字实验室[M],北京:科学出版社,2014
[4]陈家壁,苏显渝.光学信息技术原理及应用[M].北京:高等教育出版社,2001

基于S-FFT的相息图相关推荐

  1. NeurIPS-21 | MGSSL: 基于官能团的分子属性预测图网络自监督预训练

    本文介绍一篇来自中国科学技术大学刘淇教授课题组和腾讯量子实验室联合发表的一篇文章.该文章提出了基于官能团的分子属性预测图网络自监督预训练方法MGSSL.MGSSL结合化学领域知识,在大量无标签分子数据 ...

  2. 基于STM32F103C6T6的AB相霍尔编码电机的PID转速调节(CubeMx-HAL库)(未完成-持续更新)

    基于STM32F103C6T6的AB相霍尔编码电机的PID转速调节(CubeMx-HAL库)(未完成-持续更新) 主要是记录一下,以后忘了再来看看,也记录记录自己做过的东西 首先是硬件电路图,一下是驱 ...

  3. plotly基于dataframe数据绘制股票OHLC图

    plotly基于dataframe数据绘制股票OHLC图 # plotly绘制ohlc曲线 import plotly as py # 导入plotly库并命名为py import plotly.gr ...

  4. plotly基于dataframe数据绘制股票蜡烛图(Candlestick)

    plotly基于dataframe数据绘制股票蜡烛图(Candlestick) # 股票蜡烛图(Candlestick) import plotly as py # 导入plotly库并命名为py i ...

  5. 基于级联FFT的广义互相关算法在声源定位中的应用

    杨韬 余文辉 曹申 2020-09-30 Wednesday 00摘要   针对2020年第十五届全国大学生智能车竞赛信标组关于声音信标的识别,需要采集声音信号和FM信号,通过声音信号和FM信号互相关 ...

  6. rstudio怎么安装ggplot2_如何基于ggplot2构建相关系数矩阵热图

    点击关注了解更多精彩内容!! 古人云:有缘千里能相会,无缘对面不相逢.铁哥认为"缘分"如果用数据来表示的话,那么可以用相关系数来进行量化.如果你和一个人的缘分足够深,那么你们之间的 ...

  7. 【共振峰跟踪】通过平均不同分辨率的方法跟踪共振峰,基于时频lpc的频谱图的MATLAB仿真

    1.软件版本 MATLAB2021a 2.本算法理论知识 通过平均不同分辨率的方法跟踪共振峰,基于时频lpc的频谱图.此外,它还决定了语音信号的基音轮廓. 3.核心代码 function [fmap, ...

  8. python逗号代码_基于Python3 逗号代码 和 字符图网格(详谈)

    逗号代码 假定有下面这样的列表: spam=['apples','bananas','tofu',' cats'] 编写一个函数,它以一个列表值作为参数,返回一个字符串.该字符串包含所有表项,表项之间 ...

  9. 基于matlab的智能天线波束方向图仿真,基于MATLAB的智能天线波束方向图仿真

    第29卷第6期孝感学院学报V OL,基于M AT LA B的智能天线波束方向图仿真,汪 睿1,(1,3,摘 要:结合一种直线阵智能天线模型,关键词:智能天线,中图分类号:T N911,随着移动通信技术 ...

最新文章

  1. 《淘宝店铺经营管理一册通》一一1.3 页面中的图片应用
  2. HIDL示例-JAVA服务创建-Client验证-Android10.0 HwBinder通信原理(四)
  3. 用 Flask 来写个轻博客 (19) — 以 Bcrypt 密文存储账户信息与实现用户登陆表单
  4. python趣味编程10例-达人迷 Python趣味编程10例
  5. go gin多层路由嵌套示例
  6. 实训09.09:简单的彩票系统(机选多注)
  7. 使用Google Cloud Platform分散您的应用程序
  8. c#进阶(6)—— 网络通信基础知识
  9. SessionState详解
  10. 插入排序:直接插入排序希尔排序
  11. 【SYZOI Round1】滑稽的树
  12. UIAutomator2.0初始
  13. Atitit nosql的艺术 attilax著作 目录 1. 1.5NoSQL数据库的类型 1 1.1. 1.5.1键值(Key/Value)存储 1 1.2. 1.5.2面向文档的数据库 1 1
  14. 测试面试题集锦(一)| 软件测试常见必考问题与流程篇(附答案)
  15. easySearch:一款聚合资源搜索神器
  16. Android 中光线传感器的使用详解
  17. js splice的三个用法
  18. 网速监测-window小应用
  19. html放大镜移动,支持移动手机的jquery放大镜插件enlarge.js
  20. OpenGL 阴影图之二

热门文章

  1. 数据湖:数据同步工具NiFi
  2. js日历核心计算方法
  3. 如何快速学会一项新技能?
  4. LINUX学习笔记:31个常用LINUX命令和相关解释
  5. 树莓派 电脑通过界面远程控制
  6. 基于FPGA的贪吃蛇游戏设计(1)整体架构设计
  7. java程序RedisTempla往redis存key后在redis客户端获取不到key
  8. 在Word文档中插入Excel表格时出现:“用于创建此对象的程序是Excel。您的计算机尚未安装此程序。”试试这个方法
  9. SecureCRT找回密码
  10. 整合spring cloud云架构 - SSO单点登录之OAuth2.0登录流程