暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

数据科学与SQL:如何计算Teager能量算子(TEO)? | 基于SQL实现

会飞的一十六 2024-11-26
538

点击上方【蓝色】字体   关注我们



01 场景描述

TEO(Teager能量算子),由Kaiser于1990年代提出的非线性分析方法(参见Kaiser, 1990; 1993),是一种有效的非线性信号处理工具,它能即时反映信号能量的变化。通过计算相邻采样点的值,TEO能够迅速跟踪信号的动态特性。在给定的信号中,较大的TEO能量值指示更快的幅值或频率变化,从而用于检测信号的奇异性。
具体而言,TKEO的离散实现遵循如下数学表达式:

其中,𝑚m为指数参数,调节着能量估计的敏感度;𝑀M则代表滞后参数,控制着运算中的时间窗口大小,一般情况下两者均取值为1,以维持运算的简洁性和实用性。

       能量算子解调是一种在信号处理领域中广泛应用于故障诊断的技术。它主要通过对信号进行分析,提取出其中蕴含的有用信息,特别是在机械设备故障检测中,能够有效地识别异常振动信号的特征。故障诊断是能量算子解调的一个重要应用领域。在机械设备中,异常的振动、噪声或温度变化常常是设备故障的早期征兆。通过能量算子解调,我们可以分析这些信号的能量特性,找出与正常状态的差异,从而定位故障源。在实际操作中,我们需要采集设备的振动或声音信号,然后对信号进行预处理,包括去除噪声、滤波等。接着,应用能量算子计算信号的能量分布,这通常涉及到傅里叶变换和平方运算。随后,对比不同状态下的能量谱,异常的能量峰值或频段可能是故障的表现。通过分析这些特征,可以辅助工程师做出准确的故障判断。通过深入理解并灵活运用这些技术,我们可以更有效地监测和预测设备故障,降低维护成本,提高生产效率。


02 数据准备

    with tkeo as
    (
    select 1 id,0.0519 value from dual union all
    select 2 id,0.0212 value from dual union all
    select 3 id,0.0216 value from dual union all
    select 4 id,0.0129 value from dual union all
    select 5 id,0.0138 value from dual union all
    select 6 id,0.0083 value from dual union all
    select 7 id,0.0097 value from dual union all
    select 8 id,0.0088 value from dual union all
    select 9 id,0.0064 value from dual union all
    select 10 id,0.0053 value from dual

    )


    03 问题分析

    当m=1时,能量计算公式变为:

    y(n)=x(i) ^2 -x(i-1)*x(i+1)

    转换成SQL计算公式为:

    y=  Power(Xi,2)-lag(Xi)*lead(xi)

    具体SQL如下:

       
      with tkeo as
      (
      select 1 id,0.0519 value from dual union all
      select 2 id,0.0212 value from dual union all
      select 3 id,0.0216 value from dual union all
      select 4 id,0.0129 value from dual union all
      select 5 id,0.0138 value from dual union all
      select 6 id,0.0083 value from dual union all
      select 7 id,0.0097 value from dual union all
      select 8 id,0.0088 value from dual union all
      select 9 id,0.0064 value from dual union all
      select 10 id,0.0053 value from dual

      )

      select id,
      value,
      lag_value,
      lead_value,
      cast(power(value,2) - lag_value*lead_value as decimal(18,4)) tkeo
      from
      (select id
      , value
      , lag(value) over (order by id) lag_value
      , lead(value) over (order by id) lead_value
      from tkeo
      ) t

      04  小 结      

      传统意义上的信号能量定义为信号幅值的平方, 只代表动能或势能。它虽然也能够突出冲击的瞬态特 征,但是,若冲击幅值较小,则冲击成分有可能被其它 成分淹没。Teager能量算子跟踪产生信号所需的总能 量,既包括动能又包括势能,其输出为振动瞬时幅值和 瞬时频率二者的平方之积。相对于传统的信号能量定 义,它增加了和频率平方的乘积。由于瞬态冲击的振 动频率较高,因此它更能够突出冲击的瞬态特征,Teager能量算子计算产生信号所需的瞬时总能 量,适合检测信号的瞬态变化,能够突出冲击信号的瞬 态峰值特征。



      会飞的一十六


      扫描右侧二维码关注我们






      点个【在看】 你最好看






      往期精彩

      SQL进阶技巧:如何求组内排除当前行的移动平均值

      SQL进阶技巧:用户历史最大连续签到天数问题| 断点分组问题

      SQL进阶技巧:近N指标如何精确计算并扩充?

      文章转载自会飞的一十六,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

      评论