一维平稳小波变换
本主题将带您了解使用小波工具箱™软件进行1-D离散平稳小波分析的特性。有关更多信息,请参阅非抽取离散平稳小波变换在小波工具箱用户指南.
工具箱为一维离散平稳小波分析提供了这些函数。有关函数的更多信息,请参阅参考页面。
Analysis-Decomposition功能
函数名 |
目的 |
---|---|
分解 |
Synthesis-Reconstruction功能
函数名 |
目的 |
---|---|
重建 |
平稳小波分解结构比小波分解结构更易处理。因此,对于平稳小波变换(SWT),对于小波情况有用的实用程序是不必要的。
在本节中,您将学习
加载信号
对信号进行平稳小波分解
根据系数构造近似和细节
在第1级显示近似值和细节
利用平稳逆小波变换重新生成信号
对信号进行多级平稳小波分解
重建三级近似
重建级别1、2和3的细节
重建1级和2级近似
显示分解的结果
从三级分解中重建原始信号
从信号中去除噪声
一维分析
这个例子涉及到一个有噪声的多普勒测试信号。
加载一个信号。
来自MATLAB®提示,输入
负载noisdopp
设置变量。类型
S =噪声dopp;
对于SWT,如果在级别上进行分解
k
是必要的,2 ^ k
必须把信号的长度均匀地分成。如果您的原始信号没有正确的长度,您可以使用wextend
函数来扩展它。执行单级平稳小波分解。
方法执行信号的单级分解
db1
小波。类型[swa,swd] = swt(s,1,'db1');
这将生成一级近似(swa)和细节(swd)的系数。两者与信号的长度相同。类型
谁
的名字 大小 字节 类 noisdopp
1 *
8192
双数组
年代
1 *
8192
双数组
swa
1 *
8192
双数组
社署
1 *
8192
双数组
显示近似系数和细节系数。
要显示第1级的近似系数和细节系数,键入
次要情节(1、2、1)、情节(swa);title('近似cfs') subplot(1,2,2), plot(swd);标题(“细节慢性疲劳综合症”)
用平稳逆小波变换对信号进行再生。
要找到逆变换,输入
A0 = iswt(swa,swd,'db1');
要检查完美的重建,键入
err = norm(s-A0) err = 2.1450e-14
构造并显示系数的近似值和细节。
要构造一级近似和细节(
A1
而且D1
)由系数swa
而且社署
、类型null cfs = 0(大小(swa));A1 = iswt(swa,nulcfs,'db1');D1 = iswt(nulcfs,swd,'db1');
要显示第1级的近似值和细节,键入
次要情节(1、2、1)、情节(A1);标题(“近似A1”);次要情节(1、2、2),图(D1);标题(“细节D1”);
执行多级平稳小波分解。
要在信号的第3级执行分解(再次使用
db1
小波),类型[swa,swd] = swt(s,3,'db1');
这将生成第1、2和3级的近似系数(
swa
)和各细节的系数(社署
).观察这些行swa
而且社署
与信号长度相同。类型清空A0 A1 D1 err nulcfs whos
的名字 大小 字节 类 noisdopp
1 *
8192
双数组
年代
1 *
8192
双数组
swa
3 x1024
24576
双数组
社署
3 x1024
24576
双数组
显示近似系数和细节系数。
若要显示近似系数和细节系数,请键入
KP = 0;对于I = 1:3 subplot(3,2,kp+1), plot(swa(I,:));标题([约。cfs水平”,num2str (i)])次要情节(3 2,kp + 2),图(社署(我,:));title(['Detail cfs level ',num2str(i)]) kp = kp + 2;结束
从系数中重建三级近似。
要重建第3级的近似,键入
m0 =零(大小(swd));A = m0;A(3,:) = iswt(swa, m0,'db1');
根据系数重构细节。
要重建级别1、2和3的详细信息,请键入
D = m0;对于I = 1:3 SWCFS = mzero;Swcfs (i,:) = swd(i,:);D(i,:) = iswt(m0,swcfs,'db1');结束
从第3级的近似值和第2级和第3级的详细信息重建和显示第1级和第2级的近似值。
要重建第2级和第3级的近似,键入
A(2,:) = A(3,:) + d (3,:);A(1,:) = A(2,:) + d (2,:);
要显示级别1、2和3的近似值和详细信息,请键入
KP = 0;for i = 1:3 subplot(3,2,kp+1), plot(A(i,:));标题([约。级别的,num2str (i)])次要情节(3 2,kp + 2),图(D(我,:));title(['Detail level ',num2str(i)]) kp = kp + 2;结束
去噪信号,使用
ddencmp
命令计算一个默认的全局阈值。使用wthresh
命令执行详细系数的实际阈值分割,然后使用iswt
命令获取去噪信号。请注意
在1-D离散小波变换情况下选择阈值的所有方法对1-D平稳小波变换也是有效的小波分析这对于二维变换也是成立的。
[thr,sorh] = ddencmp('den','wv',s);DSWD = wthresh(swd,sorh,thr);Clean = iswt(swa,dswd,'db1');
要显示原始信号和去噪信号,请键入
次要情节(2,1,1),图(s);标题('原始信号')subplot(2,1,2), plot(干净);标题(“去噪信号”)
得到的信号仍然有一点噪声。的分解可以改善结果年代
在第5级,而不是第3级,重复步骤14和15。要改进先前的去噪,请键入
[swa,swd] = swt(s,5,'db1');[thr,sorh] = ddencmp('den','wv',s);DSWD = wthresh(swd,sorh,thr);Clean = iswt(swa,dswd,'db1');次要情节(2,1,1),图(s);标题('原始信号')subplot(2,1,2), plot(干净);标题(“去噪信号”)
Lev = 5;SWC = swt(s,lev,'db1');Swcden = swc;swcden (1: end-1,:) = wthresh (swcden (1: end-1,:), sorh,刺);Clean = iswt(swcden,'db1');
您可以使用与上面第16步相同的plot命令来获得相同的plot。