Engee 文档

dtw

使用动态时间失真的信号之间的距离。

库::`工程师`

语法

函数调用

  • =dtw(,[参数:度量]) — 除了先前语法中的任何输入参数外,还使用距离度量。 米制 [参数:公制] 可以取值 "欧几里德", "绝对", "平方""symmkl".

  • =dtw(,out=:plot) — 绘制原始信号和对齐信号。

争论

输入参数

# x — 输入信号

+ 向量资料 | 矩阵

Details

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

数据类型

漂浮物32, 漂浮64</无翻译> 支持复数::是

# y — 输入信号

+ 向量资料 | 矩阵

Details

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

数据类型

漂浮物32, 漂浮64</无翻译> 支持复数::是

# maxsamp — 设置窗口的宽度

+ 资讯 (默认情况下)| 正整数标量

Details

设置窗口的宽度,设置为正整数标量。

数据类型

漂浮物32, 漂浮64</无翻译>

# 公制 — 距离度量

+ "欧几里德" (默认情况下)| "绝对" | "平方" | "symmkl"

Details

设置为值之一的距离度量: "欧几里德", "绝对", "平方""symmkl". 如果 -测量信号,然后度量设置 -之间的距离 -m倒计时 -m倒计时 . 了解更多关于 请参阅动态时间转换

  • "欧几里德" -差异平方和的根,也称为欧几里德度量或 :

  • "绝对" -绝对差异的总和,也称为城市街区的距离,曼哈顿度量,出租车度量,或 :

  • "平方" -欧几里德度量的平方,由差的平方和组成:

  • "symmkl" -对称Kullback-Leibler度量。 此度量仅适用于实数和正数。 :

输出参数

# — 信号之间的最小距离

+ 正实标量

Details

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

# ix 是 第一信号的失真路径

+ 索引向量 | 索引矩阵

Details

第一信号的失真路径,作为索引的向量或矩阵返回。

# iy 是 第二信号的失真路径

+ 索引向量 | 索引矩阵

Details

第二信号的失真路径,作为索引的向量或矩阵返回。

例子:

具有线性变化频率的正弦信号和正弦信号的动态时间转换

Details

让我们创建两个真实信号:一个频率线性变化的正弦曲线和一个正弦曲线。 我们使用动态时间变换来对齐信号,以便它们点之间的欧几里德距离之和最小。 我们将显示对齐的信号和距离。

import EngeeDSP.Functions: dtw

x = cos.(2 * pi * (3 * (1:1000) / 1000) .^ 2)
y = cos.(2 * pi * 9 * (1:399) / 400)

dtw(x,y, out=:plot)

dtw 6

改变正弦波的频率两次并重复计算。

import EngeeDSP.Functions: dtw

x=cos。(2*pi* (3 * (1:1000) / 1000) .^ 2)
y=cos。(2*pi* 18 * (1:399) / 400)

dtw(x,y,out=:plot)

dtw 7

此外

动态时间转换

Details

具有相同顺序排列的等效特征的两个信号可能由于其区段持续时间的差异而看起来完全不同。 动态时间变换以这样一种方式扭曲这些持续时间,即相应的特征出现在公共时间轴上的相同位置,从而强调信号之间的相似性。

考虑两个 -三维信号:

其中包含 分别计数。 给定的距离 之间 -倒计时 -倒计时 ,设置在 米制, 区划 伸展运动 对于一个共同的时间点集合,以这样的方式,信号之间的距离的全局度量是最小的。

最初,该函数对所有可能的值进行排序。 进入表格的网格:

dtw 1

然后 区划 搜索通过由相同长度的两个序列参数化的晶格的路径, 我,我,这样

最小。

可接受的路径 区划 他们从 ,结束于 它们代表了"棋王"的动作组合:

  • 垂直行程: ;

  • 水平行程: ;

  • 对角移动: .

这种结构确保任何可接受的路径对齐所有信号,不跳过采样,并且不重复信号特征。 此外,所需的路径运行接近之间绘制的对角线 . 这是论证施加的额外限制 马克斯桑普,确保失真比较相同长度的部分,并且不会超过异常值。

通过网格的可能路径:

dtw 2

不允许使用以下路径:

  • 不对所有信号进行对齐:

    dtw 3

  • 跳过计数:

    dtw 4

  • 回头,重复元素:

    dtw 5

文学作品

  1. Paliwal,K.K.,Anant Agarwal和Sarvajit S.Sinha。,_a对Sakoe和Chiba的动态时间翘曲算法进行了修改,用于孤立词识别._信号处理。 卷。 4,1982,第329-333页。

  2. Sakoe,Hiroaki和Seibi Chiba。,_dynamic Programming Algorithm Optimization for Spoken Word Recognition._IEEE®关于声学、语音和信号处理的事务。 卷。 ASSP-26,No.1,1978,第43-49页。