SDR for numeric time series

Hello All,
I am looking for SDR convertor or any suggestions for SDR that take continues numeric time tag of process, and return sparse representing.
The time tag charcters :
1.Numeric time tag (float representation)
2.The signal is sampling in rate of 50hz it’s mean the time tag increase by 0.02 ms every time tag.
3. The process time is between 0 to ~500 seconds, this define the cycle of each process


There are datetime encoders in all of the major HTM implementations that you should be able to use.

I’m not sure what you mean about points 2 and 3, are they changing values that are in the data stream? Or fixed?

Do you have a sample of the data?

1 Like

Have you considered using a standard ScalarEncoder or RDSE? It doesn’t seem like you need the special features of a datetime encoder here.

1 Like

Hii Jimmy and Jonathan,
I think the datetime encoder is not fitting to this task.
For example , I sampling my Voltage level during activate a process ,
The process duration is about 500 sec , and I am sampling the voltage every 0.02 ms.
time tag(sec) Volt[V]
0 26.5
0.02 26.4
0.04 25.9
0.06 27.4

499.02 27.3

So I am looking for encoder that take into account the process time dimension.

1 Like


A timestamp captured like that wouldn’t provide any information useful for prediction. The reason the date/time stamps are encoded and used in examples like HotGym is because the time of day (morning vs evening) or day of week (weekday vs weekend) has predictive value for the result.

If you think there’s likely to be some correlation between these date/time factors and the voltage, then you’ll need to capture the full timestamp (or at least the capture start time so that you can calculate it on the fly).

1 Like

Have you looked at the distribution for the Volt field? To start with you could do a simple histogram to get a sense for reasonable min and max values, and then try a basic Scalar Encoder.

Hii Jimmy and all ,
I will give more details about my challenge,
My father have a system that produced mechanical proudcts (like 3d printer), and I want to recognize if we have any problem during the production without human in the middle.
I have metry from that machine that I sampling in 50hz, I sampling diffrent parameters like Voltage, Current,PSI, etc’ for produce one element it’s take about 500 sec, the production process is identical for all the items, but the parameters values are changing and not must to be absolutly identical , I have data I collect from previous production.
The parameters values are depending in the time that occurred in the process , I will give some examples:

  1. PSI of 60 is nominal between 60-67 seconds in the production but abnormal in the end of the process.
  2. PSI of 120 is allowed only if the voltage is up to 28v and the y position of the lever is high than 1.2m and this allowed only between 100 to 110 seconds from the beginning of the process.
    So, I see a strong connection between the timetag and the parameters values (if you don’t think so , I will Happy to know why).
1 Like

Please correct me if I am wrong. You have access to lots of metric data at 50hz that indicates health of production system. The system produces a product every 500s. You want to an indication that something is strange about the creation of a produce so you can stop the process and investigate. Correct?

1 Like

If this is the case, this is good news, because you have a built in time period of 500s. You can encode this as part of the input to indicate how far through the build process. The data at that time will then be associated with that period of the build.

I would like to see some plots of some of this data were we can see the periods of products, or at least a chart of one period alone.

1 Like


You are correct on your assumptions, We can see that as built in period of ~500sec, I also think there a strong connection between the time stamp and the parameters values.
How you recommended to encode the timetag? any recommendation on specific SDR? , I think we need to chosse SDR with strong relationship to time order
The computer with the metry is air gap computer , it’s will take a little time to move the data, soon I will create some plots and upload to in forum.

1 Like

Why do you think this? I doubt this is true, but maybe you have a good reason to think this? Please plot the data over time as one of your charts. :slight_smile:

Have you tried to fit regression models between voltage and timestamp? When doing this sort of thing, always try a simple model first, you could infer an anomaly if the observed voltage differs significantly from your model.

Keep in mind that HTM is very good at sequences over time where historical values impact the next value, for your case it may just be a simple X/Y model.

Posting some scatter plots would be very useful here.


Sorry for the late response , it’s take some time to deliver the data .
I attached a plot of 10 products . The production process take ~100 seconds .
The plots contains 4 different signals that was sampling during the process (I sampling 50 different signals in each production process) .


I don’t think you’d need HTM for this, it looks like your values are pretty well clamped in discrete 5 second blocks on all your fields (is this the case for all 50 fields?). It should be easy to make a scheme that alerts for an anomaly when any field has an outlier. Keep a rolling history of the last 7.5 seconds, if there is more than 1 significant change (or non-sustained change beyond the min max before/after) then you have an anomaly.

Other signal are more arbitrary, and changing depending in the internal system mode.
In addition the correction of the process it’s not depending only in one signal , but in correlation of two or more parameters for example , PSI high then 110 is allowed only if the lever is high than 1.4m and the voltage is high than 26v.
In addition this is only one type of product.
So creating scheme or roll base anomaly detector is little problematic.
I will mention my original question, how you recommended to representing the time in my case?

If you are going to use NuPIC for this, I think you should not encode actual time, but encode position within the period. For example, if the product construction takes 500s, encode a scalar value from 1 to 500 along with all data. This will give NuPIC an indication of how far along in the construction period it is, and it could help correlate data to the period.

Also, it seems like the values jump a lot between periods, so you might want to encode a delta between the starting points of the value in the period. We have a delta encoder in NuPIC you might use for this.