-----------------------------------------------------------------------------
-- |
-- Module      :  DSP.Source.Basic
-- Copyright   :  (c) Matthew Donadio 2003
-- License     :  GPL
--
-- Maintainer  :  m.p.donadio@ieee.org
-- Stability   :  experimental
-- Portability :  portable
--
-- Basic signals
--
-----------------------------------------------------------------------------

module DSP.Source.Basic where

-- | all zeros

zeros :: (Num a) => [a]
zeros :: forall a. Num a => [a]
zeros = forall a. a -> [a]
repeat a
0

-- | single impulse

impulse :: (Num a) => [a]
impulse :: forall a. Num a => [a]
impulse = a
1 forall a. a -> [a] -> [a]
: forall a. Num a => [a]
zeros

-- | unit step

step :: (Num a) => [a]
step :: forall a. Num a => [a]
step = forall a. a -> [a]
repeat a
1

-- | ramp

ramp :: (Num a) => [a]
ramp :: forall a. Num a => [a]
ramp = forall a. (a -> a) -> a -> [a]
iterate (a
1forall a. Num a => a -> a -> a
+) a
0