Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1219338
  • 博文数量: 124
  • 博客积分: 5772
  • 博客等级: 大校
  • 技术积分: 1647
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-27 10:39
文章分类

全部博文(124)

文章存档

2020年(1)

2019年(1)

2018年(5)

2017年(2)

2016年(17)

2015年(3)

2014年(7)

2013年(11)

2012年(13)

2011年(30)

2010年(34)

分类: WINDOWS

2011-10-20 16:44:52

陈根祥《光纤通信技术基础》(高等教育出版社,2010年11月第1版),P121,图6.2.1中4个图的程序,用MATLAB实现。




  1. %==========================================================================
  2. %Name: guass_nc_spm.m
  3. %Desc: 计算无啁啾高斯脉冲的SPM谱展宽效应,详见陈根祥《光纤通信技术基础》,
  4. % 高等教育出版社,2010年11月第一版,P121。用到了gauss_m_nc(t,m,fwhm)
  5. % 函数,该函数用来产生无啁啾高斯脉冲,这是个自定义函数,详细参考
  6. % gauss_m_nc.m文件。
  7. %Parameter:
  8. %Return:
  9. %Author: yoyoba(stuyou@126.com)
  10. %Date: 2011-10-20
  11. %Modify: 2011-10-20
  12. %==========================================================================

  13. %输入无啁啾高斯脉冲时域波形
  14. N1=64;%(a)(b)(c)图用该抽样点
  15. fs=1500e+9;
  16. m=1;
  17. fwhm=10e-12;

  18. n1=floor(-(N1-1)/2:(N1-1)/2);
  19. t1=n1/fs;
  20. g1=gauss_m_nc(t1,m,fwhm);
  21. subplot(2,2,1);
  22. plot(t1,abs(g1).^2,'k');
  23. title('(a) 输入脉冲波形');
  24. xlabel('时间/s');

  25. %非线性相移
  26. nphase=-6.22*abs(g1).^2;
  27. subplot(2,2,2);
  28. plot(t1,nphase,'k');
  29. title('(b) 非线性相移');
  30. xlabel('时间/s');

  31. %频率啁啾
  32. t0=(fwhm/2)*(2*log(2))^(-1/2/m);
  33. f_chirp=2*m/t0*6.22*(t1/t0).^(2*m-1).*exp(-(t1/t0).^(2*m));
  34. subplot(2,2,3);
  35. plot(t1,f_chirp,'k');
  36. title('(c) 频率啁啾');
  37. xlabel('时间/s');

  38. %输入脉冲功率谱和输出脉冲功率谱,为了频率更精确,设置更多的采样点。
  39. N=1024;
  40. np=floor(0:(N-1)/2);
  41. nn=floor(-(N-1)/2:-1/2);
  42. n=[np,nn];
  43. t=n/fs;
  44. g=gauss_m_nc(t,m,fwhm);

  45. G=fftshift(fft(g,N));
  46. k=floor(-(N-1)/2:(N-1)/2);
  47. f=k*fs/(N);
  48. subplot(2,2,4);
  49. plot(f,abs(G).^2,'r-'); %入射脉冲光谱
  50. axis([-4e+11,4e+11,0,300]);

  51. g2=abs(g).^2;

  52. gz=g.*exp(-j*6.22*g2);

  53. GZ=fftshift(fft(gz,N));
  54. hold on;
  55. plot(f,abs(GZ).^2,':'); %出射光谱
  56. legend('入射光谱','出射光谱');
  57. title('光谱展宽');
  58. xlabel('频率/Hz');
  59. hold off;


  60. %==========================================================================
  61. %Name: y=gauss_m_nc(t,m,fwhm)
  62. %Desc: 计算m阶无啁啾超高斯脉冲,无啁啾高斯脉冲的表达式为exp(-1/2*(t/t0)^(2m))
  63. % 其中m为阶数。
  64. %Parameter: [in]t,时刻,可以是数值,也可以是向量
  65. % [in]m,超高斯脉冲的阶数
  66. % [in]fwhm,半最大值全宽,单位为s。计算时,要根据fwhm计算T0,
  67. % 计算公式为FWHM=2*t0*(2*log(2))^(1/(2*m))
  68. %Return: y,返回值
  69. %Author: yoyoba(stuyou@126.com)
  70. %Date: 2011-10-16
  71. %Modify: 2011-10-16
  72. % %========================================================================
  73. % function y=gauss_m_nc(t,m,fwhm)
  74. % t0=(fwhm/2)*(2*log(2))^(-1/2/m);
  75. % y=exp(-0.5*(t/t0).^(2*m));
 gauss_nc_spm.rar   
阅读(3805) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~