# interp1: Interpolation In signal: Signal Processing

## Description

Interpolation methods, including linear, spline, and cubic interpolation.

## Usage

 ```1 2``` ```interp1(x, y, xi, method = c("linear", "nearest", "pchip", "cubic", "spline"), extrap = NA, ...) ```

## Arguments

 `x,y` vectors giving the coordinates of the points to be interpolated. `x` is assumed to be strictly monotonic. `xi` points at which to interpolate. `method` one of `"linear"`, `"nearest"`, `"pchip"`, `"cubic"`, `"spline"`. `extrap` if `TRUE` or `'extrap'`, then extrapolate values beyond the endpoints. If `extrap` is a number, replace values beyond the endpoints with that number (defaults to `NA`). `...` for `method='spline'`, additional arguments passed to `splinefun`.

## Details

The following methods of interpolation are available:

`'nearest'`: return nearest neighbour

`'linear'`: linear interpolation from nearest neighbours

`'pchip'`: piecewise cubic hermite interpolating polynomial

`'cubic'`: cubic interpolation from four nearest neighbours

`'spline'`: cubic spline interpolationâ€“smooth first and second derivatives throughout the curve

## Value

The interpolated signal, an array of `length(xi)`.

## Author(s)

Original Octave version by Paul Kienzle pkienzle@user.sf.net. Conversion to R by Tom Short.

## References

Octave Forge https://octave.sourceforge.io/

`approx`, `filter`, `resample`, `interp`, `spline`

## Examples

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18``` ```xf <- seq(0, 11, length=500) yf <- sin(2*pi*xf/5) #xp <- c(0:1,3:10) #yp <- sin(2*pi*xp/5) xp <- c(0:10) yp <- sin(2*pi*xp/5) extrap <- TRUE lin <- interp1(xp, yp, xf, 'linear', extrap = extrap) spl <- interp1(xp, yp, xf, 'spline', extrap = extrap) pch <- interp1(xp, yp, xf, 'pchip', extrap = extrap) cub <- interp1(xp, yp, xf, 'cubic', extrap = extrap) near <- interp1(xp, yp, xf, 'nearest', extrap = extrap) plot(xp, yp, xlim = c(0, 11)) lines(xf, lin, col = "red") lines(xf, spl, col = "green") lines(xf, pch, col = "orange") lines(xf, cub, col = "blue") lines(xf, near, col = "purple") ```

### Example output

```Attaching package: 'signal'

The following objects are masked from 'package:stats':

filter, poly
```

signal documentation built on May 25, 2021, 9:06 a.m.