Hello all,
I've been mulling over a new package for some time now. I'd really like to simplify the handling of time with respect to DSP and a few other packages. A lot of what I do involves futzing with time: interpolating, filtering, partitioning (breaking things into arrays of parts), and windowing (getting small subsets about some event). I've always felt that many of these steps could be greatly simplified with a basic type that handles the time nicely for you.
The stats folk have DataFrames, but I think there's something to be gained from an explicit time vector:
- By using a float-range, we have a very definitive source for the sampling rate. No more diff(time[1:2]) or mean(diff(time))
- We can ensure that the time vector is always monotonically increasing in the constructor
- Often my channels are just numbered; it'd be nice to simply refer to them as numbers (and not, e.g., `c1`, `c2`, etc).
- But it is a great package with good support. Are folks here using DataFrames for this kind of analysis? I'd be interested in hearing your workflows and experiences.
The Quant guys have TimeSeries and TimeData, where their time is in calendar days. We're looking at things several orders of magnitude faster.
A Signal is vector (<: AbstractVector) of channels. Iteration is done across channels (not along data within the channels), and skipping the time vector. All channels must have the same length as the time vector. It's still very basic, but I have the core vector together, with interpolation (using Grid.jl) and some time windowing functionality.
My signals are all biosignals, so that's where my example on the readme comes from, but I think this is something that other fields could use, too. Are folks interested in this functionality? Swing by and check out the open issues on things I'm currently pondering. It'd be great to have some other use cases to help flush out the functionality and API.
I just wanted to alert anyone who may be interested in getting involved to its existence. If there's demand, I'd very happily transfer it over to the JuliaDSP org.
Best regards,
Matt