# xcorr

Cross correlation, computed over a range of lags.

## Syntax

Rxy = xcorr(x)

Rxy = xcorr(x,y)

Rxy = xcorr(...,maxlag)

Rxy = xcorr(...,maxlag,scale)

[Rxy,lags] = xcorr(...)

## Inputs

`x`- As a vector,
`x`is the first or only signal. `y`- The second signal, for cross-correlation.
`maxlag`- The maximum correlation lag. Use [] or omit to default to N-1, where N is the number of
rows in a matrix
`x`, or the greater length of vectors`x`and`y`. Each vector of correlations has length 2*maxlag+1. `scale`- The normalization type.

## Outputs

- Rxy
- The cross correlations.
- lags
- The lag for each correlation.

## Examples

Vector example:

```
x = [2,3,4,5,6];
y = [4,6,7,8];
Rxy = xcorr(x,y)
```

```
Rxy = [Matrix] 1 x 8
0.00000 16.00000 38.00000 65.00000 94.00000 119.00000 88.00000 56.00000 24.00000
```

Matrix
example:

```
z = [1,2;3,4;5,6;7,8];
Rxy = xcorr(z)
```

```
Rxy = [Matrix] 7 x 4
7.00000 8.00000 14.00000 16.00000
26.00000 30.00000 38.00000 44.00000
53.00000 62.00000 68.00000 80.00000
84.00000 100.00000 100.00000 120.00000
53.00000 68.00000 62.00000 80.00000
26.00000 38.00000 30.00000 44.00000
7.00000 14.00000 8.00000 16.00000
```

## Comments

When `x` is a vector and `y` is omitted, the
auto-correlation of `x` is computed.

When `x` is a matrix with N columns, `y` must be omitted
and Rxy is a matrix with N^2 columns. The correlation of columns i and j of
`x` is stored in column (i-1)*N + j of `Rxy`.

For the cross-correlation, corr(x,y,...), if the lengths of the vectors are unequal, the shorter vector will be padded, producing additional zeros in the output.