请求高人解答matlab小波包降噪问题,急急急,,,,,

请求高人解答matlab小波包降噪问题,急急急,,,,,,第1张

按照你上面的代码,a3 dd3 dd2 dd1是应该都为行向量,它们的长度a3和dd3长度相等,dd2约等于其一倍,dd1又是dd2的约一倍左右,c1=[a3 dd3 dd2 dd1]是4个行向量按顺序依次组成总小波系数数渣祥岁组,这代码没啥问题,waverec和wavedec函数都是依靠CL组构的,它对C处理没啥难以理解的,L数组存放的就是a3 dd3 dd2 dd1长度值,靠他在C中取出最高阶的a和其他各阶的d,a和d的小波系数本来就不如睁等长,这样才能实现DWT理论中各层分解中小波函数伸长的效果。就是因为它们不等长,用元胞数组 *** 作太麻烦,所以才把系数宴余混排成一行,再加一个长度数组L共同 *** 作来访问数据。所以不知道你对这有啥疑问?

s %自己定义

%画出原始信号

subplot(221)

plot(s)

title('原始信号')

ylabel('幅值A'御粗铅)

%用db3小波对信号进行3层分解并提取系数

[c,l]=wavedec(s,3,'db3')

a3=appcoef(c,l,'db3',3)

d3=detcoef(c,l,3)

d2=detcoef(c,l,2)

d1=detcoef(c,l,1)

%强制消噪处理

dd3=zeros(1,length(d3))

dd2=zeros(1,length(d2))

dd1=zeros(1,length(d1))

c1=[a3 dd3 dd2 dd1]

s1=waverec(c1,l,'db3')

subplot(222)

plot(s1)

title('镇好强制消噪信号')

%默认阈值凳颤进行消噪

%用ddencmp函数获得信号的默认阈值

[thr,sorh,keepapp]=ddencmp('den','wv',s)

s2=wdencmp('gbl',c,l,'db3',3,thr,sorh,keepapp)

subplot(223)

plot(s2)

title('默认阈值消噪')

xlabel('样本序号n')

ylabel('幅值A')

%用给定的软阈值进行消噪

softd1=wthresh(d1,'s',1.465)

softd2=wthresh(d2,'s',1.823)

softd3=wthresh(d3,'s',2.768)

c2=[a3 softd3 softd2 softd1]

s3=waverec(c2,l,'db3')

subplot(224)

plot(s3)

title('给定软阈值消噪')


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12402312.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存