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

本文演示了如何使用MATLAB进行分峰和拟合。首先通过读取文件和低通滤波处理数据,然后利用findpeaks函数找到峰值,并采用高斯函数进行拟合,最终计算出峰面积和叠加后的信号。这个过程对于处理包含多个峰的数据非常有用。
摘要由CSDN通过智能技术生成

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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值