# upsample

Increase sample rate by integer factor

## Syntax

``y = upsample(x,n)``
``y = upsample(x,n,phase)``

## Description

example

````y = upsample(x,n)` increases the sample rate of `x` by inserting `n` – 1 zeros between samples. If `x` is a matrix, the function treats each column as a separate sequence.```
````y = upsample(x,n,phase)` specifies the number of samples by which to offset the upsampled sequence.```

## Examples

collapse all

Increase the sample rate of a sequence by a factor of 3.

```x = [1 2 3 4]; y = upsample(x,3)```
```y = 1×12 1 0 0 2 0 0 3 0 0 4 0 0 ```

Increase the sample rate of the sequence by a factor of 3 and add a phase offset of 2.

```x = [1 2 3 4]; y = upsample(x,3,2)```
```y = 1×12 0 0 1 0 0 2 0 0 3 0 0 4 ```

Increase the sample rate of a matrix by a factor of 3.

```x = [1 2; 3 4; 5 6]; y = upsample(x,3)```
```y = 9×2 1 2 0 0 0 0 3 4 0 0 0 0 5 6 0 0 0 0 ```

## Input Arguments

collapse all

Input array, specified as a vector or matrix. If `x` is a matrix, the function treats the columns as independent channels.

Example: `cos(pi/4*(0:159)) + randn(1,160)` specifies a sinusoid embedded in white Gaussian noise.

Example: `cos(pi./[4;2]*(0:159))' + randn(160,2)` specifies a two-channel noisy sinusoid.

Upsampling factor, specified as a positive integer.

Data Types: `single` | `double`

Offset, specified as a positive integer from 0 to `n` – 1.

Data Types: `single` | `double`

## Output Arguments

collapse all

Upsampled array, returned as a vector or matrix. `y` has `x` × `n` samples.