当前位置: 首页 > article >正文

工业大数据分析算法实战-day11

文章目录

  • day11
    • 信号处理算法
      • FT算法(傅里叶变换)
      • 时频分析
        • STFT(短时傅里叶变换)
        • Gabor算法
        • 小波变换
        • WVD(Wigner-Ville分布)
        • 故障诊断中常用的时频特征变量
      • 时序变换
        • 独立成分分析(ICA)
        • 慢特征分析(SFA)
      • 压缩感知(CS)
          • 核心思想:信号的稀疏性与重建

day11

今天是第11天,昨日主要是对时序数据挖掘算法开一个头,讲解了目前将时序挖掘算法分为8类:时序分隔、时序分解、时序再表征、序列模式、异常检测、聚类、分类、预测,今天着重是针对信号处理算法进行阐述

信号处理算法

针对平稳信号的频域分析、针对非线性、非平稳信号的时频域分析,以及压缩感知等算法,还包括了信号中常用的SFA和ICA等变换算法

FT算法(傅里叶变换)

FT算法的核心思想是针对一段信号做全局分析,将其分解成能被三角函数的线性叠加去逼近的原始信号,这种频域分析的算法在振动分析等平稳信号取得了广泛的应用。傅里叶变换是一个将信号从“时域”转换到“频域”的工具。你可以把它想象成一种“拆解”信号的方式,把一个复杂的信号分解成多个简单的正弦波(不同频率、不同幅度的波形)。

举个例子,假设听到的是一个复杂的音符,傅里叶变换就像是把这个音符拆解成几个简单的音高和音量,让我们看清楚它由哪些音符组成。由此笔者举了两个例子:

  • 第一个例子:4次重复的正弦波

    • 信号描述:假设有一个信号,它是由4次重复的正弦波组成的。每个正弦波是周期性的,形状像是一个波浪。这些正弦波按一定的频率(比如32Hz)重复了四次,总体信号是有规律的。
    • 傅里叶变换的效果:傅里叶变换会把这个信号“分解”成不同频率的正弦波。你可以看到,信号的主要成分就是一个低频的波(例如4Hz),它是信号中重复的“节奏”。如果你只取出低频部分(比如4Hz和32Hz),信号就能恢复得差不多了。
    • 通俗解释:这个例子就是告诉你,如果信号本身是周期性的(有规律的),傅里叶变换可以很容易地把信号拆解成几个简单的频率。你只需要少数几个频率成分,就能很好地重建出原始信号。
  • 第二个例子:直线+正弦波

    • 信号描述:这个信号的结构就不简单了。它的前半部分是直线(比如一段平稳的变化),后半部分是正弦波(有波动)。整个信号是由这两部分组合在一起的,信号的变化比较复杂。
    • 傅里叶变换的效果:由于信号的变化不再是规律的(有突变),傅里叶变换就会变得比较困难。为了能够准确地重建这个信号,傅里叶变换需要更多的频率成分(比如更多的正弦波)。特别是在直线变化和正弦波的过渡部分,傅里叶变换需要通过更多频率来“填补”这个过渡,才能让重建的信号更接近原始信号。
    • 通俗解释:这个例子想要说明的是,如果信号的变化很复杂,比如有突变或者不规则的部分,傅里叶变换就需要更多的“频率”来描述这些变化。特别是在信号有突然变化的地方(像直线到正弦波的转折),傅里叶变换需要更多的频率成分才能准确重构这个变化。

总结两种情况

  • 周期性信号(例如第一个例子):傅里叶变换可以很高效地分解出信号的规律成分,通常需要的频率分量较少,重构过程也相对简单。
  • 不规则信号(例如第二个例子):傅里叶变换处理起来更复杂,因为信号有突变或者不规则的部分,需要更多的频率成分来拟合这些变化,从而重建出一个接近原始信号的曲线。

时频分析

由上述例子可以看到FT算法针对平稳信号效果较好,但是针对非线性和非平稳信号,FT会造成较大的偏差,因此需要采用持续周期短、局部性较强的基本函数的时频分析技术,常见的时频表示分为:线性、非线性,典型的线性时频表示:短时傅里叶变换、小波变换;典型的非线性时频表示:Wigner-Ville分布、Cohen类分布等,接下来会单独阐述:

STFT(短时傅里叶变换)

短时傅里叶变换是对傅里叶变换的一种扩展,它的主要思想是:在信号的短时间段内,假设信号是平稳的(即在小范围内信号的频率和幅度不变化),然后对每个小段信号做傅里叶变换,大概的实现步骤:

  • 1.选择窗口函数:为了分割信号,通常会选择一个窗口函数(比如矩形窗、汉宁窗等)。这个窗口函数决定了每个小段信号的长度。

  • 2.滑动窗口:将窗口函数滑动在信号上,每次只取一小段信号。每一段信号可以被看作是平稳的,因此我们可以对每一段信号进行傅里叶变换,得到该段的频谱。

  • 3.得到时频图:通过这种方法,你可以得到一个“时频图”(或者称作时频谱)。这个图会告诉你在某个时间段内,信号的频率成分是什么样的。

STFT的局限性:时间和频率的“清晰度”是不能同时完美的。

  • 如果你选择一个短的时间窗口(例如,1秒钟),你就能看到信号在这1秒内的变化,时间分辨率(信号随时间的变化)很高,但你只能分辨出频率变化比较大的音调,频率分辨率较差。这就像是快速扫过信号,只能知道大致的音高,无法分辨音高之间细微的差别。
  • 如果你选择一个长的时间窗口(例如,10秒钟),你就能看到更长期的信号变化,频率分辨率(清晰地区分信号中的不同频率)很高,可以清楚区分不同的音调,但因为看的时间长了,时间分辨率就变差了。比如,在长时间段内你可能就看不到短暂的音调变化(比如节奏的快慢)。
Gabor算法

Gabor变换其实是对STFT的一种改进,它的核心思想就是通过使用一种叫做高斯窗(Gaussian window)的窗口函数,来平衡时间和频率之间的分辨率。使用高斯窗的原因是,它能在时域和频域之间提供一种平衡的局部化。它有一个特别的优势,就是它在时域和频域上都是“集中”的,即不会像矩形窗那样太分散,这意味着你既能在时间上获取信号变化的细节,也能在频率上捕捉到细微的频率成分。

打个比方进行比较:

  • STFT就像你用一个固定长度的尺子去量度每一段音乐的频率和节奏。但这个尺子太长了,不能很好地感知快速变化的部分;如果尺子太短,虽然能更快捕捉变化,但就无法准确捕捉音符的细节。

  • Gabor变换就像你使用一个可调节长度的尺子,尺子长度能够根据音乐的变化做微调。这样,你既能精确知道音符什么时候发生了变化,也能准确知道音符的音高和频率细节。

但是不管如何变化,依旧存在局限性:当被分析信号是缓变和瞬变共存的信号,任何时频折中都无意义

小波变换

我们可以想象之前是针对时序数据做窗口分析,是这种”长度”处理,小波的思想实则是从“宽度”上进行处理,通过使用不同尺度的小波,能够自动调整时域和频域的分辨率。在信号的高频部分,使用短小的波形(即高频小波)来捕捉高频变化,这样可以有更好的时间分辨率;而在低频部分,使用较长的波形(低频小波)来捕捉低频变化

特点Gabor变换小波变换
时频分辨率固定的时间和频率分辨率平衡,窗口大小固定自适应时频分辨率,根据信号频率的高低调整分辨率
适应性不能根据信号的频率变化自适应调整可以根据信号的频率范围和变化动态调整分析尺度
适合的信号类型适合平稳信号和频率变化较慢的信号更适合非平稳信号,尤其是频率快速变化的信号
窗口长度固定窗口长度,在时域和频域中存在折衷小波具有不同的尺度,能够更灵活地适应信号的特征
处理复杂信号的能力对高度非线性和复杂信号的处理较弱对非线性和复杂信号的处理能力强,适应性更强

小波变换的局限性:

  • 计算复杂度:小波变换,特别是在多尺度分析时,可能涉及到大量的计算。尤其是在处理大规模数据或实时信号时,计算开销会变得比较大,可能导致处理速度较慢

  • 选择合适的小波基函数:小波变换的效果受到所选小波基函数(即用于分析信号的小波类型)的影响。不同的小波基函数适用于不同类型的信号。选择合适的小波基函数需要根据信号的特点来调整,如果选择不当,可能会导致分析结果不准确。

  • 信号的边界效应:小波变换对信号的边界处理存在一定困难,尤其是在信号的边缘部分,可能会产生一些伪影或不准确的时频分析结果。这通常需要采取一些边界处理技术来缓解。

WVD(Wigner-Ville分布)

WVD的核心优势在于它能够在同一个图上给出 时间频率 的信息。具体地说:

  • 对于每个时间点 t,WVD计算的是信号在 局部时间延迟┏下的频率成分。所以,WVD并不是对信号做全局的傅里叶变换,而是根据时间延迟来分析信号的频率结构,得到一个二维的时间-频率图。
  • 通过 傅里叶变换,我们能把局部的自相关信息(时间上的变化)转换到频率域,得到每个时刻 t 对应的频率成分 f。
故障诊断中常用的时频特征变量
  • 谱峰度(Spectral Kurtosis,SK):谱峰度衡量信号频谱中是否有明显的 尖峰脉冲成分。如果信号中有突然的冲击或非平稳成分,频谱会出现尖锐的峰,谱峰度值较大。

  • 谱熵(Spectral Entropy,SE):谱熵衡量信号的频谱分布的 不确定性复杂度。谱熵高表示频谱分布均匀,信号复杂;谱熵低则表示频谱集中,信号简单。

  • 熵(Entropy):熵衡量信号的 不确定性信息量。熵越大,信号越复杂;熵越小,信号越有序。

  • Teager-Kaiser能量算子:TKEO是一种非线性分析工具,用来 提取信号的局部能量变化。它通过计算信号的瞬时能量,帮助我们识别信号中的 瞬时特征高频变化

时序变换

独立成分分析(ICA)

核心目标是将多元观测信号分解为若干个统计上相互独立的源信号。ICA的基本假设是,观测到的信号是由若干个独立的源信号通过线性组合得到的。

例子:假设你在一个派对上,有两个麦克风。麦克风A记录到的是:音乐 + 对话的混合信号。麦克风B记录到的也是:音乐 + 对话 + 环境噪音的混合信号。ICA的目标就是从这两个麦克风的信号中分离出“音乐”、“对话”和“环境噪音”这三个独立的信号。

实现方式

  1. 假设信号是线性混合的:假设每个录音信号都是多个独立信号按某种方式(加权)混合而成。
  2. 寻找独立成分:算法通过数学运算来找到那些统计上“独立”的成分。什么叫“独立”?简单来说,独立意味着一个信号的变化不会受到其他信号的影响。
  3. 优化过程:通过优化算法(例如最大化信号的非高斯性,非高斯性意味着信号的分布不像钟形曲线),ICA逐步调整,最终找出每个源信号。

具体流程

  1. 输入信号:首先,你有多个混合信号(比如2个麦克风录到的信号)。
  2. 假设信号是线性混合的:假设每个信号是不同源信号的加权和。
  3. 寻找解混矩阵:通过优化算法,找到一个矩阵,能把混合信号还原成独立的源信号。
  4. 输出独立信号:通过矩阵变换,恢复出每个独立的源信号。
慢特征分析(SFA)

核心思想是从时间序列数据中提取那些变化最慢的特征。SFA试图找到在时间上变化最慢的信号成分,即能够最好地反映系统长期动态变化的特征。

例子:假设观察一个工厂的生产数据,每个设备的温度随着时间不断变化。SFA的目标是找出那些“变化慢”的特征。比如,如果某个设备的温度变化很小,那它可能就是系统的“稳定”特征,而其他温度变化剧烈的设备可能代表了“短期变化”的特征。

实现方式

  1. 信号的慢变化:假设信号是一个随时间变化的过程。SFA通过找到那些“变化最慢”的特征,来提取出系统的长期行为模式。
  2. 非线性变换:SFA通过对信号进行非线性变换,找出那些在时间上变化最慢的特征。
  3. 优化目标:SFA的优化目标是尽量让这些特征在时间维度上变化缓慢,换句话说,找到那些“平稳”的特征。

具体流程

  1. 输入时序数据:你有一组随时间变化的数据。
  2. 非线性变换:将这些数据通过非线性变换映射到一个新的空间。
  3. 寻找慢变化特征:在新的空间中,找到那些时间上变化最慢的特征。
  4. 输出慢特征:这些“慢特征”就代表了数据中变化最小、最稳定的部分。

压缩感知(CS)

传统的信号采样理论(如奈奎斯特采样定理)认为,要准确重建一个信号,必须按照信号的带宽(频率)进行足够高的采样率。比如,要从一个音频信号中恢复原始音频,我们通常需要每秒采样上千次(比如44.1kHz的采样率),这样才能得到比较准确的音频重建。然而,压缩感知的核心思想是:如果信号是稀疏的(即信号中只有少数几个重要的成分,其他的部分可以忽略),那么就可以用远低于传统奈奎斯特定理要求的采样率来采样信号,而不损失太多信息。

核心思想:信号的稀疏性与重建
  • 稀疏性(Sparsity)
    一个信号如果在某个变换域(如频域、波let域等)下大部分系数为零或者接近零,只有少数几个非零系数,则称它是“稀疏的”。例如,很多自然图像在频域中是稀疏的,大多数频率分量的幅值非常小,只有少数几个频率成分对图像的形状和结构起主导作用。
  • 压缩感知
    压缩感知的目标就是通过少量的线性测量(采样)来捕捉信号中的稀疏成分。也就是说,即使你没有按照传统的方法对信号进行全量采样,你依然能够通过数学算法从这些少量的数据中恢复出原始信号。

流程

  1. 信号的稀疏表示:首先,我们假设信号在某个变换域(如频域、小波域等)下是稀疏的,也就是说信号的主要信息可以用少数几个值来表示。例如,对于一幅图片,可能只有少数几个像素或者波形的频率成分是“重要”的,其他成分可以忽略。
  2. 采样过程:与传统的“逐点采样”不同,压缩感知通过少量的随机线性测量来获得信号。通过随机矩阵乘以信号的稀疏表示,得到一个低维的观测值,这些观测值本身并不能直接恢复信号,但包含了信号的关键信息。
  3. 重建过程:通过优化算法(如最小化L1范数)来从这些少量的测量数据中恢复出信号的稀疏成分。常见的优化算法包括基于梯度下降的优化算法,其目标是找到一个稀疏解,即尽可能少的非零值来重建信号。

总的来说CS算法主要目的时信号压缩,以降低信号传输负荷,在图像修改、计算图像学、图像合成等场景,在故障诊断分析中,CS算法主要用来:1、用CS重构后的信号作为分类算法的输入,这是CS作用就是滤波器;2、用CS压缩后的信号作为分类算法的输入,CS的作用就是降维。


http://www.kler.cn/a/446071.html

相关文章:

  • 网络安全的攻防战争
  • LLaMA-Factory 单卡3080*2 deepspeed zero3 微调Qwen2.5-7B-Instruct
  • nginx自定义错误日志
  • K8s 节点 NotReady 后 Pod的变化
  • Mybatis-plus-Join--分页查询
  • 电子应用设计方案-63:智能升降茶几系统方案设计
  • opencv sdk for java中提示无stiching模块接口的问题
  • 鸿蒙Next自定义组件的布局
  • 数据结构顺序表和链表
  • 【21天学习AI底层概念】day8 什么是类意识?
  • Linux 下的 GPT 和 MBR 分区表详解
  • Qt Quick:CheckBox 复选框
  • 无人机+自组网+飞手:低空集群飞行技术详解
  • Angular学习路线图
  • skyler实战渗透笔记—Kioptrix-1
  • 【算法】栈
  • 配置TypeScript:tsconfig.json详解
  • Ubuntu上如何部署Nginx?
  • 中国人工智能学会技术白皮书
  • FPGA设计-使用 lspci 和 setpci 调试xilinx的PCIe 问题
  • 【libuv】Fargo信令1:client发connect消息给到server
  • 利用DnslogSqlinj工具DNSlog注入
  • 指令-v-for的key
  • 《 OpenCV 环境搭建》
  • 笔记本电脑需要一直插着电源吗?电脑一直充电的利弊介绍
  • 亚矩阵云手机