2
$\begingroup$

I have a mixture of Gaussians and I want to look at their power power spectrum. The spatial distribution looks like this:

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

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.

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

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,:)))

Edit2: I added a link to the data. https://www.dropbox.com/s/y5sgz0ataxe9z3s/FFT_problem_DataSet.mat

$\endgroup$

migrated from math.stackexchange.com Aug 21 '12 at 21:50

This question came from our site for people studying math at any level and professionals in related fields.

  • $\begingroup$ 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. $\endgroup$ – Ed Gorcenski Aug 21 '12 at 19:34
  • $\begingroup$ I suggest that this be moved to dsp.SE $\endgroup$ – Dilip Sarwate Aug 21 '12 at 19:42
  • 1
    $\begingroup$ @Peter Are you sure that you're subtracting the mean before doing the FFT? $\endgroup$ – Jim Clay Aug 22 '12 at 1:05
  • 1
    $\begingroup$ Could you post your data file somewhere? $\endgroup$ – pichenettes Aug 22 '12 at 8:19
  • 1
    $\begingroup$ @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. $\endgroup$ – Seyhmus Güngören Aug 22 '12 at 11:44
0
$\begingroup$

The first and the obvious algorithm for the solution of this problem is the EM algorithm. This algoritm is getting worse in the number of parameters. It is also too much dependent on the initial conditions.

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.

Another method is to use the central moments until Mth order. When written in a parametric form each xth order moment gives a linear/non-linear combination of parameters which are to be estimated. From here one can construct a test. Of course the moments should also be estimated from the data.

Another method would be to employ a better search algorithn. That is called particle swarm optimization. It will run similar to EM. However it is a stochastic algorithm have different characteristics than EM such as to be able to deal with more number of parameters. It is a kind of team optimization algorithm.

Thats all in my mind at the moment. Good luck with the experiments.

$\endgroup$
  • $\begingroup$ I've been looking into the EM and the method of the moments, the first looks a bit more appealing because I'm a bit pressed for time. Is it possible to run the EM on non-categorical data? The Matlab implementation of EM allows only for binary data; if it were possible to use the EM on the densities, as plotted in the top figure, I should be fine. $\endgroup$ – Piotr Sokol Aug 26 '12 at 17:19
  • $\begingroup$ 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 $\endgroup$ – Seyhmus Güngören Aug 26 '12 at 22:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.