Skip to content

neurodevs/node-signal-processing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

86 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

npm version

node-signal-processing

Object-oriented algorithms for digital signal processing.

Table of Contents

Overview

This package contains object-oriented algorithms for digital signal processing.

Installation

Install the package with your preferred package manager, such as:

npm install @neurodevs/node-signal-processing

or:

yarn add @neurodevs/node-signal-processing

Usage

Fft

import { Fft } from '@neurodevs/node-signal-processing'

const signal = [1, 2, 3, 4]
const fft = Fft.Create({ radix: signal.length })
const frequencies = fft.forward(signal)
const original = fft.inverse(frequencies)

FirBandpassFilter

import { FirBandpassFilter } from '@neurodevs/node-signal-processing'

const rawPpgSignal: number[] = [...]

const filter = FirBandpassFilter.Create({
    sampleRate: 64,       // PPG sample rate
    lowCutoffHz: 0.4,     // Filter under 24 bpm heart rate
    highCutoffHz: 4.0,    // Filter over 240 bpm heart rate
    numTaps: 4 * 64 + 1,  // Heuristic: 4 * sampleRate + 1
    attenuation: 50       // Frequencies outside bandpass reduced by 50 dB
})

const filteredPpgSignal = filter.run(rawPpgSignal)

HilbertPeakDetector

import { HilbertPeakDetector } from '@neurodevs/node-signal-processing'

const detector = HilbertPeakDetector.Create()
const filteredPpgSignal: number[] = [...]  // See FirBandpassFilter example
const timestamps: number[] = [...]         // Must be same length as filteredPpgSignal
const results = detector.run(filteredPpgSignal, timestamps)

HilbertTransformer

import { HilbertTransformer } from '@neurodevs/node-signal-processing'

const transformer = HilbertTransformer.Create()
const signal = [1, 2, 3, 4]
const { analyticSignal, envelope } = transformer.run(signal)

About

Digital signal processing algorithms on Node

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published