| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Feldspar.Processing.Filters
- 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
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 |
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
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
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.