> Rune Allnor wrote:
>
> > spasmous skrev:
> > > I am measuring a transient oscillating signal and have been wondering
> > > about the optimal sampling scheme to determine the decay and frequency.
> > > The model is S = A.exp(-Bt).sin(Ct) and I can sample about 5 points
> > > before the signal has decayed to zero. I have reasonable estimates for
> > > C so I have been sampling at the peaks and troughs, ie. when the sin
> > > term is approximately +/- 1. It seems to work alright but I wonder if
> > > there is a "known" best way to sample the signal to most accurately
> > > determine the parameters A, B and C.
> >
> > You can't implement this scheme of yours and determine the
> > *unknown* constants A, B and C. The constant C determines
> > the oscillation frequency, and must be known in advance if you
> > want to ample at the peaks. Any errors in that estimate will
> > propagate to your estimates from A and B.
>
> Exactly.
>
> >
> > I wouldn't be surprised if somebody have worked out
> > Cramer-Rao Bounds for the various parameters, which ought
> > to give some impression of how accurately these parameters
> > can be estimated.
> >
> > It is possible that some variation of Prony's method could
> > get useful to you. Check out the 1987 book by Marple,
> > if you can find a copy.
>
> If that was a shot from the hip, you have a pretty good intuition!
As much as I would like to say it was a shot from the hip, it was not.
I worked for six years with different variations of prony's method.
Never with damped sinusoidals, though.
Rune
Reply by Andor●April 27, 20062006-04-27
Rune Allnor wrote:
> spasmous skrev:
> > I am measuring a transient oscillating signal and have been wondering
> > about the optimal sampling scheme to determine the decay and frequency.
> > The model is S = A.exp(-Bt).sin(Ct) and I can sample about 5 points
> > before the signal has decayed to zero. I have reasonable estimates for
> > C so I have been sampling at the peaks and troughs, ie. when the sin
> > term is approximately +/- 1. It seems to work alright but I wonder if
> > there is a "known" best way to sample the signal to most accurately
> > determine the parameters A, B and C.
>
> You can't implement this scheme of yours and determine the
> *unknown* constants A, B and C. The constant C determines
> the oscillation frequency, and must be known in advance if you
> want to ample at the peaks. Any errors in that estimate will
> propagate to your estimates from A and B.
Exactly.
>
> I wouldn't be surprised if somebody have worked out
> Cramer-Rao Bounds for the various parameters, which ought
> to give some impression of how accurately these parameters
> can be estimated.
>
> It is possible that some variation of Prony's method could
> get useful to you. Check out the 1987 book by Marple,
> if you can find a copy.
If that was a shot from the hip, you have a pretty good intuition! The
samples y_n = S(n T) are linearly dependent for this function, ie you
have
y_n = a1 y_{n-1} + a2 y_{n-2}.
Determining the constants a1 and a2 for noisy measurements y_n is an AR
modeling process, for which Prony's method reduces to the
autocovariance method. From a1 and a2, one can determine parameters B
(exponential decay rate) and C (frequency). Amplitude and phase can be
determined from the inital values of the recurrence.
If the noise is iid Gaussian, then the linear-least squares estimate
for B and C reaches Cramer-Rao bound. I'm not sure if this property
also propagates through to the estimates of parameters A and D, which
are solved using linear least-squares from B, C and the y_n.
Reply by Rune Allnor●April 27, 20062006-04-27
spasmous skrev:
> I am measuring a transient oscillating signal and have been wondering
> about the optimal sampling scheme to determine the decay and frequency.
> The model is S = A.exp(-Bt).sin(Ct) and I can sample about 5 points
> before the signal has decayed to zero. I have reasonable estimates for
> C so I have been sampling at the peaks and troughs, ie. when the sin
> term is approximately +/- 1. It seems to work alright but I wonder if
> there is a "known" best way to sample the signal to most accurately
> determine the parameters A, B and C.
You can't implement this scheme of yours and determine the
*unknown* constants A, B and C. The constant C determines
the oscillation frequency, and must be known in advance if you
want to ample at the peaks. Any errors in that estimate will
propagate to your estimates from A and B.
I wouldn't be surprised if somebody have worked out
Cramer-Rao Bounds for the various parameters, which ought
to give some impression of how accurately these parameters
can be estimated.
It is possible that some variation of Prony's method could
get useful to you. Check out the 1987 book by Marple,
if you can find a copy.
Rune
Reply by Andor●April 27, 20062006-04-27
spasmous wrote:
> Andor wrote:
> >
> > I guess you assume that the signal that you want to sample is equal to
> >
> > S(t) = A exp(-Bt) sin(Ct),
> >
> > and that you can only sample the function regularly, ie
> >
> > y_n = S(n T) + e_n,
> >
> > where e_n is some iid noise sequence, and T the sampling period. By the
> > way, are you sure that the phase of the sinusoid is equal to zero?
> >
> > The best is to sample as fast as possible - this gives you the most
> > significant measurement.
> >
>
> You're correct, that is the model and measurement constraint I have.
> The phase is expected to be zero and does appear to be so from the data
> I have. Sampling as fast as possible would seem to be the best thing to
> do although if I miss a peak or trough then couldn't that worsen the
> estimation? Eg. worst case scenario I pick n T such that sin(n T)=0 for
> all n. I presume there is some analytic way to describe this situation
> analogous to condition number for linear problems... I don't know of
> one though!
The problem is a bit tricky. Your signal is not bandlimited (due to the
modulation of the sine wave with the exponential envelope), but in the
absence of noise, four samples suffice to exactly determine the
parameters (including the phase). Most samplers (AD converters) will
bandlimit before sampling, ie. you do not sample S(t) but a lowpass
filtered version thereof. If the sampling rate is high with respect to
the sine wave, the effect is negligible.
However, even in the ideal case (no noise and unbandlimited sampling),
the sample rate has to be higher than twice the sine frequency of the
sine wave (in this case, f = C/(2 pi) ), otherwise the frequency will
alias due to sampling. The case you describe (sin(n T) = 0 for all n)
is eactly the case where you sample at twice the sine frequency. You
have to sample higher than that.
In the presence of noise, and with regular sampling, you have to take
as many samples as possible. You can weight their effect on the
least-squares fit after you have taken the samples (proportional to
their magnitude). If you just sample at the peaks and troughs of the
sine wave, you have less information than if you sample faster.
So there you have two reasons to sample as fast as possible:
- avoiding signal distortion due to bandlimiting
- improving the variance of the estimation in the presence of noise
If you are not 100% sure about the phase being zero, just add another
parameter to your model, ie. S(t) = A exp(-Bt) sin(Ct+D).
Regards,
Andor
Reply by spasmous●April 26, 20062006-04-26
Andor wrote:
>
> I guess you assume that the signal that you want to sample is equal to
>
> S(t) = A exp(-Bt) sin(Ct),
>
> and that you can only sample the function regularly, ie
>
> y_n = S(n T) + e_n,
>
> where e_n is some iid noise sequence, and T the sampling period. By the
> way, are you sure that the phase of the sinusoid is equal to zero?
>
> The best is to sample as fast as possible - this gives you the most
> significant measurement.
>
You're correct, that is the model and measurement constraint I have.
The phase is expected to be zero and does appear to be so from the data
I have. Sampling as fast as possible would seem to be the best thing to
do although if I miss a peak or trough then couldn't that worsen the
estimation? Eg. worst case scenario I pick n T such that sin(n T)=0 for
all n. I presume there is some analytic way to describe this situation
analogous to condition number for linear problems... I don't know of
one though!
Reply by Andor●April 26, 20062006-04-26
spasmous wrote:
> I am measuring a transient oscillating signal and have been wondering
> about the optimal sampling scheme to determine the decay and frequency.
> The model is S = A.exp(-Bt).sin(Ct) and I can sample about 5 points
> before the signal has decayed to zero.
I guess you assume that the signal that you want to sample is equal to
S(t) = A exp(-Bt) sin(Ct),
and that you can only sample the function regularly, ie
y_n = S(n T) + e_n,
where e_n is some iid noise sequence, and T the sampling period. By the
way, are you sure that the phase of the sinusoid is equal to zero?
> I have reasonable estimates for
> C so I have been sampling at the peaks and troughs, ie. when the sin
> term is approximately +/- 1. It seems to work alright but I wonder if
> there is a "known" best way to sample the signal to most accurately
> determine the parameters A, B and C.
The problem of estimating the constants A,B and C from your measurement
is an appliciation of linear least-squares method (at least for B and
C). Because you know that the variance of the measurements increases
(due to decreasing SNR as time progresses) you can use weighted least
squares to improve the variance of the estimator.
The best is to sample as fast as possible - this gives you the most
significant measurement.
You might also be interested in Harminv:
http://ab-initio.mit.edu/wiki/index.php/Harminv
Regards,
Andor
Reply by Jerry Avins●April 25, 20062006-04-25
spasmous wrote:
> I am measuring a transient oscillating signal and have been wondering
> about the optimal sampling scheme to determine the decay and frequency.
> The model is S = A.exp(-Bt).sin(Ct) and I can sample about 5 points
> before the signal has decayed to zero. I have reasonable estimates for
> C so I have been sampling at the peaks and troughs, ie. when the sin
> term is approximately +/- 1. It seems to work alright but I wonder if
> there is a "known" best way to sample the signal to most accurately
> determine the parameters A, B and C.
You may find something under "logarithmic decrement", an old spark-gap
transmitter (among other fields) term.
Jerry
--
Engineering is the art of making what you want from things you can get.
�����������������������������������������������������������������������
Reply by spasmous●April 25, 20062006-04-25
I am measuring a transient oscillating signal and have been wondering
about the optimal sampling scheme to determine the decay and frequency.
The model is S = A.exp(-Bt).sin(Ct) and I can sample about 5 points
before the signal has decayed to zero. I have reasonable estimates for
C so I have been sampling at the peaks and troughs, ie. when the sin
term is approximately +/- 1. It seems to work alright but I wonder if
there is a "known" best way to sample the signal to most accurately
determine the parameters A, B and C.