Python Fourier Transform, FFT, Waterfall FFT, Cepstrum

Introduction

The Fourier transform is a method for representing a time domain signal in the frequency domain. This transform is discussed in the tutorial: Shock_and_Vibration_Signal_Analysis.pdf

* * *

Utility

The scripts on this page require the utility module tompy.py

* * *

Fourier Transform

An example of a Fourier transform script is fourier.py

The corresponding inverse Fourier transform script is invfourier.py

* * *

Fast Fourier Transform (FFT)

The processing time for taking the transform of a long time history can be dramatically decreased by using an FFT.

An FFT can be performed if the time history has 2^n coordinate points, where n is an integer. A time history can be truncated or zero-padded if necessary so that it meets this requirement.

Scipy has an FFT in its numerical library.

from scipy.fftpack import fft

An example of a script using this function is: fft.py

The corresponding inverse FFT script is: invfft.py

An FFT GUI version is given at: fft_gui.py

* * *

Waterfall FFT

The Waterfall script generates a 3D plot using:

from mpl_toolkits.mplot3d.art3d import Poly3DCollection

The script is: waterfall_FFT.py

A GUI version using Tkinter is: waterfall_FFT_gui.py

* * *

Cepstrum

The cepstrum function was originally developed for characterizing the seismic echoes resulting from earthquake and bomb explosions. It has also been used to determine the fundamental frequency of human speech, to analyze radar signal returns, and to evaluate machinery vibration.

Here is a cepstrum script: cepstrum.py

Here is a auto-cepstrum script: auto_cepstrum.py

Here is a GUI script for both cepstrum & auto-cepstrum: cepstrum_gui.py

* * *

Sound Pressure Level

Here is a GUI script for calculating a sound pressure level from a time history: spl_gui.py

* * *

Tom Irvine

Advertisements

One thought on “Python Fourier Transform, FFT, Waterfall FFT, Cepstrum

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s