thanks for the suggestions, here's the solution I came up with. gr, Tim
2012/5/22 Claude Heiland-Allen <cla...@goto10.org> > On 22/05/12 02:13, tim vets wrote: > >> I have lists of floats from measurements which vary in length >> (they grow with the duration of the measurements) >> What would be a good way to map those to a list of, say, 150 items? >> In concreto: >> -When variable list A has 15 elements and fixed list B is 150 long, >> I can simply repeat each value of A 10 times to get a 150 elements list. >> -When list A has 1500 elements, and B 150, I could take list A 10 elements >> at a time, >> and write the averages thereof to list B. >> but how do I generalize this for _any_ length of list A? >> > > look into resampling, eg libsamplerate[1] > > when #A > #B you want to low pass filter to antialias when downsampling > when #A < #B you want to interpolate to antialias when upsampling > > > and how do I patch this up in pd? :) >> > > very temperamental/buggy version attached, especially the filtering is a > bit rubbish in this one - it just uses a couple of simple causal lop[2] > instead of doing it properly > > for upsampling, tabread4 does one kind of interpolation (but you might > want to use a different interpolation function, refer to the list archives > about tabread4c etc) > > for downsampling, you might want an acausal filter (like an image blur > that works in all directions without shifting the image sideways) - most > audio filters are causal (one direction only - the direction in this case > is time, and the future can't influence the past, so there's some delay) > > you might want to store statistics too, depending on the type of data (eg: > in an audio scope like audacity you can see long-scale peaks/troughs even > though the average antialiased visible signal would be a line at 0 assuming > no DC offset) - you might pick up some ideas from the description of > zoom-cache[3] > > [1] http://www.mega-nerd.com/SRC/ > [2] http://en.wikipedia.org/wiki/**Low_pass_filter#Discrete-time_** > realization<http://en.wikipedia.org/wiki/Low_pass_filter#Discrete-time_realization> > [3] > http://hackage.haskell.org/**package/zoom-cache<http://hackage.haskell.org/package/zoom-cache> > > > Claude >
list-resample.pd
Description: Binary data
list-resample-help.pd
Description: Binary data
_______________________________________________ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list