[光学]FP干涉仪的光谱特性及应用

2023-10-29 17:40

本文主要是介绍[光学]FP干涉仪的光谱特性及应用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

[光学]FP干涉仪的光谱特性及应用研究

(一)基本原理


F-P干涉仪原理图
  对称F-P干涉仪原理图
对称F-P干涉仪两侧平板外侧镀有增透膜,可认为透射率为100%。因此,讨论透射光的光振幅变化,各次反射后
透射光光强变化:

ItIi=(1R)2(1R)2+4Rsin2δ2

下面通过MATLAB编程研究以上关系

(二)核心代码


%% FP干涉仪-对称
clc,clear
%% 计算式
% delta=4*pi*n*h/lamda;                                         %相位差
syms delta R 
AR=@(delta,R)(1-exp(1i*delta))*sqrt(R)./(1-R*exp(1i*delta));        %反射系数
AT=@(delta,R)(1-R)./(1-R*exp(i*delta));                        %透射系数
F=@(R)4*R./(1-R).^2;                                          %精细度系数
ddelta=@(R)2*(1-R)./sqrt(R);                                    %位相半宽度
S=@(R)pi*sqrt(R)./(1-R);                                        %精细度
%% FP干涉仪参数设定
R1=[0.1,0.3,0.7,0.9];                                           %反射率
R2=0:0.01:1;                                                    %反射率
colors='cmbkryg';                                               %颜色
delta=[1.5*pi:0.001:4.5*pi];                                    %相位差
%% 反射透射光计算绘图
for i=1:4;
Ar=AR(delta,R1(i));
At=AT(delta,R1(i));
Ir=Ar.*conj(Ar);
It=At.*conj(At);
check=Ir+It;
%反射光
figure(1)
subplot(2,1,1)
hold on
plot(delta,Ir,colors(i),'LineWidth',1.5)
subplot(2,1,2)
hold on
plot(delta,angle(Ar),colors(i),'LineWidth',1.5)
if i==4;
subplot(2,1,1)
hold on
title('反射光幅度')
xlabel('位相\delta')
ylabel('Ir/Io')
legend(['R=',num2str(R1(1))],['R=',num2str(R1(2))],['R=',num2str(R1(3))],['R=',num2str(R1(4))]);
axis([1.5*pi,4.5*pi,0,1]);
grid on
subplot(2,1,2)
hold on
title('反射光相位')
xlabel('位相\delta')
ylabel('Ar/Ao')
legend(['R=',num2str(R1(1))],['R=',num2str(R1(2))],['R=',num2str(R1(3))],['R=',num2str(R1(4))]);
axis([1.5*pi,4.5*pi,-1.6,1.6]);
grid on
end
%透射光
figure(2)
subplot(2,1,1)
hold on
plot(delta,It,colors(i),'LineWidth',1.5)
subplot(2,1,2)
hold on
plot(delta,angle(At),colors(i),'LineWidth',1.5)
grid on
if i==4;
subplot(2,1,1)
hold on
title('透射光幅度')
xlabel('位相\delta')
ylabel('It/Io')
legend(['R=',num2str(R1(1))],['R=',num2str(R1(2))],['R=',num2str(R1(3))],['R=',num2str(R1(4))]);
axis([1.5*pi,4.5*pi,0,1]);
grid on
subplot(2,1,2)
hold on
title('透射光相位')
xlabel('位相\delta')
ylabel('At/Ao')
legend(['R=',num2str(R1(1))],['R=',num2str(R1(2))],['R=',num2str(R1(3))],['R=',num2str(R1(4))]);
axis([1.5*pi,4.5*pi,-1.5,1.5]);
grid on
end
end
%% 位相差半宽度精细度系数计算绘图
Fplot=F(R2);
ddeltaplot=ddelta(R2);
Splot=S(R2);
figure
plot(R2,Fplot,'LineWidth',1.5)
title('精细度系数-反射率曲线')
xlabel('反射率R')
ylabel('精细度系数F')
grid on
figure
plot(R2,ddeltaplot,'LineWidth',1.5)
title('位相半宽度-反射率曲线')
xlabel('反射率R')
ylabel('位相半宽度\delta')
grid on
figure
plot(R2,Splot,'LineWidth',1.5)
title('精细度-反射率曲线')
xlabel('反射率R')
ylabel('精细度S')
grid on 

(三)光强随位相变化


  作出透射光强、反射光强变化随位相变化的曲线:
光强随位相变化曲线图

透射光:
  • 显然透射光在 对应波长附近时,有明显的透过峰,峰值波长透过率始终为1;
  • 其他部分透过率均较小;
  • 且随着R的增大,透过峰的锐度越大,允许透过的波长范围越窄不允许透过波长的透过率更小。
反射光:
  • 反射光光强变化恰与透射光相反,在 对应波长附近反射光反射率极小,谷值波长透过率始终为0;
  • 其他部分有反射光,且随着R的增大,允许反射的波长范围越宽,允许反射波长的透过率更大。

这篇关于[光学]FP干涉仪的光谱特性及应用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/302276

相关文章

SpringShell命令行之交互式Shell应用开发方式

《SpringShell命令行之交互式Shell应用开发方式》本文将深入探讨SpringShell的核心特性、实现方式及应用场景,帮助开发者掌握这一强大工具,具有很好的参考价值,希望对大家有所帮助,如... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定

SpringBoot应用中出现的Full GC问题的场景与解决

《SpringBoot应用中出现的FullGC问题的场景与解决》这篇文章主要为大家详细介绍了SpringBoot应用中出现的FullGC问题的场景与解决方法,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录Full GC的原理与触发条件原理触发条件对Spring Boot应用的影响示例代码优化建议结论F

MySQL 分区与分库分表策略应用小结

《MySQL分区与分库分表策略应用小结》在大数据量、复杂查询和高并发的应用场景下,单一数据库往往难以满足性能和扩展性的要求,本文将详细介绍这两种策略的基本概念、实现方法及优缺点,并通过实际案例展示如... 目录mysql 分区与分库分表策略1. 数据库水平拆分的背景2. MySQL 分区策略2.1 分区概念

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S

C语言函数递归实际应用举例详解

《C语言函数递归实际应用举例详解》程序调用自身的编程技巧称为递归,递归做为一种算法在程序设计语言中广泛应用,:本文主要介绍C语言函数递归实际应用举例的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录前言一、递归的概念与思想二、递归的限制条件 三、递归的实际应用举例(一)求 n 的阶乘(二)顺序打印

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

新特性抢先看! Ubuntu 25.04 Beta 发布:Linux 6.14 内核

《新特性抢先看!Ubuntu25.04Beta发布:Linux6.14内核》Canonical公司近日发布了Ubuntu25.04Beta版,这一版本被赋予了一个活泼的代号——“Plu... Canonical 昨日(3 月 27 日)放出了 Beta 版 Ubuntu 25.04 系统镜像,代号“Pluc

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

Java中&和&&以及|和||的区别、应用场景和代码示例

《Java中&和&&以及|和||的区别、应用场景和代码示例》:本文主要介绍Java中的逻辑运算符&、&&、|和||的区别,包括它们在布尔和整数类型上的应用,文中通过代码介绍的非常详细,需要的朋友可... 目录前言1. & 和 &&代码示例2. | 和 ||代码示例3. 为什么要使用 & 和 | 而不是总是使