/scalasignal

Signal Processing in Scala

Primary LanguageScalaGNU Lesser General Public License v2.1LGPL-2.1

ScalaSignal - Signal Processing Library for Scala

Introduction

ScalaSignal is a fledgling signal processing library for the Scala language, with the eventual aim of implementing much of the functionality found in other signal processing toolboxen.

ScalaSignal is released under the LGPL. See LICENSE for details. Copyright © Jonathan Merritt 2013.

Current Functionality

ScalaSignal currently implements the following:

  • bandwidth(pd, fract) - Signal bandwidth estimation

  • butterSOSEven(n, Wn) - SOS coefficients for even-order Butterworth filters

  • detrend(x) - Removes a linear trend from a signal

  • filter(b, a, x, si) - digital filtering with FIR or IIR filters

  • filtfilt(b, a, x) - forward-reverse zero phase lag digital filtering

  • fft(x) - Fast Fourier Transform

  • ifft(h) - Inverse Fast Fourier Transform

  • psd(x, fs) - Power spectral density estimation

  • sosfilt(sos, x) - second order section (SOS) / biquad filtering

  • Windowing functions:

    • hann(n, periodic) - Hann (Hanning / raised cosine) window

    • rectwin(n) - rectangular (identity) window

    • tukeywin(n, a) - Tukey (tapered cosine) window

Installation

Check out the project from GitHub (this command uses the Read-Only repository):

$ git clone git://github.com/lancelet/scalasignal.git

This will create a new directory called scalasignal. Next, use sbt/xsbt to compile the project:

$ cd scalasignal
$ sbt

sbt/xsbt will launch, and collect everything it needs for the project. Within sbt, you can then run:

> test

This will run the packaged unit tests for the project.