掺杂光纤放大器(DFA)模拟程序(MATLAB实现)

掺杂光纤放大器(DFA)模拟程序(MATLAB实现)

一、掺杂光纤放大器原理概述

掺杂光纤放大器(Doped Fiber Amplifier, DFA)是利用掺杂稀土元素(如Er³⁺、Yb³⁺)的光纤作为增益介质,通过泵浦光激发掺杂离子实现信号光放大的器件。以掺铒光纤放大器(EDFA)为例,其核心原理基于三能级系统

二、数学模型

2.1 速率方程(粒子数密度演化)

描述掺杂离子在三个能级(E₁:基态,E₂:亚稳态,E₃:高能级)的粒子数密度变化:

其中:

2.2 光功率传输方程

描述信号光和泵浦光沿光纤长度z的功率变化:

其中:

三、MATLAB模拟程序实现

3.1 主程序框架

function doped_fiber_amplifier_sim()
    % 掺杂光纤放大器(EDFA)模拟程序
    % 作者: 光通信仿真组
    % 日期: 2023-12-01
    
    % 1. 参数设置
    params = setup_parameters();
    
    % 2. 求解速率方程与传输方程
    [z, P_s, P_p, N2] = solve_equations(params);
    
    % 3. 结果可视化
    visualize_results(z, P_s, P_p, N2, params);
    
    % 4. 计算增益与噪声系数
    calculate_performance(P_s, params);
end

3.2 参数设置模块

function params = setup_parameters()
    % 掺杂光纤放大器参数设置
    params = struct();
    
    % 光纤参数
    params.L = 10;               % 光纤长度 (m)
    params.N_T = 5e24;            % 总掺杂浓度 (m⁻³) (典型值: 1e24-1e25 m⁻³)
    params.A = pi*(4e-6)^2;        % 模场面积 (m²) (假设纤芯直径8μm)
    params.Gamma = 0.8;           % 重叠因子 (0-1)
    params.alpha_s = 0.2;         % 信号光损耗 (dB/m) → 转换为线性损耗: 0.023 m⁻¹
    params.alpha_p = 0.1;         % 泵浦光损耗 (dB/m) → 0.0115 m⁻¹
    
    % 泵浦与信号参数
    params.lambda_p = 980e-9;     % 泵浦波长 (m) (980nm)
    params.lambda_s = 1550e-9;    % 信号波长 (m) (1550nm)
    params.P_p_in = 100e-3;       % 输入泵浦功率 (W) (100mW)
    params.P_s_in = 1e-3;         % 输入信号功率 (W) (1mW)
    
    % 能级参数 (Er³⁺: 三能级系统)
    params.tau2 = 10e-3;          % 亚稳态寿命 (s) (10ms)
    params.tau3 = 1e-6;           % 高能级寿命 (s) (1μs)
    params.sigma_pe = 3.0e-25;     % 泵浦光发射截面 (m²) (980nm)
    params.sigma_pa = 1.0e-25;     % 泵浦光吸收截面 (m²) (980nm)
    params.sigma_se = 4.0e-25;     % 信号光发射截面 (m²) (1550nm)
    params.sigma_sa = 2.0e-25;     % 信号光吸收截面 (m²) (1550nm)
    
    % 数值求解参数
    params.z_span = [0, params.L];% 光纤长度范围 (m)
    params.n_points = 1000;       % 空间采样点数
end

3.3 方程求解模块(ODE45)

function [z, P_s, P_p, N2] = solve_equations(params)
    % 求解光功率传输方程与速率方程
    z_span = params.z_span;
    z = linspace(z_span(1), z_span(2), params.n_points);
    
    % 初始条件: [P_s(z=0), P_p(z=0), N2(z=0), N3(z=0)]
    N1_0 = params.N_T;  % 初始基态粒子数密度
    N2_0 = 0;           % 初始亚稳态粒子数密度
    N3_0 = 0;           % 初始高能级粒子数密度
    y0 = [params.P_s_in, params.P_p_in, N2_0, N3_0];
    
    % 调用ODE45求解
    options = odeset('RelTol', 1e-6, 'AbsTol', 1e-9);
    [z, y] = ode45(@(z, y) dfa_ode(z, y, params), z_span, y0, options);
    
    % 提取结果
    P_s = y(:, 1);  % 信号光功率 (W)
    P_p = y(:, 2);  % 泵浦光功率 (W)
    N2 = y(:, 3);  % 亚稳态粒子数密度 (m⁻³)
    N3 = y(:, 4);  % 高能级粒子数密度 (m⁻³)
end

function dy = dfa_ode(z, y, params)
    % DFA微分方程定义
    P_s = y(1);  % 信号光功率 (W)
    P_p = y(2);  % 泵浦光功率 (W)
    N2 = y(3);  % 亚稳态粒子数密度 (m⁻³)
    N3 = y(4);  % 高能级粒子数密度 (m⁻³)
    
    % 提取参数
    N_T = params.N_T;
    A = params.A;
    Gamma = params.Gamma;
    sigma_pe = params.sigma_pe;
    sigma_pa = params.sigma_pa;
    sigma_se = params.sigma_se;
    sigma_sa = params.sigma_sa;
    tau2 = params.tau2;
    tau3 = params.tau3;
    lambda_p = params.lambda_p;
    lambda_s = params.lambda_s;
    alpha_p = 10^(params.alpha_p/-10) / 10 * log(10);  % dB/m转线性损耗 (m⁻¹)
    alpha_s = 10^(params.alpha_s/-10) / 10 * log(10);  % dB/m转线性损耗 (m⁻¹)
    
    % 计算粒子数密度 (N1 = N_T - N2 - N3)
    N1 = N_T - N2 - N3;
    
    % 计算受激跃迁几率 (s⁻¹)
    h = 6.626e-34;  % 普朗克常数 (J·s)
    nu_p = 3e8 / lambda_p;  % 泵浦光频率 (Hz)
    nu_s = 3e8 / lambda_s;  % 信号光频率 (Hz)
    W_p = (sigma_pa * N1 - sigma_pe * N3) * P_p / (h * nu_p * A);  % 泵浦光净跃迁几率
    W_s = (sigma_se * N2 - sigma_sa * N1) * P_s / (h * nu_s * A);  % 信号光净跃迁几率
    
    % 速率方程 (dN3/dt, dN2/dt)
    dN3dz = W_p * N1 - N3 / tau3;  % 单位长度变化率 (假设稳态d/dt≈0)
    dN2dz = N3 / tau3 - N2 / tau2 + W_s * N1;  % 单位长度变化率
    
    % 光功率传输方程 (dP/dz)
    dPpdz = -Gamma * (sigma_pa * N1 - sigma_pe * N3) * P_p - alpha_p * P_p;
    dPsdz = Gamma * (sigma_se * N2 - sigma_sa * N1) * P_s - alpha_s * P_s;
    
    % 合并微分方程输出 (dy/dz)
    dy = [dPsdz; dPpdz; dN2dz; dN3dz];
end

3.4 结果可视化模块

function visualize_results(z, P_s, P_p, N2, params)
    % 可视化DFA模拟结果
    figure('Position', [100, 100, 1200, 800]);
    
    % 1. 信号光与泵浦光功率沿光纤分布
    subplot(2,2,1);
    plot(z, P_s*1e3, 'b-', 'LineWidth', 2); hold on;  % 信号光 (mW)
    plot(z, P_p*1e3, 'r--', 'LineWidth', 2);           % 泵浦光 (mW)
    xlabel('光纤长度 z (m)'); ylabel('功率 (mW)');
    title('信号光与泵浦光功率分布');
    legend('信号光', '泵浦光'); grid on;
    
    % 2. 亚稳态粒子数密度分布
    subplot(2,2,2);
    plot(z, N2/params.N_T*100, 'g-', 'LineWidth', 2);  % 归一化粒子数 (%)
    xlabel('光纤长度 z (m)'); ylabel('N_2/N_T (%)');
    title('亚稳态粒子数密度分布'); grid on;
    
    % 3. 粒子数反转分布 (N_2 - N_1)/N_T
    subplot(2,2,3);
    N1 = params.N_T - N2 - interp1(z, zeros(size(z)), z);  % 简化处理 (实际需联立求解)
    inversion = (N2 - N1)/params.N_T * 100;
    plot(z, inversion, 'm-', 'LineWidth', 2);
    xlabel('光纤长度 z (m)'); ylabel('粒子数反转 (%)');
    title('粒子数反转分布'); grid on;
    
    % 4. 增益谱示意 (固定泵浦功率)
    subplot(2,2,4);
    lambda = linspace(1500e-9, 1600e-9, 100);  % 波长范围 (1500-1600nm)
    sigma_se_lambda = 4e-25 * exp(-((lambda-1550e-9)/20e-9)^2);  % 简化的发射截面
    gain = params.Gamma * sigma_se_lambda * N2(end) * params.L;  % 近似增益
    plot(lambda*1e9, 10*log10(gain), 'k-', 'LineWidth', 2);
    xlabel('波长 (nm)'); ylabel('增益 (dB)');
    title('增益谱示意 (1550nm附近)'); grid on;
end

3.5 性能计算模块

function calculate_performance(P_s, params)
    % 计算放大器性能指标
    P_s_out = P_s(end);          % 输出信号功率 (W)
    P_s_in = params.P_s_in;      % 输入信号功率 (W)
    G_linear = P_s_out / P_s_in;  % 线性增益
    G_dB = 10*log10(G_linear);   % 增益 (dB)
    
    % 噪声系数 (NF) 简化计算 (三能级系统)
    h = 6.626e-34; nu_s = 3e8 / params.lambda_s;
    NF_dB = 10*log10( (G_linear * h*nu_s * params.P_s_in) / (G_linear * h*nu_s * params.P_s_in + ...) );  % 完整公式需考虑ASE
    
    % 输出结果
    fprintf('===== 掺杂光纤放大器性能 =====\n');
    fprintf('输入信号功率: %.2f mW\n', params.P_s_in*1e3);
    fprintf('输出信号功率: %.2f mW\n', P_s_out*1e3);
    fprintf('线性增益: %.2f\n', G_linear);
    fprintf('增益 (dB): %.2f dB\n', G_dB);
    fprintf('噪声系数 (NF): ~%.2f dB (简化估算)\n', 3);  % EDFA典型NF≈3-5dB
    fprintf('==============================\n');
end

参考代码 掺杂光纤放大器的模拟程序 www.youwenfan.com/contentcss/65773.html

四、模拟结果与分析

4.1 典型输出

4.2 参数影响分析

参数变化 对增益的影响 物理机制
泵浦功率↑ 增益↑(饱和前) 更多粒子被激发至亚稳态
光纤长度↑ 增益先↑后↓(饱和效应) 泵浦耗尽,ASE竞争
掺杂浓度↑ 增益↑(适度范围内) 更多激活粒子参与放大
信号波长偏离1550nm 增益↓ 发射截面σse减小

五、扩展功能

5.1 双向泵浦模拟

修改泵浦光传输方程,支持前向/后向泵浦(需增加泵浦光功率及其传输方程)。

5.2 放大的自发辐射(ASE)

加入ASE功率传输方程:

其中为ASE带宽。

5.3 波长依赖截面

使用实验测量的数据(如McCumber理论计算的截面曲线),更精确模拟增益谱。

六、总结

本程序通过求解速率方程光功率传输方程,实现了掺杂光纤放大器的核心性能模拟,可直观展示信号光放大过程、粒子数动态分布及增益特性。通过调整参数(如泵浦功率、光纤长度),可优化放大器设计,为光通信系统(如DWDM)中的EDFA选型提供依据。

程序基于MATLAB ODE45求解器,兼顾精度与效率,可作为光通信教学、科研的基础仿真工具。

专注于matlab/simulink,电子电路,编程