作为信号处理方向的一枚萌新,这篇文章主要介绍了信号分析上的一些应用,也是记录近一段时间学习心得,今天带来小波分析学习心得第二篇,能力一般,水平有限,希望道友和同好们和谐指正,共同交流学习、变得更强!
【看山是山】
在信号分解领域,经验模态分解(EMD)十分经典,它基于信号特征自动地将信号分解为一组有限数目的 IMF 分量,在处理非线性和非平稳信号方面表现尤为出色,得到了广大学者的青睐。
受此思想影响的其中就有小波的创始人之一Daubechies(2011年提出了同步压缩小波变换SSWT),和Jérôme Gilles(2013 年提出经验小波变换EWT)。
SSWT的主要思想是将小波变换的系数重新分配到估计的瞬时频率处。所以,同步压缩变换的核心是估计瞬时频率。利用小波变换后信号频域中相位不受尺度变换影响的特性求取各尺度下对应的频率,然后,把系数挤压到估计的瞬时频率处。SSWT可以提升时频聚集性,逼近理想的时频表示,不仅可以锐化时频表示,还能恢复信号,因此深受研究者的热爱。
EWT融合了 EMD 方法的自适应分解理念和小波变换理论的紧支撑框架(滤波器的长度),为信号处理提供了一种全新的自适应时频分析思路。相比于 EMD 方法,EWT 方法能够自适应选择频带,克服了由于信号时频尺度不连续引发的模态混叠问题;
二者都是应用数学届的大家,其理论具备完整可靠的数学理论基础,计算复杂度低。因此,SSWT和EWT在信号处理尤其是故障诊断领域逐渐受到欢迎。
先来看看它们在信号处理方面的表现力:
1. 时频分析
1.1. SSWT
1.2. EWT
1.3. CWT
1.4. STFT
close all; clear; clc
Fs = 1000;
t = 0:1/Fs:4;
x1 = sin(2*pi*50*t) + sin(2*pi*200*t);
x2 = sin(2*pi*25*t) + sin(2*pi*100*t) + sin(2*pi*250*t);
x = [x1 x2] + 0.1*randn(1,length(t)*2);
t1 = (0:length(x)-1)/Fs;
figure
subplot(211);plot(t1,x)
xlabel('Time (s)')
ylabel('Amplitude')
title('Signal')
f = 0:Fs/length(x):Fs-1/length(x);
subplot(212);
plot(f,abs(fft(x)),'k--','linewidth',1.5)
ylabel('Magnitude')
xlabel('Hz')
%---ewt
mp = 5;
[mra,~,wfb,info] = ewt(x,'MaxNumPeaks',mp);
figure;
hht(mra,Fs)
shading interp
xlabel("Seconds")
ylabel("Frequency (Hz)")
title("Empirical Wavelet Transform")
%---同步压缩
[sst,fss] = wsst(x,Fs);
figure;
pcolor(t1,fss,abs(sst))
shading interp
xlabel("Seconds")
ylabel("Frequency (Hz)")
title("Synchrosqueezed Transform")
%---小波变换
figure;
cwt(x,"bump",Fs)
%---加窗傅里叶
figure;
stft(x,Fs,Window=kaiser(256,5),OverlapLength=220,FFTLength=512)
小结:同步压缩变换SSWT的时频分析方法实现了对时频系数的压缩和重排,能够对复杂多分量信号实现高分辨率表达,较好地解决传统时频分析方法存在的时频模糊问题,从图上可以看出确实,提升非常明显。但是代价是什么?
经验小波变换EWT的时频分析,大部分表现都非常好,250Hz出现频域模糊,这是为什么呢?使用带有hht函数的MRA分量,绘制的希尔伯特谱。MRA分量即小波分量,会在下一章【看山不是山】详细分析。EWT可以用于时频分析,但是小汜觉得它在信号分解和重构上的功能更大。
2. 信号分解和重构
2.1. EWT
2.2. EEMD
小结:这就可以看出经验小波变换EWT信号分解的优越性了。EEMD也可以把信号分解出来,但是EWT可以将不同频域的信号单独拎出来,也解决了模态混叠问题,能够根据先验知识确定频带宽度,并将余弦信号完好地分解出来,抗噪声干扰能力强。这是因为经验小波被定义为傅里叶支持的每个片段上的带通滤波器,通过考虑被分析信号频谱中信息的位置来实现滤波器的自适应性。所以傅立叶谱的分割对于经验小波变换的适应性有重要意义,正如本节第一幅图所展示那样。关于分段的数量、它们之间的边界、过渡区域等会在下一章【看山不是山】详细分析。
这些方法都是著名和常用的方法,在matlab工具箱里直接调用就可以,而且官网网站的应用文档写的也非常详细。
Empirical wavelet transform - MATLAB ewt- MathWorks 中国
Wavelet synchrosqueezed transform - MATLAB wsst- MathWorks 中国
Continuous 1-D wavelet transform - MATLAB cwt- MathWorks 中国
Short-time Fourier transform - MATLAB stft- MathWorks 中国
【看山不是山】
要真正理解这一切,我们需要深入小波分析的数学原理。
1. SSWT:利用小波变换后信号频域中相位不受尺度变换影响的特性求取各尺度下对应的频率,再将同一频率下的尺度相加,从而将相同频率附近的值压缩至该频率中,使得时频谱中各频率曲线显现更为清晰和精确,从而提高时频分辨率,减少小波能量扩散带来的时频谱模糊的现象
第一步,SSWT建立在连续小波变换的基础上,可以参考这篇文章,简单贴一下原理:
,为小波基函数,a和b分别为尺度(频率)和平移参数(时间)。
第二步,相变换。
利用小波变换得到的小波系数,求取瞬时频率
(利用小波变换后信号频域中相位不受尺度变换影响的特性求取各尺度下对应的频率)可将时间-尺度平面(b,a)转换到时间-频率平面(b,)。
此时,SSWT将任意频率 周围区域的值压缩到 上,即同步压缩变换:
从而达到提高是与分辨率的目的,所以现在理解了1.1.里为什么时频图那么清晰的原因了。并且同步压缩小波变换是可逆的,可以重构信号。
同步压缩小波变换的时频分辨率更高,能量聚集性更高。一般通过瑞利熵来衡量时频表示的能量聚集性,但是对于真实信号这并不是合理的选择(不理解?)。
基于小波变换的同步压缩变换原理和Matlab代码-CSDN博客
2. EWT:经验小波变换通过对信号的 Fourier 谱自适应分割实现小波滤波器组
第一步,分割Fourier 谱。该方法在频谱f(w)上寻找M个局部极大值,并按降序排列,然后将它们对应的频率按升序排列后记为。假定 Fourier 支撑分割成 N个连续的部分,即N个子频带。设以 为中心的调幅调频分量所在的子频带为 , 其中, 。令 。
傅里叶支持被分割成连续的分段中灰色阴影区域? :是过渡阶段,宽度可由控制。
第二步,构造小波滤波器组。
经验小波被定义为每个小波上的带通滤波器,Jérôme Gilles利用了构造Littlewood-Paley和Meyer小波时所用的思想,经验尺度函数和经验小波函数分别为:
是一个Db定义的小波,的选择有讲究,决定了经验小波的盒属性。
高频成分由信号和经验小波函数内积得到;低频成分可通过求取信号和经验尺度函数内
积获得。这样就得到了小波各个分量,即小波系数MRA。
利用高频成分和低频成分可以重构原信号,也对应了2.1.里时域和频域图:
大量的实验证明了经验小波变换的有效性。
[1] GILLES J. Empirical Wavelet Transform[J/OL]. IEEE Transactions on Signal Processing, 2013, 61(16): 3999-4010.
[2] DAUBECHIES I, LU J, WU H T. Synchrosqueezed wavelet transforms: An empirical mode decomposition-like tool[J/OL]. Applied and Computational Harmonic Analysis, 2011, 30(2): 243-261.
【看山还是山】
啃完了这些硬菜,到这里俺们算是把EWT和SSWT的理论、思想和简单应用说明白了,虽然还有很多数理概念需要再细细思索。
回头想想,这已经十几年前的理论了,现在的信号处理和分析又是一番新景色,其应用也是目不暇接了,最火的方向还是和深度学习、神经网络结合,追求前沿(CengReDu)嘛。
之后小汜会结合故障诊断上的应用和大家交流分享。
也是督促自己可以在这条路上走得更远、更扎实!SALUTE!!!
--超前点映--