文章目录
- 平衡光电探测器原理
- 参数
- 测试
平衡光电探测器原理
平衡光电探测器(Balanced Photodetector, BPD)是由两个高度匹配的光电二极管(Photodiode, PD)和一个差分跨阻放大器(Transimpedance Amplifier, TIA)构成的光电探测组件。其核心物理机制是通过差分测量提取两路光信号的干涉项,同时抵消共模噪声和直流背景。
在相干探测系统中,信号光场E s ( t ) E_s(t)Es(t)和本振光场E l o ( t ) E_{lo}(t)Elo(t)通常输入到一个3dB的光耦合器,耦合器的两个输入端光场为
E + ( t ) = 1 2 [ E s ( t ) + E l o ( t ) ] E − ( t ) = 1 2 [ E s ( t ) − E l o ( t ) ] E_+(t)=\frac{1}{\sqrt{2}}[E_s(t)+E_{lo}(t)]\\ E_-(t)=\frac{1}{\sqrt{2}}[E_s(t)-E_{lo}(t)]E+(t)=21[Es(t)+Elo(t)]E−(t)=21[Es(t)−Elo(t)]
这两路广分别入射到BPD的两个PD上,设PD的响应度为r rr,则光电流分别是
I + ( t ) = r ∣ E + ( t ) ∣ 2 = r 2 [ ∣ E s ∣ 2 + ∣ E l o ∣ 2 + E s E l o ∗ + E s ∗ E l o ] I − ( t ) = r ∣ E − ( t ) ∣ 2 = r 2 [ ∣ E s ∣ 2 + ∣ E l o ∣ 2 − ( E s E l o ∗ + E s ∗ E l o ) ] I_+(t)=r\vert E_+(t)\vert ^2=\frac{r}{2}[\vert E_s\vert^2+\vert E_{lo}\vert^2+E_sE_{lo}^*+E_s^*E_{lo}]\\ I_-(t)=r\vert E_-(t)\vert ^2=\frac{r}{2}[\vert E_s\vert^2+\vert E_{lo}\vert^2-(E_sE_{lo}^*+E_s^*E_{lo})]\\I+(t)=r∣E+(t)∣2=2r[∣Es∣2+∣Elo∣2+EsElo∗+Es∗Elo]I−(t)=r∣E−(t)∣2=2r[∣Es∣2+∣Elo∣2−(EsElo∗+Es∗Elo)]
TIA输出两路广电能流之差,设E s = ∣ E s ∣ e i ϕ s , E l o = ∣ E l o ∣ e i ϕ l o E_s=\vert E_s\vert e^{i\phi_s}, E_{lo}=\vert E_{lo}\vert e^{i\phi_{lo}}Es=∣Es∣eiϕs,Elo=∣Elo∣eiϕlo,则
I = I + − I − = r ( E s E l o ∗ + E s ∗ E l o ) = 2 r ∣ E s ∣ ∣ E l o ∣ cos ( ϕ s − ϕ l o ) \begin{aligned} I=I_+-I_-&= r(E_sE_{lo}^*+E_s^*E_{lo})\\ &= 2r\vert E_s\vert \vert E_{lo}\vert \cos(\phi_s-\phi_{lo}) \end{aligned}I=I+−I−=r(EsElo∗+Es∗Elo)=2r∣Es∣∣Elo∣cos(ϕs−ϕlo)
可见,直流项∣ E s ∣ 2 , ∣ E l o ∣ 2 \vert E_s\vert^2, \vert E_{lo}\vert^2∣Es∣2,∣Elo∣2完全被消掉了,从而避免了强本振光引起的放大器饱和问题。与此同时,输出信号的振幅和本振光振幅∣ E l o ∣ \vert E_{lo}\vert∣Elo∣成正比,即起到了微弱信号放大的作用。
参数
OptiCommPy中实现了PBD,函数签名如下,其中E1, E2是输入光场,param是相关参数,返回值是差分电流。
optic.models.devices.balancedPD(E1,E2,param=None)param是OptiCommPy内置的参数类,其具体成员包括
- param.R : 响应度,单位是[A/W],默认1 A/W
- param.Tc : 工作温度,单位是[°C],默认25°C
- param.Id : 暗电流,单位是[A],默认5e-9 A
- param.RL : 负载阻抗,单位是[Ω],默认50Ω
- param.B : 探测器带宽,单位是[Hz],默认30e9 Hz
- param.Fs : 采样频率,单位是[Hz],默认60e9 Hz
- param.fType : 频率响应类型,默认’rect’,即矩形/理想砖墙式低通滤波器。
- param.N : 滤波器抽头数,默认255
- param.ideal : 如果为True,则使用理想BPD模型,忽略所有噪声,且不做带宽滤波。否则注入真实的物理噪声。
- param.seed : 随机数种子。
测试
理想BPD的输入输出测试如下
importnumpyasnpimportmatplotlib.pyplotaspltfromoptic.models.devicesimportbalancedPDfromoptic.utilsimportparameters plt.rcParams['font.family']='Times New Roman'# 基础仿真参数Fs=100e9t=np.arange(0,5e-9,1/Fs)N=len(t)P_lo=10e-3# 本振光 (强,恒定 CW)Elo=np.sqrt(P_lo)*np.ones(N)# 信号光 (弱,幅度和相位随时间做非周期的连续变化)# 幅度: 基础值 + 两个不同频率的起伏A_t=1e-3*(1.0+0.6*np.sin(2*np.pi*1.2e9*t)+0.4*np.sin(2*np.pi*3.7e9*t))# 相位: 频偏 + 相位连续调制phi_t=2*np.pi*2.5e9*t+1.5*np.sin(2*np.pi*0.8e9*t)Es=A_t*np.exp(1j*phi_t)# 模拟混频器输出 E1, E2E1=(Es+Elo)/np.sqrt(2)E2=(Es-Elo)/np.sqrt(2)# 理想balancedPDparam=parameters()param.R=1.0param.ideal=TrueI_bpd=balancedPD(E1,E2,param)fig,axs=plt.subplots(2,1,figsize=(10,6),sharex=True)fig.suptitle('Input-Output Mapping of balancedPD with Continuous Optical Field',fontsize=14,fontweight='bold')# 上图:输入光强 (展示 E1 和 E2 的连续动态变化)axs[0].plot(t*1e9,np.abs(E1)**2,label='$|E_1|^2$',color='blue',alpha=0.8)axs[0].plot(t*1e9,np.abs(E2)**2,label='$|E_2|^2$',color='red',alpha=0.8)axs[0].set_ylabel('Optical Power (W)',fontsize=12)axs[0].set_title('Input Optical Powers (Continuous & Non-periodic Varying)',fontsize=12)axs[0].legend(loc='upper right')axs[0].grid(True,alpha=0.3)# 下图:输出电流 (展示电流如何实时跟随两者的差值)axs[1].plot(t*1e9,I_bpd,'g-',linewidth=1.5,alpha=0.9)axs[1].set_ylabel('Output Current (A)',fontsize=12)axs[1].set_xlabel('Time (ns)',fontsize=12)axs[1].set_title('Output Balanced Current (Follows the difference of input powers)',fontsize=12)axs[1].grid(True,alpha=0.3)plt.tight_layout()plt.show()