DSPRelated.com
Forums

Optimal sampling for damped sinusoid

Started by spasmous April 25, 2006
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.

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. �����������������������������������������������������������������������
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
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!
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
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
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.
Andor wrote:
> 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