/GFT

The General Fourier Family Transform (GFT) is a time-frequency transform. The Fourier, short-time Fourier and S- transforms are special cases. This is an efficient n log n algorithm for computing the GFT which is most interesting to use to compute the S-transform (ST). The ST is like a short time Fourier transform in that it produces a frequency vs. time (or space) spectrogram, but it is frequency adaptive like a wavelet.

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

GFT

The General Fourier Family Transform (GFT) is a time-frequency transform; the Fourier, short-time Fourier, S- and many wavelet transforms are special cases. This is an efficient algorithm for computing the GFT, which is most interesting to use to compute the S-transform (ST). The ST is like a short time Fourier transform in that it produces a frequency vs. time (or space) spectrogram, including phase information, but it is frequency adaptive like a wavelet.

This algorithm has a complexity of O(n log n) (in 1-dimension) compared to the original "fast S-transform" algorithm and subsequent optimzations such as the Discrete Orthogonal S-Transform (DOST), which are all O(N^2).

This code should be functional under Python 3.x, but is very much a work in progress. Run gft.py with

python -i gft.py

to see a demo of the 1-dimensional forward and inverse fast ST.

gft.m is a self contained MatLab/Octave script file that implements the forward and inverse GFT, and includes a demo. It has only been tested in Octave.

The GFT and this efficient algorithm for computing it was published in 2009 in IEEE Transactions on Signal Processing. The full text is available here. The GFT can also be computed from the time domain. Finally, a book chaper providing an overview of time frequency transforms and the GFT, including the link to the wavelet transform, is available.

A previous Python/C version of the GFT was hosted at sourceforge.net/projects/fst-uofc/. That project is no longer maintained.

The O(n log n) algorithm is the subject of US patent US8458240B2.