理解小波变换

小波变换理解

  • 引言
    最近在微信公众号算法、数学之美上看到一篇讲解小波变换的文章,写的通俗好理解,深受启发,结合自身理解,简单总结如下:傅里叶变换 --> 短时傅里叶变换 --> 小波变换。
  • 傅里叶变换
    fft参考书籍太多了,不展开细致说明,简单说一下fft的不足。既然fft可以用来分析信号的频率成分,为什么还要提出小波变换?
    答案是对于非平稳过程,傅里叶变换有局限性。例子如下:
% demo 1
clc;
fs = 1000;
t = 0:1/fs:1;
f1 = 10;f2 = 25; f3 = 50;f4 = 100;
xt = cos(2*pi*f1.*t)+cos(2*pi*f2.*t)+cos(2*pi*f3.*t)+cos(2*pi*f4.*t);
subplot 211
plot(xt,'k')
ft = fft(xt);
subplot 212
plot((0:length(xt)-1)*fs/length(xt),abs(ft),'k')
xlim([0 fs/2])

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J2MqlHVz-1680236602081)(null)]
做完fft后,可以清晰在频谱图上看到信号中的四个频率成分。
若频率随着时间变化,那fft会是怎样的结果?

% demo 2
t = 0:1/fs:1/4;
xt2  = [cos(2*pi*f1.*t) cos(2*pi*f2.*t) cos(2*pi*f3.*t) cos(2*pi*f4.*t)];
xt3  = [cos(2*pi*f4.*t) cos(2*pi*f3.*t) cos(2*pi*f1.*t) cos(2*pi*f2.*t)];
figure()
subplot 211
plot(xt2,'k')
ft2 = fft(xt2);
subplot 212
plot((0:length(xt2)-1)*fs/length(xt2),abs(ft2),'k')
xlim([0 fs/2])
title('demo1')
figure()
subplot 211
plot(xt3,'k')
ft3 = fft(xt3);
subplot 212
plot((0:length(xt3)-1)*fs/length(xt3),abs(ft3),'k')
xlim([0 fs/2])
title('demo2')

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J7oc6er9-1680236602092)(null)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mYRTfIeb-1680236602101)(null)]
从demo1和demo2上看,两者的时域波形明显不同,但是经过fft发现,从两者的频谱图上却非常一致,从频率图上无法区分他们,可见fft处理非平稳信号有着不足之处,它只能获取一段信号内总体上包含哪些频率成分,但是对于个成分出现的时刻并不知道,因此时域上相差巨大的信号,经fft可能频谱图是类似的。

  • 短时傅里叶变换
    既然傅里叶变换获得总体的频率成分,那若是用窗口截取一段段的信号分别fft,那不就知道频率随着时间变化的总体情况了吗?其实这就是stft。说的专业点就是,fft变化的核函数-正弦函数在时域内是无限的,fft是对信号在整个时间过程中的变化情况进行分析,在时域内是全局的,非局部的。如果将正弦函数乘以一个衰减很快的函数之后作为核函数以突出局部时间的信号特征,这种就是stft的思想。
    使用stft存在一个问题是我们应该用多宽的窗函数?
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gqan8qiX-1680236602049)(null)]
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7UIOhz49-1680236602267)(null)]
    窗太窄,窗口信号短,导致频率分析不够准确,频率分辨率差;窗太宽,时域上不够精细,时间分辨率低。这种现象可以用海森堡不确定性原理来进行解释。
    对于时变的非平稳信号,高频适合小窗口,低频适合大窗口。然而在实际变换中,窗口大小是固定的,在一次stft中窗口宽度不会变化,所以stft还是无法满足非稳态信号变化的频率需求。
  • 小波变换
    试着让窗口大小变化起来,多做几次stft不就可以了吗?是的,小波变换就有着同样的思路。不过,事实上小波并不是这么做的。小波变换并没有采取加窗的思想,更没有做fft。至于为什么不采用可变窗长的stft,可能是由于算法的冗余太严重,stft做不到正交化。
    小波变换的出发点和stft是不一样的,小波是直接将fourier变换的基给替换了——将无限长的三角函数替换成有限长的带衰减的小波基。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bh00hL0L-1680236602061)(null)]
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cPu0oCUN-1680236602257)(null)]
    从公式可以看出,不同于fourier变换,变量只有频率,小波变换有尺度a和平移t量两个变量。a控制小波函数伸缩,t控制平移。尺度对应于频率,平移对应时间。
    fourier变换得到一个频谱,小波变换可以得到一个时频谱。
  • 补充两个小波变换的优势
    1、对于突变信号。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ai4lLNjo-1680236602245)(null)]
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VJ4Cd7OA-1680236602072)(null)]
    2、小波可以实现正交化。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值