Matlab 我的傅里叶逆变换中的尖峰

Matlab 我的傅里叶逆变换中的尖峰,matlab,signal-processing,fft,Matlab,Signal Processing,Fft,我试图在MATLAB中比较两个数据集。要做到这一点,我需要通过对数据进行傅里叶变换、滤波然后进行逆傅里叶变换来过滤数据集 当我对数据进行傅里叶逆变换时,我在红色数据集的两端得到一个尖峰(图中显示了第一个尖峰),它在开始时应该接近零,就像蓝线一样。我比较了许多数据集,这只是偶尔发生的 关于这种现象,我有三个问题。首先,是什么导致了它,第二,我如何补救它,第三,它会进一步影响时间序列的数据,还是仅仅在时间序列的开始和结束时影响数据,就像图片中显示的那样 任何帮助都很好,谢谢 可以是的数值等价物。如果

我试图在MATLAB中比较两个数据集。要做到这一点,我需要通过对数据进行傅里叶变换、滤波然后进行逆傅里叶变换来过滤数据集

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

关于这种现象,我有三个问题。首先,是什么导致了它,第二,我如何补救它,第三,它会进一步影响时间序列的数据,还是仅仅在时间序列的开始和结束时影响数据,就像图片中显示的那样

任何帮助都很好,谢谢


可以是的数值等价物。如果这是正确的,除了滤波之外,没有其他方法可以补救。

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

您是否在频谱域中执行过零填充? 无论如何,可能会降低成本


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

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

你似乎对形状感兴趣,这么做吧

x = x - mean(x)

(我爱numpy!)

将仅约束数据集以零频率的零振幅开始,并继续对光谱振幅进行匹配


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

使用窗口方法如何?为什么要在频域中过滤信号?你能发一些代码吗?这里的x轴是什么?
x -= mean(x)
x -= x.mean()