Pure JavaScript library discrete transforms, including Discrete Fourier Transform (DFT); It's fast, inverse, and special forms.
npm i fourier
var fourier = require('fourier');
<script src="https://cdn.jsdelivr.net/npm/fourier/fourier.min.js"></script>
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
// 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();
fourier.dft(realArray, imagArray); // ⇒ [realArray, imagArray]
fourier.idft(realArray, imagArray); // ⇒ [realArray, imagArray]
npm test
MIT LICENSE.