Safe Haskell | None |
---|---|
Language | Haskell2010 |
- recurrenceI :: (Pushy m fvec a, Finite fvec, Seqy m ivec a, Syntax a, Syntax b, MonadComp m) => fvec -> ivec -> (Pull a -> b) -> Seq m b
- recurrenceIO :: (Pushy m fvec a, Finite fvec, Seqy m ivec a, Pushy m bvec b, Finite bvec, Syntax a, Syntax b, MonadComp m) => fvec -> ivec -> bvec -> (Pull a -> Pull b -> b) -> Seq m b
- fir :: (Pully fvec a, Seqy m ivec a, Syntax a, Num a, MonadComp m) => fvec -> ivec -> Seq m a
- iir :: (Pully bvec a, Pully fvec a, Seqy m ivec a, Syntax a, Fractional a, MonadComp m) => a -> bvec -> fvec -> ivec -> Seq m a
- firPull :: (Pully vec1 a, Pully vec2 a, Syntax a, Num a) => vec1 -> vec2 -> Pull a
Documentation
:: (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 |
:: (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
:: (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
:: (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.