马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
这是仿照课本写的程序
[normal,Fs,bits]=wavread('E:\心音信号\正常信号\正常信号',22000);
figure(1)
subplot(211)
plot(normal)
title('原信号')
[c,l]=wavedec(normal,3,'db1');%一维多尺度小波分解(3层)
a3=appcoef(c,l,'db1',3);%提取一维近似系数(第3层)
d3=detcoef(c,l,3);%提取一维细节系数(第3层)
d2=detcoef(c,l,2);%提取一维细节系数(第2层)
d1=detcoef(c,l,1);%提取一维细节系数(第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,'db1');%一维多尺度小波重构,返回原信号
subplot(212)
plot(s1)
title('强制消躁后信号')
[thr,sorh,keepapp]=ddencmp('den','wv',normal);%用ddencmp函数获得信号的默认阈值
s2=wdencmp('gb1',normal,'db1',3,thr,sorh,keepapp);%用默认阈值对信号进行消噪处理
figure(2)
subplot(211)
plot(s2)
softd1=wthresh(normal,'s',0.2);%进行软阈值处理
softd2=wthresh(normal,'s',0.3);%进行软阈值处理
softd3=wthresh(normal,'s',0.4);%进行软阈值处理
c2=[a3 softd1 softd2 softd2];
s3=waverec(c2,l,'db1');%一维多尺度小波重构,返回原信号
subplot(212)
plot(s3)
title('给定软阈值消噪后的信号')
运行时会出现错误:
Error using ==> horzcat
All matrices on a row in the bracketed expression must have the
same number of rows.
Error in ==> C:\Documents and Settings\xiaobaitu\桌面\lianxi.m
On line 14 ==> c1=[a3 dd3 dd2 dd1];
不明白是怎么回事。 |