本文记录的是一个超表面全息显示的案例。首先是G-S算法生成相位全息图,得到超表面单元的转角分布,再进行数值模拟得到全息显示图像。虽然是一个简单的例子,但是本人一个摸索的过程,对于初学者来说或许会有一定的帮助。如果读者有问题欢迎留言。
目录
1. G-S算法原理
G-S 算法是计算生成全息中常用的优化相位分布的迭代方法,算法流程见图1。首先是初始化,作为目标图像的振幅信息,同时施加一个随机相位RAP来模拟漫反射,这两个信息组成了成像面的复振幅
:
在给定初始相位分布下,依次迭代输入和输出的振幅分布,迭代过程有四个步骤:
Step 1:第k次迭代中,对像平面的复振幅进行逆傅里叶变换(IFT)计算,得到全息面上的复振幅
Step 2:提取 的相位,并对
的振幅归一化,得到纯相位全息图(POH)
Step 3:对POH进行傅里叶计算重构成像面的复振幅
Step 4:将重构振幅替换为目标振幅
,生成下一次迭代的输入复振幅
通常使用均方根误差(MSE)或相关系数(CC)来控制误差。通过计算重建振幅与目标振幅的差来控制迭代过程,当MSE或CC满足一定的预设条件,迭代停止。
图1 相位恢复算法流程图。(图片来源:Light Sci Appl. 2022;11(1):231.)
2. 相位恢复结果
%%%%%%%% G-S相位恢复算法 %%%%%%%%%%
%% 抽样
addpath('dataset')
image0 = imread('Letter_O.png');
image0 = rgb2gray(image0);
image0 = im2double(image0);
figure
imshow(image0)
title('输入图像')
M=80; N=80;
image0 =imresize(image0, [M,N]); % 指定新的尺寸
figure
imshow(image0)
title('抽样图像')
%% 生成RAP
PI = 3.14159;
image1 = image0;
phase = 2i*PI*rand(M,N);
image1 = image1.*exp(phase);
%% 计算编码
image2 = ifft2(ifftshift(image1)); % 第一次二维IFT,频域——>时域
% 迭代过程
for t=1:1:1100
imgangle = angle(image2); % 取位相
image = exp(1i * imgangle);
image = fftshift(fft2(image)); % FT 还原,复数图像——>频域
imgabs = abs(image)/max(max(abs(image))); % 归一化
sim = corrcoef(image0,imgabs); % 相关系数
if sim(1,2) >= 0.999 % 满足条件,跳出循环
break
else
imgangle = angle(image2);
image2 = exp(1i*imgangle);
image3 = fftshift(fft2(image2));
imgabs = abs(image3)/max(max(abs(image3)));
imgangle = angle(image3);
image3 = exp(1i*imgangle);
image3 = image3.*(image0+rand(1,1)*(image0-imgabs));
image2 = ifft2(ifftshift(image3));
end
end
%% 输出位相全息图
imgangle = angle(image2); % 取位相(弧度制)
image4 = exp(1i*imgangle);
image4 = fftshift(fft2(image4)); % 重建结果
imgabs = abs(image4)/max(max(abs(image4)));
figure
imshow(imgangle);
title('位相全息图')
figure
imshow(imgabs);
title('重建图')
%% 存储位相全息图
level = 4; % 台阶数
res = (imgangle+PI)/(2*PI/level);
phi = (round(res)*360/level)/2; % 转角
figure
imshow(phi,[])
title('相位板');
% name_save = 'phase_only';
% dlmwrite([name_save,'.txt'], phi, 'delimiter', '\t' );
3. 几何相位超表面
Pancharatnam和Berry相继发现了几何相位的关系,当圆偏振光入射到结构上时,会产生与入射光相反旋向的交叉圆偏振光,而通过适当的结构设计可以达到旋转光轴的效果,光轴与坐标轴的夹角会发生改变,从而交叉圆偏振光的相位就得到了调控。
PB相位特点 | 只针对圆偏振光入射,才会在其激发的正交场上有两倍旋转角度的附加相位突变。 |
上图的相位全息图可以转化为转角,并保存为.txt
4. 数值模拟——FDTD
FDTD(时域有限差分法)自1966 年K.S.Yee 提出以来,经常被用于电磁仿真模拟。相比于其他电磁仿真模拟方法,FDTD 计算精度适当,所需的运算存储空间较小,能够较为快速的完成电磁仿真模拟。以上述小兔子作为输入,得到的全息图像。远场显示效果如下: