next up previous contents
Next: Time domain analysis Up: Tachometers / Frequency Detection Previous: Real-world problems with the   Contents

Using a Hilbert transform to estimate frequency

The above examples have only discussed using the zero crossing information from the tachometer signal (i.e. as if the tachometer signal was a square wave). If you in fact have a sine wave, then you can also extract information continuously. In other words, the timing of the peaks and valleys can provide information on shaft speed, in addition to the zero crossings.

One way to measure the frequency of a sinusoidal (or nearly sinusoidal) signal is to use a Hilbert transform. Construct an analytic signal from your reference signal by adding the Hilbert transform as the imaginary part ( hilbert() in matlab does this automatically). Then, take the derivative of the phase angle of the analytic signal. I.e. diff( unwrap( angle( hilbert( sig ) ) ) in matlab is enough to get an estimate of the frequency of the signal versus time.



" . $row['Name'] . " Posted on " . $row['DateTime']; echo "
"; echo $row['Comment']; echo "

"; } echo "
"; ?> Leave a comment on this page:

Name: (optional)
To prove you are not a robot, what is 2+3?

Creative Commons License
This work by Daniel Kiracofe (daniel dot kiracofe at gmail dot com) is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License./' $I