基于可见光波长颜色映射关系的棱镜色散现象写真
2013-10-26徐代升甘亮勤杜旭日
徐代升,甘亮勤,杜旭日
基于可见光波长颜色映射关系的棱镜色散现象写真
*徐代升1,2,甘亮勤1,2,杜旭日1,2
(1. 厦门理工学院光电学院, 福建,厦门 361024; 2. 厦门理工学院光电工程技术研究中心,福建,厦门 361024)
探讨了用计算机真实再现棱镜色散现象的技术。以Dan Bruton的工作为基础,依据MATLAB颜色显示法,建立了可见光波长与RGB的映射关系,实现了可见光波长颜色在显示屏上的再现。运用所建立映射关系,结合白光通过棱镜之光路追迹,真实再现了棱镜色散现象,实现了棱镜色散现象写真。进一步将上述方法运用于白光入射两个完全一样、相互倒置摆放棱镜实验现象仿真,得到了各色光从红到紫平行于入射白光依次从第二块棱镜出射的正确实验现象。
工程光学;棱镜;光色散现象;光路追迹
牛顿的棱镜色散实验(1665~1666)曾被评为物理学史上最漂亮的十大物理实验之一。它不仅让人们认识到了白光的本质,即白光是由红、橙、黄、绿、青、蓝、紫等有着不同色谱的基础色所合成的表面上颜色单一的复色光;同时也让人们认识到材料的折射率是波长的函数,即棱镜具有色散作用的本质。
用计算机再现今天看起来非常简单的牛顿棱镜色散实验,到目前为止,笔者还没有找到完全按照物理规律并与实验现象展现一致的文献,只在网上看到过写意的小程序。实际上要用计算机写真棱镜色散现象涉及到几个技术问题:一是不同可见光波长引起人眼不同颜色感觉如何在计算机屏幕上再现;二是不同可见光波长对棱镜材料的折射率是多少;三是牛顿棱镜色散实验的整体显现。文中探讨这些问题的解决方法,从而科学严谨地再现牛顿棱镜色散实验,即实现牛顿棱镜色散实验写真。
1 MATLAB语言计算机颜色显示方法
文中采用MATLAB可视化编程语言来实现牛顿棱镜色散实验的写真,因此必须了解MATLAB颜色显示法。在MATLAB[1]中,图像数据有double类型和unit8类型两种,在缺省情况下,图像数据的存取为double类型,而且涉及图像运算时都要采用double型,unit8型的优势仅在于节省存取空间。对于double型,每种颜色都用一个长度为3的实数向量表示,向量元素取值范围是[ 0 , 1 ](unit8型为[ 0 , 255 ]),这3个数值分别表示计算机屏幕所显示图像每个像素颜色对应的、、三个分量的光亮度值。这个由值组成的列数为3的数值矩阵,就是该图像所对应的色谱(colormap)矩阵。MATLAB在创建图形窗口时,自动地为图形窗口设置一个色谱,随后若有用户为图形窗口设定特定的色谱,那在这个新创建的图形窗口中显示的图像,就将使用这个新的色谱进行着色。MATLAB中,使用色谱着色的图像生成函数有mesh、surf、pcolor、image等,所有以这些函数为基础的图像生成函数都将使用色谱矩阵进行着色。因此,要使在计算机模拟的牛顿棱镜色散现象按真实实验结果显示屏上显示,即实现牛顿棱镜色散实验的写真,最重要的就是建立构成白光的每一可见波长(单色光)与RGB的映射关系。
2 可见光波长与RGB的映射关系
在整个电磁波谱中,能刺激人眼引起视觉的那一小部分为可见光。通常取波长380~780 nm作为可见光范围。可见光的波长不同,引起人眼的颜色感觉就不同。单色光的波长由长到短,对应着的颜色感觉由红到紫。颜色是物理现象和人类感觉的一种奇妙组合,它与光源、物体和观察者的特性有关;颜色的显示还与显示器的特性关联。MATLAB中double型图像色谱矩阵、、取值范围是[ 0 , 1 ]。
= 1.0,=0.0,= 0.0。
图1 基于所建立映射关系的可见光波长与对应颜色模拟结果
3 棱镜材料折射率与可见光波长的关系
众所周知,材料折射率是波长的函数。对于不同的玻璃材料,人们已给出了几种色散公式来表征材料的折射率参数,最常见的两种是Schott色散公式和Sellmeier色散公式[3]。
Schott色散公式表达式为
Sellmeier色散公式表达式为
图2 可见光范围内BK7玻璃折射率与波长的关系
4 棱镜色散现象写真
下面用光路追迹的方法实现棱镜色散现象的再现。之所以把这一再现过程称之为写真,是因为下面的讨论完全遵循光的传播规律,既保证光的出射方向正确,同时又根据可见光波长颜色映射关系,比较准确地呈现了某一波长单色光在棱镜中传播时的色彩,就像拍写真集一样。棱镜色散现象写真流程如图3所示。
图3 实现棱镜色散现象写真流程图
图4 棱镜色散现象光路追迹及结果图
图5 棱镜色散现象写真结果放大图
《牛津图解中学物理》(through diagrams PHYSICS)[4 ]认为,第一块棱镜可让入射白光色散,那第二块同样的棱镜则可以让色散的彩色光谱合成白光,并给出了如图6(从原书拷贝)所示的示意图。这显然是错误的。
图6 拷贝自文献[4]的棱镜白光分解与合成示意图
同样的错误还出现在一些文献中[5],如英国Longman GCES Physics[6]、华师大科学教材七年级下第89页,它们想当然认为,两个完全一样的棱镜相互倒置摆放,如果用一束白光照射其中某一棱镜,则光线经过这两个棱镜折射,从另一个棱镜出射时会合成白光,并用彩图表示,如图7所示。
图7 文献中给出的白光入射两个完全一样相互倒置摆放棱镜的错误现象
上述错误结论从理论上已非常容易解释为什么了,本文就不赘述了。这里用本文已讨论的棱镜色散现象写真方法,来模拟这一实验现象,如图7所示。从图7可以看出,一束白光入射两个完全一样相互倒置摆放的棱镜时,光从第二块棱镜出射时不能合成白光,而是各色光从红到紫平行于入射白光以一定宽度(可计算的)依次出射。如果把出射光投影到白墙上,看到将是一个彩色的光斑。这和实际的实验现象以及理论分析是吻合的,这说明本文描述的方法是正确的。
图7 白光入射两个完全一样相互倒置摆放棱镜的现象写真
5 结语
根据MATLAB颜色显示法,把Dan Bruton工作所建立的可见光波长与的映射进行MATLAB描述,并通过光路追迹,实现了棱镜色散现象的写真,并对文献中给出白光入射两个完全一样相互倒置摆放棱镜错误现象进行了仿真,给出了正确的仿真结果。这种方法可广泛用于与可见光有关物理光学现象讨论与分析,如光栅的色散、激光的传播规律、空间滤波等等。可见光波长与的映射关系的建立,还可用于光谱学中可见光谱线较为真实的表现(即显示屏上显示的谱线色彩与人眼通过仪器看到的谱线色彩是一致的),这有助于光谱分析。
[1] 伯晓晨,李涛,刘路,等.MATLAB工具箱应用指南——信息工程篇[M]. 北京: 电子工业出版社,2000: 114-118.
[2] Dan Bruton. Approximate RGB values for Visible Wavelengths[EB/OL]. http:// www. physics. sfasu. Edu / astro / color. html, 1996.
[3] Robert R.Shannon.The art and science of optical design[M].Cambridge:Cambridge University Press,1997: 143.
[4] (英)阿诺德.牛津图解中学物理:英汉对照[M]. 洪晖等译.上海: 上海教育出版社, 2001: 32.
[5] 王绍符. 教材中关于三棱镜光的色散与复合的错误[EB/OL].http://bbs.zxxk.com/dispbbs.asp?boardID=18&ID=33288, 2005.
[6] Brian Arnold, Steve Wolley. Longman GCES Physics[M]. Logman:longman educational, 2002.
Describing Dispersion of Light through A Glass Prism as It Is Based on Mapping Relationship between Visible Wavelength and Color
*XU Dai-sheng1,2, GAN Liang-qin1,2, DU Xu-ri1,2
(1.School of Optoelectronics Xiamen University of Technology, Xiamen, Fujian 361024, China; 2. Opto-electronic Engineering Research Center, Xiamen University of Technology, Xiamen, Fujian 361024, China)
Thetechnique of how to truly show dispersion of light through a glass prism on computer is discussed. Based on the work of Dan Bruton and the display method of color in MATLAB, the mapping relationship between visible wavelength and data in colormap matrix of MATLAB was erected Therefore the corresponding color of the visible wavelength can be displayed truly on computer screen. According to the mapping relationship, to describe prism dispersion as it is was realized by ray tracing. Furtherly used this method to show the experimental result of the incident white light through the pair of prisms which were made of same glass and placed inversely, the verity is that the refracted color rays from red to violet come out from the second prism parallel to the incident white light.
engineering optics;prism;dispersion of light;ray tracing
O436, TP391
A
10.3969/j.issn.1674-8085.2013.01.006
1674-8085(2013)01-0027-04
2012-11-18;
2012-12-06
厦门理工学院高层次引进人才科技项目(YKJ10008R)
*徐代升(1968-),男,湖南常德人,教授,高级工程师,博士,硕士生导师,主要从事激光及光电测量技术研究 (E-mail: d_sh_xu@163.com);
甘亮勤(1981-),女,湖南岳阳人,实验师,硕士,主要从事信息处理及全息显示技术研究(E-mail: lqgan@xmut.edu.cn);
杜旭日(1981-),男,福建泉州人,副教授,主要从事实验室建设及光电检测技术研究(E-mail: xitpd@163.com)