4

我正在尝试比较 MATLAB 中的两个数据集。为此,我需要通过对数据进行傅里叶变换来过滤数据集,对其进行过滤,然后对其进行傅里叶逆变换。

当我对数据进行傅里叶逆变换时,我在红色数据集的任一端都得到了一个尖峰(图片显示了第一个尖峰),它在开始时应该接近于零,就像蓝线一样。我正在比较许多数据集,这只是偶尔发生。

我对这个现象有三个问题。首先,可能是什么原因造成的,其次,我该如何补救,第三,它是否会进一步影响时间序列中的数据,或者只是在时间序列的开头和结尾处,如图所示。

任何帮助都会非常感谢。

替代文字

4

3 回答 3

8

使用 DFT 时,您必须记住 DFT 假设一个周期信号(作为谐波函数的叠加)。如您所见,起点是调和函数方式中最后一点的精确延续。

您是否在频谱域中执行了任何零填充?无论如何,窗口化可能会减少Overshooting

了解有关过滤器和原始数据的更多信息可能会有所帮助。

于 2009-12-29T09:59:05.553 回答
2

如果您说接近零频率的尖峰,我会回答检查直流分量。

你似乎对形状感兴趣,所以这样做

x = x - mean(x)

或者

x -= mean(x)

或者

x -= x.mean()

(我喜欢麻木!)

只会将数据集限制为从零频率处的零幅度开始,然后继续对频谱的幅度进行映射。

(作为旁注:您是否检查过您是否正确使用了 fftshift 和 ifftshift?这一直是我的麻烦之源)

于 2010-03-15T08:18:23.637 回答
1

可能是吉布斯现象的数值等价物。如果那是正确的,那么除了过滤之外没有办法补救。

于 2009-12-19T15:04:41.943 回答