Align two signals by delaying earliest signal

`[`

estimates
the delay, `Xa`

,`Ya`

]
= alignsignals(`X`

,`Y`

)*D*, between the two input signals, `X`

and `Y`

,
and returns the aligned signals, `Xa`

and `Ya`

.

If

`Y`

is delayed with respect to`X`

, then*D*is positive and`X`

is delayed by*D*samples.If

`Y`

is advanced with respect to`X`

, then*D*is negative and`Y`

is delayed by –*D*samples.

Delays in `X`

or `Y`

can
be introduced by prepending zeros.

`[`

keeps
the lengths of the aligned signals, `Xa`

,`Ya`

]
= alignsignals(`X`

,`Y`

,`maxlag`

,'truncate')`Xa`

and `Ya`

,
the same as those of the input signals, `X`

and `Y`

,
respectively.

If the estimated delay,

*D*, is positive, then*D*zeros are prepended to`X`

and the last*D*samples of`X`

are truncated.If the estimated delay,

*D*, is negative, then –*D*zeros are prepended to`Y`

and the last –*D*samples of`Y`

are truncated.

`X`

and `Y`

are row or
column vectors of length *L _{X}* and

If

*D*≥*L*, then_{X}`Xa`

consists of*L*zeros. All samples of_{X}`X`

are lost.If –

*D*≥*L*, then_{Y}`Ya`

consists of*L*zeros. All samples of_{Y}`Y`

are lost.

To avoid assigning a specific value to `maxlag`

when
using the `'truncate'`

option, set `maxlag`

to `[]`

.

You can find the theory on delay estimation in the specification of the

`finddelay`

function (see Algorithms).The

`alignsignals`

function uses the estimated delay*D*to delay the earliest signal such that the two signals have the same starting point.As specified for the

`finddelay`

function, the pair of signals need not be exact delayed copies of each other. However, the signals can be successfully aligned only if there is sufficient correlation between them.

For more information on estimating covariance and correlation functions, see [1].

[1] Orfanidis, Sophocles J. *Optimum
Signal Processing. An Introduction*. 2nd Ed. Englewood
Cliffs, NJ: Prentice-Hall, 1996.

`dtw`

| `edr`

| `finddelay`

| `findsignal`

| `xcorr`