所以我一直在尝试对一些数据进行 FFT,我看到一个 0Hz 的峰值,我无法真正理解为什么,因为我对信号处理还很陌生。我使用 pandas 读取了我的文件,将它们保存到数组中,并在 y 数据上使用了 scipy 的 FFT 函数。但是当根据频率 linspace 绘制它时,结果对我来说似乎很奇怪。我不太确定如何将时域转换为频域。任何帮助将不胜感激,谢谢。(注意:数据不是完全水平的)。
FFT 在 0Hz 处显示峰值?
信息处理
fft
Python
IFFT
2022-02-19 02:46:34
2个回答
[编辑讨论]
在第一个订单上,您的数据看起来像一个衰减,在一个小值范围内具有正源,并且相对于曲线下面积的波动非常小。
因此,从远处看,您的数据更接近于一个几乎恒定的函数,而不是一些假定的振荡。因此,零或直流分量很重要。实际上,您的最大 FFT 幅度大约是,如果我使用梯形近似,它恰好与您的数据的平均值匹配(我希望你的 FFT 是标准化的)。
对于二阶观察,您可以尝试消除看起来呈指数的衰减趋势(例如,通过二阶或三阶的指数拟合或低阶多项式)。有了足够密集的点数,您还可以再次尝试导数(注意端点)或二阶导数,以查看是否出现周期性现象。但这可能会放大噪音。
三阶,在索引区间上,我看到了大约一个数量级的辍学. 消除趋势后,这可能看起来像一个单步下降,这可能会导致您的信号出现低频效应。
因为你的数据(我假设)是由一些有趣的东西乘以很小的数字组成的,再加上——大概是无趣的——, 在哪里是你的“时代”。
所以数据的傅里叶变换作为一个整体是由傅里叶变换主导的.
其它你可能感兴趣的问题