SPR传感原理(附Matlab源码)

SPR传感原理

表面等离子体共振(Surface plasmon resonance,SPR)是入射光刺激到负、正介电常数材料(这里的正负是指介电常数的实部,两种材料一般是金属和棱镜)之间的界面处时,在金属材料内同时存在倏逝波和等离子体波(Surface plasmon polariton,SPP),等离子体波与倏逝波之间相位匹配时发生的耦合共振。
发生SPR现象时,入射光能量被电子急剧吸收,反射光能量明显下降,并且SPR现象对金属膜外侧的介质介电常数微小变化非常敏感,利用这个特性,可以进行高灵敏度的传感。

基本结构

激发SPR现象最常见的两种结构是Otto结构和Kretschmann结构。

  • Otto结构
    Otto结构是棱镜-待测介质-金属膜结构。
    如图,入射光打到棱镜上,发生全反射。纳米级的金属膜靠近棱镜边缘,使得倏逝波可以与等离子体波(SPP)相互耦合,产生SPR波。不过该结构因制作困难并不常用。Otto结构
  • Kretschmann结构
    Kretschmann结构是棱镜-金属-待测介质结构。
    如图,金属膜附着在棱镜上,入射光透过棱镜打在金属膜上,激发SPP波,SPP波与倏逝波耦合,产生SPR波。激发该结构因结构简单,反应灵敏而应用广泛。Kretschmann结构
    下面介绍的角度调制与波长调制传感结构也是Kretschmann结构。

角度调制

在这里插入图片描述
如图,当入射波长固定为500nm时,改变入射角度,待测介质折射率是1,1.1,1.2,1.3,1.4,1.5时,对应的共振角依次是44°,50°,57°,67°,85°。

clear
clc
angles = 0:0.01:pi/2; %入射角度
lambda = 500e-9; %波长
k0= (2*pi)/lambda; 
Thickness = 50e-9;%金属膜厚度nm 
 %折射率
n_prism = 1.5; %棱镜
n_metal = (0.13455 + 3.9865i); %金属
figure
for n = 1:0.1:1.5%待测介质
 %介电常数,折射率的平方
dielectric_prism = (n_prism).^2; 
dielectric_metal = (n_metal).^2; 
dielectric= (n).^2; 
k_prism = k0*sqrt(dielectric_prism).*cos(angles); 
k_metal = k0 *sqrt(dielectric_metal - (dielectric_prism.*(sin(angles).^2))); 
k = k0*sqrt(dielectric - (dielectric_prism.*(sin(angles).^2))); 
Z_prism = dielectric_prism./k_prism; 
Z_metal = dielectric_metal./k_metal; 
Z = dielectric./k; 
R12 = (Z_prism -Z_metal)./(Z_prism+Z_metal); 
R23 = (Z_metal -Z)./(Z_metal+Z); 
r = (R12+(R23.*exp(2i.*k_metal.*Thickness)))./(1+(R12.*R23.*exp(2i.*k_metal.*Thickness))); 
R = abs(r).^2; 
plot(angles*180/pi,R);
hold on
end
legend('1','1.1','1.2','1.3','1.4','1.5');
xlabel('入射角度');ylabel('反射系数');

波长调制

在这里插入图片描述
如图,当入射角度固定为65°时,改变入射光波长,待测介质折射率是1,21,1.22,1.23,1.24,1.25,1.26 时,对应的共振波长依次是1000nm,900nm,850nm,800nm,700nm,620nm,600nm左右。

clear
clc
angles = 0.36*pi; %入射角度
lambda = (400:1800).*1e-9; %波长
k0= (2*pi)./lambda; 
Thickness = 50e-9;%金属膜厚度nm 
 %折射率
n_prism = 1.5; %棱镜
n_metal = (0.155 + 3.33i); %金属
%figure
for n = 1.2:0.01:1.26%待测介质
 %介电常数,折射率的平方
dielectric_prism = (n_prism).^2; 
dielectric_metal = (n_metal).^2; 
dielectric= (n).^2; 
k_prism = k0*sqrt(dielectric_prism).*cos(angles); 
k_metal = k0 *sqrt(dielectric_metal - (dielectric_prism.*(sin(angles).^2))); 
k = k0*sqrt(dielectric - (dielectric_prism.*(sin(angles).^2))); 
Z_prism = dielectric_prism./k_prism; 
Z_metal = dielectric_metal./k_metal; 
Z = dielectric./k; 
R12 = (Z_prism -Z_metal)./(Z_prism+Z_metal); 
R23 = (Z_metal -Z)./(Z_metal+Z); 
r = (R12+(R23.*exp(2i.*k_metal.*Thickness)))./(1+(R12.*R23.*exp(2i.*k_metal.*Thickness))); 
R = abs(r).^2; 
plot(lambda ,R);
hold on
end
legend('1.2','1.21','1.22','1.23','1.24','1.25','1.26');
xlabel('波长');ylabel('反射系数');

波长调制比角度调制更为灵敏,进一步改进灵敏度大家可以试试复合金属膜。