Copyright | (c) Henning Thielemann 2008 |
---|---|
License | GPL |
Maintainer | synthesizer@henning-thielemann.de |
Stability | provisional |
Portability | requires multi-parameter type classes |
Safe Haskell | None |
Language | Haskell2010 |
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 {}
- adjustPassband :: C a => Passband -> (a -> Parameter a) -> a -> Parameter a
- amplify :: C a => a -> Parameter a -> Parameter a
- causal :: (C a, C a v) => T (Parameter a, v) v
- modifier :: (C a, C a v) => Simple (State v) (Parameter a) v v
- modifierInit :: (C a, C a v) => Initialized (State v) (State v) (Parameter a) v v
- run :: (C a, C a v) => T (Parameter a) -> T v -> T v
- runInit :: (C a, C a v) => State v -> T (Parameter a) -> T v -> T v
- step :: (C a, C a v) => Parameter a -> v -> State (State v) v
- zeroState :: C a => State a
Documentation
Parameters for a general recursive filter of 2nd order.
adjustPassband :: C a => Passband -> (a -> Parameter a) -> a -> Parameter a Source #
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 a Source #
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 v Source #