找回密码
 注册
关于网站域名变更的通知
查看: 375|回复: 1
打印 上一主题 下一主题

matlab小波分析去噪详解

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-3-17 13:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
MATLAB和MathemaTIca、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
  [xd,cxd,lxd]=wden(x,tptr,sorh,scal,n,‘wname’)
  式中:
  输入参数x 为需要去噪的信号;
  1.tptr :阈值选择标准。
  1)无偏似然估计(rigrsure)原则。它是一种基于史坦无偏似然估计(二次方程)原理的自适应阈值选择。对于一个给定的阈值t,得到它的似然估计,再将似然t 最小化,就得到了所选的阈值,它是一种软件阈值估计器。
  2)固定阈值(sqtwolog)原则。固定阈值thr2 的计算公式为:thr 2log(n) 2 = (6)式中,n 为信号x(k)的长度。
  3)启发式阈值(heursure) 原则。它是rigrsure原则和sqtwolog 原则的折中。如果信噪比很小,按 rigrsure 原则处理的信号噪声较大,这时采用sqtwolog原则。
  4)极值阈值(minimaxi)原则。它采用极大极小原理选择阈值,产生一个最小均方误差的极值,而不 是没有误差。
  2.sorh :阈值函数选择方式,即软阈值(s) 或硬阈值(h)。
  3.scal :阈值处理随噪声水平的变化,scal=one 表示不随噪声水平变化,scal=sln 表示根据第一层小波分解的噪声水平估计进行调整,scal=mln 表示根据每一层小波分解的噪声水平估计进行调整。
  4.n 和wname 表示利用名为wname 的小波对信号进行n 层分解。输出去噪后的数据xd 及xd 的附加小波分解结构[cxd,lxd]。 常见的几种小波:haar,db,sym,coif,bior
用MATLAB对一语音信号进行小波分解,分别用强阈值,软阈值,默认阈植进行消噪处理。
  复制内容到剪贴板
  代码:
  %装载采集的信号leleccum.mat
  load leleccum;
  %=============================
  %将信号中第2000到第3450个采样点赋给s
  indx=2000:3450;
  s=leleccum(indx);
  %=============================
  %画出原始信号
  subplot(2,2,1);
  plot(s);
  [color=rgb(0, 66, 118) !important]TItle(‘原始信号’);
  %=============================
  %用db1小波对原始信号进行3层分解并提取系数
  [c,l]=wavedec(s,3,‘db1’);
  a3=appcoef(c,l,‘db1’,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,‘db1’);
  subplot(2,2,2); plot(s1);grid;
  [color=rgb(0, 66, 118) !important]TItle(‘强制消噪后的信号’);
  %=============================
  %用默认阈值对信号进行消噪处理并图示结果
  %用ddencmp函数获得信号的默认阈值
  [thr,sorh,keepapp]=ddencmp(‘den’,‘wv’,s); s
  2=wdencmp(‘gbl’,c,l,‘db1’,3,thr,sorh,keepapp);
  subplot(2,2,3); plot(s2);grid;
  [color=rgb(0, 66, 118) !important]TItle(‘默认阈值消噪后的信号’);
  %=============================
  %用给定的软阈值进行消噪处理
  sosoftd2=wthresh(d2,‘s’,1.823);
  softd3=wthresh(d3,‘s’,2.768);
  c2=[a3 softd3 softd2 softd1];
  s3=waverec(c2,l,‘db1’);
  subplot(2,2,4); plot(s3);grid;
  title(‘给定软阈值消噪后的信号’); f
  td1=wthresh(d1,‘s’,1.465);
& s# \" O/ a0 ^, M

该用户从未签到

2#
发表于 2020-3-17 17:35 | 只看该作者
看看matlab小波如何去噪详解。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-11 17:24 , Processed in 0.109375 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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