公式和假设
为了验证我的计算,我决定模拟一个简单的高斯谱:
fmin = physconst('LightSpeed')/900e-9;
fmax = physconst('LightSpeed')/700e-9;
deltaf = 1/0.5e-9;
f = fmin:deltaf:fmax;
fcentral = physconst('LightSpeed')/800e-9;
ffwhm = 50e-9*physconst('LightSpeed')/(800e-9)^2;
I = exp(-(f-fcentral).^2./(2*(0.5*ffwhm)^2));
plot(f,I)
xlabel('frequency (Hz)'); ylabel('Intensity (a.u.)');
公式(来自this链接的注释):
Gamma
是相干度,从中可以轻松计算出相干长度。
解决方案
如果我是对的,我的示例光谱I
将通过以下方式与公式关联:
I = c/f^2*F(c/f)
因此,我只需要进行傅立叶逆变换(?)即可得到Gamma
。简单地使用ifft
会产生一些奇怪的结果……我通过这种方式获得的最佳结果是:
gamma = 2.*real(ifftshift(ifft(ifftshift(I))))*deltaf;
plot(1./f, gamma)
xlabel('time (s)'); ylabel('Degree of coherence (a.u.)');
在遵循此image之后,我希望Gamma
的FWHM为20 fs。我在做什么错了?
备注
我知道这个问题不仅与编程有关,而且与物理学有关。我不知道我的问题是由于太愚蠢而无法理解物理背景还是由于无法正确使用Matlab(尤其是DFT)导致的。也许两者都有。我期待着能使我更进一步的每一个答案。