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:
f32orf64 - 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.
