在曲线图上最值和极值点位置进行适当标注

news2024/9/22 17:34:17

1、首先生成一组0-100的随机数,组内共有100个数据;

yy=randi([0,100],[1,100]);

2、求这组数据的功率谱密度,并绘图;

m=size(yy,2);    xdft = fft(yy);
% 计算功率谱密度
psd = (1/m) * abs(xdft).^2; x=1:m;
loglog(x,psd,'Linewidth',1.5);  grid on;

3、在图上分别标注功率谱密度的最值和某些极值

①[maxVal, maxIdx] = max(psd);  [minVal, minIdx] = min(psd);  % 最值和对应的索引
text(x(1,maxIdx),maxVal, sprintf('%.2e',maxVal), 'HorizontalAlignment', 'center', 'VerticalAlignment', 'bottom',"FontSize",13)
text(x(1,minIdx),minVal, sprintf('%.2e',minVal), 'HorizontalAlignment', 'center', 'VerticalAlignment', 'bottom',"FontSize",13)

②[peaks1, locs1] = findpeaks(psd);  [peaks2, locs2]= findpeaks(-psd);  %极值和对应的索引
%%选出一些较为明显的极值进行标注
for ii=[1,2]
text(x(locs1(1,ii)),peaks1(1,ii), sprintf('%.2e',peaks1(1,ii)), 'HorizontalAlignment', 'center', 'VerticalAlignment', 'bottom',"FontSize",10);
end
for ii=[1,13]
text(x(locs2(1,ii)),-1*peaks2(1,ii), sprintf('%.2e',-1*peaks2(1,ii)), 'HorizontalAlignment', 'center', 'VerticalAlignment', 'bottom',"FontSize",10);
end 

 示例代码如下:

clearvars -except yy
close all;
yy=randi([0,100],[1,100]);
m=size(yy,2);  
xdft = fft(yy);
% 计算功率谱密度
psd = (1/m) * abs(xdft).^2;  x=1:m;
loglog(x,psd,'Linewidth',1.5);  grid on;
xlabel('Frequency (Hz)','Fontname','Time New Roman',"FontSize",15);
ylabel('PSD','Fontname','Time New Roman',"FontSize",15);
[maxVal, maxIdx] = max(psd);  [minVal, minIdx] = min(psd);  % 最值和对应的索引
text(x(1,maxIdx),maxVal, sprintf('%.2e',maxVal), 'HorizontalAlignment', 'center', 'VerticalAlignment', 'bottom',"FontSize",13)
text(x(1,minIdx),minVal, sprintf('%.2e',minVal), 'HorizontalAlignment', 'center', 'VerticalAlignment', 'bottom',"FontSize",13)
[peaks1, locs1] = findpeaks(psd);  [peaks2, locs2]= findpeaks(-psd);  %极值和对应的索引
%选出一些较为明显的极值进行标注
for ii=[1,2]
text(x(locs1(1,ii)),peaks1(1,ii), sprintf('%.2e',peaks1(1,ii)), 'HorizontalAlignment', 'center', 'VerticalAlignment', 'bottom',"FontSize",10);
end
for ii=[1,13]
text(x(locs2(1,ii)),-1*peaks2(1,ii), sprintf('%.2e',-1*peaks2(1,ii)), 'HorizontalAlignment', 'center', 'VerticalAlignment', 'bottom',"FontSize",10);
end

如有问题,欢迎随时联系交流!  多多点赞加倍支持,不甚感激😂😂😂

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

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

相关文章

恶意windows程序

Lab07-01.exe分析(DOS攻击) 1.当计算机重启后,这个程序如何确保它继续运行(达到持久化驻留)? 创建Malservice服务实现持久化 先分析sub_401040桉函数 尝试获取名为HGL345互斥量句柄,如果不存在则直接结束流程;如果存…

【设计模式】万字详解:深入掌握五大基础行为模式

作者:后端小肥肠 🍇 我写过的文章中的相关代码放到了gitee,地址:xfc-fdw-cloud: 公共解决方案 🍊 有疑问可私信或评论区联系我。 🥑 创作不易未经允许严禁转载。 姊妹篇: 【设计模式】&#xf…

主语部分、谓语部分、限定动词 (谓语动词) 和非限定动词 (非谓语动词)

主语部分、谓语部分、限定动词 {谓语动词} 和非限定动词 {非谓语动词} 1. 主语部分 (subject)1.1. Forms of the subject 2. 谓语部分 (predicate)2.1. Cambridge Dictionary2.2. Longman Dictionary of Contemporary English2.3. 谓语部分和谓语动词2.4. Traditional grammar …

240922-Ollama使用Embedding实现RAG

A. 最终效果 B. 文本分块代码 #%% from PyPDF2 import PdfReader from langchain.text_splitter import CharacterTextSplitterpdf_path 2023-LiuGuokai-Meas.pdf pdf_reader PdfReader(pdf_path) text "" for page in pdf_reader.pages:text page.extract_text…

2024年最新 Python 大数据网络爬虫技术基础案例详细教程(更新中)

网络爬虫概述 网络爬虫(Web Crawler),又称为网页蜘蛛(Web Spider)或网络机器人(Web Robot),是一种自动化程序或脚本,用于浏览万维网(World Wide Web&#xf…

(学习总结)STM32CubeMX HAL库 学习笔记撰写心得

STM32CubeMX学习笔记撰写心得 引言 在深入学习和实践STM32系列微控制器的开发过程中,我经历了从标准库到HAL库,再到结合STM32CubeMX进行项目开发的转变。这一过程中,我深刻体会到了STM32CubeMX在配置和代码生成方面的强大与便捷。为了检验自…

哈希简单介绍

1.直接定址法(值的分布范围集中) 比如统计字符串中字符出现的字数,字符范围是集中 2.除留余数法(值的分布范围分散) hashkey%n 哈希冲突:不同的值映射到相同的位置 解决哈希冲突的方案: 闭散…

抖音短视频矩阵系统OEM源码开发注意事项,功能开发细节流程全揭秘

抖音短视频矩阵系统OEM源码开发注意事项,功能开发细节流程全揭秘 在当今数字化时代背景下,短视频产业正经历前所未有的快速发展。其中,抖音凭借其创新的算法及多元内容生态获得巨大成功,吸引了众多用户。对于意欲进入短视频领域的创业者而言&…

【RocketMQ】一、基本概念

文章目录 1、举例2、MQ异步通信3、背景4、Rocket MQ 角色概述4.1 主题4.2 队列4.3 消息4.4 生产者4.5 消费者分组4.6 消费者4.7 订阅关系 5、消息传输模型5.1 点对点模型5.2 发布订阅模型 1、举例 以坐火车类比MQ: 安检大厅就像是一个系统的门面,接受来…

springboot地方特色美食分享系统-计算机毕业设计源码02383

摘要 本论文主要论述了如何使用SpringBoot技术开发一个地方特色美食分享系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论述地方特色美食分享系统的当前背景以…

数据结构与算法——Java实现 8.习题——移除链表元素(值)

祝福你有前路坦途的好运,更祝愿你能保持内心光亮 纵有风雨,依然选择勇敢前行 —— 24.9.22 203. 移除链表元素 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 示…

uniapp 微信小程序 订阅消息功能实现

该网址 https://api.weixin.qq.com 上线后不可访问,调用该网址操作需在后端( 重要! 重要! 重要!) 1.首先拿到的三个码 //微信公众平台 //https://mp.weixin.qq.com const wxappid "管理-开发管理-A…

手机号归属地查询-运营商归属地查询-手机号归属地信息-运营商手机号归属地查询接口-手机号归属地

手机号归属地查询接口是一种网络服务接口,它允许开发者通过编程方式查询手机号码的注册地信息。这种接口通常由第三方服务提供商提供,并可通过HTTP请求进行调用。以下是一些关于手机号归属地查询接口的相关信息: 1. 接口功能 归属地查询&am…

51单片机——矩阵键盘

一、矩阵键盘原理图 我们发现: P17,P16,P15,P14控制行, P13,P12,P11,P10控制列。 所以我们如果要选择第四列,只需要把整个P1先给高电位1,再把P10给低电位0。 二、代码 P10xFF; P100; if(P170){Delay(20);while(P170);Delay(20);KeyNum…

EasyExcel根据模板生成excel文件【xls、xlsx】

1、简介 如下图所示,template目录下是准备好的模板,export目录下是生成数据文件。我们这里以第一个模板《theUser蒸汽历史数据.xls》为例进行测试,theUser为占位符,生成的文件中会被替换成对应的用户名。 我这里的代码逻辑是根据…

[Linux]:信号(下)

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:Linux学习 贝蒂的主页:Betty’s blog 1. 信号的阻塞 1.1 基本概念 信号被操作系统发送给进程之后,进程…

语言模型的在线策略提炼:从自我错误中学习

原论文:On-Policy Distillation of Language Models: Learning from Self-Generated Mistakes 摘要 知识蒸馏(KD)被广泛用于通过训练较小的学生模型来压缩教师模型,以降低推理成本和内存占用。然而,当前用于自回归序…

【笔记】材料分析测试:晶体学

晶体与晶体结构Crystal and Crystal Structure 1.晶体主要特征 固态物质可以分为晶态和非晶态两大类,分别称为晶体和非晶体。 晶体和非晶体在微观结构上的区别在于是否具有长程有序。 晶体(长程有序)非晶(短程有序&#xff09…

Selenium4.0实现自动搜索功能

01.Selenium4.0实现搜索功能 1.安装Selenium及查看Selenium版本 pip install selenium pip show seleniumfrom selenium import webdriver from chromedriver_py import binary_path import time from selenium.webdriver.common.by import By from selenium.webdriver.commo…

postman控制变量和常用方法

1、添加环境: 2、环境添加变量: 3、配置不同的环境:local、dev、sit、uat、pro 4、 接口调用 5、清除cookie方法: 6、下载文件方法: