[SciPy-User] fast spline interpolation of multiple equal length waveforms
Fri Sep 23 08:54:48 CDT 2011
On 9/22/11 20:36 , email@example.com wrote:
> Date: Thu, 22 Sep 2011 21:59:59 -0400
> From: Hjalmar Turesson<firstname.lastname@example.org>
> Subject: [SciPy-User] fast spline interpolation of multiple equal
> length waveforms
> Content-Type: text/plain; charset="iso-8859-1"
> I got a data set with hundreds of thousands for 40 point long waveforms. I
> want to use cubic splines to interpolate these at intermediate time points.
> However, the points are different all waveforms, only the number of points
> is the same. In other words, I want to interpolate a large number of equally
> short waveforms, each to its own grid of x-values/time points, and I want to
> do this as FAST as possible.
> Are there any functions that can take a whole array for waveforms and a size
> matched array of new x-values, and interpolate each waveform at a matched
> row (or column) of x-values?
> What I've found, this far, appear to require a loop to one by one go through
> the waveforms and corresponding grid of x-values. I fear that a long loop
> will be significantly slower than a direct evaluation of the entire array.
For each data set (x,y), are the x-values the same and the y-values
different? If so, you may find this code useful:
It is not splines, but nonetheless provides good quality interpolation
and is very fast. For given x and x_interp, it can create an
interpolation matrix P. Then y_interp = P*y. If you have all your
y-data in Y, then Y_interp = P*Y.
More information about the SciPy-User