Hi folks from the cafe!!
Last weekend, I was wondering on how hard it would be to use Haskell for mixed-signal processing.
Here is an example of an digital integrator:
summation=zipWith (+)
delay xs=(fromIntegral 0):xs
integrator xs=let ws=summation (integrator xs) xs in delay ws
The input and output are infinite streams. I have a few questions:
1) Is it possible to change it to use arrows? How would it look like?
2) How would one implement an continuous time version?
For 2) I would like to implement something like that digital integrator, so I could create filters based on integrator loops like this one:
x(t) ----(+)----> Integrator --|---> y(t)
^ |
|--------------------| Note that x(t) would be a function, and I would expect to create a function y, based on this flow!
Rafael Gustavo da Cunha Pereira Pinto