Cross-correlation of two signals: cross_correlation

### 15.2.6 Cross-correlation of two signals: cross_correlation

The cross correlation of two complex vectors v=[v1,…,vn] and w=[w1,…,wm] is the complex vector z=v⋆ w of length n+m−1 given by

zk= |
N−1
∑
i=k
vi−k∗
| wi∗, k=0,1,…,N−1,

where

v∗=[v0,v1,…,vn−1, |
0,0,…,0
◥ |  | ▼ |  | ◤
m−1
| ] and w∗=[ |
0,0,…,0
◥ |  | ▼ |  | ◤
n−1
| ,w0,w1,…,wm−1].

Cross-correlation is typically used for measuring similarity between signals.

The cross_correlation command computes the cross correlation of two vectors.

- cross_correlation takes two arguments:
  v,w, two vectors (not necessarily the same length).
- cross_correlation(v,w) returns the cross correlation v⋆ w.

#### Examples

- Input:
  cross_correlation([1,2],[3,4,5])
  Output:

  ⎡ ⎣ | 6.0,11.0,14.0,5.0 | ⎤ ⎦

- Input:

  v:=[2,1,3,2]:; w:=[1,-1,1,2,2,1,3,2,1]:;
  round(cross_correlation(v,w))

  Output:

  ⎡ ⎣ | 2,1,0,8,9,12,15,18,13,11,5,2 | ⎤ ⎦

  Observe that the cross-correlation of v and w is peaking at position 8 with the value 18, indicating that the two signals are best correlated when the last sample in v is aligned with the eighth sample in w. Indeed, there is an occurrence of v in w precisely at that point.