小波变换之连续小波变换

小波变换

相比于STFT(短时傅里叶变化),小波变换可以改变窗口的大小,进而可以进一步分析出信号的高频突发特性,在现实生活中信号处理领域有着更广泛的应用。下面主要介绍了连续小波变换(cwt)和离散小波变换(dwt)。

连续小波变换(CWT)

小波函数

什么是小波?小波的含义,即为时间上衰减快,和傅里叶的正弦波相比要短。
一个典型的morlet小波如下图:
在这里插入图片描述
matlab有很多自带的小波函数,利用wavemngr(‘read’,1)可以进行小波的查看,利用waveinfo可以查看小波的相关信息。
在时间域上,可以通过小波在时间上的移动,逐一比较不同位置的窗口信号,得到小波系数,小波系数越大,则证明小波与该段信号的拟合程度越好。小波的波动性可以用复三角函数表达,小则用衰减函数表达,数学上把这种小称为有限支撑。即morlet小波的有限支撑是通过一个指数衰减函数实现的。复三角函数使其能分析频率(和原始信号乘积积分求极大值),衰减函数使其可以定位时间,它们加起来,才使得morlet小波可以用来做时频分析。
计算中用小波函数与该窗口信号的卷积,作为该窗口下的小波系数。窗口的长度和小波的长度是相同的。
在这里插入图片描述
在频率域上,通过拉伸或压缩小波的长度,来改变小波的长短和频率,实现不同频率下的小波系数。相应的,窗口长度也会随着小波长度变化。由于高频处小波被压缩,时间窗变窄,使得时间分辨率更高。
将不同频率下的小波系数组合起来,便得到了时频变换的小波系数图。
在这里插入图片描述
从图上可以看到,低频处频率分辨率要好于高频处的,但时域分辨率低频处比高频处差,小波时频图的特点为整体呈现高频处高而瘦,低频处矮而宽,也满足测不准原理
小波中,一般用尺度 s c a l e scale scale来衡量小波的频率 f f f,两者之间的转换关系为:
s c a l e ∗ f = F s ∗ ω c f scale∗f=F_s∗\omega c_f scalef=Fsωcf
公式中, F s F_s Fs代表信号的采样频率, ω c f \omega c_f ωcf为小波的中心频率(wave central freq),在matlab里可以用 centfrq(wavename) 来查询。

新版本小波函数的用法

[wt,f] = cwt(x,wname,fs)

使用例子为:

% 定义信号信息
fs=2^6;    %采样频率
dt=1/fs;    %时间精度
timestart=-8;
timeend=8;
t=(0:(timeend-timestart)/dt-1)*dt+timestart;
L=length(t);

z=4*sin(2*pi*linspace(6,12,L).*t);

%matlab自带的小波变换
%新版本
figure(1)
[wt,f,coi] = cwt(z,'amor',fs);
pcolor(t,f,abs(wt));shading interp

结果如下:
在这里插入图片描述

cwt的边缘效应与影响锥

cwt(z)

在这里插入图片描述
由于小波计算中,小波系数是利用窗口函数和小波卷积而来的,当窗口在信号的边缘时,窗口内会存在一部分没有信号。这时,matlab就把窗口内这部分不完整的信号补零处理,凑够长度。此时由于信号在边缘被强制补零,导致信号会失真,具体在时频图中表示为频率变宽,信号强度降低。严重的时候,甚至整个低频部分都会出现失真。这就是cwt的边缘效应。
为了确定边缘效应的影响,绘制出了一条影响曲线,曲线内部的信号影响小或者不受影响,曲线外部影响较大。曲线像一个锥形,高频处靠近两侧,低频处靠近中间,所以也被叫做影响锥。
在这里插入图片描述

cwt的重构——icwt

如果用的是matlab新版的默认小波,那么可以直接把cwt之后小波系数icwt即可得到时域信号值即可。

load mtlb;
wt = cwt(mtlb);
xrec = icwt(wt);
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值