G
glen herrmannsfeldt
Guest
In comp.arch.fpga robert bristow-johnson <rbj@audioimagination.com> wrote:
Fit N-1 cubic sections to N points, you need 4N-4 parameters.
Going through the points at either end, is 2N-2. Continuous
first and second derivative at the N-2 splice points, 2N-4 more.
That leaves two more, which are the boundary conditions at the
end points.
(snip)
That might be the more obvious, and easiest to implement, of the
non-uniform spaced interpolation methods.
Reminds me of some years ago, someone was building a sampling
system for a signal with a long exponential decaying tail.
(And when high-speed RAM was pretty expensive.)
The idea was to sample at full speed for 10 samples, then average
groups of 10 for the next 100 (or maybe 90), then average groups
of 100 for the next. Then exponentially longer and longer
blocks after that. They would do all the averaging in logic,
before storing into the not-too-big RAM.
I had some ideas how to build one, but they didn't ask.
-- glen
On 1/21/14 12:18 PM, Rob Gaddi wrote:
(snip)
Not sure I'm following you there, this could be a problem with my
understanding. When I hear people talking about spline fitting, to my
mind that's a series of piecewise polynomial approximations.
that's normally what i thought. however, when i look up the math for
"cubic splines" it doesn't seem to be exactly the same as fitting either
3rd-order Lagrange nor 3-order Hermite polynomials. i would have
expected it to come out as one or the other.
Fit N-1 cubic sections to N points, you need 4N-4 parameters.
Going through the points at either end, is 2N-2. Continuous
first and second derivative at the N-2 splice points, 2N-4 more.
That leaves two more, which are the boundary conditions at the
end points.
Piecewise linear being the degenerate case.
Is that a reasonable statement?
who are you calling "degenerate"?!
probably piecewise-constant is more degenerate. maybe zeros inserted
between points is even more degenerate. other than approximating the
whole thing with zero (or some other constant), i cannot think of a more
degenerate case.
(snip)
maybe direct lookup for the first 128 and some equally-spaced polynomial
splines for the remaining 511 regions?
That might be the more obvious, and easiest to implement, of the
non-uniform spaced interpolation methods.
Reminds me of some years ago, someone was building a sampling
system for a signal with a long exponential decaying tail.
(And when high-speed RAM was pretty expensive.)
The idea was to sample at full speed for 10 samples, then average
groups of 10 for the next 100 (or maybe 90), then average groups
of 100 for the next. Then exponentially longer and longer
blocks after that. They would do all the averaging in logic,
before storing into the not-too-big RAM.
I had some ideas how to build one, but they didn't ask.
-- glen