200345084 发表于 2007-4-19 20:50

请帮忙看一下小波消噪程序哪出错了?谢谢!

s=load('l1.txt');
subplot(221); plot(s);grid;
title('泄露信号');
   =wavedec(s,3,'db1');
   ca3=appcoef(c,l,'db1',3);
   cd3=detcoef(c,l,3);
   cd2=detcoef(c,l,2);
   cd1=detcoef(c,l,1);
   cdd3=zeros(1,length(cd3));
   cdd2=zeros(1,length(cd2));
   cdd1=zeros(1,length(cd1));
   c1=;% ca3'表示ca3的转置,这条语句表示把四个一维数组连接起来
                           %因此行数必须一致
s1=waverec(c1,l,'db1');
subplot(222); plot(s1);grid;
   title('强制消噪波形');
=ddencmp('den','wv',s);%用ddencmp函数获得信号的默认阈值
thr=thr+7000;
   s2=wdencmp('gbl',c,l,'db1',3,thr,sorh,keepapp);%用默认阈值对信号进行消噪处理
   subplot(223); plot(s2);
   title('默认阀值消噪波形');grid;
   cd1soft=wthresh(cd1,'s',1000);%进行软阈值处理
   cd2soft=wthresh(cd2,'s',2000);%进行软阈值处理
   cd3soft=wthresh(cd3,'s',3000);%进行软阈值处理
   c2=;
   s3=waverec(c2,l,'db1');%一维多尺度小波重构,返回原信号
   subplot(224); plot(s3); grid;
   title('给定软阈值消噪后的信号');
   

运行后显示??? Error using ==> horzcat
All matrices on a row in the bracketed expression must have the
same number of rows.

Error in ==> xiaozao1 at 26
   c2=;

eight 发表于 2007-4-19 20:59

c2=;

matlab已经给你提示了,就是上面的语句出错,你自己设置断点调试一下吧

200345084 发表于 2007-4-19 21:49

c1=;% ca3'表示ca3的转置,这条语句表示把四个一维数组连接起来
                           %因此行数必须一致
   c2=;
为什么前面一句是对的,后面不行呢?

eight 发表于 2007-4-19 21:59

cd3soft,cd2soft,cd1soft

请仔细检查以上三个变量的矩阵大小

jimin 发表于 2007-4-19 22:48

能把你的泄漏和正常的数据给我发一个么,:@D
页: [1]
查看完整版本: 请帮忙看一下小波消噪程序哪出错了?谢谢!