Modelling Asynchronous Streams in Haskell

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.

[1]  Paul H. J. Kelly Functional programming for loosely-coupled multiprocessors , 1989, Research monographs in parallel and distributed computing.

[2]  David Turner An approach to functional operating systems , 1990 .

[3]  Richard S. Bird,et al.  Introduction to functional programming , 1988, Prentice Hall International series in computer science.

[4]  Paul Hudak,et al.  Compilation of Haskell array comprehensions for scientific computing , 1990, PLDI '90.

[5]  Simon L. Peyton Jones,et al.  The Implementation of Functional Programming Languages , 1987 .

[6]  E.A. Lee,et al.  Synchronous data flow , 1987, Proceedings of the IEEE.

[7]  Andrew M. Wallace,et al.  Dynamic control and prototyping of parallel algorithms for intermediate- and high-level vision , 1992, Computer.

[8]  Edward A. Lee,et al.  Gabriel: a design environment for DSP , 1989, IEEE Trans. Acoust. Speech Signal Process..