Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1219010
  • 博文数量: 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平台

2013-06-30 14:34:20

前两天,一位好友让我看一段程序,使用FFT算法计算啁啾高斯脉冲的相位谱,总是得不到正确结果。后来查找资料发现,普通FFT算法求相位谱可能会与实际相位谱差别较大。如果改用“全相位FFT”算法,可以得到较为理想的相位谱。啁啾高斯脉冲的时域及频域表达式如图1所示。

               图1 啁啾高斯脉冲的时域和频域表达式,C为啁啾量

以下程序使用“全相位FFT算法”,计算其相位谱:

  1. %==========================================================================
  2. %Name: apFFT_chirp_Gauss.m,
  3. %Desc: 计算啁啾高斯脉冲的幅度谱和相位谱,使用全相位FFT算法
  4. %Parameter:
  5. %Return:
  6. %Author: yoyoba(stuyou@126.com)
  7. %Date: 2013-06-29
  8. %Modify: 2013-06-29
  9. %==========================================================================
  10. close all;
  11. clc;
  12. clear all;
  13. T0=1e-12; %高斯脉冲时间宽度1ps
  14. N=2^11;     %采样点2048
  15. Ts=100*T0/N; %时域取样间隔,时间窗口宽度为100*T0,
  16. n=-N+1:2*N-1;
  17. t=n*Ts; %取样时刻
  18. C=2; %简单一些,直接给出初始啁啾量
  19. g=exp(-0.5*(1+1i*C)*(t/T0).^2); %带有啁啾的高斯脉冲序列,原始脉冲强度默认为1
  20. k=floor(-(N-1)/2:(N-1)/2);
  21. D=1/(N*Ts); %频率分辨率
  22. f=k*D; %频率坐标
  23. %以下代码作用:为了使用全相位FFT算法,需对高斯脉冲序列进行预处理
  24. %=============全相位FFT预处理开始================
  25. win=hanning(N)';
  26. win1=hanning(N)';
  27. win2=conv(win,win1);
  28. win2=win2/sum(win2);
  29. w=pi*2;
  30. g1=g(1:2*N-1);
  31. y1=g1.*win2;
  32. y1a=y1(N:end) + [0 y1(1:N-1)];
  33. %=============全相位FFT预处理结束================
  34. apFFT_g=fftshift(fft(y1a,N)); %FFT变换
  35. figure;
  36. plot(t*1e+12,abs(g).^2/max(abs(g).^2),'linewidth',2);
  37. xlabel('time(ps)');
  38. ylabel('Intensity(a.u.)');
  39. axis([-3,3,0,1]);
  40. title('Time-Intensity');
  41. figure;
  42. plot(t*1e+12,phase(g),'linewidth',2);
  43. xlabel('time(ps)');
  44. ylabel('phase(rad)');
  45. axis([-100,100,-200,700]);
  46. title('Time-Phase');
  47. figure;
  48. plot(f*1e-12,abs(apFFT_g).^2/max(abs(apFFT_g).^2),'linewidth',2);
  49. xlabel('frequency(THz)');
  50. ylabel('Intensity(a.u.)');
  51. axis([-2,2,0,1]);
  52. title('Frequency-Intensity');
  53. figure;
  54. plot(f*1e-12,phase(apFFT_g),'linewidth',2);
  55. xlabel('frequency(THz)');
  56. ylabel('phase(rad)');
  57. axis([-5,5,-70,10]);
  58. title('Frequency-Phase');

运算结果如图2~5所示:

                   图2 高斯啁啾脉冲的强度时域图象

                  图3 啁啾高斯脉冲的相位时域图象

                    图4 啁啾高斯脉冲的幅度谱

                     图5 啁啾高斯脉冲的相位谱



apFFT_chirp_Gauss.rar
阅读(1411) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~