raw-feldspar-0.2: Resource-Aware Feldspar

Safe HaskellNone
LanguageHaskell2010

Feldspar.Processing.Filters

Synopsis

Documentation

recurrenceI Source #

Arguments

:: (Pushy m fvec a, Finite fvec, Seqy m ivec a, Syntax a, Syntax b, MonadComp m) 
=> fvec

Initial input buffer

-> ivec

Input vector

-> (Pull a -> b)

Step function, producing one output from previous inputs

-> Seq m b

Output vector

recurrenceIO Source #

Arguments

:: (Pushy m fvec a, Finite fvec, Seqy m ivec a, Pushy m bvec b, Finite bvec, Syntax a, Syntax b, MonadComp m) 
=> fvec

Initial input buffer

-> ivec

Input vector

-> bvec

Initial output buffer

-> (Pull a -> Pull b -> b)

Step function, producing one output from previous inputs and outputs

-> Seq m b

Output vector

fir Source #

Arguments

:: (Pully fvec a, Seqy m ivec a, Syntax a, Num a, MonadComp m) 
=> fvec

Filter coefficients

-> ivec

Input vector

-> Seq m a

Output vector

FIR filter

iir Source #

Arguments

:: (Pully bvec a, Pully fvec a, Seqy m ivec a, Syntax a, Fractional a, MonadComp m) 
=> a

First feedback coefficient

-> bvec

Remaining feedback coefficients

-> fvec

Feedforward coefficients

-> ivec

Input vector

-> Seq m a

Output vector

IIR filter

firPull Source #

Arguments

:: (Pully vec1 a, Pully vec2 a, Syntax a, Num a) 
=> vec1

Filter coefficients

-> vec2

Input vector

-> Pull a

Output vector

FIR filter for Pull vectors

This version avoids creating a queue for previous inputs (since they are all available anyway).

Note that each input element is referred many times, so the input should normally be a Manifest. In particular, this means that it is usually not a good idea to compose firPull without writing to memory in between.