You are here : matlab → Signal Processing → alignsignals
# alignsignals() - Signal Processing

### Syntax

### Example

### Output / Return Value

### Limitations

### Alternatives / See Also

### Reference

[Xa,Ya] = alignsignals(X,Y) estimates the delay, 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.example[Xa,Ya] = alignsignals(X,Y,maxlag) uses maxlag as the maximum window size to find the estimated delay, D, between the two input signals, X and Y. It returns the aligned signals, Xa and Ya.example[Xa,Ya] = alignsignals(X,Y,maxlag,'truncate') keeps the lengths of the aligned signals, 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. Notes X and Y are row or column vectors of length LX and LY, respectively.If D ≥ LX, then Xa consists of LX zeros. All samples of X are lost. If –D ≥ LY, then Ya consists of LY zeros. All samples of Y are lost.To avoid assigning a specific value to maxlag when using the 'truncate' option, set maxlag to [].example[Xa,Ya,D] = alignsignals(___) returns the estimated delay, D. This syntax can include any of the input arguments used in previous syntaxes.

[Xa,Ya] = alignsignals(X,Y) example[Xa,Ya] = alignsignals(X,Y,maxlag) example[Xa,Ya] = alignsignals(X,Y,maxlag,'truncate') example[Xa,Ya,D] = alignsignals(___) example

Align Two Signals Where the First Signal Lags by Three SamplesOpen This Example Align signal Y with respect to X by advancing it three samples. Create two signals, X and Y. X is exactly the same as Y, except X has three leading zeros and one additional following zero. Align the two signals.X = [0 0 0 1 2 3 0 0]; Y = [1 2 3 0]; [Xa,Ya] = alignsignals(X,Y) Xa = 0 0 0 1 2 3 0 0 Ya = 0 0 0 1 2 3 0 Align Two Signals Where the Second Signal Lags by Two SamplesOpen This Example Align signal X when Y is delayed with respect to X by two samples. Create two signals, X and Y. Y is exactly the same as X, except Y has two leading zeros. Align the two signals.X = [1 2 3]; Y = [0 0 1 2 3]; maxlag = 2; [Xa,Ya,D] = alignsignals(X,Y,maxlag) Xa = 0 0 1 2 3 Ya = 0 0 1 2 3 D = 2 Align Two Signals Where the Second Signal Is NoisyOpen This Example Align signal Y with respect to X, despite the fact that Y is a noisy signal. Create two signals, X and Y. Y is exactly the same as X with some noise added to it. Align the two signals.X = [0 0 1 2 3 0]; Y = [0.02 0.12 1.08 2.21 2.95 -0.09]; [Xa,Ya,D] = alignsignals(X,Y) Xa = 0 0 1 2 3 0 Ya = 0.0200 0.1200 1.0800 2.2100 2.9500 -0.0900 D = 0 You do not need to change the input signals to produce the output signals. The delay D is zero.Align Two Signals Using the 'truncate' OptionOpen This Example Invoke the 'truncate' option when calling the alignsignals function. Create two signals, X and Y. Y is exactly the same as X, except Y has two leading zeros. Align the two signals, applying the 'truncate' directive.X = [1 2 3]; Y = [0 0 1 2 3]; [Xa,Ya,D] = alignsignals(X,Y,[],'truncate') Xa = 0 0 1 Ya = 0 0 1 2 3 D = 2 Observe that the output signal Xa has a length of 3, the same length as input signal X.In the case where using the 'truncate' option ends up truncating all the original data of X, a warning is issued. To make alignsignals issue such a warning, run the following example.Y = [0 0 0 0 1 2 3]; [Xa,Ya,D] = alignsignals(X,Y,[],'truncate') Warning: All original data in the first input X has been truncated because the length of X is smaller than the estimated delay D: to avoid truncating this data do not use the 'truncate' option. Xa = 0 0 0 Ya = 0 0 0 0 1 2 3 D = 4 Align a Signal and a Periodic Repetition of ItOpen This Example Align signal Y with respect to X, despite the fact that Y is a periodic repetition of X. Return the smallest possible delay. Create two signals, X and Y. Y consists of two copies of the nonzero portion of X separated by zeros. Align the two signals.X = [0 1 2 3]; Y = [1 2 3 0 0 0 0 1 2 3 0 0]; [Xa,Ya,D] = alignsignals(X,Y) Xa = 0 1 2 3 Ya = 0 1 2 3 0 0 0 0 1 2 3 0 0 D = -1