Dear Guest,Writing tutorials and maintaining a website
are expensive endeavors. I need your help to continue this effort.
Your subscription will allow me to continue this site and to
add new materials.
|
| Tutorials | |
| An Introduction to Digital Filtering: This tutorial focuses on the Butterworth filter. | filter.pdf |
| Notes on Refiltering for Phase Correction: | REFILT.pdf |
| Introduction to the Spectral Functions. The Fourier Transform and Power Spectral Density Function: | spectral.pdf |
Fast Fourier Transform: The FFT transform is based on the butterfly algorithm. | fft.pdf |
| Shock and Vibration Signal Analysis: | Shock_and_Vibration_Signal_Analysis.pdf |
| Power Spectral Density Calculation via Matlab:
Guest tutorial submitted by Bob Light. | psd_mat.pdf |
| Sine Function Identification and Removal. | sinefind.pdf |
| Statistical Degrees of Freedom: | statdof.pdf |
| Frederic J. Harris, Trigonometric Transforms: | trig_harris.pdf |
Scientific Atlanta, Random Vibration Testing: | SA_VibrationTesting.pdf |
| The Fourier Series of a Rectangular Wave: | fourier_series_rectangular.pdf |
| Kurtosis in Vibration Analysis: | kurtosis.pdf |
| See Also Random Vibration Page |
| Bruel & Kjaer Booklets | ||
| Bruel & Kjaer, Use of Weighting Functions in DFT/FFT Analysis (Part I): | weight1.pdf | |
| Bruel & Kjaer, Use of Weighting Functions in DFT/FFT Analysis (Part II): | ||
| weight2.pdf | ||
| Aude, A Tutorial in Coherent and Windowed Sampling with A/D Converters: | AN9675.pdf | |
| Hanning Window Compensation Factor: | ||
| ZOOM FFT | |
| Bruel & Kjaer, Zoom FFT : | zoom_fft.pdf |
| Zoom FFT of a time series, Matlab: | zoomFFT.m zoomFFT_plot.m |
| Example tutorial: | zoomFFT_example.pdf |
| Sample input file: | d9p5.txt |
ALIASING
| |
| Notes on sample rate and aliasing: | aliasing_notes.pdf |
| The Need for Analog Anti-aliasing Filters in the Pyrotechnic Shock Testing of Avionics Components: | AA_Filter_Pyro.pdf |
| Signal Identification from Aliased Data: | alias_synthesis.pdf |
| Matlab Scripts: | sinefind_alias.m & sfa_engine.m |
| Excel application for demonstrating bit resolution and aliasing effects. This file was submitted by Robert Davis of NASA/Wallops. It may be freely downloaded. | BitResolutionandAliasingG.zip |
| Ceiling fan, optical aliasing video: | fan_aliased.avi |
Starting Engines 3 & 4 and taxiing of EAA's B-17
at Felts field: Recommend viewing this with
RealPlayer with DivX.
This video clip shows an example of optical aliasing. Each
of the propellers for the 3 & 4 engines seem to switch rotational
direction during start-up because the frame samping rate is too low.
A similar error can occur with measured accelerometer data if the sampling rate is too low. Spectral components in the Fourier transform can become aliased about the Nyquist frequency, which is one-half of the sampling rate. The sample rate should be as high as possible to adequate capture the highest frequency of interest. Also, analog anti-aliasing filters should be used to minimize the potential for aliasing errors. |
Filtering Software
|
Executable
|
Source
|
Digital filtering using a Butterworth 6th order
filter. The user must supply an input time history file.
Both lowpass and highpass options are available.
|
filter.exe
|
filter.cpp
|
Mean filter. This is a type of lowpass filter.
|
mean_filter.exe
|
mean_filter.cpp
|
Median filter. This is a type of lowpass filter. It is
useful for noise spike removal.
|
median_filter.exe
|
median_filter.cpp
|
Transfer function magnitude for analog Butterworth and
Bessel lowpass filters.
|
Butterworth_transfer.exe
|
Butterworth_transfer.cpp
|
Decimation with filtering.
|
decimate.exe
|
decimate.cpp
|
Decimation with no filtering.
|
decimate_nf.exe
|
decimate_nf.cpp
|
Calculate a PSD via successive bandpass filtering.
|
filter_psd.exe
|
filter_psd.cpp
|
Trend Removal Software
|
Executable
|
Source
|
First-order trend identification and removal.
|
trend1.exe
|
trend1.cpp
|
Second-order trend identification and removal.
|
trend2.exe
|
trend2.cpp
|
Other Software Programs
|
Executable
|
Source
|
Fast Fourier transform (FFT) of a time history. The
transform operates on a time series with 2^n points, where n is
an integer.
Also, corresponding inverse FFT.
|
fft.exe
|
fft.cpp
|
Conventional Fourier transform of a time series with
an arbitrary number of points.
Also, corresponding inverse Fourier transform.
|
fourier.exe
inv_fourier.exe
|
fourier.cpp
inv_fourier.cpp
|
Zoom FFT of a time series.
|
zoomFFT.exe
|
zoomFFT.cpp
|
This
program converts a Fourier transform magnitude with constant bandwidth to an
octave or one-third octave format.
|
FFToct.exe
|
FFToct.cpp
|
This program converts a Fourier transform magnitude with
constant bandwidth to a wider resolution.
|
FFT_smooth.exe
|
FFT_smooth.cpp
|
Cross-spectrum of two time histories. The output files may
be used for modal test data analysis.
|
cross_spectrum.exe
|
cross_spectrum.cpp
|
Cross-spectrum of two time histories. The program
generates H1 and H2 frequency response functions (FRFs), the coherence
function, and the corresponding impulse response functions.
|
cross_spectrum_modal.exe
|
cross_spectrum_modal.cpp
|
Energy
Spectral Density
|
espec.exe
|
espec.cpp
|
Generation of time history signals:
|
generate.exe
|
_ |
Beat frequency time history generation
|
beat_generate.exe
|
beat_generate.cpp
|
Cubic Spline Curve-fit:
|
spline.exe
|
spline.cpp
|
Integrate a time history via the trapezoidal rule.
|
integ.exe
|
integ.cpp
|
Differentiate a time history.
|
differ.exe
|
differ.cpp
|
Autocorrelation
|
autocor.exe
|
autocor.cpp
|
Cross-correlation
|
cross_correlation.exe
|
cross_correlation.cpp
|
Correlation Coefficient of two time histories
|
correlation_coefficient.exe
|
correlation_coefficient.cpp
|
This program multiplies the Fourier transform of a base
input function by the transfer function of a single-degree-of-freedom system.
|
transfer_fft.exe
|
transfer_fft.cpp
|
This program divides a response function by an excitation
function. Each function must be in complex format. The functions may be
Fourier transforms.
|
comp_div.exe
|
comp_div.cpp
|
This program divides a response function by an excitation
function. Each function must be in real format.
|
real_div.exe
|
real_div.cpp
|
This program multiplies a function by another function.
Each function must be in real format.
|
real_mult.exe
|
real_mult.cpp
|
Convolution integral for two time histories.
|
convolution.exe
|
convolution.cpp
|
This program calculates a response time history from an
input time history and a transfer function where the transfer function is a
complex Fourier transform. It uses the convolution method.
|
blast.exe
|
blast.cpp
|
Multiply an input Fourier transform by a transfer
function.
|
fourier_mult.exe
|
fourier_mult.cpp
|
Signal scaling with adjustment options.
|
signal.exe
|
signal.cpp
|
Multipurpose frequency response function processing.
|
frequency_function.exe
|
frequency_function.cpp
|
Histogram, probability density function, and peak
distribution of a time history.
|
histogram.exe
|
histogram.cpp
|
Cumulative RMS of a time history. Used as an alternate
tool for shock severity evaluation.
|
TRMS.exe
|
TRMS.cpp
|
Generation of a "white noise" time history.
|
white.exe
|
white.cpp
|
Add white noise to a signal.
|
add_white.exe
|
add_white.cpp
|
Generation of a "white noise" time history with
kurtosis control.
|
white_kurtosis.exe
|
white_kurtosis.cpp
|
Aliasing frequency calculator.
|
aliasing.exe
|
aliasing.cpp
|
This program calculates the peak frequency vs. time of a
time history, using the Fourier transform method.
|
freq_peak.exe
|
freq_peak.cpp
|
This program calculates the peak frequency vs. time of a
time history, using the FFT transform method.
|
fft_peak.exe
|
fft_peak.cpp
|
Additional software is given at: Matlab & Java |
Book Recommendations
|
Other Vibrationdata Pages: Home | Tutorials
|