計算全息圖的制作及數(shù)字再現(xiàn)_第1頁
計算全息圖的制作及數(shù)字再現(xiàn)_第2頁
計算全息圖的制作及數(shù)字再現(xiàn)_第3頁
計算全息圖的制作及數(shù)字再現(xiàn)_第4頁
計算全息圖的制作及數(shù)字再現(xiàn)_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上計算全息圖的制作及其數(shù)字再現(xiàn)物理科學(xué)與工程技術(shù)學(xué)院 作者姓名:楊煦、楊康明指導(dǎo)老師:蔡志崗 教授摘要:計算機(jī)制全息圖是制作全息圖的一種新技術(shù),它是利用數(shù)字計算機(jī)來綜合的全息圖,它不需要物體的實際存在,而是把物波的數(shù)學(xué)描述輸入計算機(jī)處理后,控制繪圖儀輸出或顯示器顯示二制成的全息圖。計算全息圖的數(shù)字再現(xiàn)是利用計算機(jī)模擬光學(xué)全息的光路,仿真菲涅爾衍射、透鏡傅里葉變換等光學(xué)過程從而在虛擬的觀察屏上得到全息再現(xiàn)像。關(guān)鍵詞:計算全息 數(shù)字再現(xiàn)一、引言:早在1965年,Kozman和Kelly就提出了計算機(jī)生成全息圖(Computer Generated Holography,簡稱

2、CGH)的概念,那時受計算機(jī)速度、容量和顯示器分辨率等因素的約束,直到80年代中期以前計算機(jī)全息圖的研究一直未取得大的進(jìn)展。國內(nèi)對全息技術(shù)的研究主要集中在物理光學(xué)領(lǐng)域。而目前由于計算機(jī)技術(shù)的發(fā)展以及計算機(jī)硬件的進(jìn)步,已經(jīng)可以制作空間帶寬積很大的計算全息圖,但是由于輸出設(shè)備的精度問題,難以制作質(zhì)量很高的全息圖。因此我們將以此為研究重點,希望從編碼方法上有所突破,解決這個問題。二、實驗原理計算全息圖的制作和再現(xiàn)過程主要分為以下幾個步驟:1、抽樣,得到物體或波面在離散樣點上的值;2、計算,計算物光波在全息平面上的光場分布;3、編碼,把全息平面上光波的復(fù)振幅分布編碼成為全息圖的透過率變化;4、成圖,在

3、計算機(jī)控制下,將全息圖的透過率變化繪制成圖,如果繪圖設(shè)備分辨率不夠,則繪制一個較大的圖,再縮版到得到使用的全息圖;5、再現(xiàn),這一步驟與光學(xué)全息圖的再現(xiàn)沒有什么區(qū)別。制作一個傅立葉變換全息圖的典型流程如下:(一)、抽樣抽樣包括對輸入圖像的抽樣和對全息圖的抽樣。實際上,輸入圖像和全息圖像的信號都是連續(xù)的。而計算機(jī)只能對離散的數(shù)據(jù)進(jìn)行處理,所以必須對物光和全息圖像進(jìn)行離散化,即抽樣處理。由空間帶寬積的傳遞不變性可以知道,在全息圖平面上的空間帶寬積SW應(yīng)該和物體的空間帶寬積SW相等。換句話說,全息圖上的抽樣數(shù)(可分辨單元數(shù))要等于(或大于)輸入圖像的抽樣數(shù)。于是我們可方便地確定在計算機(jī)全息圖制作時,輸

4、入圖像和全息圖平面上應(yīng)該具有的抽樣點數(shù)總數(shù),即。其中是輸入圖像的面積,是其頻帶面積。另外,給出一幅圖像,如何知道其帶寬呢?由于成像系統(tǒng)是低通濾波器,其傳遞圖像的最高頻率是有限的,存在著截止頻率,故得到的圖像可近似地看作限帶的,輸入圖像的帶寬可近似地用光學(xué)通道(包括接收器)的截止頻率來表示。 還有一種方法是用空間局部頻率的概念來定義帶寬:由空間局部頻率出發(fā),可以來定義物波函數(shù)的帶寬。定義:物波函數(shù)在x、y方向的帶寬分別為Bx,By。即用空間局部頻率的最大值的兩倍來表示物波函數(shù)的帶寬。這是一種有效的近似處理。一般地,以圖片格式存儲在計算機(jī)里面的圖像已經(jīng)是圖像抽樣之后的離散數(shù)據(jù)了。我們只需要知道圖像

5、的尺寸和其空間帶寬積,這樣便可以換算出原圖像的抽樣間隔和全息圖的抽樣間隔。所以以圖片格式存儲的圖像我們一般不必再作抽樣處理。如果圖像是以其他連續(xù)形式格式存儲的話,就需要對圖像進(jìn)行抽樣。(二)、計算計算圖像的全息圖的過程,是運用物理定律求出全息平面上的復(fù)振幅分布的過程,運用計算機(jī)模擬光的傳播、衍射、干涉,得到全息平面上的復(fù)振幅分布。具體計算時,常會用到傅立葉變換、菲涅爾衍射公式等等。計算機(jī)全息中運用的是經(jīng)典的標(biāo)量波衍射理論。這一理論把光波看作標(biāo)量波來處理,能很好地解釋全息過程。理論里面涉及到的公式一般是連續(xù)形式的。計算機(jī)要運用這些理論必須把輸入量、輸出量和公式三者都離散化。輸入和輸出量的離散化由

6、前面的抽樣方法實現(xiàn)。公式的離散化則是數(shù)值計算關(guān)心的問題。然而得到離散化后的公式與原來的公式并不完全等價。用計算機(jī)制作的全息圖,經(jīng)常需要用到傅立葉變換算法。計算機(jī)里面常用的傅立葉算法是快速傅立葉變換算法(FFT)。離散形式的傅立葉變換和連續(xù)傅立葉變換并不完全相同。(三)、編碼由于前面計算得到的只是全息平面上的復(fù)振幅分布。而實際上的全息圖一般是透過率的分布(振幅型)、折射率的分布(相位型)和厚度分布(相位型)等等。這些分布涉及到的參數(shù)都是正的實數(shù),所以必須把復(fù)數(shù)的復(fù)振幅變換到對應(yīng)的正實數(shù)參數(shù),這就是編碼過程。在光全息中,用底片記錄全息平面的光強(qiáng)就是把復(fù)振幅以光強(qiáng)的形式進(jìn)行編碼。而在計算全息中,編碼

7、的方法則很靈活。下面介紹一種傳統(tǒng)的編碼方法:羅曼III編碼。1、迂回相位效應(yīng)迂回相位效應(yīng)是不規(guī)則光柵的衍射效應(yīng)。考慮一個規(guī)則的二元光柵,光柵周期為,如圖1(a)。 (a)規(guī)則二元光柵 (b)某條紋發(fā)生移動后的二元光柵圖1 迂回相位效應(yīng)示意圖對規(guī)則光柵某一級衍射相鄰兩條光線的光程差為。若光柵的某個條紋發(fā)生p的位移,如圖1(b),則該處的光程差變?yōu)椋仍瓉碓黾恿斯獬滩?。結(jié)合光柵方程,條紋變動處有相位變化 。這個附加的相位便是迂回相位??梢钥吹剑鼗叵辔桓ㄩL無光,跟光的入射角出射角也無關(guān),只跟衍射級、光柵常數(shù)、附加位移有關(guān)。利用迂回相位效應(yīng),控制條紋的附加位移,就可以實現(xiàn)對波面的控制。2、羅曼II

8、I編碼的編碼方法羅曼III編碼就是應(yīng)用迂回相位效應(yīng)來進(jìn)行編碼的。具體編碼過程如下:通過前面“計算”這一個步驟,可以得到全息平面上的離散的復(fù)振幅分布?,F(xiàn)在把每個離散點作為一個全息像元,如圖2。像元的寬和高分別為du和dv(抽樣間隔)。像元內(nèi)有一寬W高H的矩形孔。寬度方向矩形孔的中心偏離像元中心的距離為P,而高度方向兩者中心同高。除了矩形孔內(nèi)部之外,像元的其它位置都不可以透光。根據(jù)迂回相位效應(yīng),把每個矩形孔當(dāng)作是一個條紋,用矩形孔的面積調(diào)制復(fù)振幅的絕對值(強(qiáng)度),矩形孔的位置調(diào)制復(fù)振幅的復(fù)角(相位),這便是羅曼III編碼的方法。首先求出全息平面上每個離散點的復(fù)振幅的絕對值,然后對其歸一化得到歸一化

9、后的振幅值A(chǔ),再求出復(fù)振幅的復(fù)角,接著用這些振幅值A(chǔ)和復(fù)角分別對每個像元內(nèi)的矩形孔的高度和寬度進(jìn)行調(diào)制。假設(shè)要在第M級衍射光中得到最亮的像,就要使,。這樣操作后,就得到了一張羅曼III編碼的全息圖。圖2 羅曼III編碼示意圖 在具體操作的時候,可能會遇到矩形孔超出像元的情況,此時要進(jìn)行“模式溢出校正”?!澳J揭绯鲂Uā本褪前岩绯霾糠值木匦慰籽h(huán)移動到像元的另一側(cè)(如圖3)。圖3 模式溢出校正這樣操作即可以保證每個像元的透光面積保持不變,又可以不影響相位的調(diào)制,因為像元左右邊界的相位差是。由于矩形孔衍射的原因,這樣編碼得到的再現(xiàn)圖的亮度并不均勻。這種不均勻可以通過對輸入圖像的強(qiáng)度乘以一個sin

10、c因子來改善。還有一個問題需要注意。前面迂回相位的推導(dǎo)并不嚴(yán)格。如圖4所示,光柵條紋移動后,實際上C和C已經(jīng)不是同一點了。真正的附加光程并不是C與C點光線的光程差,而應(yīng)該是C點光線與C點在原來規(guī)則光柵同一位置處的光線的光程差。圖4 迂回效應(yīng)的進(jìn)一步說明圖也就是說,羅曼III編碼中迂回相位不是相對于像元中心處的相位而附加上的量,而應(yīng)該是相對于矩形孔移動后的中心處位置的相位而附加的量。(四)、繪制和照相得到了編碼后的全息圖像,可以用繪圖儀或打印機(jī)復(fù)制到膠片上顯示出來,然后把圖像通過微縮照相縮小到合適的尺寸,以達(dá)到足夠高的分辨率。或者用高分辨率的空間光調(diào)制器直接調(diào)制圖像。(五)、再現(xiàn)通過上面方法得到

11、的計算機(jī)全息圖,可以用光全息圖的再現(xiàn)方法來再現(xiàn)。除了光學(xué)再現(xiàn)外,還有一種再現(xiàn)數(shù)字再現(xiàn)。這方法是利用計算得到的全息圖數(shù)據(jù),通過計算機(jī)模擬光學(xué)再現(xiàn)系統(tǒng),最后在計算機(jī)中計算出再現(xiàn)圖像,實現(xiàn)全息圖的再現(xiàn)。(六)、全息圖的數(shù)字再現(xiàn)數(shù)字再現(xiàn)的實際上就是模擬光在光學(xué)系統(tǒng)里傳播。全息圖的數(shù)字再現(xiàn)過程包括全息圖的衍射和透鏡的變換等過程。在許多光學(xué)教科書上都可以找到菲涅爾衍射公式其中,F(xiàn)代表傅立葉變換,是輸入面復(fù)振幅,是輸出面復(fù)振幅,是兩平面的距離,k為光波波矢,為光波波長。還有透鏡的透射系數(shù)公式其中f為透鏡的焦距。后文涉及到的全息圖都是傅立葉變換全息圖,所以其再現(xiàn)光學(xué)系統(tǒng)就只是一個傅立葉透鏡。把全息圖放在透鏡的

12、前焦面,在后焦面上便得到其再現(xiàn)圖像。再現(xiàn)過程如圖5。圖5 數(shù)字再現(xiàn)過程圖把前面編碼后的全息圖數(shù)據(jù)作為輸入復(fù)振幅數(shù)據(jù),經(jīng)過一次菲涅爾衍射運算后,把得到的復(fù)振幅分布乘以透鏡的透射系數(shù),然后再經(jīng)過一次菲涅爾衍射運算,在再現(xiàn)屏幕上便得到再現(xiàn)像的復(fù)振幅分布,取其模的平方,就可以得到再現(xiàn)圖像。數(shù)字再現(xiàn)的程序見附錄1。要強(qiáng)調(diào)的是,這里模擬的是一個理想的共軸光學(xué)系統(tǒng),有許多實際因素(如:透鏡的像差、離軸情況)并沒有考慮。三、實驗制作計算機(jī)全息圖及其數(shù)字再現(xiàn)羅曼III編碼傅立葉變換全息圖的計算的程序用Matlab來編寫的,具體程序代碼見附錄2。程序的過程大致是:先讀入圖像,把圖像變?yōu)榛叶葓D,并且給圖像加上隨機(jī)相

13、位。這樣做是原因是若直接對圖像作傅里葉變換,會使得歸一化的振幅變化很快。讀入的圖像加上隨機(jī)相位處理(作用類似于光學(xué)實驗中給光源加上毛玻璃),能使圖像經(jīng)過傅里葉變換后,振幅的變化變緩慢,而再現(xiàn)的時候又不會影響光強(qiáng)的分布。接著對圖像進(jìn)行二維的快速傅立葉變換。然后用羅曼III編碼算法進(jìn)行編碼。編碼過程只引入了“模式溢出校正”,沒有引入其他的校正。最后把全息圖顯示在屏幕上,得到的全息圖保存為圖片格式。利用計算機(jī)模擬光學(xué)全息的光路,仿真菲涅爾衍射、透鏡傅里葉變換等光學(xué)過程從而在虛擬的觀察屏上得到全息再現(xiàn)像。圖6計算全息的數(shù)字再現(xiàn)實驗中選用的對象是高寬都為32像素漢字:占。選取這個字主要是因為他方向性強(qiáng),

14、僅含有橫豎兩種筆畫,便于觀察不同像元大小對全息再現(xiàn)的影響。以下為調(diào)節(jié)像元大小為不同值時的全息編碼圖以及再現(xiàn)圖。圖7du=1,dv=1圖8du=16,dv=16圖9du=32,dv=32圖10du=8,dv=36附錄:1全息圖的數(shù)字再現(xiàn)Matlab程序文件名:Fresnel.m% 本程序是輸入一幅圖像,求z1距離后的面上菲涅爾衍射場的場分布% 入射光波長lambada,單位m% E1為輸入圖像代表的矩陣% E0為輸出圖像代表的矩陣% deltaX1為輸入圖像橫向的寬度,單位m% deltaY1為輸入圖像縱向的寬度,單位m% deltaX0為輸出圖像橫向的寬度,單位m% deltaY0為輸出圖像縱

15、向的寬度,單位m% z1輸入圖像與衍射平面的距離,單位mfunction E0,deltaX0,deltaY0=Fresnel(lambada,E1,deltaX1,deltaY1,z1)ny,nx=size(E1);x0,y0=meshgrid(-(nx-1)/2:(nx-1)/2,-(ny-1)/2:(ny-1)/2);dx1=deltaX1/nx;dy1=deltaY1/ny;dx0=lambada*z1/deltaX1;dy0=lambada*z1/deltaY1;x0=x0*dx0;y0=y0*dy0;c=exp(i*2*pi/lambada*z1)/(i*lambada*z1)*e

16、xp(i*pi*(x0.2+y0.2)/lambada/z1); % 相關(guān)的系數(shù),參考菲涅爾衍射公式for p=1:nx for q=1:ny E(q,p)=E1(q,p)*exp(i*pi/lambada/z1*(dx1*(p-(nx+1)/2)2+(dy1*(q-(ny+1)/2)2); % 相關(guān)的計算,參考菲涅爾衍射公式 endendE=fftshift(E); % 把數(shù)據(jù)作“平移”到第一象限作處理(其實是把圖像作周期延拓,再取第一象限的那個周期)Etemp=fftshift(fft2(E); % 把傅立葉變換譜的零頻率移動到中心E0=c.*Etemp; % 參考菲涅爾衍射公式delta

17、X0=dx0*nx;deltaY0=dy0*ny;文件名:lens.m% 透鏡輸入輸出面分別緊靠在透鏡的兩側(cè),認(rèn)為輸入和輸出面之間的距離為零% 透鏡的中心在光軸上,透鏡所在平面與光軸垂直% 入射光波長lambada,單位m% E1為輸入圖像代表的矩陣% E0為輸出圖像代表的矩陣% deltaX1為輸入圖像橫向的寬度,單位m% deltaY1為輸入圖像縱向的寬度,單位m% F為透鏡的焦距,單位m% aperture為透鏡的孔徑,單位mfunction E0=lens(lambada,E1,deltaX1,deltaY1,F,aperture)ny,nx=size(E1); % 對一幅圖片,縱向?qū)?/p>

18、應(yīng)圖片矩陣的行(ny),橫向?qū)?yīng)矩陣的列(nx)dx=deltaX1/nx;dy=deltaY1/ny;x,y=meshgrid(-(nx-1)/2:(nx-1)/2,-(ny-1)/2:(ny-1)/2);x=x*dx;y=y*dy;I=find(x.2+y.2>(aperture/2).2);x(I)=0;y(I)=0;E0=E1.*exp(-i*pi*(x.2+y.2)/lambada/F); % 透鏡的復(fù)透射系數(shù)公式文件名:main.mclear;lambada=632.8e-9;p=imread('j:hologram dataspp.bmp'); %全息圖所在

19、的路徑p=rgb2gray(p);%figure;%imshow(p);p0=double(p);deltaX=1e-2; % 全息圖寬(m)deltaY=1e-2; % 全息圖高(m)F=27e-2; % 焦距(m)aperture=10e-2; % 孔徑(m)obj=F;img=F;p1,U,V=Fresnel(lambada,p0,deltaX,deltaY,obj); % 第一次菲涅爾衍射p2=lens(lambada,p1,U,V,F,aperture); % 經(jīng)過透鏡p3,U,V=Fresnel(lambada,p2,U,V,img); % 第二次菲涅爾衍射pout=p3;pout

20、=abs(pout);pout=pout/max(max(pout);figureimshow(pout*100);axis onxlabel(U);ylabel(V);2羅曼III編碼制作二維傅立葉全息圖的matlab程序clear;close;% 參數(shù)輸入?yún)^(qū) % p0=imread('c:f.bmp'); % 讀入圖像du=1; %全息圖像素x方向的間隔dv=1; %全息圖像素y方向的間隔M=1; %希望在第幾級衍射光中得到圖像(這里選擇了第一級)%p1=rgb2gray(p0); %圖像變?yōu)榛叶葓D像p1=p0; % 暫時使用 %figure;imshow(p1); %顯示

21、灰度圖象p2=double(p1);nx,ny=size(p2); %得到圖像的大小mx,ny,并且把每個像素作為一個抽樣點p3=p2.*exp(i*2*pi*rand(nx,ny); %對圖片附加隨機(jī)的相位fftp3=fftshift(fft2(fftshift(p3); %對圖像進(jìn)行二維傅里葉變換amplitude=abs(fftp3); %得到復(fù)振幅的振幅值phase=angle(fftp3); %得到復(fù)振幅的相位值amplitude=amplitude/max(max(amplitude); %歸一化H=amplitude*dv; %矩孔的高度P=phase/(2*pi*M)*du;

22、%矩孔中心與抽樣區(qū)中心的偏移距離W=0.5/M*du; %矩孔的寬度normal=find(abs(P+sign(P).*W/2)<=du/2); %得到矩孔不用模式溢出校正的序號leftOF=find(P-W/2)<(-du/2); %得到矩孔左邊溢出的序號rightOF=find(P+W/2)>(du/2); %得到矩孔右邊溢出的序號uleft=zeros(nx,ny); %矩孔左側(cè)坐標(biāo)uright=zeros(nx,ny); %矩孔右側(cè)坐標(biāo)vup=zeros(nx,ny); %矩孔上側(cè)坐標(biāo)vdown=zeros(nx,ny); %矩孔下側(cè)坐標(biāo)mark=zeros(nx,ny);mark(normal)=1; %標(biāo)志那些位置沒有溢出% 先求出所有的矩孔四個邊相對抽樣區(qū)中心的偏移量vup=H/2; %矩孔的上邊界vdown=-H/2; %矩孔的下邊界ule

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論