matlab小波脊线,小波脊线提取,模极大值法。运行的结果不太对,代码有些地方我也没完全看懂...

本帖最后由 1393107100 于 2019-5-1 11:10 编辑

clear,clc

close all

%%%%%% 小波变换 %%%%%%%%%%%%%%%%

fs=1024;

t=1/fs:1/fs:1;

f1=100;f2=200;f3=300;

s=cos(2*pi*f1*t.*(t>=0&t<0.3))+2*cos(2*pi*f2*t.*(t>=0.3&t<0.8))+3*sin(2*pi*f3*t.*(t>=0.8&t<=1));

%s=cos(2*pi*f1*t);

figure(1);

plot(t,s,'b')

title('原始单频信号')

Y = awgn(s,6);%加高斯白噪声

subplot(412);

plot(t,Y,'r')

title('加信噪比为6的白噪声')

%%%%%%%%%%%%%%%%%小波时频图绘制 %%%%%%%%%%%%%%%%%%%%%

wavename='cmor4-4';    %%选用带宽参数和中心频率均为4 的复morlet小波

totalscal=256;          %尺度序列的长度,即scal的长度

fc=centfrq(wavename);%% 小波的中心频率

%%%%%%%%% 绘制时间域小波波形 %%%%%%%%%%%%%%%%%%%

cparam=2*fc*totalscal;%为得到合适的尺度所求出的参数

a=totalscal:-1:1;

scal=cparam./a;%得到各个尺度,以使转换得到频率序列为等差序列

coefs=cwt(Y,scal,wavename,1/fs);%求连续小波系数,小波系数coefs(系数是复数时要取模)

f=scal2frq(scal,wavename,1/fs);% 将尺度转换为频率.F = scal2frq(A,'wname',DELTA),该函数能将尺度转换为实际频率,其中A为尺度,wname为小波名称,DELTA为采样周期。

figure(2);

imagesc(t,f,abs(coefs)); %绘制色谱图

colormap(jet)

colorbar

xlabel('时间 t/s')

ylabel('频率 f/Hz')

title('小波时频图')

abs_coefs=abs(coefs).^2;%abs函数:数值的绝对值和复数的幅值,

bw=abs_coefs>=0.7*mean(mean(abs_coefs));%mean数组的均值.mean(A)如果A为矩阵,那么返回包含每列均值的行向量。

bw=bwlabel(bw);%在BW数组中,0代表黑背景,1代表白

for i=1:max(max(bw))

if length(find(bw==i))>1000

bw(find(bw==i))=-1;

end

end

bw=bwlabel(bw==-1);

figure(3)

imagesc (bw); title('脊线区域')

out=zeros(size(coefs));% 输出:大小为输入的矩阵大小,各元素的值为0

for i=1:max(max(bw))

out=out+local_maxima(abs_coefs,bw,i);%小波系数模局部极大值

end

out=out.*bw;

RIDGE=zeros(size(coefs));

for i=1:max(max(out))

[x,y]=find(out==i);

x=x(1:100:end);

if length(x)<3

break;

end

cs = spline(y(1:100:end),x);

%spline三次方样条数据插值

%pp = spline(x,y) 返回一个分段多项式结构体以用于 ppval 和样条实用工具 unmkpp

x_new=round(ppval(cs,y(1):y(end)));

x_new(find(x_new<=0))=1;

for i=1:length(x_new)

RIDGE(x_new(i),y(i))=1;

end

end

figure,imagesc (RIDGE);  title('脊线')

时频图.jpg

(22.45 KB, 下载次数: 2)

2019-5-1 11:10 上传

b4d287d1aacbf0cf95a77c41289acfe6.gif

c5006d1a5b4047f80d42a7082635a87b.gif

时频图

0ae81e0eabbb44ea0eb5945d5ee49317.png

脊线.jpg

(14.9 KB, 下载次数: 0)

2019-5-1 11:08 上传

b4d287d1aacbf0cf95a77c41289acfe6.gif

c5006d1a5b4047f80d42a7082635a87b.gif

脊线图

1a652eab74b772f7329f1424beab275d.png

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

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

相关文章

php json追加500错误,在composer.json中添加了一个git地址;composer update 报错

在composer.json中添加了一个git地址&#xff1b;composer update 报错&#xff0c;不知道是什么原因导致的&#xff0c;如图&#xff1a;问题补充&#xff1a;在BAE包里面添加composer.json 后 重新composer updateYour requirements could not be resolved to an installable…

java 解析gson_使用Java和Google GSON解析ESPN API

java 解析gson在我的第一篇文章中&#xff0c;我将解释如何解析ESPN API。 可以在http://developer.espn.com/docs上找到API文档。 首先&#xff0c;您需要请求一个API密钥&#xff0c;然后您可以开始查询REST API以检索JSON响应。 在下面的示例中&#xff0c;我将简单查询在英…

matlab曲线拟合 最低点,Matlab曲线拟合 最小二乘法 polyfit【转】

曲线拟合已知离散点上的数据集 &#xff0c;即已知在点集 上的函数值 &#xff0c;构造一个解析函数(其图形为一曲线)使 在原离散点 上尽可能接近给定的值&#xff0c;这一过程称为曲线拟合。最常用的曲线拟合方法是最小二乘法&#xff0c;该方法是寻找函数 使得 最小。MATLAB函…

多元统计分析matlab,MATLAB的统计工具箱中的多元统计分析中提供了聚类分析的两种方法...

MATLAB的统计工具箱中的多元统计分析中提供了聚类分析的两种方法&#xff1a;1.层次聚类hierarchical clustering2.k-means聚类这里用最简单的实例说明以下层次聚类原理和应用发法。层次聚类是基于距离的聚类方法&#xff0c;MATLAB中通过pdist、linkage、dendrogram、cluster等…

如何在线程“ main”中修复异常java.lang.NoClassDefFoundError:Java中的org / slf4j / LoggerFactory...

此错误表示您的代码或您在应用程序中使用的任何外部库都在使用SLF4J库 &#xff08;一个开放源代码日志记录库&#xff09;&#xff0c;但无法找到所需的JAR文件&#xff0c;例如slf4j-api-1.7.2.jar因此它是在线程“ main” java.lang.NoClassDefFoundError&#xff1a; org/s…

sin查找表 matlab,利用Xilinx中的ROM构造查找表来计算sin和cos的方法探讨

1.使用matlab制作.coe文件查找表的构造构造256点的正余弦表exp(-j*2*pi*(0:255)/256)&#xff0c;分别得到 cos和sin的查找表matlab代码: 求sinfid fopen(sin.txt,a );str1 MEMORY_INITIALIZATION_RADIX10;;str2 MEMORY_INITIALIZATION_VECTOR;fprintf(fid,\t%s\n \t%s\n, s…

lucene使用3.0.3_使用Apache Lucene 4.3轻松进行搜索

lucene使用3.0.3Lucene是用Java编写的全文搜索引擎&#xff0c;可以为任何应用程序提供强大的搜索功能。 Lucene的核心是基于文件的全文本索引。 Lucene提供API创建该索引&#xff0c;然后向该索引添加和删除内容。 此外&#xff0c;它允许使用功能强大的搜索算法从该索引中搜索…

Java124 0,AcWing 124. 数的进制转换java

package acwing寒假每日一题;import java.io.BufferedInputStream;import java.util.*;public class TransNumber {public static void main(String[] args) {Scanner in new Scanner(new BufferedInputStream(System.in));//n次操作int n in.nextInt();//输入字符串&#xf…

php提取pdf首页图片,pdf图片怎么提取

pdf图片的提取方法&#xff1a;首先用极速PDF阅读器打开文档&#xff1b;然后在图片处单击鼠标右键并选择“复制图片”&#xff0c;这时就可以粘贴发送了。本文操作环境&#xff1a;Windows7系统&#xff0c;Microsoft Office PowerPoint2020版本&#xff0c;Dell G3电脑。pdf图…

dlopen linux 实例_Linux静态库和动态库

库从本质上来说是一种可执行代码的二进制格式&#xff0c;可以被载入内存中执行。库分静态库和动态库两种。 静态库和动态库的区别1. 静态函数库这类库的名字一般是libxxx.a&#xff1b;利用静态函数库编译成的文件比较大&#xff0c;因为整个 函数库的所有数据都会被整合进目标…

Neo4j:Cypher – Neo.ClientError.Statement.TypeError:不知道如何添加Double和String

我最近将支持Neo4j的应用程序从Neo4j 3.2升级到Neo4j 3.3&#xff0c;发现围绕类型强制的行为发生了有趣的变化&#xff0c;导致我的应用程序抛出了很多错误。 在Neo4j 3.2和更早版本中&#xff0c;如果将String添加到Double&#xff0c;它将把Double强制转换为String并连接值…

php7 php5.6 array,[转]php5.6 升级到php7及变化

不向后兼容的变更错误和异常处理相关的变更在 PHP 7 中&#xff0c;很多致命错误以及可恢复的致命错误&#xff0c;都被转换为异常来处理了。 这些异常继承自 Error 类&#xff0c;此类实现了 Throwable 接口 (所有异常都实现了这个基础接口)。这也意味着&#xff0c;当发生错误…

python 在末尾增加一个字符串,python - Python File.write在末尾添加额外的字符串 - SO中文参考 - www.soinside.com...

我正在使用python(3.6)更新文本文件&#xff0c;并打开r with open(f.play, r) as f2:play f2.read()result manipulate(play)print(result)f2.seek(0, 0)f2.write(result)通过这样做&#xff0c;我得到了意外的结尾部分ap:Envelope>当然&#xff0c;多余的部分是在第一次…

反射setaccessible_advancedday16类加载器,反射

加载配置文件在src目录下创建一个config.properties配置文件&#xff0c;使用类加载器加载配置文件。//创建集合Properties propertiesnew Properties();//获取src目录下&#xff0c;配置文件的流InputStream in ClassLoader.getSystemClassLoader() .getResourceAsStream(…

eventbus多个订阅_番石榴的EventBus –简单的发布者/订阅者

eventbus多个订阅在查看Google的Guava库版本10的最新添加内容时&#xff0c;我注意到EventBus的添加。 这是发布-订阅样式消息传递系统的轻量级实现。 这类似于JMS提供的发布-订阅模型&#xff0c;但是消息保留在应用程序内&#xff0c;而不是在外部广播。 EventBus允许您在程…

python 字段升序,python 根据两个字段排序, 一个升序, 一个降序

SSL双向认证java实现&lpar;转&rpar;本文通过模拟场景,介绍SSL双向认证的java实现 默认的情况下,我认为读者已经对SSL原理有一定的了解,所以文章中对SSL的原理,不做详细的介绍. 如果有这个需要,那么通过GOOGLE,可以搜索到很 ...List和Tuple类型list列表,list是一种有序的…

元气骑士如何获得机器人成就皮肤_元气骑士:机器人成就皮肤该怎么获得?百场老机器人教你走位...

【元气骑士我最行&#xff0c;不爱红武爱老云】各位亲爱的读者大家好&#xff0c;我是百场老机器老云。自从《元气骑士》更新出了特典皮肤之后&#xff0c;众多玩家开始了自己的成就之旅。有很多老玩家能够轻松完成这些成就&#xff0c;但是对于不少接触这款游戏不久的玩家来说…

Elasticsearch –使用模式替换过滤器和自定义分析器忽略查询中的特殊字符

使用Elasticsearch 5&#xff0c;我们有一个字段&#xff0c;例如驾驶执照编号&#xff0c;其中的值可能包含特殊字符&#xff0c;并且由于用户在有限的验证范围内输入了值&#xff0c;因此值的大小写不一致。 例如&#xff0c;这些是假设值&#xff1a; CA-123-456-789 WI.1…

python代码编程软件_编程与编程软件(python-pycharm)

课程安排编辑语言之python数据库软件之mysql今日内容概要编程与编程语言计算机存储内部工作原理编程语言的发展史解释型语言与编译型语言python解释器版本及下载安装编写python程序的编辑器(提升编码效率)变量的概念变量名的命名规范变量名的书写风格今日内容详细编程与编程语言…

基于matlab的语音信号,科学网—[转载]【信息技术】【2014.06】【含源码】基于MATLAB的语音信号处理与分析 - 刘春静的博文...

本文为瑞典耶夫勒大学(作者&#xff1a;Nan Wu)的学士论文&#xff0c;共48页。语音传递是人类最重要、最有效、最常用的信息交流方式。语言是人类特有的特征&#xff0c;而人声是常用的工具&#xff0c;也是相互传递信息的重要途径。语音具有较大的信息容量。因此&#xff0c;…