許莉莉 張海霞 郭學謙 黃菊英 黃曉清 嚴華剛 熊華暉 黃亞奇 郭江貴 劉志成
(首都醫科大學生物醫學工程學院 北京 100069)
物理學所提供的技術和方法已經廣泛應用在了生命科學、醫學研究以及臨床醫療實踐中,因此,物理學是目前醫學院校培養醫學專業學生理工素質必修的一門基礎課程.但醫學專業學生普遍對物理學的興趣不高,如何有效提高醫學專業學生對物理的學習興趣,改善教學效果是擺在我們醫學院校物理學教育工作者面前的一個重要問題.醫學專業學生學習物理的要求與理工科學生并不相同,醫學專業的物理學課程重在對物理概念、物理原理和物理規律的理解,對復雜的計算要求并不高,這就要求我們結合醫學專業物理教學的特點制作適合的教學課件[1].本文從波動光學一章的內容出發,結合醫學專業的學習要求,介紹了如何利用MATLAB中的圖形用戶界面(GUI)設計、制作適合的教學演示課件.
MATLAB是由MathWorks公司開發,用于工程計算的高性能語言,其編程代碼接近數學推導格式,符合人們的思維習慣,編程極其方便,被稱為“草稿紙”式的編程工具.MATLAB的GUI是向別人提供應用程序、進行技術或方法的演示或制作一個可供反復使用且操作簡單的專用工具的最好選擇之一.
實現一個用戶圖形界面一般包括兩個過程.一個是GUI的組件布局,另一個是GUI組件的編程.另外,用戶還必須能夠保存并發布自己的GUI.MATLAB提供的GUIDE工具箱能夠方便地生成用戶需要的組件資源,并保存在一個FIG文件中,同時生成一個包含GUI初始化和發布控制代碼的M文件.本文中用到的組件包括uimenu生成的菜單、uicontrol生成的坐標軸、面板、按鈕、滑動條和文字顯示欄等,生成的FIG文件運行后如圖1所示.采用M腳本文件實現控件功能是GUI設計的核心.

圖1 組件布局圖
在醫用物理學教學大綱中,波動光學是重要的一章,這一章的內容分為干涉、衍射和偏振三部分.其中偏振與前兩部分的聯系并不緊密,因此在本文中不再討論.本校醫學專業本科生使用的課本是高等教育出版社出版的《醫用物理學》[2].課本中對干涉、衍射討論的重點放在了光屏上出現明暗條紋的位置,對光強的分布則只給出結果.本文提供的課件采取類似的做法,在每種干涉或衍射圖樣的旁邊直接附上該類圖樣豎直中心線上的光強分布結果.
在不透光的屏上,刻有多條等間距、等寬度的透光狹縫形成多縫.與狹縫平行的線光源經透鏡后成為平行光入射到狹縫上.在多縫后方放置一個透鏡,在該透鏡的焦平面上可觀察到多縫的夫瑯禾費衍射條紋.用平行光照射多縫時,每個狹縫本身都要產生自身的單縫衍射,每個單縫等寬則每個單縫的衍射條紋在透鏡焦平面上完全重疊,其光強分布為所有單縫衍射的干涉疊加.屏上任意一點的光強為[3]

在本文中,N=6,初始設定的入射光波長為632 nm,狹縫寬度為0.01 mm,狹縫間距為0.1 mm.在M腳本文件中,直接利用6個不同位置單縫衍射疊加而成,其核心程序如下:
a=0.01;
d=0.1
lambda=0.632e-3;
k=2*pi/lambda;
z=1.0e3;
xmax=3*1.22*lambda/2/R*z;
x=linspace(-xmax,xmax,200);
y=x;
[x,y]=meshgrid(x,y);
lambda/z;
lambda/z;
……
IF=IF1+ IF2+IF3+IF4+IF5+IF6
運行結果如圖2(a)所示(入射波長和單縫寬度的變化可通過滑動條的滑動實現,且在滑動條后有相應數值顯示).隨著狹縫寬度的增加,衍射條紋產生變化,如圖2(b)所示.

(a)狹縫寬度小時多縫衍射結果

(b)狹縫寬度變大時多縫衍射結果

(a)狹縫寬度大時的雙縫干涉效果

(b)狹縫寬度變小時雙縫衍射結果
在多縫衍射的討論中,N若取2,則變為楊氏雙縫干涉的情況,實際的干涉圖樣仍然是干涉和衍射的雙重效應,是等振幅雙光束干涉受單縫衍射調制的結果,如圖3(a)所示.在實際的教學中,先講干涉,后講衍射,因此在講楊氏雙縫干涉實驗時,我們常常先回避衍射的效果.這種回避必須滿足一定的條件,如圖3(b)所示,即當狹縫的寬度(0.001 mm)遠小于波長(632 nm)時,在單縫衍射的中央明條紋中,就已經有很高級次的干涉條紋,若將該區域放大觀察,這些干涉條紋相互之間等距排列,相鄰條紋之間的強度相差也不大,可以近似看成等振幅雙光束干涉的結果.
單縫寬度和入射光波長的改變將顯著影響條紋的分布.在本文提供的圖形用戶界面上,學生可以通過滑動條的滑動適當改變單縫的寬度和入射光的波長,通過觀察條紋的形狀及光強分布,更好地掌握干涉和衍射的本質.
在《醫用物理學》一書中,衍射部分的內容還包括了圓孔的衍射,但這部分內容不作為重點,是學生可以自己學習的部分.在本文提供的圖形用戶界面上,除圓孔外,還設計了矩形孔的夫瑯禾費衍射.學生可以在一定范圍內改變光闌的尺寸和入射光的波長,觀察衍射的結果.

如圖4(a)所示,其核心程序如下:
k=2*pi/lambda;
z=1.0e3;
xmax=8*1.22*lambda/2/R*z;
x=linspace(-xmax,xmax,200);
y=x;
[x,y]=meshgrid(x,y);

k=2*pi/lambda;
z=1.0e3;
r=linspace(0,2*1.22*lambda/2/R*z,201);
eta=linspace(0,2*pi,201);
[rho,theta]=meshgrid(r,eta);
[x,y]=pol2cart(theta,rho);
Bess=besselj(1,rho*R*k/z);
為討論光強分布方便,圖形用戶界面上畫出的是沿光屏豎直中線的光強分布,因此該曲線分布與單縫衍射的光強分布曲線相同,如圖4(b).在矩形孔衍射中,光強分布曲線也是同樣的處理方法.

(a)矩形孔衍射效果

(b)圓孔衍射效果
本文提供的關于波動光學演示實驗的教學軟件只是在教學中的一個嘗試,課件中提供的可修改的也只是波長和光闌的尺寸這兩個最基本的參數.在以后的教學實踐中,我們還將嘗試增加更多的可變參數,以增加學生自主學習的興趣.
參考文獻
1 張海霞,王益勇,許莉莉,王春燕,劉志成. 利用MATLAB制作適合醫學生的物理圖形輸出課件.中國醫學物理學雜志,2010,27(1):1 687~1 690
2 喀蔚波. 醫用物理學. 北京:高等教育出版社,2008.214,220~224
3 石順祥,張海興,劉勁松. 物理光學與應用光學. 西安:西安電子科技大學出版社,2000.139~143