# FFT has unexpected DC component

I have a mixture of Gaussians and I want to look at their power power spectrum. The spatial distribution looks like this: It's already been convolved with a Gaussian window function. I subtract the mean over all values and run an FFT in matlab. For the power spectrum I used $|\mathcal{F}|^2$ and the image under is a section through the middle of the 2D phase space. The zero phase component is orders of magnitude bigger than the rest of the spectra; given the nature of the problem I expected the power spectral density to look like a combination of Gaussians.

Edit: The data is initially given as a bivariate poisson process, defined on $\mathbb{R}^2$. The weights are assumed to be equal and the Gaussians are equally spaced on a hexagonal grid. Now, I'm supposed to estimate the variance of the Gaussians, and wanted to do it using the empirical characteristic function,because the modified EM doesn't work well with data (I guess it's because sample is relatively small ~300 points in total). Following supervisor's suggestion, I estimated a density using Gaussian kernels, and then ran the FFT. Concerning the Matlab implementation: The 2D spatial density matrix is 'x'

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


I selcted arbitrarily a section and plotted plot(ffshift(mx(2048,:)))

• I'm confused by your units in your plot. What is the meaning of -100 cycles per meter? Power spectrum distributions typically have a point at infinity at the origin. Perhaps this is responsible for the result you're seeing? Have you tried looking at your result when eliminating this point? Also, power should be a log axis. – Ed Gorcenski Aug 21 '12 at 19:34
• I suggest that this be moved to dsp.SE – Dilip Sarwate Aug 21 '12 at 19:42
• @Peter Are you sure that you're subtracting the mean before doing the FFT? – Jim Clay Aug 22 '12 at 1:05
• Could you post your data file somewhere? – pichenettes Aug 22 '12 at 8:19
• @Peter what sort of data is that? I guess it is the 2D plot of the densities right? If your signal is zero mean random signal you will not see a peak at zero. It never happens. plot(abs(fft(randn(1,100)))) for example. – Seyhmus Güngören Aug 22 '12 at 11:44

The drawbacks of this algorithm can be circumvented by parallel computing. This means you have $N$ EM algorithms run simultaneously which have different initialization points. The final algoritm takes all parameters estimated by N processors and based on the wellness of the fit gives the final decicion.
• Yes sure. Implementation is also quite easy. Fix the parameters with respect to all densities except for one. And estimate the parameters of the unknown density using the regular way. Since all other densities are assumed to be known in this stage, maximum likelihood estimation should maximize the likelihood of $f_1(\mu_1,\sigma_1,\epsilon_1)+f$. As $f$ is constant, maximum likelihood estimation of $\mu,\sigma,\epsilon$ is simple. In the next iteration, use the parameters that you found in the first stage and now you have $f_2(\mu_2,\sigma_2,\epsilon_2)+f$ for the maximul likelihood estimation – Seyhmus Güngören Aug 26 '12 at 22:09