FFT 具有意外的直流分量

信息处理 傅里叶级数 matlab
2022-01-31 09:13:30

我混合了高斯,我想看看他们的功率谱。空间分布如下:

http://i.imgur.com/kFRKZ.jpg?1

它已经与高斯窗函数进行了卷积。我减去所有值的平均值并在 matlab 中运行 FFT。对于我使用的功率谱|F|2下图是通过 2D 相空间中间的截面。

http://i.imgur.com/TuimV.jpg?1

零相位分量比其余光谱大几个数量级;鉴于问题的性质,我预计功率谱密度看起来像高斯的组合。

编辑:数据最初是作为双变量泊松过程给出的,定义在R2. 假设权重相等,并且高斯在六边形网格上等距分布。现在,我应该估计高斯的方差,并想使用经验特征函数来做,因为修改后的 EM 不能很好地处理数据(我猜是因为样本相对较小,总共约 300 个点)。按照主管的建议,我使用高斯核估计了一个密度,然后运行了 FFT。关于 Matlab 实现: 2D 空间密度矩阵是 'x'

nfft= 2^(nextpow2(max(size(x))));
fftx = fft2(x,nfft,nfft);
mx = abs(fftx)/length(x);
mx = mx.^2;

我任意选择了一个部分并绘制了 plot(ffshift(mx(2048,:)))

Edit2:我添加了一个指向数据的链接。 https://www.dropbox.com/s/y5sgz0ataxe9z3s/FFT_problem_DataSet.mat

1个回答

解决这个问题的第一个也是最明显的算法是EM算法。这种算法在参数数量上越来越差。它也过于依赖初始条件。

这种算法的缺点可以通过并行计算来规避。这意味着你有N EM算法同时运行,具有不同的初始化点。最终算法采用N个处理器估计的所有参数,并根据拟合的健康程度给出最终决策。

另一种方法是使用中心矩直到M阶。当以参数形式编写时,每个x阶矩给出要估计的参数的线性/非线性组合。从这里可以构建一个测试。当然,矩也应该从数据中估计出来。

另一种方法是采用更好的搜索算法。这就是所谓的粒子群优化。它将类似于EM运行。然而,它是一种随机算法,具有与EM不同的特性,例如能够处理更多数量的参数。它是一种团队优化算法。

这就是我此刻的全部想法。祝实验顺利。