时频脊
该函数使用一个惩罚前后贪婪算法来提取一个时间 - 频率矩阵的最大能量脊。该算法通过最小化发现的最大的时频脊-ln一个在每个时间点,在那里一个是矩阵的绝对值。最小化-ln一个等同于最大化的值一个。该算法可选地约束在频率跳跃带罚成比例的频率窗口之间的距离。
下面的示例示出了使用惩罚是两倍频率仓之间的距离的时间 - 频率脊算法。具体而言,元件之间的距离(J,K)
和(M,N)
被定义为(J-M)2
。时间 - 频率矩阵具有三个频率仓和三个时间步长。矩阵的列对应于时间步骤,并且矩阵的行对应于频率仓。在第二行中的值表示的正弦波。
假设你有矩阵:
1 4 4 2 2 2 5 5 4
更新值用于(1,2)元素如下。
在第一时间点不变保留值。与基质,其中介绍在第二时间点在第一频率上的(1,2)元素开始的算法。的bin值是4惩罚在基于从(1,2)元素的距离的第一列中的值。运用刑罚的第一列产生
原始值+罚×距离1 + 2×0 = 1 2 + 2×1 = 4 5 + 2×4 = 13
1 4 4 2 13 5
在第1列添加最小值到当前二进制值,4.(1,2)的更新后的值变为5,其从箱1来了。
更新用于在列中的其余元件2如下的值。
重新计算原始列1点的值使用相同的处理步骤2a中的惩罚因子。获得使用相同的过程剩余的第二列的值作为在步骤2b。例如,在更新(2,2)元件,其具有单元条值时2中,施加惩罚到列产量
原始值+罚×距离1 + 2×1 = 3 2 + 2×0 = 2 5 + 2×1 = 7
1 5(1)4 2 4(2)2 5 9(2)4
将第三列重复执行步骤2。但是,现在的处罚适用于更新的第二列。例如,在更新(1,3)元素时,该惩罚是
5 + 2×0 = 5 4 + 2×1 = 6 9 + 2×4 = 17
1 5(1)9(1)2 4(2)6(2)5月9日(2)10(2)
在矩阵的最后一列开始,找到最小值。通过在前面的时间点,从目前的仓去那个箱子的起源穿行矩阵时间回来。跟踪箱索引,其形成通道组成的山脊。该算法通过使用起源箱,而不是与最小值的bin平滑的过渡。在这个例子中,脊指数2
,2
,2
,其在步骤1中所示的矩阵的第2行的正弦波的能量路径相匹配。
如果要提取的多个脊,所述算法删除从时间 - 频率矩阵的第一个凸脊和重复该过程。