clc,clear,close all;fclose all;

datapath = 'E:\done2\';

datFiles = dir([datapath, '*.txt']);

numFiles = length(datFiles);

data1 = [];

for i = 1:numFiles

data = load([datapath,datFiles(i).name]);

data1 = [data1,data];

end

x=1:350;                                % % 一共130个

[b,a]=butter(6,1/30/0.5,'low');         % % 想做低通滤波,让数据更平稳一些

% % 按你说的,如果间距不大,就当成一个峰

datalow=filtfilt(b,a,data1);             % % 做低通滤波

[min_datalow,~]=min(datalow);          % % 寻找各列的最小值

datalow=datalow-min_datalow;           % % 以数据最小值为基准

datalow(1,:)=datalow(2,:)+0.1;              % % 为了克服数据端点的影响

datalow(end,:)=datalow(end-1,:)+0.1;        % % 即使如此,两端依然可能受到影响

subplot(2,1,1),hold on;

[min_data1,~]=min(data1);          % % 寻找各列的最小值

plot(x,data1-min(data1),'-g','linewidth',2);      % % 原始数据

plot(x,datalow,'-r','linewidth',1);             % % 低通滤波数据

peaks_pick_all = [];                     % %用于存储分出的五个峰的矩阵

for i=1:numFiles                         % % 循环遍历每个峰

data4everpeaks = datalow(:,i);

[~,locs]=findpeaks(-data4everpeaks);

for ii=1:length(locs)-1;             % % 这个地方有点意思,注意是否要减一            % % 循环遍历每个峰

temp=nan(size(data4everpeaks));      % % 截取每一段峰

temp(locs(ii):locs(ii+1))=data4everpeaks(locs(ii):locs(ii+1));

idx=find(~isnan(temp));

ft=fittype('gauss1');                       % % 用钟型线去做拟合

% % 当然可以选择其他拟合方式

fitobject=fit(idx,temp(idx),ft);            % % 拟合并画图

vvv=fitobject.a1*exp(-((x-fitobject.b1)./fitobject.c1).^2); % % 存储每个峰的信息

peaks_pick_all=[peaks_pick_all,vvv'];

plot(fitobject.a1*exp(-((x-fitobject.b1)./fitobject.c1).^2),'-b','linewidth',1)

end

end

[max_peaks_pick_all,peaks_position]=max(peaks_pick_all);

peaks_area = trapz(peaks_pick_all);            % % 求解分出的峰的峰面积

aaa = [peaks_pick_all(:,1)+peaks_pick_all(:,2)+peaks_pick_all(:,3)+peaks_pick_all(:,4)+peaks_pick_all(:,5)]  % % 拟合峰的叠加

subplot(2,1,2)

plot(aaa);

matlab如何实现分峰,分峰拟合,将一条曲线分为单独的小峰相关推荐

  1. 我是Matlab超级咸汤圆,用plotyy画出4条曲线~~

    纠结+娱乐+暴走+暴饮暴食=用双纵坐标画出4条曲线,贴出图,大家鼓捣鼓捣 感觉美美哒,棒棒哒,纯手工制作!!这里要注意的是,画图一定要跟数据结合起来,另外画图语句的书写要注意先后顺序! 代码来也: a ...

  2. Origin——同时(指数形式)拟合三条曲线(参数共享的全局拟合)

    文章目录 1.导入数据 2.拖动并选择三个Y列,然后创建一个线条图.![在这里插入图片描述](https://img-blog.csdnimg.cn/20200603201226551.gif) 3. ...

  3. MATLAB实现多峰高斯函数拟合/多峰高斯分布函数拟合(MATLAB全代码)

    基于MATLAB实现多峰高斯函数拟合/多峰高斯分布函数拟合,提供三类多峰函数拟合方法,分别为双峰函数.三峰函数和自定义高斯函数. 1 原理 2 MATLAB代码实现 MATLAB函数如下: funct ...

  4. matlab中几种求积分的方法

    matlab中几种求积分的方法 举例图形 Midpoint Rule Trapezoid Rule 13 Simpsons 利用integral 结果显示 matlab中几种求积分的方法 最近看了几天 ...

  5. matlab 重叠峰分解 算法,一种基于粒子群算法的光谱重叠峰分解方法与流程

    本发明涉及一种基于粒子群算法的光谱重叠峰分解方法. 背景技术: 由于探测器能量分辨率等原因,峰位接近且峰宽较大的不同谱峰之间常常出现严重重叠干扰的现象,要对光谱作进一步较为准确.全面的成分定量和定性分 ...

  6. matlab函数输出语句,matlab两种输出语句分别是什么

    matlab两种输出语句分别是什么 发布时间:2021-02-26 14:21:27 来源:亿速云 阅读:79 作者:小新 这篇文章主要介绍了matlab两种输出语句分别是什么,具有一定借鉴价值,感兴 ...

  7. matlab用辛普森公式求积分_标准正态分布概率密度函数的定积分计算方法及Python实现代码...

    最近利用碎片时间在读Allen B.Downey的<贝叶斯思维:统计建模的Python学习法>,顺便用手机上的Pythonista写实例.因为Pythonista没有scipy科学计算包, ...

  8. 多项式在matlab中的应用,matlab的应用-多项式函数及多项式拟合

    matlab的应用-多项式函数及多项式拟合 Matlab 的应用- 多项式函数及多项式拟合 本节将向大家简要介绍 matlab 在多项式处理方面的应用. 多项式函数主要有: roots 求多项式的根 ...

  9. 大工计算机基础在线3,大工16秋《计算机应用基础》在线测试3-满分100分.pdf

    大工16秋<计算机应用基础>在线测试3-满分100分大工16秋<计算机应用基础>在线测试3-满分100分 大工 16 秋<计算机应用基础>在线测试 3 试卷总分:1 ...

最新文章

  1. python爬虫程序实例-10个python爬虫入门实例
  2. python问卷调查系统设计案例_从设计到施工,全面剖析超级玻璃屋面系统案例!...
  3. Swift实现OC中的单例模式
  4. xml标签里有rownum_rownum和order by以及index的关系
  5. SQL - 插入数据
  6. SpringAOP原理分析
  7. steam怎么设公用计算机,steam如何设置家庭共享?steam设置家庭共享的方法
  8. 串口通信linux单片机,Linux与单片机串口通信
  9. 前端使用xlsx-js-style导出Excel文件并修饰单元格样式
  10. 零代码也能玩转指标系列:通过界面也能实现指标的四则运算
  11. zoom使用教程_如何使用Zoom在线玩Jackbox游戏
  12. [解疑][TI]TI毫米波雷达系列(三):调频连续波雷达回波信号3DFFT处理原理(测距、测速、测角)
  13. Shell脚本笔记(3)- 变量子串
  14. 大事件!PCIe SSD与SATA SSD同价啦
  15. Xshell 的安装与使用
  16. java小组坦克大战游戏开发文档开发日志_java实现坦克大战游戏
  17. 荧光标记系列Cy3/Cy5/Cy7/FITC荧光素标记石莼多糖/岩藻多糖/半乳岩藻多糖
  18. 【Proteus仿真】用24C04与1602LCD设计的简易加密电子密码锁
  19. 技术干货集中营——WOT 2017全球架构与运维技术峰会
  20. 【翻译】天机芯Nature_Towards artificial general intelligence with hybrid Tianjic chip architecture

热门文章

  1. 15年用canvas画的
  2. openwrt配置虚拟多wan
  3. 给iOS开发者的Sketch入门教程
  4. CPU 时间片轮转机制 (RR 调度)
  5. 你只要上传两张毫无关联的照片「这个网站就会自动帮你合成了!」
  6. 数字世界,企业何以抵御勒索病毒?
  7. 微信 图片二维码识别不了的问题
  8. springboot连接redis 没有权限 io.lettuce.core.RedisCommandExecutionException: NOAUTH Authentication requir
  9. R语言使用pdf函数将可视化图像结果保存到pdf文件中、使用pdf函数打开图像设备、使用dev.off函数关闭图像设备、自定义width参数和height参数指定图像的宽度和高度
  10. Day 01-创建 Vue3.0 工程