Documentation

Vibration Post-Processing Module

vibEngine.jar© for Android™


  • Created: 11 Jun, 2021
  • Update: 28 Oct, 2021

If you have any questions that are beyond the scope of this help file, Please feel free to email via info@rotovibes.com


Description

vibEngine.jar© is an Android™ library that contains experienced methods for vibration data post-processing, such as:

  • Time-Domain Filtering
  • Fast-Fourier Transform
  • Frequency-Domain integration
  • Windowing functions
  • DC Removal Filter
  • Time-Domain Overall Calculation
  • Frequency-Domain Overall Calculation
  • Frequecny Bands Overall Calculation
  • Time-Domain Higher Peaks
  • Frequency-Domain Higher Peaks
  • Rotor speed estimator
  • Frequecny-Domain Cross-Phase Calculation
  • FRF Calculations, etc.

  • Installation

    Follow the steps below to install the vibEngine.jar library

    1. In your projects top bar menu, select >File >New >New Module... A new window will appear, select "Import .JAR/.AAR Package" from the options
    2. In the new popup window browse and select the vibEngine.jar library and click on "Finish"
    3. The vibEngine library will appear on the right
    4. in your App build.gradle add the following dependency
    5. 
                  ...
                  dependencies {
                          ...
                          implementation files('libs/vibeEngine.jar')
                      }
                  ...
                  

    Library Anatomy

    1. Signal Processing Modules (selected samples)
    2. 
      ...
      
      //Time-Domain Overall
      public static double timeDomainOverall (double[] signalArray, int dataSize)
      
      //Frequency-Domain Overall
      public static double frequencyDomainOverall (double[] spectrumArray, int spectrumSize)
      
      //Frequency-Domain Overall (bins)
      public static double frequencyDomainBandOverall (double[] spectrumArray, int startFreqBin, int enFreqBin)
      
      //Frequency-Domain Overall (Hz)
      public static double frequencyHzDomainBandOverall (double[] spectrumArray, int samplingRate, int numberOfSamples int startFreq, int enFreq)
      
      //FFT for Acceleration raw data
      //integrationType: 0->Acceleration, 1->Velocity, 2->Displacement
      public static double[] fft_calc (double[] rawData, int samplingRate, int numberOfSamples, int integrationType)
      
      //Frequency-Domain Windowing
      //windowType: 0->None, 1->Hanning, 2->Hamming, 3->Blackman, 4->Nutall, 5->Flat-Top
      public static double[] spectrumWindowing (double[] spectrumArray, int spectrumSize, int windowType)
      
      //Time-Domain Filters
      //filterType: 0->None, 1->Low-Pass, 2->High-Pass
      public static double[] filteredSignal (double[] signalArray, int dataSize, int filterType)
      
      //Time-Domain DC-removal
      public static double[] dcRemoval (double[] signalArray, int dataSize)
      
      //Overall Velocity from Acceleration raw data
      //isMetric: true->Metric (mm/s), false->Imperial (ips)
      //isRms: true->rms, false->peak
      public static double overallVelocityFromAccTWF (double[] rawData, int samplingRate, int numberOfSamples, boolean isMetric, boolean isRms)
      
      //Overall Displacement from Acceleration raw data
      //isMetric: true->Metric (microns), false->Imperial (mils)
      //isRms: true->rms, false->peak
      public static double overallDisplacementFromAccTWF (double[] rawData, int samplingRate, int numberOfSamples, boolean isMetric, boolean isRms)
      
      //Running-Speed (RS) estimator (RPM)
      public static double rsEstimator (double[] rawData, int samplingRate, int numberOfSamples)
      
      ...
        

      In your project import com.rotovibes.vibEngine.vibePostProc and use as follow:

      
      ...
      import com.rotovibes.vibEngine.vibePostProc
      ...
          //Sample to calculate overall Velocity from Acceleration raw data in mm/s rms
          //isMetric: true->Metric (mm/s), false->Imperial (ips)
          //isRms: true->rms, false->peak
      
          Double overallVelocity = vibePostProc.overallVelocityFromAccTWF (rawDataArray, samplingRate, numberOfSamples, true, true)
          ...
      

    Changelog

    See what's new added, changed, fixed, improved or updated in the latest versions.

    Version 1.01 (12 Jun, 2021)

    • Updated Several Enhancements

    Version 1.0 (28 Nov, 2011)

    Initial Release for Android based on a previous C++ version