Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2009-05-25, 21:55   #1
lhstslhsts
初级会员
 
注册日期: 2009-05-25
帖子: 1
声望力: 0
lhstslhsts 正向着好的方向发展
默认 帮我补充一下下面两个matlab程序使之能够连接到一起!

产生原始含噪信号程序:
t=0:0.001:2;
y=3*sin(100*pi*t)+0.1*sin(300*pi*t)+0.03*sin(500*pi*t)+0.01*sin(700*pi*t)+randn(size(t));
plot(y)

软阈值消噪程序:
[c,l]=wavedec(s,3,’db4’);
%使用小波“db4”对信号s进行3层分解,分解的系数存到数组c中,各层分解后长度存到数组l中
ca3=appcoef(c,l,’db4’,3);
%用小波“db4”分解系数[c,l]中提取第3层近似系数,为低频系数
cd1=detcoef(c,l,1);
%用小波“db4”分解系数[c,l]中提取第1层近似系数,为高频系数
cd2=detcoef(c,l,2);
%用小波“db4”分解系数[c,l]中提取第2层近似系数,为高频系数
cd2=detcoef(c,l,3);
%用小波“db4”分解系数[c,l]中提取第3层近似系数,为高频系数
sigma1=median(abs(cd1))/0.6745;
sigma2=median(abs(cd2))/0.6745;
sigma3=median(abs(cd3))/0.6745;
%计算sigma
d1=thselect(cd1,’sqtwolog’)*sigma1;
d2=thselect(cd2,’sqtwolog’)*sigma2;
d3=thselect(cd3,’sqtwolog’)*sigma3;
%应用sqtwolog规则计算各层阈值
cd1soft=wthresh(cd1,’s’,d1);
cd2soft=wthresh(cd2,’s’,d2);
cd3soft=wthresh(cd3,’s’,d3);
%各层采用软阈值消噪
c2=[ca3,cd3soft,cd2soft,cd1soft];
%重构信号

中间加一些例如定义自变量和函数调用的语句等,能使两个程序在matlab中结合到一起。
lhstslhsts 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 13:22


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.