You are here : matlabSignal Processingpchip

pchip() - Signal Processing

yi = pchip(x,y,xi) returns
vector yi containing elements corresponding to
the elements of xi and determined by piecewise
cubic interpolation within vectors x and y.
The vector x specifies the points at which the
data y is given, so x and y must
have the same length. If y is a matrix or array,
then the values in the last dimension, y(:,...,:,j),
are taken as the values to match with x. In that
case, the last dimension of y must be the same
length as x. If y has n dimensions,
then output yi is of size [size(y,1) size(y,2)
... size(y,n-1) length(xi)]. For example, if y is
a matrix, then yi is of size [size(y,1)
length(xi)].pp = pchip(x,y) returns
a piecewise polynomial structure for use by ppval. x can be a row or column vector. y is
a row or column vector of the same length as x,
or a matrix with length(x) columns. pchip finds values of an underlying interpolating
function P(x) at intermediate points, such
that: On each subinterval xk≤x≤xk+1, 
 is the cubic Hermite
interpolant to the given values and certain slopes at the two endpoints.P(x) interpolates y,
i.e., P(xj)=yj, and the first derivative dPdx is continuous. The second derivative d2Pdx2 is probably not continuous;
there may be jumps at the xj.The slopes at the xj are
chosen in such a way that 
 preserves the shape of the data and respects
monotonicity. This means that, on intervals where the data are monotonic,
so is 
; at points where the data has a local extremum,
so does 
.Note  


If y is a matrix, 
 satisfies the above
for each column of y.


Syntax

yi = pchip(x,y,xi)pp = pchip(x,y)


Example

Data Interpolation Using spline and pchipOpen This Example
x = -3:3;
y = [-1 -1 -1 0 1 1 1];
t = -3:.01:3;
p = pchip(x,y,t);
s = spline(x,y,t);
plot(x,y,'o',t,p,'-',t,s,'-.')
legend('data','pchip','spline','Location','SouthEast')


Output / Return Value


Limitations


Alternatives / See Also


Reference