dsp-0.1: DSP/Flowgraph.hs
-----------------------------------------------------------------------------
-- |
-- Module : DSP.Flowgraph
-- Copyright : (c) Matthew Donadio 2003
-- License : GPL
--
-- Maintainer : m.p.donadio@ieee.org
-- Stability : experimental
-- Portability : portable
--
-- Flowgraph functions
--
-- DO NOT USE YET
--
-----------------------------------------------------------------------------
module DSP.Flowgraph where
-----------------------------------------------------------------------------
-- | Cascade of functions, eg
--
-- @cascade [ f1, f2, f3 ] x == (f3 . f2 . f1) x@
cascade :: Num a => [[a] -> [a]] -- ^ [f_n(x)]
-> [a] -- ^ x[n]
-> [a] -- ^ y[n]
cascade [] = id
cascade (f:fs) = cascade fs . f
-----------------------------------------------------------------------------
-- | Gain node
--
-- @y[n] = a * x[n]@
gain :: Num a => a -- ^ a
-> [a] -- ^ x[n]
-> [a] -- ^ y[n]
gain x = map (x*)
-----------------------------------------------------------------------------
-- | Bias node
--
-- @y[n] = x[n] + a@
bias :: Num a => a -- ^ a
-> [a] -- ^ x[n]
-> [a] -- ^ y[n]
bias x = map (x+)
-----------------------------------------------------------------------------
-- | Adder node
--
-- @z[n] = x[n] + y[n]@
adder :: Num a => [a] -- ^ x[n]
-> [a] -- ^ y[n]
-> [a] -- ^ z[n]
adder = zipWith (+)