I have now put together a delta encoder that *I think* works as expected (or which at least seems reasonable in its context) and would appreciate some feedback and a bit of guidance before I move on to the next stage:

Setup:

n = 2048

sparsity = 0.01

w = 20

Range = 232 (min = 0, max = 232)

Buckets = 232 (i.e. buckets = range)

Q1: is this a reasonable encoding framework?

Q2: I’m still unsure how I use buckets or if the above is reasonable.

The data that I’m basing my encoder on has a mean of about 4.9 and a sd of 6.6. so it’s heavily skewed towards zero (differences are coerced to be only positive). A graph looks like this:

Bit ranges:

With how it’s set up at the moment, I’m getting the following SDR breakdown:

Bits 0-20 represent 0-10 (I’ve bounded it at the top and bottom values) and each successive value is represented by moving 1 bit further along - so 11 is represented by bits 1-21, 12 by bits 2-22 and so on.

Any guidance would be appreciated.