主要内容

tfridge

描述

冰箱= tfridge (解冻,f)从时频矩阵提取最大的能源时频脊,解冻,和频率向量,f和输出时间频率,冰箱

(冰箱,iridge)= tfridge (解冻,f)还返回行索引向量对应于最大的能源岭。

例子

(冰箱,iridge,lridge)= tfridge (解冻,f)还返回线性指标,lridge,这样tfm (lridge)的值是解冻最大的能源岭。

例子

(___)= tfridge (解冻,f,点球)惩罚的变化频率通过扩展频率的平方距离垃圾箱点球

(___)= tfridge (___“NumRidges”,nr)提取nr时频脊最高的能量。该语法接受输入参数从以前的语法的任意组合。

例子

(___)= tfridge (___“NumRidges”,nr“NumFrequencyBins”,nbins)指定数量的频率从垃圾箱周围岭解冻当提取多个脊。

例子

全部折叠

创建一个类似于时频矩阵的矩阵用锋利的山脊。在三维可视化矩阵。

t = 0:0.05:10;f = 0:0.2:8;房车= 1;[F T] = ndgrid (F, T);S = 0(大小(T));年代(abs ((f - 4) cos ((T-6) ^ 2)) < 0.1) =房车;网格(T、F、S)视图(-30年,60岁)

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的表面。

添加噪声矩阵和重新显示的阴谋。

S = S +兰德(大小(S)) / 10;网格(T、F、S)视图(-30、60)包含(“时间”)ylabel (“频率”)

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的表面。

提取山脊和阴谋的结果。

(冰箱,~,lridge) = tfridge (S、f);rvals = S (lridge);持有rvals plot3 (t,冰箱,“k”,“线宽”,4)

图包含一个坐标轴对象。坐标轴对象包含2表面类型的对象,线。

产生一个信号,采样3千赫一秒钟。信号由两个音调和二次唧唧喳喳。

  • 第一个音调的频率为1000赫兹和单位振幅。

  • 第二个音调的频率为1200赫兹和单位振幅。

  • 的唧唧声有一个初始频率500赫兹和达到750 Hz的抽样。它有一个振幅6。

fs = 3000;t = 0:1 / fs: 1 - 1 / f;x1 = 6 *唧唧声(fs / 6 t, t(结束),f / 4、“二次”);x2 =罪(2 *π* fs / 3 * t);x3 =罪(2 *π* fs / 2.5 * t);x = x1 + x2 + x3;

计算并显示信号的傅里叶synchrosqueezed变换。

海温,[f] = fsst (x, fs);mx = max (abs (sst(:))) *的(大小(t));网格(t、f、abs (sst)视图(2)

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的表面。

提取和绘制两个高能信号组件。为改变频率设置没有处罚。

penval = 0;冰箱= tfridge (sst, f, penval,“NumRidges”2);持有mx plot3 (t,冰箱,' w ',“线宽”,5)

图包含一个坐标轴对象。坐标轴对象包含3个类型的对象的表面,线。

两个音调有相同的振幅,算法之间跳跃。将惩罚改变频率设置为1。

penval = 1;冰箱= tfridge (sst, f, penval,“NumRidges”2);网格(t、f、abs (sst)视图(2)包含(“时间(s)”)ylabel (的频率(赫兹))举行mx plot3 (t,冰箱,' w ',“线宽”,5)

图包含一个坐标轴对象。坐标轴对象包含3个类型的对象的表面,线。

设置惩罚性的高价值的比较。唧唧喳喳的惩罚,因为它的频率不是常数。

penval = 1000;冰箱= tfridge (sst, f, penval,“NumRidges”2);网格(t、f、abs (sst)视图(2)包含(“时间(s)”)ylabel (的频率(赫兹))举行mx plot3 (t,冰箱,' w ',“线宽”,5)

图包含一个坐标轴对象。坐标轴对象包含3个类型的对象的表面,线。

生成一个信号由两个二次啾啾。在1 kHz信号采样3秒。唧唧,瞬时频率是对称的采样间隔的中点。一个啁啾是凹另啁啾是凸的。凹唧唧喳喳的凸唧唧喳喳的振幅的两倍。

fs = 1 e3;t = 0:1 / fs: 3;x =唧唧声(t - 1.5,100 1.1,200,“二次”[],“凸”);y = 2 *唧唧声(t - 1.5,300 1.1,400,“二次”[],“凹”);%,类型soundsc (x + y, fs)

计算并显示信号的傅里叶synchrosqueezed变换。

sig = x + y;(sst f t] = fsst (sig, fs);fsst(团体、fs、“桠溪”)

图包含一个坐标轴对象。坐标轴对象与标题傅里叶Synchrosqueezed变换包含一个类型的对象的形象。

提取两种时频脊有最高的能量。指定一个点球1的频率的变化。删除1频率本在脊前最高能量提取第二个山脊。绘制山脊。

负反馈= 1;[fr,红外]= tfridge (sst, f, 1,“NumRidges”2,“NumFrequencyBins”负反馈);情节(t, fr)

图包含一个坐标轴对象。坐标轴对象包含2线类型的对象。

一本是不够的:函数发现第二个脊部分的斜率。增加到50箱的数量来移除和重复计算。

负反馈= 50;[fr,红外]= tfridge (sst, f, 1,“NumRidges”2,“NumFrequencyBins”负反馈);情节(t, fr)

图包含一个坐标轴对象。坐标轴对象包含2线类型的对象。

删除太多垃圾箱扭曲了较长的山脊。减少到15和重复计算。

负反馈= 15;[fr,红外]= tfridge (sst, f, 1,“NumRidges”2,“NumFrequencyBins”负反馈);情节(t, fr)

图包含一个坐标轴对象。坐标轴对象包含2线类型的对象。

反变换对应两个山脊。添加山脊重建信号。情节重构信号之间的差异和啾啾。

itr = ifsst (sst,[],红外光谱、“NumFrequencyBins”负反馈);xrec =总和(itr ');情节(t, xrec - (x + y)) ylim ([-。1。1)

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象。

%,类型soundsc (xrec fs)

协议是好的大部分时间但恶化的目的,在频率变化最快。

输入参数

全部折叠

时频矩阵,指定为一个矩阵。

例子:fsst (cos(π/ 4 * (0:159)))指定的synchrosqueezed变换正弦信号。

数据类型:|
复数的支持:金宝app是的

采样频率,指定为一个向量。的长度f必须等于中的行数解冻

数据类型:|

点球改变频率,指定为一个非负实数。

数据类型:|

时频脊提取,指定为逗号分隔组成的“NumRidges”和一个正整数标量。您可以指定这名称-值对解冻输入参数列表。

nr大于1,tfridge:

  1. 提取时频脊最高的能量

  2. 删除从解冻中包含的能量提取和山脊nbins相邻频率箱两侧的山脊

  3. 提取物中高能脊的修改解冻

  4. 迭代,直到它已提取的nr

数据类型:|

的箱数删除提取多个脊时,指定为逗号分隔组成的“NumFrequencyBins”和一个正整数标量。nbins必须小于1/4的采样频率。指数接近频率不到边nbins箱子一边是重建使用较少的垃圾箱。

数据类型:|

输出参数

全部折叠

时频脊,返回一个矩阵nr列。的行数冰箱等于列数解冻。第一列包含频率对应于高能岭。随后的列包含其他的频率降序山脊的能量。

脊行指标,作为一个矩阵与返回nr列。的行数iridge等于列数解冻。第一列包含对应于高能脊的指标。随后列包含其他的指数降序山脊的能量。

脊线指数,作为一个矩阵与返回nr列。lridge这样定义tfm (lridge)的振幅解冻沿着山脊。的行数lridge等于列数解冻。第一列包含对应于高能脊的指标。随后列包含其他的指数降序山脊的能量。

例子:lridge相当于sub2ind(大小(tfm)、iridge repmat((1:尺寸(tfm, 2))”, 1, nr))

算法

函数使用一个惩罚forward-backward贪婪算法来提取时频矩阵的最大能量的山脊。该算法找到最大的时频脊通过最小化ln一个在每个时间点一个矩阵的绝对值。最小化ln一个相当于最大化的价值一个。算法选择约束跳跃的频率与一个点球,频率箱之间的距离成正比。

下面的例子说明了时频脊算法使用一个点球两倍频率箱之间的距离。具体来说,元素之间的距离(j, k)(m, n)被定义为(j-m)2。时频矩阵有三个频率垃圾箱和三个步骤。矩阵列对应的时间步骤,矩阵的行对应于频率垃圾箱。第二行中的值表示一个正弦波。

  1. 假设你有矩阵:

    1 4 4 2 2 2 5 5 4

  2. 更新的值(1、2)元素,如下所示。

    1. 离开在第一个时间点的值没有改变。开始的算法(1、2)矩阵的元素,这礼物第一频率本在第二个时间点。本值是4。惩罚第一列中的值基于他们的距离(1、2)元素。应用第一列产生的罚款

      原始值+点球1 + 2××距离0 = 1 2 + 2×1 = 4 5 + 2×4 = 13
      1 4 4 2 13 5
      第一列的最小值是1,这是本1。

    2. 列1中的最小值添加到当前本价值,4。更新后的值(1、2)成为5,来自本1。

  3. 更新剩余的元素的值在第2列如下。

    验算原第1列值和惩罚因子在步骤2中使用相同的过程。获得其余的第二列值在步骤2中使用相同的过程。例如,当更新(2,2)元素,本值2,应用惩罚列产量

    原始值+点球1 + 2××距离1 = 3 + 2×2 0 = 2 5 + 2×1 = 7
    添加最小值,2,目前本价值。更新后的值(2,2)变成了4。更新后(2)元素,矩阵
    1 - 5(1)4 2 4(2)2 5 9(2)4
    只有第二列被更新。下标表示本在前面的索引列的值。

  4. 重复步骤2,第三列。但是现在处罚适用于更新后的第二列。例如,当更新(1、3)元素,处罚

    5 + 2×4 0 = 5 + 2×1 = 6 9 + 2×4 = 17
    最小值5,这是第一本,添加到(1、3)本价值。更新第三列中的所有值后,最后的矩阵
    1 - 5(1)9(1)2 4(2)6(2)5个9(2)10(2)

  5. 从最后一列的矩阵,找到最小值。走在时间通过矩阵从当前本的起源,本在之前的时间点。本指标的跟踪,路径组合脊的形式。算法平滑过渡利用原点本而不是本的最小值。对于这个示例,脊指数2,2,2能源路径匹配的正弦波的第2行矩阵的步骤1所示。

如果你提取多个脊,算法从时频矩阵中删除第一个山脊,重复该过程。

扩展功能

版本历史

介绍了R2016b