有关apodization的相关问题


#1

在我的模型中,得到了如下图所示的电场时域图


放大末端来看,如下
出现了由两个模(分别为202THz和185THz)合成的“拍频”,从拍频的峰值和谷值上看,可知道两个模的强度相差不会很大,但是我通过start apodization,选择apodization center=200000fs,apodization width=50000fs,得到以下两个模的频谱图
这两个模的峰值相差了20000倍,按道理说不会出现这种情况。请问是不是我的apodization设置得不对?


#2

关键是这两个莫的频谱图是怎么独立算出来的?一般来说它们应该出现在同一个频谱图中,不在一个图中可能说明计算时的参数可能不同。
另外,你应查看窗口内的信号情况。你可以将时间信号导出来自己添加窗口看看,甚至自己计算其频谱。


#3

@gsun 谢谢您的回答
这两个模是是分别通过两个 profile monitor 得到的,其中这两个的参数设置基本一样,除了frequency center不同,分别为185THz和202THz

请问,我这样分开来探测各个模式会不会有问题?
第二个问题是,您说到自己计算频谱,我有尝试用导出电场的时域数据,再在matlab上定义了DFT来计算这个频谱,请问这个采样频率是不是下图所示的dt的倒数

第三个问题是,我没有找到在FDTD中有DFT的相关命令脚本,请问有没有这样的脚本命令?(非fft)
第四个问题是,FDTD solution中的DFT的定义式,是不是这个


#4

在两个监视器里面分别加Apodization计算,结果的幅度可能不能直接比较,因为内部计算的参数不同。要比较的话最好在一个监视器里面(当然还要保证这两个谐振频率准确采样,否则由于Q大稍微偏离其幅值变化可能就比较大);监测出的谐振波长和Q应该没有问题;如果你特别重视它们的幅值,一定要保证仿真时间对这两个谐振足够,使得它们的时间信号彻底衰减。
第二个:如果自己计算的话,如果不与光源频谱归化,它们的幅值应该与你在时间监视器里面看到的类似。
采样频率应该不是dt的倒数,后者决定最高采用频率。dt就是时间信号的采样间隔。
第三:参见这个命令czt
第四:监视器内部的计算使用不同但类似的公式,你给的公式是fft


#5

@gsun 谢谢您的回答。
我尝试着只用一个profile监视器,来比较两个模(202THz和185THz)的相对幅度,因为我只关心他们的相对幅值。设置如下 ,通过frequency point设为2000来保证准确采样,可是得到的频谱图还是相差很大


而通过时间监视器的得到的频谱图,却是比较反应电场的时域情况(那个拍频的情况),如下图
理论上,fft和dft得到的频谱(对于感兴趣的模)应该是一致的(放应相对幅值的情况),为什么这里却不一样呢?
后来我用FDTD solution得到的电场时域信息,放到matlab里面计算,分别使用FFT和DFT是可以得到相同的频谱.
第二个问题是,如果自己计算,这个采样频率为多少?


#6

用profile监视器得到的是归化的分布,也就是与光源光谱强度归一化了,或者说此时所有波长的入射强度是相同的;
而时间监视器得到的结果是没有与光源光谱归化,所以与时间监视器的一致,上次已经提到此问题,你可能没有注意到
fft和dft得到的频谱如果不归化才类似(幅值不同因为差一个常数)
采样频率要指明是对时间还是对频率采样。时间信号的采样间隔是dt, 频率的残阳间隔将根据你做傅里叶变换有没有添加0 等等有关,你是可以控制的。可以参考一下信号处理方面的书。

另外需要注意的是,时间监视器的位置不同,结果可能也有不同,除非是理想的平面波,波阵面上都一样。


#7

HI @gsun 谢谢
您提到的“所以与时间监视器一致”,是指时间监视器里面电场的时域图(那个拍频效果的图)反应一致,这个意思么?[quote=“gsun, post:6, topic:3929”]
而时间监视器得到的结果是没有与光源光谱归化,所以与时间监视器的一致
[/quote]


#8

是的,时间监视器和由其信号计算的傅立叶变换都没有与光源频谱作归一化,所以一致。


#9

Hi @gsun 谢谢
我取消了cw normalization ,选择no normalization!在profile monitor的频率设置为

这样,使得185THz模和202THz模放到同一个监视器,一起监测,同时并没有使用apodization。得到的频谱图的两个模的相对值,还算比较正常。这个是可以接受的。如下图

然而,新的问题是,这个频谱中,202THz模比185THz的高;可是在时间监视器中,得到的频谱图中,202THz模比185THz模低,如下图所示


这样显然不正常的,因为DFT和fft得到的即使不相等,也应该相似,请问如何解决这个问题?
第二个问题是,之前你提到“fft和dft得到的频谱如果不归化才类似(幅值不同因为差一个常数)”,虽然说,我只关心两个模的相对大小,然而dft得到的数值实在比fft的小太多了,请问,DFT这样的现象是否正常?


#10

我前面提过,时间监视器的结果与位置有关。如果它所在的位置是其中一个谐振波长的节点,你可能甚至都看不到它。
第二:在作dft时,它是乘离dt的,而fft没有乘。你乘了以后两者结果就会相近。


#11

@gsun 谢谢您的回答
1,上两个图分别是通过频率监视器和时间监视器在同一个点(x,y)上得到的频谱结果.虽然两个精度不一样,以及少乘以一个dt,但是应该不至于在频率监视器中,202模比185模高,而在时间监视器中,202模比185模低。请问为什么会这样的呢?(我猜测是,时间监视器和频率监视器在同一个点上所使用的电场时域数据不一样)
2,你说的乘以dt是不是指下面这个

另外很抱歉,现在的问题已经偏离了题目apodization,但我还是想放在这里讨论。


#12

1:你猜测的很有道理。时间监视器缺省的情况用最近的量插值

而频域监视器,用Profile和Power有点不同,参见这个帖子
你把它们需用一样的插值看看。

2:是的。


#13

Hi @gsun 谢谢您的回答
1,关于设置相同的插值问题,在频域监视器中,只有nearest mesh cell ,specified position和none这三个选项,而时间监视器中,只有 nearest mesh cell 和none,你的意思是将这两个监视器都放在同一个位置,以及选择nearest mesh cell么?如果是的话,得到的结果还是跟上述的图一样的
2,我对频域监视器获取电场时域数据有些疑问。如下图


是否相当于在这280*187个点都放置了“点时间监视器”,获得了完整的各点电场时域数据?


#14

A1: 应该以频域结果为准,软件内部可能有一定的特殊处理。
A2:是的,频域监视器获取电场时,在每个网格点上都作傅里叶变换。所以如果不是十分必要,频域监视器不要监测过多的频率点,特别是Profile监视器。


#15

Hi @gsun 谢谢。
1,是不是这样一个意思:时间监视器在(x,y)点获取的时域数据和频域监视器在此点(x,y)获取的原始时域数据是一样的(并且两个监视器具有相同的插值方式),然而在处理数据时,(时间监视器和频域监视器)还会有一些特殊的处理方式,会存在产生不一样的结果(譬如我现在遇到的这种)的可能性 。
2,刚才您说的是,是以频域监视器得到的结果为准么?
3,[quote=“gsun, post:14, topic:3929”]
所以如果不是十分必要,频域监视器不要监测过多的频率点,特别是Profile监视器。
[/quote]

如果监测的frequency point 过多,应该只是耗费比较多的时间吧?不会影响傅里叶的转换精度吧?