主要内容

alignsignals

通过延迟最早的信号对齐两个信号

描述

例子

Xa,) = alignsignals (X,Y估计的延迟,D,两个输入信号之间,XY,并返回对齐的信号,Xa

  • 如果Y延迟是关于X,然后D是积极的,X是推迟了D样本。

  • 如果Y是先进的关于X,然后D是负的,Y被耽搁了D样本。

延迟XY可以通过前置零引入。

例子

Xa,) = alignsignals (X,Y,maxlag使用maxlag为求估计延迟的最大窗口大小,D,两个输入信号之间,XY.它返回对齐的信号,Xa

例子

Xa,) = alignsignals (X,Y,maxlag“截断”)保持对齐信号的长度,Xa,与输入信号相同,XY,分别。

  • 如果估计的延迟,D,则为正D后面加0X最后一个D的样本X截断。

  • 如果估计的延迟,D为负,则为-D后面加0Y最后——D的样本Y截断。

笔记

XY是行向量还是列向量的长度lXlY,分别。

  • 如果DlX,然后XalX0。所有的样品X是输了。

  • 如果- - - - - -DlY,然后lY0。所有的样品Y是输了。

以避免将特定值赋给maxlag当使用“截断”选项,设置maxlag[]

例子

Xa,,D) = alignsignals (___返回估计的延迟,D.该语法可以包含前面语法中使用的任何输入参数。

例子

全部折叠

使信号Y关于X通过延迟三个样本。

创建两个信号,XYX是完全一样的吗Y,除了X有三个前导零和一个后面的零。对齐两个信号。

X = [0 0 0 1 2 3 0 0];Y = [1 2 3 0];[Xa,丫]= alignsignals (X, Y)
Xa =1×80 0 0 1 2 3 0 0
你=1×70 0 0 1 2 3 3 0

使信号XY延迟是关于X由两个样本。

创建两个信号,XYY是完全一样的吗X,除了Y有两个前导零。对齐两个信号。

X = [1 2 3];Y = [0 0 1 2 3];maxlag = 2;[Xa丫D] = alignsignals (X, Y, maxlag)
Xa =1×53 .你的同事会泄密
你=1×53 .你的同事会泄密
D = 2

使信号Y关于X,尽管事实是Y是一个有噪声的信号。

创建两个信号,XYY是完全一样的吗X加上一些噪音。对齐两个信号。

X = [0 0 1 2 3 0];Y = [0.02 0.12 1.08 2.21 2.95 -0.09];(Xa,丫,D) = alignsignals (X, Y)
Xa =1×60 0 1 1 2 3 3 0
你=1×60.0200 0.1200 1.0800 2.2100 2.9500 -0.0900
D = 0

你不需要改变输入信号来产生输出信号。延迟D是零。

调用“截断”选项时调用alignsignals函数。

创建两个信号,XYY是完全一样的吗X,除了Y有两个前导零。对齐两个信号,应用“截断”指令。

X = [1 2 3];Y = [0 0 1 2 3];(Xa,丫,D) = alignsignals (X, Y, [],“截断”
Xa =1×30 0 1
你=1×53 .你的同事会泄密
D = 2

观察输出信号Xa长度是3,和输入信号的长度相同X

在使用的情况下“截断”选项最终截断的所有原始数据X,则发出警告。为了使alignsignals发出这样的警告,运行以下示例。

Y = [0 0 0 0 1 2 3];(Xa,丫,D) = alignsignals (X, Y, [],“截断”
警告:第一个输入X中的所有原始数据已经被截断,因为X的长度小于估计延迟D:为了避免截断该数据,不要使用'truncate'选项。
Xa =1×30 0 0
你=1×70 0 0 0 1 2 3
D = 4

使信号Y关于X,尽管事实是Y是周期性的重复X.返回可能的最小延迟。

创建两个信号,XYY的非零部分的两个副本X由0。对齐两个信号。

X = [0 1 2 3];Y = [1 2 3 0 0 0 1 2 3 0 0];(Xa,丫,D) = alignsignals (X, Y)
Xa =1×41 2 3
你=1×130 1 2 3 0 0 0 1 2 3 0 0
D = 1

输入参数

全部折叠

第一个输入信号,指定为长度的数字向量LX

例子:(1 2 3)

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64
复数的支持:万博1manbetx是的

第二个输入信号,指定为长度的数字向量LY

例子:[0 0 1 2 3]

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64
复数的支持:万博1manbetx是的

指定为整值标量的最大窗口大小或延迟。默认情况下,maxlag等于max(长度(X),长度(Y)) 1.如果maxlag是输入[],则为默认值。如果maxlag为负数时,则用其绝对值代替。如果maxlag不是整数值,或者是复数,,或,然后alignsignals返回一个错误。

例子:2

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

输出参数

全部折叠

对齐的第一个信号,作为与第二个输出参数对齐的数字向量返回,.如果输入参数X是行向量吗Xa也是一个行向量。如果输入参数X是列向量吗Xa也是一个列向量。如果指定“截断”选项和估计延迟D是积极的,那么Xa等于输入信号吗XD前面和后面都加了0D样品截断。

已对齐的第二个信号,作为与第一个输出参数对齐的数字向量返回,Xa.如果输入参数Y是行向量吗也是一个行向量。如果输入参数Y是列向量吗也是一个列向量。如果指定“截断”选项和估计延迟D是负的,那么等于输入信号吗Y与- - - - - -D前面加0,后面加-D样品截断。

输入信号之间的估计延迟,以标量整数返回。这个整数表示两个输入信号,XY抵消。

  • 如果Y延迟是关于X,然后D是积极的,X是推迟了D样本。

  • 如果Y是先进的关于X,然后D是负的,Y被耽搁了D样本。

  • 如果XY已经对齐了吗D都是零X也不Y被推迟。

如果您为输入参数指定一个值maxlag,然后D必须小于或等于maxlag

算法

  • 你可以在规范中找到延迟估计的理论finddelay函数(见算法).

  • alignsignals函数使用估计的延迟D延迟最早的信号,使两个信号具有相同的起点。

  • 指定的finddelay函数时,这对信号不必是彼此的精确延迟副本。然而,信号只有在它们之间有足够的相关性时才能成功地对齐。有关估计协方差和相关函数的更多信息,请参见[1]

  • 如果您的信号具有脉冲或转换等特征,您可以使用测量函数而不是相关来更有效地对齐它们。例如,请参见对齐两个两层波形

参考文献

索福克勒斯·奥法尼迪斯最优信号处理。介绍.第二版,恩格尔伍德悬崖,NJ: Prentice-Hall, 1996。

扩展功能

C / c++代码生成
使用MATLAB®Coder™生成C和c++代码。