matlab中select,[转载]MATLAB阈值获取函数ddencmp、thselect、wbmpen和w

crit(t)

wdcbm的调用格式有以下两种:

(1)[THR,NKEEP]=wdcbm(C,L,ALPHA);

(2)[THR,NKEEP]=wdcbm(C,L,ALPHA,M);

函数wdcbm是使用Birge-Massart算法获取一维小波变换的阈值。返回值THR是与尺度无关的阈值,NKEEP是系数的个数。[C,L]是要进行压缩或消噪的信号在j=length(L)-2层的分解结构;LAPHA和M必须是大于1的实数;THR是关于j的向量,THR(i)是第i层的阈值;NKEEP也是关于j的向量,NKEEP(i)是第i层的系数个数。一般压缩时ALPHA取1.5,去噪时ALPHA取3.

2.信号的阈值去噪

MATLAB中实现信号的阈值去噪的函数有wden、wdencmp、wthresh、wthcoef、wpthcoef以及wpdencmp。下面对它们的用法作简单的介绍。

函数wden的调用格式有以下两种:

(1)[XD,CXD,LXD]=wden(X,TPTR,SORH,SCAL,N,'wname')

(2)[XD,CXD,LXD]=wden(C,L,TPTR,SORH,SCAL,N,'wname')

函数wden用于一维信号的自动消噪。X为原始信号,[C,L]为信号的小波分解,N为小波分解的层数。

THR为阈值选择规则:

*TPTR='rigrsure',自适应阈值选择使用Stein的无偏风险估计原理。

*TPTR='heursure',使用启发式阈值选择。

*TPTR='sqtwolog',阈值等于sqrt(2*log(length(X))).

*TPTR='minimaxi',用极大极小原理选择阈值。

SORH是软阈值或硬阈值的选择(分别对应's'和'h')。

SCAL指所使用的阈值是否需要重新调整,包含下面三种:

*SCAL='one' 不调整;

*SCAL='sln' 根据第一层的系数进行噪声层的估计来调整阈值。

*SCAL='mln' 根据不同的噪声估计来调整阈值。

XD为消噪后的信号,[CXD,LXD]为消噪后信号的小波分解结构。格式(1)返回对信号X经过N层分解后的小波系数进行阈值处理后的消噪信号XD和信号XD的小波分解结构[CXD,LXD]。格式(2)返回参数与格式(1)相同,但其结构是由直接对信号的小波分解结构[C,L]进行阈值处理得到的。

函数wdencmp的调用格式有以下三种:

(1)[XC,CXC,LXC,PERF0,PERFL2]=wdencmp('gbl',X,'wname',N,THTR,SORH,KEEPAPP);

(2)[XC,CXC,LXC,PERF0,PERFL2]=wdencmp('lvd',X,'wname',N,THTR,SORH);

(3)[XC,CXC,LXC,PERF0,PERFL2]=wdencmp('lvd',C,L,'wname',N,THTR,SORH);

函数wdencmp用于一维或二维信号的消噪或压缩。wname是所用的小波函数,gbl(global的缩写)表示每一层都采用同一个阈值进行处理,lvd表示每层采用不同的阈值进行处理,N表示小波分解的层数,THR为阈值向量,对于格式(2)和(3)每层都要求有一个阈值,因此阈值向量THR的长度为N,SORH表示选择软阈值或硬阈值(分别取值为's'和'h'),参数KEEPAPP取值为1时,则低频系数不进行阈值量化,反之,低频系数要进行阈值量化。XC是要进行消噪或压缩的信号,[CXC,LXC]是XC的小波分解结构,PERF0和PERFL2是恢复或压缩L^2的范数百分比。如果[C,L]是X的小波分解结构,则PERFL2=100*(CXC向量的范数/C向量的范数)^2;如果X是一维信号,小波wname是一个正交小波,则PERFL2=100||XC||^2/||X||^2。

函数wthresh的调用格式如下:

Y=wthresh(X,SORH,T)

Y=wthresh(X,SORH,T)

返回输入向量或矩阵X经过软阈值(如果SORH='s')或硬阈值(如果SORH='h')处理后的信号。T是阈值。

Y=wthresh(X,'s',T)返回的是Y=SIG(X)*(|X|-T)+,即把信号的绝对值与阈值进行比较,小于或等于阈值的点变为零,大于阈值的点为该点值与阈值的差值。

Y=wthresh(X,'h',T)返回的是Y=X*1(|X|>T),即把信号的绝对值和阈值进行比较,小于或等于阈值的点变为零,大于阈值的点保持不变。一般来说,用硬阈值处理后的信号比用软阈值处理后的信号更粗糙。

函数wthcoef的调用格式下面四种:

(1)NC=wthcoef('d',C,L,N,P)

(2)NC=wthcoef('d',C,L,N)

(3)NC=wthcoef('a',C,L)

(4)NC=wthcoef('t',C,L,N,T,SORH)

函数wthcoef用于一维信号小波系数的阈值处理。

格式(1)返回小波分解结构[C,L]经向量N和P定义的压缩率处理后的新的小波分解向量NC,[NC,L]构成一个新的小波分解结构。N包含被压缩的细节向量,P是把较小系数置0的百分比信息的向量。N和P的长度必须相同,向量N必须满足1<=N(i)<=length(L)-2。

格式(2)返回小波分解结构[C,L]经过向量N中指定的细节系数置0后的小波分解向量NC。

格式(3)返回小波分解结构[C,L]经过近似系数置0后的小波分解向量NC。

格式(4)返回小波分解结构[C,L]经过将向量N作阈值处理后的小波分解向量NC。如果SORH=’s‘,则为软阈值;如果SORH='h'则为硬阈值。N包含细节的尺度向量,T是N相对应的阈值向量。N和T的长度必须相等。

函数wpdencmp的调用格式有以下两种:

(1)[XD,TREED,PERF0,PERFL2]=wpdencmp(X,SORH,N,'wname',CRIT,PAR,KEEPAPP)

(2)[XD,TREED,PERF0,PERFL2]=wpdencmp(TREE,SORH,CRIT,PAR,KEEPAPP)

函数wpdencmp用于使用小波包变换进行信号的压缩或去噪。

格式(1)返回输入信号X(一维或二维)的去噪或压缩后的信号XD。输出参数TREED是XD的最佳小波包分解树;PERFL2和PERF0是恢复和压缩L2的能量百分比。PERFL2=100*(X的小波包系数范数/X的小波包系数)^2;如果X是一维信号,小波wname是一个正交小波,则PERFL2=100*||XD||^2/||X||^2。SORH的取值为's'或'h',表示的是软阈值或硬阈值。

输入参数N是小波包的分解层数,wname是包含小波名的字符串。函数使用由字符串CRIT定义的熵和阈值参数PAR实现最佳分解。如果KEEPAPP=1,则近似信号的小波系数不进行阈值量化;否则,进行阈值量化。

格式(2)与格式(1)的输出参数相同,输入选项也相同,只是它从信号的小波包分解树TREE进行去噪或压缩。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/271784.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Redis让单号从001递增

最近项目遇到一个需求&#xff0c;单号从001开始递增 下面用到了redis处理 代码如下&#xff1a; public String getId() {String key "providerManager";Long incr getIncr(key);if (incr 0) {incr getIncr(key);//从001开始}DecimalFormat df new DecimalF…

硬件知识:直接拔掉USB移动硬盘会对硬盘造成影响吗?

大家在网上经常可以看到直接拔掉移动硬盘会损坏硬盘的文章。如果说突然拔掉硬盘会造成丢失数据我还有一点相信&#xff0c;但是说会造成损坏硬盘感觉就会有些疑问了。难道USB设备在开始设计时&#xff0c;没有考虑到热插拔这个动作&#xff1f; 移动硬盘在通电工作时&#xff0…

php多个构造方法,php多构造器的实例代码

本节内容&#xff1a;php多构造器的类在php编程中&#xff0c;实例化一个类时&#xff0c;需要根据构造方法的参数个数进行初始化不用的内容&#xff0c;类似php函数或方法的可选参数。来看例子&#xff1a;复制代码 代码示例:/*** php 多构造器的类* by www.jbxue.com*/class …

硬件:显示器接口DP、HDMI、VGA、DVI有什么区别?

❤️作者主页&#xff1a;IT技术分享社区 ❤️作者简介&#xff1a;大家好,我是IT技术分享社区的博主&#xff0c;从事C#、Java开发九年&#xff0c;对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉&#xff1a; 数据库领域优质创作者&#x1f3c6;&#x…

判断2个list中是否有相同的数据(相交)Collections.disjoint

比较两个集合中是否有相同的元素&#xff0c;发现Collections类下的disjoint方法可以处理 Collections.disjoint() 代码如下: List<Integer> list3 new ArrayList<>(); list3.add(1); list3.add(1); list3.add(6); List<Integer> list4 new ArrayList<…

java 复杂验证码生成,java验证码生成种

java验证码生成类package cn.edu.pdsu.action;import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.image.BufferedImage;import java.util.Random;import javax.imageio.ImageIO;import javax.servlet.ServletOutputStream;import javax.se…

电脑硬件:蓝屏的常见解决方案

我们在使用电脑的时候经常会遇到电脑蓝屏的故障&#xff0c;这个可以算是电脑故障最频繁出现的一个了&#xff0c;今天给大家介绍一下电脑蓝屏常见的处理办法&#xff0c;希望能给大家带来一些 帮助&#xff01; 1、电脑蓝屏一般处理办法 1、先了解发生蓝屏前电脑的情况及所做的…

1、Canvas的基本用法

1、Canvas是什么&#xff1f; HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像。 画布是一个矩形区域&#xff0c;您可以控制其每一像素。 canvas 拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。 2、创建 Canvas 元素 规定元素的 id、宽度和高度&#xff1a; …

用lambda表达式实现Runnable

用lambda表达式实现Runnable lambda表达式替换了原来匿名内部类的写法&#xff0c;没有了匿名内部类繁杂的代码实现&#xff0c;而是突出了&#xff0c;真正的处理代码。最好的示例就是 实现Runnable 的线程实现方式了: 用() -> {}代码块替代了整个匿名内部类 Test public …

java弱引用怎么手动释放,十分钟理解Java中的弱引用,十分钟java引用

十分钟理解Java中的弱引用&#xff0c;十分钟java引用本篇文章尝试从What、Why、How这三个角度来探索Java中的弱引用&#xff0c;帮助大家理解Java中弱引用的定义、基本使用场景和使用方法。由于个人水平有限&#xff0c;叙述中难免存在不准确或是不清晰的地方&#xff0c;希望…

软件:推荐六款实用的录频软件

❤️作者主页&#xff1a;IT技术分享社区 ❤️作者简介&#xff1a;大家好,我是IT技术分享社区的博主&#xff0c;从事C#、Java开发九年&#xff0c;对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉&#xff1a; 数据库领域优质创作者&#x1f3c6;&#x…

安装 openSUSE Leap 42.1 之后要做的 8 件事

导读openSUSE Leap 确实是个巨大的飞跃&#xff0c;它允许用户运行一个和 SUSE Linux 企业版拥有同样基因的发行版。和其它系统一样&#xff0c;为了实现最佳的使用效果&#xff0c;在使用它之前需要做些优化设置。下面是一些我在我的电脑上安装 openSUSE Leap 之后做的一些事情…

Java8 Stream Collectors groupingBy使用

分组List并显示其总数。 Test public void test8() {//3 apple, 2 banana, others 1List<String> items Arrays.asList("apple", "apple", "banana","apple", "orange", "banana", "papaya");Map…

操作系统:分享10个经常用的cmd命令

电脑高手操作电脑时&#xff0c;通常都是在“运行”中直接输入“命令”来直接调出相应的操作。如果大家也想要像电脑高手一样&#xff0c;但是却又不知道“运行”命令有哪些&#xff1f;在这里&#xff0c;小编就为大家分享10个“运行”命令&#xff0c;让大家体验到成为电脑高…

matlab交叉耦合,交叉耦合矩阵综合问题

编程计算N阶耦合矩阵&#xff0c;基本都能算对&#xff0c;但是对于某些特殊参数会出现R1!RN&#xff0c;大家又出现类似的情况么&#xff1f;希望高手帮忙计算以下参数&#xff0c;看看是否能算出来。参数为ftz[-1.2i -1.4i 1.4i 1.2i -1.05i 1.05i];传输零点RL20;%带内回波N …

idea创建Package时出现包名累加,而不是树形结构解决方法

idea打开工程的时候包名叠在一起了 点击箭头处按钮,把第一第二行勾去掉 如下 最终效果

电脑键盘中英文按键有哪些?有什么作用?

对于电脑键盘&#xff0c;相信大家并不陌生&#xff0c;而在电脑键盘上面有着很多按键&#xff0c;除了数字按键和字母按键之外&#xff0c;还有很多看不懂的英文按键。那么这些英文按键是什么意思呢&#xff1f;如果并不了解&#xff0c;那么小编就为大家介绍所有英文按键的意…

在github中使用pages上传自己的网页

转载自&#xff1a;http://www.cnblogs.com/lijiayi/p/githubpages.html 学了前端小半年&#xff0c;如今写了个自己的网页想要去应聘&#xff0c;却发现部署很麻烦&#xff0c;部署到阿里云之类&#xff0c;买域名啊啥的还要收费&#xff0c;说贵也不贵&#xff0c;但我就是傲…

使用lamba中stream 进行分组统计

对一个list中的元素进行分组&#xff0c;并统计各个元素出现的次数。放入map<String,Long>。 代码如下: Test public void test8() {List<String> items Arrays.asList("1", "2", "3","4", "1", "3"…

php 表单select,表单控件select标签是如何使用的

表单控件select标签是用来创建下拉列表的&#xff0c;通过标签来定义可用选项以及其他属性来设置表单控件的选择个数等。今天将介绍的是HTML中的表单控件select的用法&#xff0c;具有一定的参考价值&#xff0c;希望对大家有所帮助。【推荐课程&#xff1a;HTML教程】select标…