用液晶空间光调制器(SLM)产生全息图的GS算法范例

一束激光可以分为两部分,一部分是相位,另一部分是光斑光强分布,他们是相互关联的,可以通过改变光束的相位部分,对光斑进行整形。上述g-s算法(gerchberg–saxton algorithm)就是其中的一种方法。
主要分为四步
1.假设入射光斑是均匀光强,相位因为是未知的,可以用一个随机相位替代,或者通过target intensity的ifft变化求得
2.然后经过fft变化后,得到的是焦距是的光斑分布,光强与target intensity比较近似,但是不够理想
3.替换上述步骤的光强分布,保留相位分布,得到新的一束激光
4.经过ifft变化后保留光斑的相位,作为下一次迭代的初始相位
通过上述步骤的反复迭代,会不断改善approximation to target intensity的光斑。
matlab代码参考:
%% 数据初始化
pic = 'test.jpg'; % 输入图片
file = 'phase.bmp'; % 图片保存位置
num = 1000; % gs迭代次数
%% 读取图片
im = imread(pic);
im = rgb2gray(im);
im = im2double(im);
%% gs算法
im = mat2gray(im);
light = gpuarray(im); % 加入cuda,提高计算速度
light = ifft2(light); % 计算初始相位
for n = 1:num
phase = angle(light);
light = 1.*exp(1i*phase); % 1. 均匀光强入射光
light = fft2(light); % 2. 聚焦面上的光强
phase = angle(light);
light = im.*exp(1i*phase); % 3. 理想光斑替换
light = ifft2(light); % 4. 傅里叶逆运算
end
% 均匀光入射后再做一次傅里叶变化
phase = angle(light);
light = 1.*exp(1i*phase);
light = fft2(light);
intensity = mat2gray(abs(light));
imshow(intensity);
%% 保存相位图
phase = gather(phase); % 将phase返回到内存中
imwrite(mat2gray(phase), file)
备注:
1.cuda可以提高运算的速度,例如上述过程,当上述1000此循环,没有cuda的时候,循环过程保持在8秒以上,当启用cuda后,一般在1.1秒左右。
2.随着迭代次数的增加,恢复后的光强越来越清晰
3.通过对比原始图和经过迭代后的图片,可以判断观察后图片的恢复程度
您可以通过我们的了解更多的产品信息,或直接4006-888-532。

烫金机的操作要点
扭转振动–测量振动的新方法
离心玻璃棉板厂家厂址
能耗计量电表如何提高工业园区能耗管理效率?
安东帕落球粘度计测定聚酰胺的比浓粘度
用液晶空间光调制器(SLM)产生全息图的GS算法范例
润滑脂和石油脂锥入度测定的方法概要
桥式龙门铣床横梁结构设计与优化
杏仁干燥熟化机为什么用微波设备呢
数控机床磨削应用
不及时清洗农用无人机会影响下次作业的喷洒流量
电缆故障测试仪如何工作
如何安装维护美国Clarkson刀闸阀
西安吸尘器维修,陕西工业清洁设备销售后维护
D2008型电子称重仪表使用说明书
雾的池内吸气冷却系统简单介绍
溴化锂吸收式冷水机组外围设备的检查调试
电热鼓风干燥箱基本资料
松下伺服驱动器维修常见问题及解决方法有哪些?
摆线液压马达生产厂家概述液压马达在运用中需注意的难点