无啁啾高斯脉冲的SPM谱展宽效应
陈根祥《光纤通信技术基础》(高等教育出版社,2010年11月第1版),P121,图6.2.1中4个图的程序,用MATLAB实现。
%==========================================================================
%Name: guass_nc_spm.m
%Desc: 计算无啁啾高斯脉冲的SPM谱展宽效应,详见陈根祥《光纤通信技术基础》,
% 高等教育出版社,2010年11月第一版,P121。用到了gauss_m_nc(t,m,fwhm)
% 函数,该函数用来产生无啁啾高斯脉冲,这是个自定义函数,详细参考
% gauss_m_nc.m文件。
%Parameter:
%Return:
%Author: yoyoba(stuyou@126.com)
%Date: 2011-10-20
%Modify: 2011-10-20
%==========================================================================
%输入无啁啾高斯脉冲时域波形
N1=64;%(a)、(b)、(c)图用该抽样点
fs=1500e+9;
m=1;
fwhm=10e-12;
n1=floor(-(N1-1)/2:(N1-1)/2);
t1=n1/fs;
g1=gauss_m_nc(t1,m,fwhm);
subplot(2,2,1);
plot(t1,abs(g1).^2,'k');
title('(a) 输入脉冲波形');
xlabel('时间/s');
%非线性相移
nphase=-6.22*abs(g1).^2;
subplot(2,2,2);
plot(t1,nphase,'k');
title('(b) 非线性相移');
xlabel('时间/s');
%频率啁啾
t0=(fwhm/2)*(2*log(2))^(-1/2/m);
f_chirp=2*m/t0*6.22*(t1/t0).^(2*m-1).*exp(-(t1/t0).^(2*m));
subplot(2,2,3);
plot(t1,f_chirp,'k');
title('(c) 频率啁啾');
xlabel('时间/s');
%输入脉冲功率谱和输出脉冲功率谱,为了频率更精确,设置更多的采样点。
N=1024;
np=floor(0:(N-1)/2);
nn=floor(-(N-1)/2:-1/2);
n=[np,nn];
t=n/fs;
g=gauss_m_nc(t,m,fwhm);
G=fftshift(fft(g,N));
k=floor(-(N-1)/2:(N-1)/2);
f=k*fs/(N);
subplot(2,2,4);
plot(f,abs(G).^2,'r-'); %入射脉冲光谱
axis([-4e+11,4e+11,0,300]);
g2=abs(g).^2;
gz=g.*exp(-j*6.22*g2);
GZ=fftshift(fft(gz,N));
hold on;
plot(f,abs(GZ).^2,':'); %出射光谱
legend('入射光谱','出射光谱');
title('光谱展宽');
xlabel('频率/Hz');
hold off;
%==========================================================================
%Name: y=gauss_m_nc(t,m,fwhm)
%Desc: 计算m阶无啁啾超高斯脉冲,无啁啾高斯脉冲的表达式为exp(-1/2*(t/t0)^(2m))
% 其中m为阶数。
%Parameter: [in]t,时刻,可以是数值,也可以是向量
% [in]m,超高斯脉冲的阶数
% [in]fwhm,半最大值全宽,单位为s。计算时,要根据fwhm计算T0,
% 计算公式为FWHM=2*t0*(2*log(2))^(1/(2*m))
%Return: y,返回值
%Author: yoyoba(stuyou@126.com)
%Date: 2011-10-16
%Modify: 2011-10-16
% %========================================================================
% function y=gauss_m_nc(t,m,fwhm)
% t0=(fwhm/2)*(2*log(2))^(-1/2/m);
% y=exp(-0.5*(t/t0).^(2*m));