Portability | requires multi-parameter type classes |
---|---|
Stability | provisional |
Maintainer | synthesizer@henning-thielemann.de |
Safe Haskell | None |
All recursive filters with real coefficients can be decomposed into first order and second order filters with real coefficients. This follows from the Fundamental theorem of algebra.
- data Parameter a = Parameter {}
- data State a = State {}
- zeroState :: C a => State a
- storeParameter :: Storable a => Dictionary (Parameter a)
- storeState :: Storable a => Dictionary (State a)
- adjustPassband :: C a => Passband -> (a -> Parameter a) -> a -> Parameter a
- amplify :: C a => a -> Parameter a -> Parameter a
- step :: (C a, C a v) => Parameter a -> v -> State (State v) v
- modifierInit :: (C a, C a v) => Initialized (State v) (State v) (Parameter a) v v
- modifier :: (C a, C a v) => Simple (State v) (Parameter a) v v
- causal :: (C a, C a v) => T (Parameter a, v) v
- runInit :: (C a, C a v) => State v -> T (Parameter a) -> T v -> T v
- run :: (C a, C a v) => T (Parameter a) -> T v -> T v
Documentation
Parameters for a general recursive filter of 2nd order.
storeParameter :: Storable a => Dictionary (Parameter a)Source
storeState :: Storable a => Dictionary (State a)Source
adjustPassband :: C a => Passband -> (a -> Parameter a) -> a -> Parameter aSource
Given a function which computes the filter parameters of a lowpass filter for a given frequency, turn that into a function which generates highpass parameters, if requested filter type is Highpass.
amplify :: C a => a -> Parameter a -> Parameter aSource
Change filter parameter such that result is amplified by a given factor.
modifierInit :: (C a, C a v) => Initialized (State v) (State v) (Parameter a) v vSource