using MESA (memcof and evlmem)


mike28282828
11-24-2006, 07:01 AM
Hi there.

I've built an application that creates a pure sine wave, then I've used memcof and evlmem to analyze it.

Everything seems to work fine and the frequency is actually detected. However, at certain frequencies, there seems to be no frequency pole.
I have checked and found this has correlation to the number of input points used to create the pure source sinewave, and also the number of poles used to analyze it.

However, to bypass these problems, I have found that adding even the slightest amount of random noise to the sinewave will somehow "fix" all the strange effects.

Then I proceeded to combining several pure sine waves creating a synthesis. I've ran the new waveform through the memcof and evlmem, and did get the maximums at the right frequencies. However, the POWER of each maximum has no correlation to the amplitude of the original sine wave.
For example, if I use 2 sine waves, both with an amplitude of 5, one at a frequency 7 and one at frequency 18, I do get the power spectrum poles at 7 and 18, but their power is strongly not equal. Moreover, the decision on which frequency is stronger seems to be dependant on all the parameters (i.e., the frequencies used, the number of poles used, the number of points that the waveform is built from, etc...)

My question is, does somebody knows why:
1. memcof and evlmem sometimes gives strange frequency readings, that can be solved with "random noise"?
2. they do not return true amplitude of input sines?

note: When I add the usage of fixrts function after memcof, in SOME cases mentioned at #1 above (where the power spectrum response is flat), fixrts will return an error due to the intrinsic usage of laguer ("too many iterations")

If anybody is interested, i can list the code. I also packed it as a standard .dll to be used with other software/languages.

anybody?
Thanks in advance.
Mike

mike28282828
11-25-2006, 10:40 AM
Hi there guys,

since I didn't get any reply yet. I wondered,
did anybody had ANY experience with the memcof and evlmem
for spectral estimation at all?

Thanks in advance, will appreciate your reply.

Mike

avenjl
12-15-2006, 02:45 AM
I don't have the sampling error that you have since my time series have an extremely large sample rate. However, when applying the results that I got from other well established "industrial" codes I do find that the amplitudes are completely fictitious. I suspect that there is a scaling problem. Another is that these types of codes are generally designed for zero mean signals. Even at that my signal is asymptotically zero mean and hence shouldn't have this problem. So I would go to suspect that there is a scaling that is missing from the routine.

mike28282828
02-16-2007, 10:15 PM
dear avenjl,

thanks for the reply!
since then, i've discovered that pre-processing the data with some window function (especially Parzen window) helped a lot.
can you point me out to implementations of mesa other than NR?

thanks,
m