Fitting piecewise splines to noisy data
It seems like you don't want to make any prior assumptions about the exact shape of the signal, other than assuming that it is ``smooth''. This is best attacked using a non-parametric function fitting/regression approach. Use either
a) spline fitting or b) kernel smoothing. 

Two reasons why this is a good idea:


These methods are optimal in the sense that no other non-parametric filtering technique (moving average, etc.) can give you a better worst case error decay rate. This answers your main question: there is no better method if you care about minimax error.
Spline fitting and kernel regression codes are very easily available. 


A quick Google search gives me the following:
In Octave interp1 has a 'cubic' option:
http://www.gnu.org/software/octave/doc/interpreter/One_002ddimensional-Interpolation.html

Open source code for kernel smoothing:
http://code.google.com/p/pmtk3/source/browse/trunk/matlabTools/stats/kernelSmoothingRegression.m?r=2645&amp;spec=svn2776