工业大数据分析算法实战-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的目标就是从这两个麦克风的信号中分离出“音乐”、“对话”和“环境噪音”这三个独立的信号。
实现方式
- 假设信号是线性混合的:假设每个录音信号都是多个独立信号按某种方式(加权)混合而成。
- 寻找独立成分:算法通过数学运算来找到那些统计上“独立”的成分。什么叫“独立”?简单来说,独立意味着一个信号的变化不会受到其他信号的影响。
- 优化过程:通过优化算法(例如最大化信号的非高斯性,非高斯性意味着信号的分布不像钟形曲线),ICA逐步调整,最终找出每个源信号。
具体流程
- 输入信号:首先,你有多个混合信号(比如2个麦克风录到的信号)。
- 假设信号是线性混合的:假设每个信号是不同源信号的加权和。
- 寻找解混矩阵:通过优化算法,找到一个矩阵,能把混合信号还原成独立的源信号。
- 输出独立信号:通过矩阵变换,恢复出每个独立的源信号。
慢特征分析(SFA)
核心思想是从时间序列数据中提取那些变化最慢的特征。SFA试图找到在时间上变化最慢的信号成分,即能够最好地反映系统长期动态变化的特征。
例子:假设观察一个工厂的生产数据,每个设备的温度随着时间不断变化。SFA的目标是找出那些“变化慢”的特征。比如,如果某个设备的温度变化很小,那它可能就是系统的“稳定”特征,而其他温度变化剧烈的设备可能代表了“短期变化”的特征。
实现方式
- 信号的慢变化:假设信号是一个随时间变化的过程。SFA通过找到那些“变化最慢”的特征,来提取出系统的长期行为模式。
- 非线性变换:SFA通过对信号进行非线性变换,找出那些在时间上变化最慢的特征。
- 优化目标:SFA的优化目标是尽量让这些特征在时间维度上变化缓慢,换句话说,找到那些“平稳”的特征。
具体流程
- 输入时序数据:你有一组随时间变化的数据。
- 非线性变换:将这些数据通过非线性变换映射到一个新的空间。
- 寻找慢变化特征:在新的空间中,找到那些时间上变化最慢的特征。
- 输出慢特征:这些“慢特征”就代表了数据中变化最小、最稳定的部分。
压缩感知(CS)
传统的信号采样理论(如奈奎斯特采样定理)认为,要准确重建一个信号,必须按照信号的带宽(频率)进行足够高的采样率。比如,要从一个音频信号中恢复原始音频,我们通常需要每秒采样上千次(比如44.1kHz的采样率),这样才能得到比较准确的音频重建。然而,压缩感知的核心思想是:如果信号是稀疏的(即信号中只有少数几个重要的成分,其他的部分可以忽略),那么就可以用远低于传统奈奎斯特定理要求的采样率来采样信号,而不损失太多信息。
核心思想:信号的稀疏性与重建
- 稀疏性(Sparsity):
一个信号如果在某个变换域(如频域、波let域等)下大部分系数为零或者接近零,只有少数几个非零系数,则称它是“稀疏的”。例如,很多自然图像在频域中是稀疏的,大多数频率分量的幅值非常小,只有少数几个频率成分对图像的形状和结构起主导作用。 - 压缩感知:
压缩感知的目标就是通过少量的线性测量(采样)来捕捉信号中的稀疏成分。也就是说,即使你没有按照传统的方法对信号进行全量采样,你依然能够通过数学算法从这些少量的数据中恢复出原始信号。
流程
- 信号的稀疏表示:首先,我们假设信号在某个变换域(如频域、小波域等)下是稀疏的,也就是说信号的主要信息可以用少数几个值来表示。例如,对于一幅图片,可能只有少数几个像素或者波形的频率成分是“重要”的,其他成分可以忽略。
- 采样过程:与传统的“逐点采样”不同,压缩感知通过少量的随机线性测量来获得信号。通过随机矩阵乘以信号的稀疏表示,得到一个低维的观测值,这些观测值本身并不能直接恢复信号,但包含了信号的关键信息。
- 重建过程:通过优化算法(如最小化L1范数)来从这些少量的测量数据中恢复出信号的稀疏成分。常见的优化算法包括基于梯度下降的优化算法,其目标是找到一个稀疏解,即尽可能少的非零值来重建信号。
总的来说CS算法主要目的时信号压缩,以降低信号传输负荷,在图像修改、计算图像学、图像合成等场景,在故障诊断分析中,CS算法主要用来:1、用CS重构后的信号作为分类算法的输入,这是CS作用就是滤波器;2、用CS压缩后的信号作为分类算法的输入,CS的作用就是降维。