0.3.0 • Published 7 years ago
fourier v0.3.0
Fourier
Pure JavaScript library discrete transforms, including Discrete Fourier Transform (DFT); It's fast, inverse, and special forms.
Use
Node.js
npm i fourier --savevar 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:
f32orf64 - 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.