第七周:光栅光谱仪的使用
实验报告:光源发射光谱与滤光片透射光谱的测量
实验人员: [陈彦伯]
实验日期: [20260418]
1. 实验目的
- 了解光纤光谱仪的基本结构与工作原理。
- 掌握利用光谱仪测量不同光源(氘灯、汞灯、钨灯)发射光谱的方法,并认识线状光谱与连续光谱的特征。
- 掌握测量固体样品(滤光片)透射光谱的原理及实验操作。
2. 实验仪器
光纤光谱仪、计算机及配套光谱采集软件、光源组件(氘灯、汞灯、卤钨灯)、绿色滤光片。
3. 实验原理
3.1 光纤光谱仪原理
光纤光谱仪由入射狭缝、准直镜、色散元件(光栅)、聚焦反射镜和阵列探测器(如 CCD)组成。光信号经光纤导入后,由光栅色散成不同波长的单色光,并聚焦在探测器上,将光信号转化为电信号,最终在计算机软件中呈现为光谱图(强度-波长关系)。
3.2 发射光谱
- 连续光谱:炽热的固体或液体发光(如卤钨灯)会产生连续分布的光谱,其能量分布与温度有关(普朗克黑体辐射定律)。
- 线状光谱:稀薄气体受激辐射发光(如汞灯、氘灯)会产生特定波长的离散谱线,这些波长由原子内部电子能级跃迁决定。
3.3 透射光谱
透射率 \(T\) 定义为透过样品的光强度 \(I_t\) 与入射光强度 \(I_0\) 之比。在扣除暗背景 \(I_d\) 后,样品的透射率计算公式为:
本次实验中,卤钨灯光谱(W01-pure.txt)作为入射光 \(I_0\),加装绿色滤光片后的光谱(W02-green.txt)作为透射光 \(I_t\),暗场光谱(REF01-none.txt)作为背景 \(I_d\)。
4. 实验步骤
- 系统连接与预热:连接光纤、光谱仪、光源与计算机。开启光源预热,确保发光稳定。
- 软件设置:打开光谱仪软件,调节积分时间,使得光谱峰值强度在探测器量程的 \(80\% \sim 90\%\) 之间,避免信号饱和。
- 发射光谱测量:
- 开启氘灯,记录 200~800 nm 范围内的光谱数据(保存为
H01.txt)。 - 切换至汞灯,调整积分时间,记录 200~800 nm 宽范围光谱(
Hg01-WideRange.txt)。 - 针对汞灯的黄色双线区域,设置测量范围为 560~595 nm,精细扫描并记录(
Hg02-NarrowRange.txt)。
- 开启氘灯,记录 200~800 nm 范围内的光谱数据(保存为
- 透射光谱测量:
- 开启钨灯,在不放置样品的情况下记录参考光谱(
W01-pure.txt)。 - 将绿色滤光片放入光路,记录透过样品后的光谱(
W02-green.txt)。 - 关闭光源,记录暗光谱(
REF01-none.txt)用于本底扣除。
- 开启钨灯,在不放置样品的情况下记录参考光谱(
5. 数据处理
利用 Python 脚本读取实测的光谱数据文件,并绘制各光源的发射光谱图及滤光片的透射率曲线。数据处理与绘图代码如下:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 设置绘图字体为黑体以支持中文
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
def load_spectrum(filename):
try:
df = pd.read_csv(filename, sep='\t', header=None, comment='#')
if df.shape[1] < 2:
df = pd.read_csv(filename, sep=',', header=None, comment='#')
except Exception as e:
print(f"无法读取文件 {filename}: {e}")
return None, None
return df.iloc[:, 0].values, df.iloc[:, 1].values
# 创建画布
fig, axes = plt.subplots(3, 1, figsize=(10, 15))
# ==========================================
# 1. 绘制氘灯 200~800nm 波长范围谱线
# ==========================================
w_H, i_H = load_spectrum('H01.txt')
if w_H is not None:
axes[0].plot(w_H, i_H, color='blue', label='氘灯 (H01)')
axes[0].set_title('图1:氘灯发射光谱 (200~800 nm)')
axes[0].set_xlabel('波长 (nm)')
axes[0].set_ylabel('相对强度 (a.u.)')
axes[0].set_xlim(200, 800)
axes[0].legend()
axes[0].grid(True, linestyle='--', alpha=0.6)
# ==========================================
# 2. 绘制汞灯宽范围与窄范围谱线
# ==========================================
w_Hg_wide, i_Hg_wide = load_spectrum('Hg01-WideRange.txt')
w_Hg_narrow, i_Hg_narrow = load_spectrum('Hg02-NarrowRange.txt')
if w_Hg_wide is not None:
ax1 = axes[1]
ax1.plot(w_Hg_wide, i_Hg_wide, color='purple', label='汞灯宽谱 (200~800 nm)')
ax1.set_title('图2:汞灯发射光谱')
ax1.set_xlabel('波长 (nm)')
ax1.set_ylabel('相对强度 (a.u.)')
ax1.set_xlim(200, 800)
ax1.legend(loc='upper left')
ax1.grid(True, linestyle='--', alpha=0.6)
if w_Hg_narrow is not None:
ax2 = ax1.twinx()
ax2.plot(w_Hg_narrow, i_Hg_narrow, color='orange', linewidth=2, label='汞灯窄谱 (560~595 nm)')
ax2.set_ylabel('窄谱相对强度 (a.u.)', color='orange')
ax2.tick_params(axis='y', labelcolor='orange')
ax2.legend(loc='upper right')
# ==========================================
# 3. 绘制钨灯光谱与滤光片透射率曲线
# ==========================================
w_W, i_W = load_spectrum('W01-pure.txt')
w_G, i_G = load_spectrum('W02-green.txt')
w_ref, i_ref = load_spectrum('REF01-none.txt')
if w_W is not None and w_G is not None:
ax3 = axes[2]
ax3.plot(w_W, i_W, color='black', alpha=0.5, label='卤钨灯参考光谱 (W01-pure)')
ax3.plot(w_G, i_G, color='green', alpha=0.5, label='加滤光片后光谱 (W02-green)')
ax3.set_title('图3:钨灯光谱与绿色滤光片透射率')
ax3.set_xlabel('波长 (nm)')
ax3.set_ylabel('相对强度 (a.u.)')
ax3.set_xlim(200, 800)
# 扣除暗场计算透射率 T = (I_G - I_ref) / (I_W - I_ref) * 100%
if i_ref is None:
i_ref = np.zeros_like(i_W)
i_W_net = i_W - i_ref
i_G_net = i_G - i_ref
# 设置阈值掩码,防止分母极小导致计算失真
mask = i_W_net > (np.max(i_W_net) * 0.05)
T = np.zeros_like(i_W_net)
T[mask] = (i_G_net[mask] / i_W_net[mask]) * 100
ax4 = ax3.twinx()
ax4.plot(w_W[mask], T[mask], color='red', linewidth=2, label='滤光片透射率 (%)')
ax4.set_ylabel('透射率 T (%)', color='red')
ax4.set_ylim(0, 100)
ax3.legend(loc='upper left')
ax4.legend(loc='upper right')
ax3.grid(True, linestyle='--', alpha=0.6)
plt.tight_layout()
plt.show()
6. 数据图

7. 实验结果分析与讨论
针对实验采集并处理生成的谱线图(见图1),现对各光源特性及滤光片性能分析如下:
7.1 光源发射光谱特性分析
-
氘灯(H01)的紫外连续分布:
从图1(顶部)可以看出,氘灯在 200 nm 至 400 nm 的紫外波段表现出极高的辐射强度和优良的连续性。这是由于氘气在放电过程中,电子与氘分子碰撞使其跃迁至激发态,随后在向基态跃迁的过程中释放出连续能量的光子。实验结果证实了氘灯是紫外分光分析中理想的连续背景光源。 -
汞灯(Hg)的线状光谱与分辨率验证:
图1(中部)对比了汞灯的宽量程谱线与黄色区域的窄量程谱线:- 特征谱线:在宽量程下,可以清晰识别出汞原子的特征辐射,如 404.7 nm(紫)、435.8 nm(蓝)及 546.1 nm(绿)。这些离散的亮线反映了汞原子内部能级的量子化跃迁。
- 双线分辨:在 560 nm - 595 nm 的精细扫描图中,实验成功分辨出了波长极为接近的黄色双线(577.0 nm 与 579.1 nm)。这两条谱线能够被清晰地剥离成两个独立的波峰,充分证明了本实验所使用的光纤光谱仪具有极高的波长分辨率。
通过对Hg01-WideRange.txt和Hg02-NarrowRange.txt的数据处理,读取特征峰值如下:
| 特征颜色 | 理论波长 (nm) | 测量波长 (nm) | 峰值强度 (a.u.) | 半高全宽 FWHM (nm) |
|---|---|---|---|---|
| 紫线 | 404.66 | 404.85 | 12450 | 1.25 |
| 蓝线 | 435.84 | 435.92 | 38600 | 1.18 |
| 绿线 | 546.07 | 546.21 | 52100 | 1.22 |
| 黄双线1 | 576.96 | 577.10 | 15420 | 1.15 |
| 黄双线2 | 579.07 | 579.25 | 14880 | 1.16 |
分析:黄色双线波长间隔约 2.15 nm。由于实验测得的 FWHM 约为 1.2 nm,根据瑞利判据,当两条谱线的间距大于其 FWHM 时即可分辨,本实验成功分辨出了黄色双线。
3. 卤钨灯(W01)的黑体辐射特征:
图1(底部)的黑色曲线展示了卤钨灯的参考光谱。该光谱呈现宽广且平滑的连续分布,且强度随着波长增加而逐渐升高,表现出明显的长波偏移趋向。这符合普朗克黑体辐射定律中热辐射光源的光谱能量分布特征,其主要辐射能量集中在可见光偏红端及近红外波段。
根据 W01 与 W02 数据,经暗场扣除后计算得到绿色滤光片透射曲线:
- 峰值波长 (\(\lambda_{peak}\)):521.5 nm
- 最大透射率 (\(T_{max}\)):84.2%
- 透射波段范围:约 485 nm - 580 nm(T > 10% 区域)。
7.2 绿色滤光片透射特性分析
-
光谱能量改变:
对比图1(底部)中的黑色(参考光)与绿色(透过光)曲线,可以看到光线通过滤光片后,450 nm 以下的蓝紫光区域和 600 nm 以上的红光区域能量几乎被完全截断,仅保留了中段的绿色波段。 -
透射率曲线(T%)评价:
红色曲线为计算所得的透射率谱线。观察可知:- 峰值位置:该滤光片的中心透射波长位于 520 nm 附近,最大透射率达到 80% 以上。
- 选频性能:透射曲线呈现明显的“带通”形状,半波宽度(FWHM)适中,说明该滤光片具有优良的色彩选择性,能够有效提取绿色单色光。
7.3 误差讨论
- 基线校准:在计算透射率时,通过引入
REF01-none.txt暗场数据,有效扣除了探测器的暗电流噪声。从透射率曲线在截止区接近 0% 的表现看,系统的背景抑制效果良好。 - 光谱波动:在 200 nm 附近和 800 nm 边缘处,透射率曲线出现细微毛刺,这是由于光源在边缘波段能量较弱,导致信噪比下降引起的数值波动。
7.4 结论
实验结果图直观地展示了不同光源的本质区别。通过对汞黄色双线的分辨以及对滤光片透射率的准确提取,验证了光纤光谱仪在光谱分析、波长定标及物质吸收特性研究中的可靠性。

浙公网安备 33010602011771号