基于MATLAB的长周期与布拉格光纤光栅光谱特性仿真系统
项目简介
本项目开发了一套完整的光纤光栅仿真工具,集成了长周期光纤光栅(LPFG)和布拉格光栅(FBG)两种核心光器件的数值模拟功能。系统基于光波导理论中的耦合模理论(Coupled Mode Theory, CMT)和传输矩阵法(Transfer Matrix Method, TMM),实现了对光纤内部光波传播机制的精确数学建模。
该仿真程序不仅能够计算光栅的反射与透射光谱,还支持参数化扫描以分析物理参数对光谱的影响,并内置了环境传感(温度/应变)的模拟功能。项目旨在辅助光纤通信滤波器设计、光纤传感特性分析以及光电子学教学演示。
系统功能特性
* 基于传输矩阵法(TMM)实现,支持非均匀光栅模拟。
* 支持自定义光栅切趾函数(高斯型、升余弦型、均匀型)以优化旁瓣抑制。
* 支持线性啁啾(Chirp)设置,模拟非周期性光栅结构。
* 主要输出:反射光谱、透射光谱、相位响应及3dB带宽计算。
* 基于耦合模理论(CMT)实现,模拟纤芯模同向耦合至包层模的过程。
* 支持多阶包层模(如LP01, LP03, LP05)的同时耦合计算。
* 内置简化的色散模型,模拟有效折射率随波长的变化。
* 自动识别并标注透射谱中的谐振波长峰值。
* 模拟温度和应变对FBG光谱的影响。
* 基于热光效应和热膨胀效应计算中心波长的漂移量。
* 动态生成折射率调制深度沿光纤轴向的分布曲线。
* 直观对比不同温度下的光谱漂移。
* 清晰展示多模耦合导致的多个透射损耗峰。
系统要求
- MATLAB R2016b 或更高版本
- Signal Processing Toolbox(用于
findpeaks 函数进行峰值搜索)
使用方法
- 初始化环境并清除工作区变量。
- 程序将依次执行三个核心模块的仿真:
* FBG光谱特性及温度传感特性分析。
* LPFG透射光谱及谐振峰识别。
* 光栅切趾函数形貌对比。
- 运行结束后,系统将生成三个图形窗口展示仿真结果。
---
核心算法与实现细节
本部分详细解析仿真脚本中实际实现的数学模型与逻辑流程。
1. 布拉格光纤光栅 (FBG) 求解器
核心方法:传输矩阵法 (Transfer Matrix Method)
脚本通过将有限长度的光栅沿轴向离散化为 M 个均匀小段,每一段被视为一个独立的二端口网络。
- 离散化处理:光栅总长 L 被分割为 M 段。在每一段内,通过
get_apodization 获取当前的折射率调制深度 $Delta n$,并根据线性啁啾系数计算当前的局部光栅周期。 - 耦合系数计算:
* 计算直流耦合系数 $sigma$,反映平均折射率变化引起的波数扰动。
* 计算交流耦合系数 $kappa$,反映光栅周期性扰动引起的后向散射强度。
* 计算失谐量 $delta$,衡量当前波长对应的传播常数与布拉格条件的偏离程度。
* 对于每一小段,构建 2x2 传输矩阵 $T_i$。
* 程序对带隙内(虚数 $gamma_B$)和带隙外(实数 $gamma_B$)的情况分别使用了三角函数和双曲函数进行计算,以保证数值稳定性。
* 通过矩阵乘法 $F = F times T_i$ 累积全光栅的传输响应。
* 利用级联后的总传输矩阵 F,根据光波从左端入射、右端无反射的边界条件,推导出反射系数 $r = -F_{21} / F_{22}$。
* 最终反射率 $R = |r|^2$。
2. FBG 温度传感模拟逻辑
程序建立了一个环境影响模型,用于演示光纤光栅的传感特性。
- 设定三个温度点(25°C, 50°C, 75°C)。
- 利用公式 $Delta lambda = lambda_c (xi + alpha) Delta T$ 计算波长漂移。
* $xi$:热光系数 (Thermo-optic coefficient)
* $alpha$:热膨胀系数 (Thermal expansion coefficient)
- 通过直接平移波长轴
lambda + shift 来模拟光谱的红移现象,并在同一图表中叠加显示。
3. 长周期光纤光栅 (LPFG) 求解器
核心方法:耦合模理论 (Coupled Mode Theory)
脚本模拟了纤芯基模能量向同向传输的多个高阶包层模耦合的过程。
- 色散模型:使用简化的线性模型近似描述纤芯有效折射率 $n_{eff, core}$ 和包层有效折射率 $n_{eff, clad}$ 随波长的变化趋势,模拟了材料色散和波导色散的综合效果。
- 多模耦合循环:
* 针对设定的模阶数(如第1, 3, 5阶),分别计算各自的有效折射率。
* 计算相位失配量 $delta$,该值取决于纤芯模与特定包层模传播常数的差值以及光栅周期。
* 通过调制深度 $Delta n$ 和近似的模式重叠因子估算耦合系数 $kappa$。
* 依据解析解公式,计算交叉耦合功率(即从纤芯流失到包层的能量):$P_{cross} = (kappa/s)^2 sin^2(sL)$,其中 $s = sqrt{kappa^2 + delta^2}$。
* 最终透射谱通过累加各阶包层模造成的损耗得到(假定各模式间非相干叠加)。
- 峰值检测:使用
findpeaks 函数自动在计算出的透射谱中寻找损耗峰,并标记其对应的谐振波长。
4. 切趾 (Apodization) 可视化
程序并不止于光谱计算,还包含对光栅物理结构的分析。
- 通过在空间域 $z in [-L/2, L/2]$ 上采样。
- 调用内部逻辑生成三种不同类型的包络函数:
*
Gaussian: 高斯分布,用于平滑光栅两端折射率突变。
*
Raised Cosine: 升余弦型,平顶且边缘平滑。
*
Uniform: 矩形分布,整个光栅长度内调制深度恒定。
- 该模块直观展示了不同切趾方案在物理实现上的折射率分布差异。