so I've been working on a side project for some time now.

I have rotating shaft that's starting from 15k and goes up to 150k RPM(250-2500Hz), I have the vibration signal of the shaft from transducer and also I have pulse when the shaft completes each rotation (so I can calculate the RPM).

I've been searching the internet for quite some time now reading a lot of theory about dsp and order tracking in general but I simply cannot make it work.

So my questions is, what approach would you use to extract useful information and plot it on a graph using Vibration vs RPM?

(I've been reading something about sampling the vibration signal according to the rotation pulse but I'm just confused is once per revolution enough for the vibration signal, also whats after I have vibration signal and rpm signal)

I will do all the research myself, but i need some help starting out. I would be really happy if someone can write down some general steps I can follow.


3 Answers 3


I suppose that you are interested in measuring vibration for monitoring purposes, whether for the shaft's bearings or what the shaft itself is doing as it gets loaded (e.g. sagging and causing vibration).

For this purpose, the vibration signal can be assumed stationary. This means that given enough time, no new components will be added to the vibration signal. The vibration is "the same" in every rotation.

With these assumptions in place, what you can do is to integrate an aspect of your vibration signal over short periods of time and cross referencing it with your RPM.

For example, let's say that the vibration signal that you get from your sensor is represented by some $x(n)$. If you want an estimate of how strong the vibrations get, you can simply integrate the $|x(n)|$ over time (that is, the absolute value of $x$) and see if the amplitude of the vibration seems to increase with respect to RPM. The integration itself can be done with a simple moving average filter. If your Sampling Frequency is 7kHz ($F_s > \frac{f_h}{2}$) and your highest frequency $f_h$ here seems to be 2.5kHz), then this means that 1 revolution at 250Hz takes about 140 samples or approximately 20ms. So, if you were to filter your $|x(n)|$ with a simple moving average filter with length 140 samples, you would generate another signal that would give you average amplitude of vibrations per revolution at your low end RPM. As the RPM increases of course, the smoothing will be greater.

But, you are also very lucky because in addition to your vibration signal you also have the RPM sensor. From these two and the point of view of monitoring the bearings you can understand two things: Whether the bearing's shell has developed a chip, or whether one of the bearing elements is deformed. Here is why: If the bearing shell has a chip then there will be a peak in the vibration signal at the same phase in every revolution. If one of the bearing elements is defored (whether cylinder, ball, other) then, as the bearing rotates, the elements meet the shell at a different point at each revolution. Therefore, your get a "rolling" pulse in the signal. On the first revolution it occurs 2ms after the rotation starts, on the second revolution it occurs 4ms after the rotation starts, on the third revolution it occurs 6ms after the rotation starts and so on.

To see these things, you can plot your vibration signal in parallel (or, in phase) with your rotation signal and look for "regular bumps" or "rolling bumps".

The same applies for when you want to measure if your axle is sagging beyond an RPM (because it was asymetrically lathed or it was loaded suddenly or whatever). You just monitor the vibration signal for bumps versus the RPM.

Towards that direction, you might find wavelet analysis more useful.

Hope this helps.


I've put together some reference material on my website that may help you get started.


The easiest method to understand is to use a short time fourier transform. Not necessarily the best method, but easy to understand. Frequency shifting or resampling will be better, but will be harder to understand.

If you just have 1 pulse per revolution, for the resample method, you'll have to interpolate. i.e. assume that the shaft speed is constant between pulses, and interpolate N pulses equally spaced in between each pulse that you do have.


I would recommend to start with the resampling of the signal. That means re-calculation of the time equidistant signal into a angle equidistant signal. If you have one pulse per revolution you should start with one sample per 360°.

From the resampled signal an order spectrum can be calculated like a frequency spectrum from the time signal (FFT).

Then you could calculate the track of the order you are interested in.

If you have more than one pulse per revolution (which is typically recommended if you like to analyse signals of rotating machines) you could also calculate an averaged signal over one revolution.

To display the vibration over the RPM speed is probably hiding the information when you have constant speed. But if you have only have a ramp the Campbell diagram might be sufficient.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.