tfridge

时频脊

描述

冰箱= tfridge(TFMF从时间 - 频率矩阵中提取的最大能量的时间 - 频率脊,TFM以及频率向量,F,并输出与时间相关的频率,冰箱

[冰箱iridge] = tfridge(TFMF也返回对应于最大能量脊的行索引向量。

[冰箱iridgelridge] = tfridge(TFMF还返回线性指数,lridge,这样TFM(lridge)是的值TFM沿最大能量脊。

[___] = tfridge(TFMF罚款由通过缩放频率窗口之间的平方距离惩罚中频率的变化罚款

[___] = tfridge(___'NumRidges',NR提取NR时频脊具有最高的能量。这句法接受从以前的语法输入参数的任意组合。

[___] = tfridge(___'NumRidges',NR'NumFrequencyBins',nbins指定周围的脊的频率仓被从中移除的数量TFM提取多个脊时。

例子

全部收缩

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

t = 0时:0.05:10;F = 0:0.2:8;RV = 1;[F,T] = ndgrid(F,T);S =零(大小(T));S(ABS((F-4)-cos((T-6)^ 2))<0.1。)= RV;目(T,F,S)视图(-30,60)

噪声添加到矩阵,并重新显示情节。

S = S +兰特(大小(S))/ 10;目(T,F,S)视图(-30,60)xlabel('时间')ylabel('频率'

提取脊和绘制的结果。

[冰箱,〜,lridge] = tfridge(S,F);rvals = S(lridge);保持plot3(吨,电冰箱,rvals,数k'行宽'4)保持

生成被3kHz处取样的一秒钟的信号。所述信号由两个色调和一个二次啁啾。

  • 第一音具有1000Hz与单元的幅度的频率。

  • 第二音调具有1200赫兹和单位幅度的频率。

  • 该线性调频脉冲具有500赫兹的初始频率并达到在采样结束750赫兹。它有6个的幅度。

FS = 3000;t = 0时:1 / FS:1-1 / FS;X1 = 6 *啁啾(T,FS / 6,T(端部),FS / 4,“二次”);X2 = SIN(2 * PI * FS / 3 * T);X3 = SIN(2 * PI * FS / 2.5 * T);X = X1 + X2 + X3;

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

[SST中,f] = FSST(X,FS);MX = MAX(ABS(SST(:)))*酮(大小(T));目(T,F,ABS(SST))的视图(2)

提取并绘制两个最高能量的信号分量。设置没有惩罚改变频率。

penval = 0;冰箱= tfridge(SST,F,penval,'NumRidges',2);保持plot3(吨,冰箱,MX,'W''行宽'5)保持

两个音调具有相同的幅度,以及它们之间的算法跳转。设置改变频率为1的惩罚。

penval = 1;冰箱= tfridge(SST,F,penval,'NumRidges',2);目(T,F,ABS(SST))的视图(2)xlabel('时间(s)')ylabel('频率(Hz)')保持plot3(吨,冰箱,MX,'W''行宽'5)保持

刑罚设置为比较高的值。啁啾受到处罚,因为它的频率不恒定。

penval = 1000;冰箱= tfridge(SST,F,penval,'NumRidges',2);目(T,F,ABS(SST))的视图(2)xlabel('时间(s)')ylabel('频率(Hz)')保持plot3(吨,冰箱,MX,'W''行宽'5)保持

生成两个二次啁啾组成的信号。该信号在1 kHz采样为3秒。的线性调频脉冲是这样的瞬时频率是对称采样间隔的中间点。一个线性调频脉冲是凹的,而其他的啁啾是凸的。凹啁啾具有凸线性调频脉冲的振幅的两倍。

FS = 1E3;t = 0时:1 / fs的:3;X =啁啾(叔1.5,100,1.1,200,“二次”,[]“凸”);Y = 2 *啁啾(叔1.5,300,1.1,400,“二次”,[]'凹');%听到,类型soundsc(X + Y,FS)

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

SIG = X + Y;[SST,F,T] = FSST(SIG,FS);FSST(SIG,FS,“Y轴”

提取具有最高的能量两个时频脊。指定频率的变化为1的损失。提取第二脊前取出与周围的最高能量的脊1的频点。画出脊。

NFB = 1;[FR,IR] = tfridge(SST中,f,1,'NumRidges',2,'NumFrequencyBins',NFB);情节(T,FR)

一个二进制位是不够的:该函数查找第二凸脊是部分地在所述第一的斜率。提高到50仓的数量,以除去和重复计算。

NFB = 50;[FR,IR] = tfridge(SST中,f,1,'NumRidges',2,'NumFrequencyBins',NFB);情节(T,FR)

卸下太多箱扭曲降低能源脊。减少的数量为15,重复计算。

NFB = 15;[FR,IR] = tfridge(SST中,f,1,'NumRidges',2,'NumFrequencyBins',NFB);情节(T,FR)

反变换对应于两个脊。添加脊重建信号。画出重构信号与啁啾之间的差异。

ITR = ifsst(SST,[],IR,'NumFrequencyBins',NFB);xrec =总和(ITR');情节(T,xrec-(X + Y))ylim([ -  1 0.1])

%听到,类型soundsc(xrec,FS)

该协议是很好的大部分在两端,因为后者的频率变化最迅速的时间,但恶化。

输入参数

全部收缩

时间 - 频率矩阵,指定为矩阵。

例:FSST(COS(π/ 4 *(0:159)))指定synchrosqueezed变换正弦曲线的。

数据类型:|
复数支持:万博1manbetx

采样频率,指定为矢量。长度F必须等于行数TFM

数据类型:|

房价变化的频率,指定为一个非负实标。

数据类型:|

时间 - 频率脊的数目来提取,指定为逗号分隔的一对组成的'NumRidges'和一个正整数标量。您可以指定在此之后的名称 - 值对任何地方TFM在输入参数列表。

什么时候NR大于1,tfridge

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

  2. 从移除了TFM包含在山脊的能量它提取并在nbins在脊的两侧邻接的频率段

  3. 提取上述修改能量最高的脊TFM

  4. 重复,直到它已提取NR

数据类型:|

仓编号,以提取多个脊时删除,指定为逗号分隔的一对组成的'NumFrequencyBins'和一个正整数标量。nbins必须小于1/4取样频率。指数接近比少的频率边缘nbins在一侧仓使用块的一个较小的数字重建。

数据类型:|

输出参数

全部收缩

时频脊,返回一个矩阵NR列。行的数冰箱等于列的数量TFM。第一列包含对应于能量最高的脊的频率。随后的列包含在降低能源秩序的其他脊的频率。

岭排索引,返回一个矩阵NR列。行的数iridge等于列的数量TFM。第一列包含对应于能量最高的脊的指标。随后的列包含在降低能源秩序的其他脊的指标。

脊线性索引,返回为与基质NR列。lridge如此定义:TFM(lridge)是的幅度TFM沿着山脊。行的数lridge等于列的数量TFM。第一列包含对应于能量最高的脊的指标。随后的列包含在降低能源秩序的其他脊的指标。

例:lridge相当于sub2ind(大小(TFM),iridge,repmat((1:尺寸(TFM,2))”,1,NR))

算法

该函数使用一个惩罚前后贪婪算法来提取一个时间 - 频率矩阵的最大能量脊。该算法通过最小化发现的最大的时频脊-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)元素开始的算法。的bin值是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点的值使用相同的处理步骤2a中的惩罚因子。获得使用相同的过程剩余的第二列的值作为在步骤2b。例如,在更新(2,2)元件,其具有单元条值时2中,施加惩罚到列产量

    原始值+罚×距离1 + 2×1 = 3 2 + 2×0 = 2 5 + 2×1 = 7
    添加最小值,2,当前二进制值。为(2,2)的更新值变为4更新(3,2)元素之后,矩阵是
    1 5(1)4 2 4(2)2 5 9(2)4
    只有第二栏已更新。该标表示斌在从一个值来上一列的索引。

  4. 将第三列重复执行步骤2。但是,现在的处罚适用于更新的第二列。例如,在更新(1,3)元素时,该惩罚是

    5 + 2×0 = 5 4 + 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. 在矩阵的最后一列开始,找到最小值。通过在前面的时间点,从目前的仓去那个箱子的起源穿行矩阵时间回来。跟踪箱索引,其形成通道组成的山脊。该算法通过使用起源箱,而不是与最小值的bin平滑的过渡。在这个例子中,脊指数222,其在步骤1中所示的矩阵的第2行的正弦波的能量路径相匹配。

如果要提取的多个脊,所述算法删除从时间 - 频率矩阵的第一个凸脊和重复该过程。

扩展功能

介绍了在R2016b