主要内容

alignsignals

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

描述

例子

xa] = alignsignals(xy估计延迟时间D在两个输入信号之间x而且y,并返回已对齐的信号xa而且.该函数使用互相关估计延迟。

  • 如果y是延迟的x,然后D是正的x被延迟D样本。

  • 如果y是超前的吗x,然后D是负的y被延迟了-D样本。

输入信号不需要是彼此精确的延迟副本。然而,只有当信号之间有足够的相关性时,它们才能准确地对齐。有关估计协方差和相关性的更多信息,请参见[1]

例子

xa] = alignsignals(xy名称=值使用一个或多个名称-值参数指定选项,这些参数包括估计方法和截断输入信号的选项。例如,根据每个信号中最大峰值的位置来估计延迟方法“maxpeak”

例子

xaD] = alignsignals(___返回估计的延迟D.您可以使用前面的任何输入语法。

例子

全部折叠

创建两个信号,X而且YX是一样的吗Y,除了X前面有三个零,后面有一个零。对齐两个信号。

X = [0 0 0 1 2 3 0 0];Y = [1 2 3 0];[Xa,Ya] =对齐信号(X,Y)
Xa =1×80 0 0 1 2 3 0 0
你=1×70 0 0 1 2 3 0

创建两个信号,X而且YY是一样的吗X,除了Y被两个样本延迟。对齐两个信号。

X = [1 2 3];Y = [0 0 1 2 3];[Xa,Ya,D] =对齐信号(X,Y)
Xa =1×50 0 1 2 3
你=1×50 0 1 2 3
D = 2

使用最大窗口大小1对齐信号。

Maxlag = 1;[Xa,Ya,D] =校准信号(X,Y,方法=“xcorr”, MaxLag = MaxLag)
Xa =1×40 1 2 3
你=1×50 0 1 2 3
D = 1

产生两个表示双层波形的信号。信号以50赫兹采样20秒。对于第一个信号,跃迁发生在测量开始后13秒。对于第二个信号,在测量开始后5秒发生跃迁。信号具有不同的振幅,并嵌入在不同方差的高斯白噪声中。把信号画出来。

T = linspace(0,20,1001)';E1 = 1.4*tanh(t-13)+randn(size(t))/3;E2 = tanh(3*(t-5))+randn(size(t))/5;情节(t t e1, e2)包含(“秒”) ylabel (“振幅”

图中包含一个轴对象。axis对象包含2个line类型的对象。

对齐信号,使它们的转换时间重合。基于相关性的方法不能充分对齐这种类型的信号。

[y1,y2] = alignsignals(e1,e2);情节(y1)包含(“样本”) ylabel (“振幅”)举行情节(y2)

图中包含一个轴对象。axis对象包含2个line类型的对象。

对齐信号使用上升时间方法。

[y1,y2] = alignsignals(e1,e2,Method= .“上升时间”);情节(y1)包含(“样本”) ylabel (“振幅”)举行情节(y2)

图中包含一个轴对象。axis对象包含2个line类型的对象。

创建两个信号,X而且YY是一样的吗X,除了Y有两个前导0。对齐两个信号并将截断选项设置为真正的.的长度X

X = [1 2 3];Y = [0 0 1 2 3];[Xa,Ya,D] = alignsignals(X,Y,Truncate=true)
Xa =1×30 0 1
你=1×50 0 1 2 3
D = 2

的所有原始数据X时,函数发出警告。

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

输入参数

全部折叠

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

例子:[1 2 3]

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64
复数支持:金宝app是的

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

例子:[0 0 1 2 3]

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64
复数支持:金宝app是的

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

例子:alignsignals (X, Y)方法=“npeak PeakNum = 4)对齐X而且Y基于每个信号中第四个峰值的位置。

方法来估计信号之间的延迟,指定为“xcorr”“maxpeak”“npeak”,或“上升时间”.参数的基础上指定其他名称-值参数方法

  • “xcorr”-使用互相关估计延迟。如果你指定方法作为“xcorr”,也可以指定MaxLag

  • “maxpeak”-利用每个信号中峰值的位置估计延迟。如果你指定方法作为“maxpeak”,您可以选择指定MinPeakProminence而且MinPeakHeight

  • “npeak”的位置估计延迟n每个信号的峰值。如果你指定方法作为“npeak”,您可以选择指定PeakNumMinPeakProminence,MinPeakHeight

  • “上升时间”-利用每个信号中上升边的位置估计延迟。函数使用指定的值考虑找到上升的边。

例子:方法=“npeak PeakNum = 3

用于估计信号之间延迟的最大窗口大小,指定为整数标量。默认情况下,MaxLag等于max (lxly) 1,在那里lx的长度x而且ly的长度y.如果MaxLag为负时,函数使用绝对值。

这个论点只适用于方法设置为“xcorr”

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

用于对齐信号的峰值数,指定为正整数。此参数仅在指定时适用方法作为“npeak”

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

用于识别信号中的峰值的最小峰值突出度,指定为一个真实的非负标量。当你指定MinPeakProminence,该函数找到那些相对重要性至少为指定值的峰值。有关更多信息,请参见findpeaks而且突出

此参数仅在指定时适用方法作为“npeak”“maxpeak”

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

用于识别信号中峰值的最小峰值高度,指定为实标量。当你指定MinPeakHeight时,函数查找高度大于指定值的峰值。有关更多信息,请参见findpeaks

此参数仅在指定时适用方法作为“npeak”“maxpeak”

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

状态级别,指定为实值两元素行向量。所述第一元件对应于所述输入信号的较低状态电平,所述第二元件对应于所述输入信号的较高状态电平。如果您没有指定考虑,该函数通过直方图方法估计输入波形的状态级别。有关更多信息,请参见上升时间

此参数仅在指定时适用方法作为“上升时间”

例子:方法= "上升时间",考虑= (0.5 - 2)

数据类型:

截断输入信号的选项,以数字或逻辑形式指定1真正的)或0).当你指定截断作为真正的的长度。xa而且等于的长度x而且y,分别。

  • 如果估计的延迟D是正的,函数前置D0,x然后截断最后一个D的样本x

  • 如果D是负的,函数加-D0,y然后截断最后一个D的样本y

  • 如果Dlx,然后xalx0和所有的样本x是输了。如果- - - - - -D是≥ly,然后ly0和所有的样本y是输了。

输出参数

全部折叠

对齐的第一个信号,作为与第二个输出参数对齐的数值向量返回

  • If输入参数x是行向量吗xa也是行向量。

  • If输入参数x那么它是列向量吗xa也是一个列向量。

如果您指定截断作为真正的以及估计的延迟D是正的xa等于输入信号吗xD它和它的最后一个前面都是0D样品截断。

对齐的第二个信号,作为与第一个输出参数对齐的数值向量返回Xa

  • If输入参数y是行向量吗也是行向量。

  • If输入参数y那么它是列向量吗也是一个列向量。

如果您指定截断作为真正的以及估计的延迟D是负的等于输入信号吗y与- - - - - -D在它前面加上0和最后一个-D样品截断。

输入信号之间的估计延迟,以整数形式返回。这个整数表示两个输入信号的采样数x而且y抵消。

  • 如果y是延迟的x,然后D是正的x被延迟D样本。

  • 如果y是超前的吗x,然后D是负的y被延迟了-D样本。

  • 如果x而且y已经对齐了,是吗D都是零x也不y被推迟。

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

参考文献

[1]奥法尼迪斯,索福克勒斯J。“最佳信号处理”。介绍.恩格尔伍德悬崖,新泽西州:Prentice-Hall, 1996。

扩展功能

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

版本历史

在R2019a中引入

全部展开