Options
All
  • Public
  • Public/Protected
  • All
Menu

Module "fft/fft"

Index

Functions

Const binFreq

  • binFreq(bin: number, fs: number, n: number): number
  • Returns frequency for given FFT bin index, sample rate and window size. See freqBin for reverse op.

    Parameters

    • bin: number

      bin

    • fs: number

      sample rate

    • n: number

      window size

    Returns number

Const complexArray

conjugate

  • conjugate(src: NumericArray, isImg?: undefined | false | true): NumericArray
  • conjugate(complex: ComplexArray): ComplexArray
  • If given a ComplexArray, computes the complex conjugate, concatenates it in mirrored order to input (excluding bin 0) and returns it as new (complex) array.

    remarks

    The length of the input buffer(s) is assumed to be a power of 2.

    If given a {@link @thi.ng/api#NumericArray}, the isImg arg chooses from one of the following operations: If true (default), returns new array with negated values concatenated in reverse order. If false, returns new array with original values concatenated in reverse order.

    example
    conjugate([0, 3, 2, 1], true)
    // Float64Array [ 0, 3, 2, 1, 0, -1, -2, -3 ]
    
    conjugate([0, 3, 2, 1], false)
    // Float64Array [ 0, 3, 2, 1, 0, 1, 2, 3 ]
    
    conjugate([[0, 1, 0, 1], [0, -0.5, 0, -0.25]])
    [
      Float64Array [ 0, 1, 0, 1, 0, 1, 0, 1 ],
      Float64Array [ 0, -0.5, 0, -0.25, 0, 0.25, 0, 0.5 ]
    ]
    example
    // generate single-period sine (window size = 16)
    ifft(conjugate([0, -8, 0, 0, 0, 0, 0, 0]))[0]
    // [
    //   0, 0.383, 0.707, 0.924,
    //   1, 0.924, 0.707, 0.383,
    //   0, -0.384, -0.707, -0.924,
    //   -1, -0.924, -0.707, -0.383
    // ]

    Parameters

    • src: NumericArray
    • Optional isImg: undefined | false | true

    Returns NumericArray

  • Parameters

    Returns ComplexArray

Const copyComplex

Const denormalizeFFT

Const fft

Const fftFreq

  • fftFreq(n: number, fs: number, m?: number): Float64Array
  • Returns array of bin center frequencies for given FFT window size and sample rate. By default only the first N/2+1 values are returned (m and including 0Hz).

    Parameters

    • n: number

      window size

    • fs: number

      sample rate

    • Default value m: number = n / 2

      number of result values

    Returns Float64Array

Const freqBin

  • freqBin(f: number, fs: number, n: number): number
  • Returns FFT bin index for given frequency, sample rate and window size. See binFreq for reverse op.

    Parameters

    • f: number

      frequency

    • fs: number

      sample rate

    • n: number

      window size

    Returns number

Const ifft

Const normalizeFFT

  • Normalizes the complex FFT array by scaling each complex bin value with given scale factor (or, if given as array, the scale factor derived from these window function samples).

    remarks

    By default assumes a rectangular window and the resulting scale factor of 2 / N.

    References:

    Parameters

    • complex: ComplexArray
    • Default value window: number | NumericArray = 2 / complex[0].length

    Returns ComplexArray

Const scaleFFT

Const spectrumMag

  • spectrumMag(complex: ComplexArray, n?: number, out?: NumericArray): NumericArray
  • Computes magnitude spectrum for given FFT: y(i) = abs(c(i)). By default only the first N/2 values are returned.

    Parameters

    • complex: ComplexArray

      FFT result

    • Default value n: number = complex[0].length / 2

      bin count

    • Default value out: NumericArray = []

      result array

    Returns NumericArray

Const spectrumPhase

  • spectrumPhase(complex: ComplexArray, n?: number, out?: NumericArray): NumericArray
  • Computes phase spectrum for given FFT and writes results to out. By default only the first N/2 values are returned.

    remarks

    Consider applying thresholdFFT prior to computing the phase spectrum to avoid exploding floating point error magnitudes.

    Parameters

    • complex: ComplexArray

      FFT result

    • Default value n: number = complex[0].length / 2

      bin count

    • Default value out: NumericArray = []

      result array

    Returns NumericArray

Const spectrumPow

  • spectrumPow(complex: ComplexArray, db?: boolean, window?: number | NumericArray, n?: number, out?: NumericArray): NumericArray
  • Computes power spectrum (optionally as dBFS) for the given FFT result arrays (length = N) and optional window. Writes result to out or a new array.

    remarks

    If window is given (scale factor or array), it will be used as (if number) or to compute the scaling factor (if array) for each FFT bin's value. The default (window=1) is the equivalent to a rectangular window (i.e. a no-op). If windowing was used to compute the FFT, the same should be provided to this function for correct results.

    IMPORTANT: If the FFT result has already been normalized using normalizeFFT, the scaling factor (window arg) MUST be set 1.0.

    By default only the first N/2 values are returned. If db is true, the spectrum values are converted to dBFS.

    Parameters

    • complex: ComplexArray
    • Default value db: boolean = false
    • Default value window: number | NumericArray = 2 / complex[0].length
    • Default value n: number = complex[0].length / 2
    • Default value out: NumericArray = []

    Returns NumericArray

Const swapR

  • swapR(real: NumericArray, n: number): void

Const swapRI

  • swapRI(real: NumericArray, img: NumericArray, n: number): void

Const thresholdFFT

Const transform

  • transform(real: NumericArray, img: NumericArray, n: number): void

Generated using TypeDoc