# frequencyjs

A library for computing the frequencies of signals. It will include
*Fourier Transformation* (under development) and *Wavelet Transformation* with
different basis functions. It also includes a very simple tone generator.

# Installation

Simply via `npm`

oder `bower`

(package will soon be added to bower).

```
npm install frequencyjs
```

```
bower install frequencyjs
```

# Usage

frequencyjs consists of the following packages

- Generators
- Transformators

## Generators

To generate a signal simply do

`var fjs = ;fjsGenerator // there will be different types here ; // data will give you a list of objects [{t:0,value:0},...]`

## Transformators

To analyse a signal you can use the DFT on any signal:

`var spectrum = fjsTransform ;`

If you want to use FFT you must keep in mind that the FFT only works on signals with a power of two length. Simply switch the method to `fft`

and you get your FFT.

`var spectrum = fjsTransform ;`

The signals created with the Generator above contain information about their sampling rate (`signal.sampling`

) and thus it is possible to omit the sampling rate.

## Spectrum

A spectrum calculated with the `toSpectrum`

method has the following methods:

`data()`

: returns a list of Frequencies with their amplitude

e.g`[{frequency:0, amplitude:0},{...},...]`

The frequencies are always ascending.`dominantFrequency()`

: returns the dominant frequency of the signal as an object containing the frequency and the amplitude

e.g. `{frequency: 2, amplitude: 1}``

# Acknowledgement

A part of this library is based on dsp.js
which has a very nice and fast implementation of the FFT. It currently uses
a huge portion of the **dsp.js** code.

# License

This library is under the MIT License.