Skip to content

ramayer/fast_hartley_transform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

FHT (Fast Hartley Transform)

Summary

Background

A Hartley Transform is similar to a Fourier Transform. Unlike the complex-values produced by a FFT with it's cos(x)+i*sin(x) kernel, the Hartley Transform uses a real-valued kernel cos(x)+sin(x).

This can give it better memory-locality (for both instruction caches and data caches) on CPUs with limited sized data and instruction caches (when compared to traditional FFT implementations that work with both real and imaginary arrays).

In addition, this algorhtm does not depend on fast sin() and cos() floating point instructions - optionally generating those values on the fly using a stable algorithm with a log(n) sized lookup table that preserves numerical accuracy even on embedded CPUs with reduced precision floating point math.

These properties made the Fast Hartley Transform extremely well suited for older CPUs (that often had slow trig instructions) and embedded devices like MP3 players with strict memory constraints.

Original release

Forks and references.

Old discussions

The particular implementation of the DHT used in fiddle∼ appears to be based on code written by one Ron Mayer sometime in 1993. Surprisingly, the primary reference describing this code—(Mayer 1993)— refers to an Internet message board post (in fact a copy of a message board post). It appears that in many applications the “Mayer FHT” has been superseded by modern algorithms. Mayer himself suggests the whimsically titled Fastest Fourier Transform in the West (FFTW) for general purpose applications (Mayer).

Old patent debates

About

The most popular Fast Hartley Transform

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published