8363 发表于 2021-5-13 18:20

我有一个光谱,从200nm~1100nm。用apfft求FP腔的初始相位。

用apfft求得的相位如图所示:
(.mat文件不好上传,所以想请问是什么原因造成相位谱不正确的)
C:\Users\dell\Desktop\1.png

迷你猫 发表于 2021-7-20 11:22

本帖最后由 迷你猫 于 2021-7-20 12:00 编辑

没上传mat,不知道你说的不正确是啥意思,看代码猜测你可能没对相位做过滤,结果没得到想要的效果。

对时域信号计算得到的频域本身肯定包含计算误差,假定一个离散时域信号x只有一个频率成分1Hz, 初相位为0,采样率fs = 8, 采样点数N = 8,那么这个时域信号如下x =
对应的频域
X = [-3.44509284839767e-16 + 0.00000000000000i      4.00000000000000 - 5.58947851566226e-16i      1.22464679914735e-16 + 0.00000000000000i      -4.44089209850063e-16 - 6.90891319072844e-17i      9.95799250102960e-17 + 0.00000000000000i      -4.44089209850063e-16 + 6.90891319072844e-17i      1.22464679914735e-16 + -0.00000000000000i      4.00000000000000 + 5.58947851566226e-16i]


频域第4个点的代表频率3Hz的成分,幅值应该是0,初相位也应该是0,因此频域值实际上应该是 0 + 0i,但是你看上面实际计算的结果是:-4.44089209850063e-16 - 6.90891319072844e-17i,实部和虚部的值都很小,10的-16次方这个级别的,因此求模的结果也接近0,但是计算相位的时候不一样了,实部和虚部的比值并不接近0,反而可能会很大,因为无穷小除以无穷小不一定等于无穷小。

较为简单的解决方法是在计算相位的时候加个条件,若对应的幅值小于某个阈值,则直接视相位为0。这种方法的局限非常大,看使用的场合进行处理。

相位谱≈不靠谱,上面的计算误差就限制了实际应用,所以现场大多喜欢用测量到的相位而不是计算出来的相位。


dsp2008 发表于 2021-8-16 11:08

apfft?你还在天津大学开创的欺诈道路上一路狂奔啊?

迷你猫 发表于 2021-8-17 22:16

dsp2008 发表于 2021-8-16 11:08
apfft?你还在天津大学开创的欺诈道路上一路狂奔啊?

老哥 apfft是个什么东西啊? 欺诈道路是啥梗,说说。
页: [1]
查看完整版本: 我有一个光谱,从200nm~1100nm。用apfft求FP腔的初始相位。