【物理应用】两个光纤光栅的新光子微波发生器的仿真分析【Matlab 314期】

一、简介

clear;
clc;
%一一一一一一一一一一一一一参数说明
%光源部分
w0=1550.1;        %THz,即中心波长为 154On。
dw=3;%标准高斯函数中的一个参数,单位THz,
dw_3dB=dw*2*log(2);%%光源3dB带宽
dw=dw_3dB/(2*log(2));
Sta_w=w0-10;
End_w=w0+10;
Step_w=0.01;
%w=Sta_w:step_w:End_w;%考虑的频率范围(注意是角频率)
%MZI部分
%dww=1;   %MZI的透过率周期为1THz
w=Sta_w:Step_w:End_w;         %THz
S=exp(-((w-w0)./dw).^2);%光源的高斯包络
ss=plot(w,S);
set(ss,'Color',[.7,.1,.9]);
xlabel('波长(nm)');
ylabel('幅度');
title('光源的高斯包络');
figure;
tp=1;
%switch tp
 %   case 1
y1=[1540:0.01:1560];
%yd=1550; 
neff=1.48;
s=1;
dneff=0.0002;
 l=1*1e6;                         %光栅长度
yd1=1550;                        %FBG1中心波长
k1=pi*s*dneff./y1;
s1=2*pi*neff*(1./y1-1/yd1);
 d1=2*pi*dneff./y1;
 ds1=s1+2*pi*dneff./y1;
 w1=(k1*l).^2-(ds1*l).^2;
r1=6*(sinh(w1.^0.5)).^2./((cosh(w1.^0.5)).^2-ds1.^2./k1.^2);%FBG1反射率
yc1=(1+dneff/neff)*yd1;
FWHM1=s*dneff*sqrt(1+(yd1/s*dneff*l)^2)/(4*neff);   %FBG1半波带宽
sd1=plot(y1,r1);
%sd=plot(y,r);
set(sd1,'Color',[.7,.1,.9]);
xlabel('波长(nm)');
ylabel('反射率');
title('FBG1的反射谱');
figure;
r1=r1.*S;
ss1=plot(y1,r1);
set(ss1,'Color',[.7,.1,.9]);
xlabel('反射波长(nm)');
ylabel('功率(mW)');
title('FBG1取得的反射波');
figure;
%hold on;
%均匀FBG1反射谱的取得==================================================
neff2=1.68;
y2=[1540:0.01:1560];
yd2=1549.000;
dneff=0.0002;
neff=1.48;
s=1;
k2=pi*dneff./y2;
l=1*1e6;   
s2=2*pi*neff*(1./y2-1/yd2);
d2=2*pi*dneff./y2;
ds2=s2+2*pi*dneff./y2;
w2=(k2*l).^2-(ds2*l).^2;
r2=6*(sinh(w2.^0.5)).^2./((cosh(w2.^0.5)).^2-ds2.^2./k2.^2);
yc2=(1+dneff/neff)*yd2;
FWHM2=s*dneff*sqrt(1+(yd2/s*dneff*l)^2)/(4*neff);
r2=r2.*S;
sd2=plot(y2,r2);
%sd1=plot(y1,r1);
%sd=plot(y,r);
set(sd2,'Color',[.1,.1,.9]);
xlabel('波长(nm)');
ylabel('反射率');
title('FBG2的反射谱');
figure;
r2=r2.*S;
ss2=plot(y1,r2);
set(ss2,'Color',[.7,.1,.9]);
xlabel('反射波长(nm)');
ylabel('功率(mW)');
title('FBG2取得的反射波');
figure;    
coupled=r1+r2;%耦合波
y=[1540:0.01:1560];
sd3=plot(y,coupled);
%sd1=plot(y1,r1);
%sd=plot(y,r);
set(sd3,'Color',[.1,.1,.3]);
xlabel('波长(nm)');
ylabel('功率(mW)');
title('FBG1和FBG2反射波的耦合波');
figure;
%=================以上为均匀光纤光栅反射谱取得和耦合部分=====================
%case 2
%啁啾光纤光栅的反射谱的取得。
%clear;
%clc;
C=0.17e-9;       %啁啾
L=140;           %长度
n0=0.0;          %直流调制
n11=0.5;          %交流调制 
n=1.4568;        %有效折射率
period0=534.5;   %周期
span=0.3;        %谱范围
p=0.0003;
c=2.99792458e8;
L=L*(1e-3);
n0=n0*(1e-4);
n11=n11*(1e-4);
period0=period0*(1e-9);
span=span*(2e-9);
p=p*(1e-9);
M=140;
dz=L/M;
centerwavelength=2*(n+n0)*period0;
wavelength=(centerwavelength-span/2):p:(centerwavelength+span/2);
M1=length(wavelength);
hh=waitbar(0,'计算中...');
for j=1:1:M1
  waitbar(j/M1,hh)  
v=wavelength(j);
period1=period0-C/2;
n1=n11*exp((-(4*log(2)*(-L/2)^2))/((L/3)^2));  % for Gaussian apodization---q=0
k=pi*n1/v;
h=2*(n+n0)*pi/v-pi/period1;
omig=sqrt(k*k-h*h);
T(1,1)=cosh(omig*dz)-(i*h*sinh(omig*dz))/omig;
T(1,2)=-i*k*sinh(omig*dz)/omig;
T(2,1)=i*k*sinh(omig*dz)/omig;
T(2,2)=conj(T(1,1));
for q=1:1:M
    B=T;
    period(q)=period0+(+q/M-0.5)*C;
     n1(q)=n11*exp((-(4*log(2)*(q*L/M-L/2)^2))/((L/3)^2));  % for Gaussian apodization
    k=pi*n1(q)/v;
    h(q)=2*(n+n0)*pi/v-pi/period(q);
    omig(q)=sqrt(k*k-h(q)*h(q));
    T(1,1)=cosh(omig(q)*dz)-(i*h(q)*sinh(omig(q)*dz))/omig(q);
    T(1,2)=-i*k*sinh(omig(q)*dz)/omig(q);
    T(2,1)=i*k*sinh(omig(q)*dz)/omig(q);
    T(2,2)=conj(T(1,1));
    T=T*B;
%以下增加了一个随机的相差
 %^^^^^^^^^^^^^^^^^^^
  anf0=rand(1)*10;
    anf=fix(anf0)*pi/180/30;
     phase(1,1)=exp(-i*anf/2);
    phase(1,2)=0;
    phase(2,1)=0;
    phase(2,2)=exp(i*anf/2);
T=phase*T;
% ^^^^^^^^^^^^^^^^^^^^^   
end
    A=T*[1;0];
    r(j)=A(2,1)/A(1,1);
    transmission(j)=1/abs(A(1,1));
    transmission1(j)=abs(A(1,1));
    transmission2(j)=abs(A(2,1));
    Reflectivity(j)=(abs(r(j)))^2;
    sita(j)=angle(r(j));
end    
%figure;
%plot(wavelength*(1e9),sita, 'r');
figure;
ss3=plot(wavelength*(1e9),Reflectivity, 'r');
set(ss3,'Color',[.7,.1,.9]);
xlabel('波长 nm');
ylabel('反射率')
title('啁啾光纤光栅反射谱');
axis auto;
diudao1=diff(sita)/p;
diudao1(M1)=diudao1(M1-1);
for j=1:1:M1
    v=wavelength(q);
    delay(j)=-v^2*diudao1(j)/(2*pi*c);
end
if abs(delay(1))>1e-9
    delay(1)=0;
end
for j=2:1:M1
    if delay(j)>7e-9
        delay(j)=delay(j-1);
    end
    if delay(j)<-7e-12 
        delay(j)=delay(j-1);
    end
end
%figure;
%plot(wavelength,delay*(1e12));
%title('时延');
axis auto;
xlabel('wavelength ');
ylabel('Delay (ps)');
for j=1:1:M1
    a(j,1)=wavelength(j);
    a(j,2)=delay(j);
end
P1=0; P2=0; P3=0; P4=0;
for i=1:1:M1
    P1=P1+a(i,1);
    P2=P2+a(i,2);
    P3=P3+a(i,1)^2;
    P4=P4+a(i,1)*a(i,2);
end
avedispersion=(P4*M1-P1*P2)/((P3*M1-P1^2))
b=(P3*P2-P1*P4)/(M1*P3-P1*P1)
for j=1:1:M1
    dispersion(j)=avedispersion;
    ripple(j)=delay(j)-(avedispersion*wavelength(j)+b);
end
figure;
ss4=plot(wavelength,dispersion); 
set(ss4,'Color',[.7,.1,.9]);
title('色散');
axis auto;
xlabel('波长(nm) ');
ylabel('色散 x1000ps/nm');
%figure;
%plot(wavelength,ripple*(1e12));
%title('纹波');
axis auto;
xlabel('wavelength ');
ylabel('时延纹波 (ps)');
%figure;
%plot(wavelength,Reflectivity,wavelength,delay*(1e9),wavelength,ripple*(1e9)+1);
hold off;
figure;
plotyy(wavelength,Reflectivity,wavelength,delay*(1e9))
figure;
ss5=plot(wavelength,transmission);
set(ss5,'Color',[.7,.1,.9]);
title('透射谱');
close(hh)
%otherwise
 %       error('error!tp=1->NRZ;2->RZ;3->Manchester');
%end
 
%总程序结束=======================================================-==================

二、运行结果

在这里插入图片描述
在这里插入图片描述

三、备注

完整代码或者代写添加QQ912100926
往期回顾>>>>>>
【物理应用】杨氏双缝干涉实验【Matlab 310期】
【物理应用】井筒多相流【Matlab 311期】
【物理应用】二维对流扩散温度场【Matlab 312期】
【物理应用】内弹道【Matlab 313期】

猜你喜欢

转载自blog.csdn.net/m0_54742769/article/details/114436153