声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1078|回复: 4

[编程技巧] 请帮忙看一下小波消噪程序哪出错了?谢谢!

[复制链接]
发表于 2007-4-19 20:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
s=load('l1.txt');
subplot(221); plot(s);grid;
title('泄露信号');
   [c,l]=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',cdd3,cdd2,cdd1];% ca3'表示ca3的转置,这条语句表示把四个一维数组连接起来
                             %因此行数必须一致
  s1=waverec(c1,l,'db1');
  subplot(222); plot(s1);grid;
   title('强制消噪波形');
  [thr,sorh,keepapp]=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=[ca3',cd3soft,cd2soft,cd1soft];
   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=[ca3',cd3soft,cd2soft,cd1soft];
回复
分享到:

使用道具 举报

发表于 2007-4-19 20:59 | 显示全部楼层
c2=[ca3',cd3soft,cd2soft,cd1soft];


matlab已经给你提示了,就是上面的语句出错,你自己设置断点调试一下吧
 楼主| 发表于 2007-4-19 21:49 | 显示全部楼层
c1=[ca3',cdd3,cdd2,cdd1];% ca3'表示ca3的转置,这条语句表示把四个一维数组连接起来
                             %因此行数必须一致
   c2=[ca3',cd3soft,cd2soft,cd1soft];
为什么前面一句是对的,后面不行呢?
发表于 2007-4-19 21:59 | 显示全部楼层
cd3soft,cd2soft,cd1soft


请仔细检查以上三个变量的矩阵大小
发表于 2007-4-19 22:48 | 显示全部楼层
能把你的泄漏和正常的数据给我发一个么,:@D
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-24 15:21 , Processed in 0.060950 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表