2017/4/22
本人在做小波分解处理信号中发现多数资料信号读进来只用了一个load,不知道load 的mat文件是一维向量还是二维矩阵(一维时间,一维时间响应),愤而读了帮助文档,虽然还没解决问题,不过翻译下来后思路清晰了很多。
waverec函数:多层1维小波重建
X = waverec(C,L,'wname')
X = waverec(C,L,Lo_R,Hi_R).
可利用特定小波函数(wname)也可利用特定重建滤波器组(低通Lo_R,高通Hi_R),从waverec(wavedec(X,N,'wname'),'wname')返回X的意义上来说,该函数是wavedec的逆函数。
注意 X = waverec(C,L,'wname')等于X = appcoef(C,L,'wname',0)
wavedec 多层1维小波分解
仅支持Type1:正交小波
Type2:双正交小波
[C,L] = wavedec(X,N,'wname') 延拓模式为0延拓
[C,L] = wavedec(X,N,Lo_D,Hi_D)
3层滤波分解例图.PNG
算法:
给一个长度为N的信号,DWT最多有log2 N阶。第一步由s开始,生成两个系数集合,近似系数CAi和细节系数CDi。这两个向量集合分别由s和低通滤波器Lo_D,高通滤波器Hi_D卷积得到(再降采样)
小波分解第一步示意图.PNG
其中:
第二步用相同模式分解CA
滤波器长度是2N,如果信号长度为n,信号F和G的长度是n+2N-1,系数CAi和CDi的长度为
floor((n+2N-1)/2)
Wmaxlev:计算最大小波分解层数
L=wmaxlev(S,’wname’)计算用wname小波分解信号(如s=2^10)或图像(大小为S,如s=[2^9,2^7])的最大分解层数,通常实际分解层数更小,通常一维信号5,二维图像为3
2017/4/23
实际应用时,matlab程序多以load开头,load进的这个signal不知是什么形式,vector还是matrix,我再处理时先对2列的信号矩阵第一列(时间)降采样得到x,再对第二列dwt,得到y,plot(x,y)不知是否是正确结果
2017/4/28
小波分解本身对于处理信号无意义,分解后得到的系数经过处理后再重建信号或图像才有分析价值。分解系数中的A无物理意义,直观看起来很像信号去噪的结果,常用的还是小波去噪,中间过程用阈值处理系数,有多种阈值选取的方法。