主要内容

edr.

编辑实际信号上的距离

描述

例子

dist= EDR(Xy返回编辑实际信号上的距离序列之间Xyedr.返回必须从中删除的最小元素数Xy, 或两者Xy,使剩余信号元素之间的欧几里德距离之和在指定的公差范围内,

[distIX,IY] = EDR(Xy返回翘曲路径XIX.) 和yIY.)有最小的dist它们之间。什么时候Xy是矩阵,IX.IY.是这样的X(:,ix)y(:,IY)是微量分开的。

例子

[___] = EDR(Xymaxsamp.限制插入操作,以便翘曲路径仍然存在maxsamp.直线配合的样品Xy。此语法返回先前语法的任何输出参数。

[___] = EDR(___公制除了先前语法中的任何输入参数之外,还要指定要使用的距离度量标准。公制可以是其中一个'euclidean''绝对''squared', 要么'symmkl'

例子

EDR(___没有输出参数绘制原始和对齐信号。

  • 如果信号是真实向量,则该功能在第一函数下方显示子图上的两个原始信号和在第一函数下方的子图中。

  • 如果信号是复杂的向量,则该功能将在三维图中显示原始和对齐信号。

  • 如果信号是真实矩阵,则功能使用ImagesC.显示原始和对齐信号。

  • 如果信号是复杂的矩阵,则该函数在每个图像的顶部和下半部分地点绘制它们的实部和虚部。

例子

全部收缩

生成两个实际信号:啁啾和正弦曲线。向每个信号添加一个明显的外围部分。

X = COS(2 * PI *(3 *(1:1000)/ 1000)。^ 2);Y = COS(2 * PI * 9 *(1:399)/ 400);x(400:410)= 7;Y(100:115)= 7;

翘曲信号,使它们之间的编辑距离最小。指定0.1的公差。在翘曲之前和之后绘制对齐的信号,并输出它们之间的距离。

tol = 0.1;EDR(x,y,tol)

图包含2个轴。具有标题原始信号的轴1包含2个类型的线。具有标题对齐信号的轴2(编辑距离:617)包含2个类型的2个对象。

ans = 617.

将正弦频率更改为其初始值的两倍。重复计算。

Y = COS(2 * PI * 18 *(1:399)/ 400);Y(100:115)= 7;EDR(x,y,tol);

图包含2个轴。具有标题原始信号的轴1包含2个类型的线。带标题对齐信号的轴2(编辑距离:774)包含2个类型的类型。

向每个信号添加一个虚构的部件。恢复初始正弦频率。通过最小化平方欧几里德距离的总和来对齐信号。

x = exp(2i * pi *(3 *(1:1000)/ 1000)。^ 2);Y = EXP(2I * PI * 9 *(1:399)/ 400);x(400:405)= 5 + 3J;x(405:410)= 7;Y(100:107)= 3J;Y(108:115)= 7-3J;EDR(x,y,tol,'squared');

图包含2个轴。具有标题原始信号的轴1包含2个类型的线。具有标题对齐信号的轴2(编辑距离:617)包含2个类型的2个对象。

生成两个信号,由两个不同的峰,由不同长度的山谷分开。绘制信号。

x1 = [0 1 0 1 0] *。95;X2 = [0 1 0 0 0 0 0 0 0 0 1 0] *。95;子图(2,1,1)绘图(x1)xlim([012])子图(2,1,2)绘图(x2)xlim([012])

图包含2个轴。轴1包含类型线的对象。轴2包含类型线的对象。

计算信号之间的编辑距离。设置一个小容差,以便唯一的匹配在于相同的样本之间。

tol = 0.1;图EDR(x1,x2,tol);

图包含2个轴。具有标题原始信号的轴1包含2个类型的线。具有标题对齐信号的轴2(编辑距离:7)包含2个类型的2个对象。

信号之间的距离为7.为了对齐它们,有必要删除七个中央零X2或者添加七个零X1

计算D.矩阵,其右下元素对应于编辑距离。为了定义D., 看编辑实际信号上的距离

cnd =(abs(x1'-x2))> tol;d =零(长度(x1)+ 1,长度(x2)+1);d(1,2:结束)= 1:长度(x2);d(2:末端,1)= 1:长度(x1);为了H = 2:长度(x1)+1为了k = 2:长度(x2)+1d(h,k)= min([d(h-1,k)+1......d(h,k-1)+1......D(H-1,K-1)+ CND(H-1,K-1)]);结尾结尾D.
d =6×13.0 1 2 3 4 5 6 7 8 9 10 11 12 1 0 1 2 3 4 5 6 7 8 9 10 11 2 11 0 1 2 3 4 5 6 7 8 9 10 3 2 11 0 11 2 3 4 5 6 78 9 4 3 2 1 1 2 3 4 5 6 7 7 8 5 4 3 2 1 1 2 3 4 5 6 7 7

计算并显示对齐信号的翘曲路径。

[D,I1,I2] = EDR(x1,x2,tol);e =零(长度(x1),长度(x2));为了k = 1:长度(I1)e(i1(k),i2(k))= nan;结尾E.
E =5×12.NaN 0 0 0 0 0 0 0 0 0 0 0 0 NAN 0 0 0 0 0 0 0 0 0 0 NAN NaN NaN NaN NaN NaN Nan NaN 0 0 0 0 0 0 0 0 0 0 0 naN 0 0 00 0 0 0 0 0 0 0 0 NAN

重复计算,但现在限制翘曲路径以从对角线偏离大多数两个元素。绘制拉伸的信号和翘曲路径。在第二个绘图中,将矩阵列设置为沿着X-轴。

[DC,I1C,I2C] = EDR(x1,x2,tol,2);子图(2,1,1)图([x1(i1c); x2(i2c)]','.-') 标题(['距离: 'Num2STR(DC)])子图(2,1,2)绘图(I2C,I1C,'O-'[I2(1)I2(END)],[I1(1)I1(端)])轴IJ.标题('翘曲路径'

图包含2个轴。带标题距离的轴1:5包含2个类型的物体。带标题翘曲路径的轴2包含2个类型的2个对象。

约束导致较小的编辑距离,但扭曲信号。如果无法满足约束,那么edr.回报对于距离。通过强制翘曲路径来偏离对角线的大多数元素来查看此项。

[DC,I1C,I2C] = EDR(x1,x2,tol,1);子图(2,1,1)图([x1(i1c); x2(i2c)]','.-') 标题(['距离: 'Num2STR(DC)])子图(2,1,2)绘图(I2C,I1C,'O-'[I2(1)I2(END)],[I1(1)I1(端)])轴IJ.标题('翘曲路径'

图包含2个轴。带标题距离的轴1:NaN包含2个类型的线。带标题翘曲路径的轴2包含2个类型的2个对象。

文件matlab1.gif.matlab2.gif.包含单词“matlab®”一词的手写样本。加载文件。通过擦除数据来添加异常值。

samp1 ='matlab1.gif';samp2 ='matlab2.gif';x = DOUBLE(IMREAD(SAMP1));Y = DOUBLE(IMREAD(SAMP2));X(15:20,54:60)= 4000;Y(15:20,84:96)= 4000;

对齐手写样本沿着X- 使用编辑距离的轴。指定450的容差。

EDR(X,Y,450);

图包含6个轴。带标题的轴1覆盖对齐信号包含类型图像的对象。具有标题对齐信号(Y)的轴2包含类型图像的对象。具有标题对齐信号(x)的轴3包含类型图像的对象。具有标题的轴4覆盖原始信号包含类型图像的对象。具有标题原始信号(Y)的轴5包含类型图像的对象。具有标题原始信号(x)的轴6包含类型图像的对象。

输入参数

全部收缩

输入信号,指定为真实或复杂的向量或矩阵。

数据类型:单身的|双倍的
复数支持:金宝app是的

输入信号,指定为真实或复杂的向量或矩阵。

数据类型:单身的|双倍的
复数支持:金宝app是的

公差,指定为正标量。

数据类型:单身的|双倍的

调整窗口的宽度,指定为正整数。

数据类型:单身的|双倍的

距离度量,指定为'euclidean''绝对''squared', 要么'symmkl'。如果Xy都是K.- 二维信号,然后公制规定D.mXy),之间的距离m样本XN样本y

  • 'euclidean'- 平方差异的根和,也称为欧几里德或2度量标准:

    D. m N X y = σ. K. = 1 K. X K. m - y K. N * X K. m - y K. N

  • '绝对'- 绝对差异的总和,也称为曼哈顿,城市块,出租车或1度量标准:

    D. m N X y = σ. K. = 1 K. | X K. m - y K. N | = σ. K. = 1 K. X K. m - y K. N * X K. m - y K. N

  • 'squared'- 欧几里德公制的平方,由平方差异的总和组成:

    D. m N X y = σ. K. = 1 K. X K. m - y K. N * X K. m - y K. N

  • 'symmkl'- 对称Kullback-Leibler度量标准。此度量标准仅适用于真实和积极Xy

    D. m N X y = σ. K. = 1 K. X K. m - y K. N 日志 X K. m - 日志 y K. N

输出参数

全部收缩

信号之间的最小距离,返回为正实标量。

翘曲路径,作为指数的向量返回。IX.IY.具有相同的长度。每个矢量包含一个单调增加的序列,其中指数对应信号的元件,X要么y,重复必要的次数。

更多关于

全部收缩

编辑实际信号上的距离

由于它们的部分持续时间的差异,以相同顺序排列的等效特征的两个信号可能出现非常不同。edr.扭曲这些持续时间,使得相应的特征在公共时轴上出现在相同的位置,从而突出显示信号之间的相似性。用于执行失真的标准被设计为对异常值强大。

考虑两者K.- 尺寸的信号

X = [ X 1 1 X 1 2 X 1 m X 2 1 X 2 2 X 2 m X K. 1 X K. 2 X K. m ]

y = [ y 1 1 y 1 2 y 1 N y 2 1 y 2 2 y 2 N y K. 1 y K. 2 y K. N ]

其中有mN分别样品。给予D.mXy),之间的距离m样本XN样本y指定公制, 这edr.功能延伸Xy在一套常见的瞬间,这样编辑距离在信号之间最小。

给予ε.,实际数字是指定的公差,声明m样本XN样本y匹配如果D.mXy)<ε.。如果两个样本,mN,不匹配,您可以以三种方式中的任何一种使其匹配:

  1. 消除m从第一信号,例如当下一个样本匹配时N。此删除相当于添加m到第二信号并获得两个连续匹配。

  2. 通过添加匹配的样本来延长第一个信号N并通过一个位置移位其余的样本。此添加是等同于删除无与伦比的N从第二信号。

  3. 代替mN在第一信号中,或等效地,取下两者mN

编辑距离是使两个信号匹配所需的这些操作的总数。这个数字不是唯一的。计算之间的最小可能的编辑距离Xy,从这些事实开始:

  1. 两个空信号在它们之间有零距离。

  2. 空信号与信号之间的距离L.样品是L.,因为这是必须添加到空信号的样本数以恢复另一个。同等,L.是必须从中删除的样本数量L.-Ample信号清空它。

创建一个(m+ 1)--by-(N+ 1)矩阵,D.,这样的:

  1. D.1,1= 0.

  2. D.m,1=m- 1为了m= 2,......,m+ 1

  3. D.1,N=N- 1为了N= 2,......,N+ 1

  4. 为了mN> 1

    D. m N = { D. m - 1 N + 1 D. m N - 1 + 1 D. m - 1 N - 1 + { 0. D. m N X y ≤. ε. 1 D. m N X y > ε. }

最小的编辑距离Xy那么D.m+1,N+1

翘曲路径通过D.这导致这一最小的编辑距离由相同长度的两个序列参数化,IX.IY.,并是“国际象棋王”的组合:

  • 垂直移动:mN)→(m+ 1,N对应于从中移除样品X或添加样本到y。每个移动将编辑距离增加1。

  • 水平移动:mN)→(mN+ 1)对应于从中移除样品y或添加样本到X。每个移动将编辑距离增加1。

  • 对角线移动:mN)→(m+ 1,N+ 1)如果匹配,则对应匹配D.m,nXy)≤.ε.或者对应于从每个信号中移除一个样本D.m,nXyε.。匹配不会增加距离。除去将其增加1。

该结构确保任何可接受的路径对齐完整信号,不跳过样本,并且不重复信号特征。另外,一个理想的路径靠近延伸到的对角线D.1,1Xy) 和D.M,N.Xy)。这种额外的约束,调整了maxsamp.参数,确保翘曲比较相似长度的截面。

制作两个样本匹配的惩罚与样品之间的价值差异无关。两个不同的样本比耐受性不同,这两个样本具有与显着不同的两个样本相同的惩罚。因此,编辑距离不受异常值的影响。相反,重复样品以对准两个信号具有成本,这是动态时间翘曲的情况并非如此。

参考

[1]陈,雷,M.TamerÖzsu和文森特奥里亚。“鲁棒和快速相似性搜索移动对象轨迹。”24届ACM数据管理会议的载体(SIGMOD '05)。2005年,第491-502页。

[2] Paliwal,K.,K.,Anant Agarwal和Sarvajit S. Sinha。“修改Sakoe和Chiba动态时间翘曲算法,用于隔离字识别。”信号处理。卷。4,1982,第329-333页。

[3] Sakoe,Hiroaki和Seibi Chiba。“动态编程算法优化出口词识别”。IEEE.®声学,语音和信号处理的交易。卷。ASSP-26,第1,1978号,第43-49页。

扩展能力

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

介绍在R2016B.