matlab 峰值位置,在数据中查找峰值 - MATLAB Simulink - MathWorks 中国
在数据中查找峰值
使用 findpeaks 求出一组数据中局部最大值的值和位置。
文件 spots_num.mat 包含从 1749 年到 2012 年每年观测到的太阳黑子的平均数量。这些数据可以从美国国家航空航天局获得。
求出最大值及其出现的年份。将它们与数据一起绘制出来。
load('spots_num.mat')
[pks,locs] = findpeaks(avSpots);
plot(year,avSpots,year(locs),pks,'or')
xlabel('Year')
ylabel('Number')
axis tight
一些峰值彼此非常接近。有些峰值不会周期性重复出现。每 50 年大约有五个这样的峰值。
为了更好地估计周期持续时间,请再次使用 findpeaks,但这次将峰间间隔限制为至少六年。计算最大值之间的间隔均值。
[pks,locs] = findpeaks(avSpots,'MinPeakDistance',6);
plot(year,avSpots,year(locs),pks,'or')
xlabel('Year')
ylabel('Number')
title('Sunspots')
axis tight
legend('Data','peaks','Location','NorthWest')
cycles = diff(locs);
meanCycle = mean(cycles)
meanCycle = 10.8696
众所周知,太阳活动周期大约为 11 年。我们使用傅里叶变换来检验这一周期。减去信号的均值以重点关注其波动。采样率以年为单位。使用从零到 Nyquist 频率的频率。
Fs = 1;
Nf = 512;
df = Fs/Nf;
f = 0:df:Fs/2-df;
trSpots = fftshift(fft(avSpots-mean(avSpots),Nf));
dBspots = 20*log10(abs(trSpots(Nf/2+1:Nf)));
yaxis = [20 85];
plot(f,dBspots,1./[meanCycle meanCycle],yaxis)
xlabel('Frequency (year^{-1})')
ylabel('| FFT | (dB)')
axis([0 1/2 yaxis])
text(1/meanCycle + .02,25,['<== 1/' num2str(meanCycle)])
傅里叶变换确实在预期频率处出现峰值,证实了 11 年的估计值是准确的。您还可以通过定位傅里叶变换的最高峰值来求得周期。
[pk,MaxFreq] = findpeaks(dBspots,'NPeaks',1,'SortStr','descend');
Period = 1/f(MaxFreq)
Period = 10.8936
hold on
plot(f(MaxFreq),pk,'or')
hold off
legend('Fourier transform','1/meanCycle','1/Period')
这两个估计值非常吻合。
另请参阅
相关主题
matlab 峰值位置,在数据中查找峰值 - MATLAB Simulink - MathWorks 中国相关推荐
- matlab中s查找数据,在数据中查找信号
- MATLAB Simulink
- MathWorks 中国
查找精确匹配 当您要找到信号在数值上完全一致的匹配项时,您可以使用 strfind 来执行匹配. 例如,如果我们有如下数据向量: data = [1 4 3 2 55 2 3 1 5 2 55 2 3 ...
- 如何用matlab找出一组离散数据中的峰值
如何用matlab找出一组离散数据中的峰值 对于一组离散数据,我们经常需要找出其中的峰值,如下一组离散数据: x = [1 2 3 4 3 2 1 5 8 9 17 12 11 5 3 2 1 7 1 ...
- 使用Matlab提取ADC采样数据中的噪声
正常波形与噪声波形的区别 正常方波信号的特征:一个周期内的数据按时间单调变化,则仅有2种情况:① 数据在上升或下降边沿时,其两边的数据则是一边大一边小(如下图中C和D点):② 数据处于平稳时,则两边大 ...
- 腾讯位置大数据中区域热力图数据的数据解析
腾讯位置大数据中提供了位置流量趋势数据.区域热力图数据.人口迁徙数据.今天就来讲讲区域热力图,如何获取数据,以及对数据的解读 一.数据的获取 F12打开开发者工具,点击NetWork,如上图所示则为当 ...
- 诚之和:什么是异常值?如何在统计数据中查找异常值
异常值是数据集的重要组成部分.它们可以保存有关您数据的有用信息.异常值可以为您正在研究的数据提供有用的见解,并且它们可以对统计结果产生影响.这可能会帮助您发现不一致之处并检测统计过程中的任何错误.因此 ...
- 实战matlab之文件与数据接口技术,实战MATLAB之文件与数据接口技术
1.1文件 1.2数据接口 1.3MATLAB文件和数据接口操作思路 1.4MATLAB支持的数据文件格式 1.5MATLAB支持的数据接口类型 第2章MATLAB程序设计基础 2.1MATLAB环境 ...
- matlab读Excel表格数据画图,matlab读Excel表格数据画图-如何利用matlab根据excel表格里面的数据画图...
用matlab读取excel数据并把对应的数据分别画出曲线图 1.第我们首先需要找到需要导excel表格,这里表格需要是office,其它入有问题,我们可以使用电脑自带的2003版本office 2. ...
- Matlab编程技巧:MBD中常用的Matlab函数
在MBD(基于模型开发)中,需要掌握一些常用的函数.这些函数经常用于搭建集成环境.生成手写代码.工具链开发等.恰当地使用函数编写Matlab脚本可以提高MBD工作的自动化程度,提高工作效率. 本文会分 ...
- matlab仿真采样时间,系统中的采样时间
- MATLAB Simulink
- MathWorks 中国
纯离散系统 纯离散系统完全由离散模块组成,可以使用固定步长或可变步长求解器进行建模.要对离散系统进行仿真,需要仿真器在每个采样时间点执行一个仿真步.对于多速率离散系统 - Simulink® 以不同速 ...
- matlab如何创建table,创建和使用表
- MATLAB Simulink
- MathWorks 中国
创建并查看表 根据工作区变量创建一个表并查看它.或者,使用 导入工具 或 readtable 功能根据电子表格或文本文件创建表.使用这些函数从文件导入数据时,每个列都会变为表变量. 将 100 位患者 ...
最新文章
- python视频教学视频哪个好-Python入门视频哪个好?
- 前端学HTTP之字符集
- P2634 [国家集训队]聪聪可可(树上启发式合并)
- Qt应用程序发布:Qt应用程序添加版本版权生产商等信息
- 回溯专题leetcode
- TiFlash:并非另一个 T + 1 列存数据库
- python多线程_thread使用锁
- python webbrowser_Python中webbrowser的用法
- jmeter安装配置
- Apache Rewrite实现URL的301跳转和域名跳转
- 总感觉这个访问量过于均匀……
- Windows C盘清理指北
- 线性代数复盘 | 同济大学工程数学第六版第二章思维导图笔记——矩阵及其运算(复习专用)
- 用Android studio搭建沃商店SDK任意支付的配置
- 面试必备(背)-Linux八股文系列!
- html视频长宽代码,html插入视频,html添加视频的代码
- 用于机器学习的数据库--UCI数据库
- Lambda表达式与函数式接口详解
- ARM + RISC-V双核锁步DCLS Lockstep技术总结
- 一个tesseract ocr box 文件查看toy,python