Tom said:
... suggestions snipped
Can you tell us more about the application, like what you're needing
to do with the filtered signal,
The application is vibration analysis. I want to hang an accelerometer
on the front of an direct-drive 6-cyl 4-cycle aircraft engine. The
accelerometer output will respond (first order) to any mass inbalance
at the propeller end of the engine (propeller is used as the engine
flywheel). The accelerometer output will be periodic. It can be
described as a sinosoid with harmonics.
. . . and whether a linear-phase filter
would do, and whether you can have a clock which is locked to the
signal frequency?
It is hard to lock the clock as an exact multiple of the period. See below.
You mentioned "lots of higher odd-order harmonics."
Is the third a problem, or only ones beyond that? Is the second for
sure not a problem?
I'm guessing that there will be lots of third harmonic because three
of the cylinders fire on each rotation of the engine. Since it is
a two-bladed prop, and the aircraft will be tested by running it up
to cruise RPM on the ground, there may be some second harmonic induced
as each prop blade passes within a few inches of the ground (happens
twice per revolution).
(You also mentioned in your post that being able
to look at second and third would be an advantage...) It makes quite
a difference, because there's a lot bigger ratio between your highest
fundamental and the lowest third than there is between the highest
fundamental and the lowest second, and so forth! Is there a maximum
permissable delay through the filter?
The purpose of the analysis is to resolve the amplitude and phase of
the fundamental. The phase will be relative to engine shaft position.
The phase (+-180deg) tells you where to put a counteracting weight. The
amplitude tells you how much weight to add.
My idea is to sample the accelerometer at a fixed rate, at a rate such
that several hundred samples are taken per each revolution. As the
engine speed varies (and it will vary), there will be
a slightly more or fewer samples per revolution on any given revolution.
The sample number at which the new period begins is not always
the same. (There will be a separate channel to record an index
mark on the engine shaft).
The time-series of samples will contain the funamental (at the
rotational period) and harmonics. Since the period does not
span the same number of samples for each revolution, I'm thinking
that using an FFT to extract the amplitude and phase would not work
very well.
Suppose that I do this using a laptop and an PCMCIA analog data
aquisition card. Sampling the accelerometer at a fixed-sampling rate is
easy. Sampling the output of a photocell looking at a piece of
reflective tape on the engine shaft on channel two of the AD is easy, too.
After I have several revolutions worth of data aquired, I can
analyise the data post facto; it does not have to be done in real
time, rev by rev, although it could be if I built hardware with
an embedded DSP.
I have played around with some data in Excel. I have fitted a
sine to the sampled data by creating a column of data generated
by a sine function based on four parameters, DCoffset, Amplitude,
Omega, and Phase. The next column I created is the square of the
difference between each data point and the sine value.
Using Excel's "Solver", it will diddle the four sine generation
parameters to minimize the sum of the squares of the errors.
Plotting the fitted sine on top of the original data shows that it
does the expected job of threading the sine between the original
data points.
I haven't tried it, but I supposed that using a second pass,
I could fit a sine at twice the freq of the fundamental through
the collection of points minus each fundamental sine value...
The Amplitude and Phase of the fundamental sine fitted to the original
sampled data contain the information about the mass imbalance.
In this context, what methods can be used to quickly find the ampitude
and phase of a sine fitted to a series of points containing higher
harmonics and some uncorrelated noise???
MikeM