Modelling Asynchronous Streams in Haskell

H. John Reekie (johnr@eecs.berkeley.edu)

Research Report 94.3,
Key Centre for Advanced Computing Sciences,
University of Technology, Sydney,
PO Box 123,
Broadway NSW 2007,
Australia,
May 1994


Note: A more recent version of this work is contained in Chapter 6 of my thesis. I'm in the process of generating a stand-alone report; email me if interested.


Abstract

This paper explores the use of Haskell to model discrete-time signals, or streams, with an emphasis on application to signal processing. Because of the deterministic nature of functional programs, asynchronous streams must be modelled by explicitly including time. Two types of asynchronous stream are examined: hiatonic streams, and time-stamped streams. A number of utility functions for manipulating asynchronous streams are presented, and their use demonstrated with examples.