小波变换的前世今生

引言

最近这周的主要任务就是学习dwt,也就是离散小波变换,到现在也已经看了很多大佬的文章了,现在也基本理解了一些浅层次的东西,所以在此做一下记录。在此感谢知乎大佬咚懂咚懂咚的文章《如何通俗地讲解傅立叶分析和小波分析间的关系?》,真的写的非常非常非常好,大家也可以去看看。本文的很多内容也是基于该文章的,侵权就删,希望大家及时提醒
要说离散小波变换,就要说到小波变换,要说小波变换,就要说到傅里叶变换,所以本文也会按照傅里叶变换到小波变换再到离散小波变换的过程来展开。

傅里叶变换

傅立叶变换,表示能将满足一定条件的某个函数表示成三角函数(正弦和/或余弦函数)或者它们的积分的线性组合。傅立叶变换是一种分析信号的方法,它可分析信号的成分,也可用这些成分合成信号。许多波形可作为信号的成分,比如正弦波、方波、锯齿波等,傅立叶变换用正弦波作为信号的成分。
傅里叶原理表明:任何连续测量的时序或信号,都可以表示为不同频率的正弦波信号的无限叠加。而根据该原理创立的傅里叶变换算法利用直接测量到的原始信号,以累加方式来计算该信号中不同正弦波信号的频率、振幅和相位。傅里叶变换将原来难以处理的时域信号转换成了易于分析的频域信号(信号的频谱),可以利用一些工具对这些频域信号进行处理、加工。最后还可以利用傅里叶反变换将这些频域信号转换成时域信号。
下面我们使用简单的图来展示究竟傅里叶变换做了什么。

傅里叶变换

上图左侧是未经傅里叶变换的原始的时域信号,右侧是经过快速傅里叶变换后的频域信号,我们可以清晰的在频谱上面看到四条线,分别对应着信号的四个频率成分。而纵轴代表着信号的能量强度。这里似乎并看不出什么问题,这是因为我们使用的信号是频率不随时间变化的稳态信号,如果是频率随着时间变化的非平稳信号呢?会是下面这样的
傅里叶变换的问题

乍一看似乎没有什么问题,但是如果你仔细观察就会发现下面两个在时间上几乎倒置的信号,它们两个的频谱竟然非常一致甚至于几乎一模一样。这就导致我们无法从频谱上区分这两个信号,可见傅里叶变换处理非平稳信号有天生缺陷(至于为什么有这个缺陷涉及原理,大家感兴趣的话我可以下篇在写),它只能获取一段信号总体上包含哪些频率的成分,但是对各成分出现的具体时间却一无所知。所以傅里叶变换对平稳信号的处理效果很好,但是不幸的是我们需要处理的信号却大多是非平稳信号(我是这样的emmm),所以我们该怎么办呢?别急,STFT来了!!!

STFT(短时傅里叶变换)

为了解决傅里叶变换存在的问题,一个简单可行的办法被提出来了,那就是加窗。把整个时域过程分解成无数个等长的小过程,每个小过程近似平稳,再傅里叶变换变换,就知道再哪个时间点上出现了什么频率了,这就是短时傅里叶变换。
图示的效果应该更清晰。

原始信号

对上图所示信号在时域上分解为无数个可以将每段信号视为平稳信号的小段,然后做FFT,最后再拼接起来,不就得到频率成分随着时间的变化情况了吗?用这样的方法,我们可以得到上图所示信号的时频图。
时频图

大家第一次看到这个图可能会和我第一次看到一样有点懵逼,但是没关系,其实很简单。因为傅里叶变换的结果是对称的。我们进行计算或者是观察性质时只需要看单边即可。
好的,回到上图,我们可以顺着时间轴看过去可以发现有四段峰,也可以在频率轴上看到其对应的频率值,高度是对应的能量值。可见经过STFT我们不仅获得了信号的频率成分,还能看到各个成分出现的时间。这不是很好了吗?我们就可以万事大吉了?然而STFT依然有缺陷
使用STFT存在一个问题,我们应该使用多宽的窗函数?
窗太宽或者太窄都有问题。
窗太宰

窗太窄,可以覆盖的时间较少,频率分辨率较差。
窗太宽

窗太宽,覆盖的时间过长,时域上不够精细,时间分辨率较差。这个道理可以用不确定性定理来解释。就像我们不能同时获得一个粒子的动量和位置,我们也不能同时获取信号绝对精准的时刻和频率。具体的大家可以看下面几张图片。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

可以看到,用窄窗,时频图在时间轴上分辨率很高,几个峰基本成矩形,而用宽窗则变成了绵延的矮山。但是频率轴上,窄窗明显不如下边两个宽窗精确。所以窄窗口时间分辨率高、频率分辨率低,宽窗口时间分辨率低、频率分辨率高。对于时变的非稳态信号,高频适合小窗口,低频适合大窗口。然而STFT的窗口是固定的,在一次STFT中宽度不会变化,所以STFT还是无法满足非稳态信号变化的频率的需求

小波变换

千呼万唤始出来,已经到了小波变换了,离散小波变换还会远吗?
上面提到STFT的窗口是固定的,有人提出要用可变窗的STFT,多做几次,但是至于最后为什么没有用我也不太清楚,等我搞懂了再来告诉大家。有人说小波变换和STFT的思路差不多,其实不然,STFT是给信号加窗,分段做FFT;而小波直接把傅里叶变换的基给换了——将无限长的三角函数基换成了有限长的会衰减的小波基。这样不仅能够获取频率,还可以定位到时间了

小波变换

从公式可以看出,不同于傅里叶变换,变量只有频率ω,小波变换有两个变量:尺度a(scale)和平移量 τ(translation)。尺度a控制小波函数的伸缩,平移量 τ控制小波函数的平移。尺度就对应于频率(反比),平移量 τ就对应于时间。
在这里插入图片描述

当伸缩、平移到这么一种重合情况时,也会相乘得到一个大的值。这时候和傅里叶变换不同的是,这不仅可以知道信号有这样频率的成分,而且知道它在时域上存在的具体位置。而当我们在每个尺度下都平移着和信号乘过一遍后,我们就知道信号在每个位置都包含哪些频率成分。上述过程就是小波变换的整个过程,有了小波变换,非稳定信号也可以进行时频分析。
在这里插入图片描述

傅里叶变换

小波变换结果

但是小波变换就是完美的吗?也不是。如果按照小波变换要求的,时间和尺度都是连续变化的话,我们几乎不可能完成小波变换需要的计算,也就导致了DWT的产生(当然中间也有离散化的小波变换,这里咱们就不讲了,和DWT不一样)

DWT离散小波变换

CWT是不同尺度的小波与尺度(或频率)用来衡量相似度的信号之间的相关性。连续小波变换的计算方法是改变分析窗口的尺度,在时间上改变窗口,乘以信号,并对所有时间积分。在离散情况下,采用不同截止频率的滤波器对不同尺度的信号进行分析。信号通过一系列高通滤波器分析高频,通过一系列低通滤波器分析低频
首先我们定义一些需要用到的信号及滤波器。
x[n]:离散的输入信号,长度为N。
g[n]:low pass filter低通滤波器,可以将输入信号的高频部份滤掉而输出低频部份。
h[n]:high pass filter高通滤波器,与低通滤波器相反,滤掉低频部份而输出高频部份。
↓Q:downsampling filter降采样滤波器,如果以x[n]作为输入,则输出y[n]=x[Qn]。此处举例Q=2。

在这里插入图片描述

[图片上传失败...(image-abaa58-1604891462611)]
需要注意的是,即使是DWT,Scale和position是离散变化的,时间依然是连续的。DWT指的是将CWT中的尺度参数a和平移参数b离散化。DWT并没有将信号f(t)和小波ψ(t)中的时间变量t离散化

总结

写到最后才发现自己的理解还是差了很多意思,估计应该有很多不对的地方,欢迎大家多多批评指正一起学习,多谢。

你可能感兴趣的:(小波变换的前世今生)