为什么fft的高斯脉冲的光谱相位显示sawteeth吗?

27日视图(30天)
你好。
我感兴趣对激光脉冲光谱分析。我做了一个测试代码的高斯脉冲在FFT分析。分析的答案是,振幅谱也是高斯轮廓而光谱相位都是零。
清晰;关闭所有;
%的概要文件
delta_t = 0.1;%采样间隔。
t = -90: delta_t: 90;
t_p = 35;波长= 790 e-9;c = 3 e8;k = 2 *π/波长;w = k * c;w = w * 1 e15汽油;%这只是获得归一化中心频率。不是重要的代码。
E_field = exp (-1.38629 * (t / t_p) ^ 2)。* cos (w * t);
图(1);次要情节(2 2 1);情节(t, E_field);标题(“颞信封”);包含(“时间(fs)”);ylabel (“左”);
%光谱剖面
N = 10 *长度(t);% FFT数据点的数量的10倍数据点的信号。
= fft频谱(E_field N);
频率= (0:N - 1) / (N * delta_t);
图(1);次要情节(2,2,2);情节(频率、abs(频谱));标题(“谱”);包含(的频率(1 * 10 ^ ^ 5赫兹)”);
%详细的光谱资料包括阶段
[pkv, pkl] = max (abs(光谱(1:修复(N / 2))));% pkl是全球最大的位置。
data_width = 50;%数据宽度的左峰值显示细节。
spectral_amplitude = abs(谱);
spectral_phase =角(谱);
图(1);次要情节(2、2、3);情节(频率(pkl - data_width: pkl + data_width), spectral_amplitude (pkl - data_width: pkl + data_width));标题(详细的光谱的);包含(的频率(1 * 10 ^ ^ 5赫兹)”);图(1);
次要情节(2、2、4);情节(频率(pkl - data_width: pkl + data_width), spectral_phase (pkl - data_width: pkl + data_width));标题(“谱阶段”);包含(的频率(1 * 10 ^ ^ 5赫兹)”);阶段= spectral_phase (pkl)
FFT数据点N远比时序信号,也整倍数delta_t(= 1 /采样频率),以避免所谓的泄漏问题。
发现振幅非常好但是,阶段概要sawteeth形状远离我所期望的。
我相信没有理由阶段不断减少因此阶段跳跃发生。
这是由于一些数值错误吗?我应该考虑什么样的错误?我怎样才能解决这个问题从而精确相分析是吗?

接受的答案

韦恩王
韦恩王 2012年8月5日
编辑:韦恩王 2012年8月5日
我不认为有问题,我认为如果你下面的情节
次要情节(211)
情节(频率、abs(频谱))
次要情节(212)
情节(频率、打开(角(频谱)))
你看到这个阶段是相对稳定除了正面和负面的位置频率正弦分量的峰值。
你必须记住,你的大部分DFT系数小震级和这些值的微小变化会引起跳跃的阶段。做一个简单的实验用一个unwindowed cos
Fs = 1000;
t = 0:1 / Fs: 1 - 1 / f;
x = cos(2 *π* 100 * t);
xdft = fft (x);
情节(abs (xdft))
情节(角(xdft))
阶段正在明显跳跃,但你必须考虑这些明显跳跃阶段是否真的重要。事实是,他们中的大多数与DFT系数大小的10 ^ {-13}。
这只是现实阶段DFT的估计与计算机实现。
2的评论

登录置评。

答案(1)

Dong-Gyu张成泽
Dong-Gyu张成泽 2012年8月16日
编辑:Dong-Gyu张成泽 2016年2月3日
我终于得到了正确的答案!
身体上,高斯脉冲坐落在t = 0时因此,起源是局部对称。
然而,在DFT看来,不是对称的,数据没有示例数据 甚至n个点圆
数据是n个点圆甚至满足x (n) = x (n n), n = 1, 2, 3,…N x (N) N个示例数据文件。
当循环n个点甚至是满意和数据是真实的(不是复杂的值),比光谱相变成零。
总之,代码修改版本,分析预期的零相位谱。
最重要的是添加修改t = ifftshift (t) ;之前示例数据。通过添加此代码,样本数据满足n个点圆。
我附上修改M-scripts显示正确的结果。
3评论
Dong-Gyu张成泽
Dong-Gyu张成泽 2016年2月3日
谢谢。
我现在附上代码中的代码,相信我的答案固定你所提到的问题。

登录置评。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!