[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Uncertainty principle debate



Hi, everybody,

This question was asked on comp.dsp user group last year.
I hate to waste a good answer.
So here it is, and believe it or not,
it directly applies to the subject of your discussion.


__Subject__: Can I Extract Fundamental from Partial Sine Wave?
__Date__: Sun, 16 Nov 2003 03:55:36 -0600


> I have some experimental data for In-phase and quadrature signals.
> Sometimes the data covers only half or less, of a full cycle.
There are
> usually about 100 - 140 equally spaced (in time) points, but a few
> points are often missing.
>
> What technique can I use to calculate the fundamental frequency of
the
> sine wave?   I would like to write a program, or use a spread sheet,
> which ever is appropriate, or use an existing procedure.
>
> Any help would be appreciated.
>
> --
> Regards
>
>         Clive    G3CWV
>
>         Hitchin, North Hertfordshire, UK.

Jerry Avins <[EMAIL PROTECTED]> wrote in message news:<[EMAIL
PROTECTED]>...
> Vladimir Vassilevsky wrote:
>
> > Clive,
> >
> > What you are trying to find are the A, w and fi parameters for the
> > equation:
> >  A*exp(jwt + fi)
> > which makes the best fit with your data. You can do it with
> > autoregression.
> >
> > Vladimir Vassilevsky
> >
> > DSP and Mixed Signal Design Consultant
> >
> > http://www.abvolt.com
>
> It's not quite that simple. As given, the waveform can have
harmonics.
>
> Jerry

If your signal is a pure sine wave (maybe noisy), then try to best-fit
the
equation as proposed by Vladimir.

If your signal is periodic but has an unknown harmonic structure, then
you
need more than one period to determine the fundamental period of a
signal.

All of the conventional methods (correlation, spectrum, cepstrum-based
etc.) used
for detecting fundamental period of a signal require at least 2
complete periods to be included in the analysis window (Well, you can
try to reduce your window size with
cross-correlation, but this is not a way to go).

The only method which can reliably get you the period (or its inverse
– fundamental frequency) of a periodic signal using analysis window
slightly longer than one complete period (at least for clean periodic
signals) is the method based on signal embedding in multi-dimensional
state space followed by a nearest-neighbor search. It was first
presented at ICASSP last year.

Go to http://www.soundmathtech.com/pitch

Download the ICASSP 2002 paper and the Matlab demo.

Although it may look complicated, in reality it is very simple and you
can easily implement it for your purposes in about half an hour.

Regards,

Dmitry Terez

SoundMath Technologies, LLC
P.O. Box 846
Cherry Hill, NJ 08003
USA