Fourier
Pure JavaScript library discrete transforms, including Discrete Fourier Transform (DFT); It's fast, inverse, and special forms.
Use
Node.js
npm i fourier --save
var fourier = require('fourier');
Browser
<script src="https://rawgithub.com/drom/fourier/master/fourier.js"></script>
Functions
FFT custom
Fast Fourier transform (FFT). Cooley–Tukey algorithm. in-place. Radix-2, Decimation in Time (DIT).
One function for each data type, vector size and coding style
fourier.custom.fft_<type>_<size>_<style>
- data type:
f32
orf64
- vector size:
16
,32
, ...1048576
- coding style: 'raw' or
asm
example:
// Init
var stdlib = {
Math: Math,
Float32Array: Float32Array,
Float64Array: Float64Array
};
// Create heap for the fft data and twiddle factors
var heap = fourier.custom.alloc(65536, 3);
// Create instance of FFT runner
var fft_f64_65536_asm_runner = fourier.custom.fft_f64_65536_asm(stdlib, null, heap);
// Init twiddle factors
fft_f64_65536_asm_runner.init();
// Run transformations
fft_f64_65536_asm_runner.transform();
Other
fourier.dft(realArray, imagArray); // ⇒ [realArray, imagArray]
fourier.idft(realArray, imagArray); // ⇒ [realArray, imagArray]
Testing
npm test
License
MIT LICENSE.