Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

fourier

drom67MIT0.3.0

Discrete Fourier Transform library

fourier

readme

Fourier

NPM version Travis appVeyor

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 or f64
  • 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.