欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

罗曼III型编码

程序员文章站 2022-05-28 22:08:08
...

罗曼III编码

罗曼和郎恩利用迂回相位效应制成迂回相位全息图有三类,现在对最常见的罗曼III型编码进行说明。矩形通光孔径的宽度为定值BmnB_{mn},高度 HmnH_{mn}随采样点(m,n)的振幅值AmnA_{mn} 的变化而改变,dmnd_{mn}透明孔的中心偏离抽样点的距离,偏离的距离随采样点(m,n)相位Φmn\Phi_{mn} 而变化。设物函数是第(m,n)个抽样点的表示[15]^{[1-5]}
Φmn=Amnexp[jϕmn]\Phi_{mn}=A_{mn}exp[j\phi _{mn}]
即通过矩形孔的高度HmnH_{mn} 和矩形孔的位置来编码复波前的频谱的振幅和相位,图中各参量对应的关系为
罗曼III型编码 Hmn=Amny\ H_{mn} = A_{mn}y
 dmn=x0Φmn/2π\ d_{mn} = x_{0}\Phi_{mn}/2\pi
 Bmn=B\ B_{mn} = B
mx0mx_{0}ny0ny_{0} 表示抽样单元的中心,模拟实验是采用’光’字作为实验对象,大小为N×N=64×64,为方便计算,计算全息图的单元划分为s×s,通过孔的宽度设置为s/2,所以罗曼III迂回相位编码的全息图大小为(64×s) ×(64×s),而不是傅里叶频谱相同的64×64像素。因而,模拟重建时的图像会有很多级次同时出现。MATLAB程序如下,仅供参考。

U0=imread('guang.bmp');
U0=double(U0(:,:,1)); 
r=64; c=64;                   
U0=imresize(U0,[r,c]);         
figure,imshow(U0,[])                      
[r,c]=size(U0);                           
ef1=0.8;                                    
FU0=fftshift(fft2(U0.*exp(j.*rands(r,c).*pi.*ef1))); 
Am=abs(FU0);                               
Ph=mod(angle(FU0),2*pi);                 
Ph=Ph./2/pi;                              
w=3;                                           %通光孔径的宽度(设为偶数)
wth=round(w/2);                         %通光孔径的一半
s=6;                                           %设置编码单元的大小(像素)
CGH=zeros(r*s,c*s);                     
%= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
%(罗曼Ⅲ型)
maxAm=max(abs(FU0(:)));                   
ef2=1.5;                                  
th=maxAm/ef2;                             
Am(Am>th)=th;                             
lmn=round(Am/th*w);                      
pmn=round(Ph*w);                           %将相位量化到0,1,2,…,w
%= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
%全息图赋值
for m=1:r;                                
    for n=1:c;                            
        cgh=zeros(s,s);                   
        if lmn(m,n)==0;                          %对模不为零的点进行编码
            elseif pmn(m,n)<=wth           %相位值小于π/2,不出现模式溢出
            cgh(w+1-lmn(m,n):w+lmn(m,n),w-wth+pmn(m,n)+1:2*w-wth+pmn(m,n))=1;
            elseif pmn(m,n)>wth            %相位值大于π/2,出现模式溢出
            cgh(w+1-lmn(m,n):w+lmn(m,n),w-wth+pmn(m,n)+1:s)=1;
            cgh(w+1-lmn(m,n):w+lmn(m,n),1:pmn(m,n)-wth)=1;
        end
        CGH((m-1)*s+1:m*s,(n-1)*s+1:n*s)=cgh;%将生成的抽样单元放到计算全息图中
    end
end
figure;imshow(CGH,[]);                    
%= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
%再现运算
RU=fftshift(ifft2(CGH));                  
RI=RU.*conj(RU);                        
figure;imshow(RI,[0,max(RI(:))/1000]),colormap(pink);

参考文献
[1 ] 古德曼 ,傅里叶光学导论[M],北京:电子工业出版社,2006,第3版
[2] 钱晓凡,信息光学数字实验室[M],北京:科学出版社,2014
[3]陈家壁,苏显渝.光学信息技术原理及应用[M].北京:高等教育出版社,2001
[4]虞祖良,金国藩. 计算机制全息图[M]. 北京:清华大学出版社,1984
[5 ]于美文.光全息学及其应用[M].北京:北京理工大学出版社,1996

相关标签: 全息显示