【肌电信号】基于matlab GUI脉搏信号分析(去噪+特征提取)【含Matlab源码 862期】

2024-04-11 07:18

本文主要是介绍【肌电信号】基于matlab GUI脉搏信号分析(去噪+特征提取)【含Matlab源码 862期】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。
🍎个人主页:海神之光
🏆代码获取方式:
海神之光Matlab王者学习之路—代码获取方式
⛳️座右铭:行百里者,半于九十。

更多Matlab仿真内容点击👇
Matlab图像处理(进阶版)
路径规划(Matlab)
神经网络预测与分类(Matlab)
优化求解(Matlab)
语音处理(Matlab)
信号处理(Matlab)
车间调度(Matlab)

⛄一、脉搏信号分析简介

人体脉搏信号是一种微弱信号, 信噪比较低。在检测和采集时, 由于受仪器、人体等方面的影响, 所采集的信号中常存在如下3种噪声:1) 基线漂移、人体呼吸等低频干扰, 频率小于1 Hz;2) 由于肢体抖动、肌肉紧张而引起的干扰, 它的频率范围较大;3) 工频干扰, 是固定频率的干扰, 频率为50 Hz。

这些干扰信号会极大的影响对脉搏信号进行进一步的识别与分析;因此, 在对脉搏信号进行进一步处理之前必须对噪声进行处理, 过去常常采用快速傅里叶变换或者数字滤波器等方法进行去噪, 去噪结果容易产生相位失真, 对脉搏波信号的去噪效果并不好。由于脉搏波信号属于非平稳信号, 而小波变换具有多分辨率的特点, 因此, 采用小波分析能够较好的处理脉搏波等非平稳信号。基于小波变换的信号去噪方法, 一般有阈值法、平移不变量法和模极大值法。

1 小波变换阈值法去噪原理
小波阈值降噪的基本思想是:用如下模型代表一个含噪声的一维信号:
在这里插入图片描述
其中s (t) 为原始信号, n (t) 为服从N (0, σ2) 的高斯白噪声。根据式 (1) , 对f (t) 作离散小波变换, 因为正交小波变换具有很强的数据相关性, 进行小波变化时, 它能够把信号的能量集中在一些大的有限的系数中, 而噪声的能量却分布于整个小波域内, 变换后f (t) 的小波系数一部分为信号对应的小波系数, 另一部分为噪声对应的小波系数;并且幅值比较大的小波系数一般以信号为主, 而幅值较小的系数在很大程度上是噪声。总体上来讲, 对f (t) 进行小波分解后, 信号的系数要大于噪声的系数, 这样就可以选择一个合适的临界阈值λ, 如果分解后得到的系数大于这个临界阈值λ时, 就认为此时的分解系数主要是由信号引起的, 就保留这个系数 (硬阈值方法) 或者按照某一固定量向零收缩 (软阈值方法) 这个系数, 如果分解系数小于这个临界阈值λ, 就认为此时的分解系数主要是由噪声引起的, 直接舍弃分解系数;经过这一步骤后, 用得到的小波系数进行小波重构, 就能去除噪声信号n (t) 。

小波阈值法的主要步骤如下:

  1. 计算含噪声信号的正交小波变换。选择合适的小波和小波分解层数j, 将含噪信号进行小波分解至j层, 得到相应的小波分解系数。

  2. 对分解得到的小波系数进行阈值处理, 其阈值的处理方法有2种:
    在这里插入图片描述
    其中s表示阈值处理后的信号, t表示阈值。

  3. 进行小波逆变换。将经阈值处理过的小波系数进行重构, 得到去噪后的信号。分解后的信号如果不做阈值处理, 则重构后的信号仍为原信号。用阈值函数进行处理并重构后, 将得到去噪后的信号, 这个信号经过小波处理后, 去除了噪声, 逼近于原始信号。

在小波阈值方法中, 阈值的选取至关重要, 选用不同的阈值, 滤波信噪比将有明显的差别。若阈值太大, 则信号细节损失太多, 有可能会造成信号失真;而阈值太小, 则达不到预期的去噪效果[4]。虽然阈值选取方法不少, 如常用的固定门限阈值、Stein无偏似然法估计阈值、启发式阈值和最小最大准则门限阈值等[5], 但是阈值的选取不是一个简单问题, 它需考虑抑制无用噪声与保留信号细小变化之间的权衡问题。

图1为一段含噪的脉搏波信号, 采用阈值法对其进行降噪处理, 在matlab7.0平台上, 经过反复仿真, 选择db9小波进行八层分解。
在这里插入图片描述
图1 一段含噪脉搏波
在这里插入图片描述
图2 小波阈值法去噪结果
经过小波阈值处理后得到的信号波形如图2所示, 直观上可以看出噪声得到了比较好的抑制;但是, 在脉搏波交替的地方出现较大的上、下峰值, 这些峰值并不是原始脉搏波本身所包含的, 而是在去噪的过程中产生的人为干扰, 这种现象类似于Fourier去噪时所产生的伪吉布斯现象。

要避免伪吉布斯现象, 可以采用小波平移不变量去噪法。

2 小波平移不变量去噪法
小波平移不变量去噪法即在一定的平移量范围内对所获得的信号按某一个平移量进行平移, 获得一个在时域上与原始信号具有一定相位差的信号, 然后对这个信号进行去噪处理, 得到去噪后的信号, 对该信号做反向的平移, 则得到与原始信号同相位的信号, 然后按另一个平移量进行平移——去噪——反平移, 重复这一过程, 对所获得结果求平均, 就得到带噪信号去噪后的估计信号。这就是基于平移不变的小波阈值去噪的思想。

采用平移不变量法对图1的原始脉搏波进行去噪处理, 得到波形图如图3所示, 从图中可以看出伪吉布斯现象得到了很好的抑制。
在这里插入图片描述
图3 平移不变量法去噪结果

3 小波变换模极大值滤波法
对检测的脉搏信号中混入的随机噪音, 由于随机噪音的频谱很不规则, 与有效信号的频谱差别不大, 可以利用随机噪声的奇异性加以滤波。奇异性的大小用Lipshczti指数来度量。随机噪音的Lipshczti指数与有效信号本身的奇异点的Lipshczti指数大小不一样, 从而它们的小波变换模的极大值在不同尺度下的传播行为也不一样[7], 随尺度变大而幅值减小的, 认为是噪声产生的模极大值, 予以去除;反之, 则认为是由信号奇异点产生的, 予以保留。对所有保留的模极大值进行重建, 即得到去噪后的信号[8]。利用这一特征可将有效信号从随机噪音中提取出来。
具体算法如下:

  1. 根据信号的特征, 确定小波基、分解层数, 并对含噪声的信号进行小波分解;
  2. 在最大分解尺度2 j上搜索极值点, 并设定阈值去除小的模极值点, 得到{wj};
  3. 在j层极大值点的位置, 为2j-1尺度的极值点构造一个搜索领域, 通常为2 j尺度模极值点位置±3, ±4个数据点;
  4. 根据搜索范围, 把2j-1尺度极大值点落在该区域的点保留, 其他的值置0;
  5. 令j=j-1, 重复操作, 直到j=2;
  6. 在j=2层存在极值点的位置查询j=1时相应极值点, 其余位置将极值点置为0;
  7. 重构。
    采用模极大值法去噪后的脉搏波信号如图4所示, 从图中可以看出处理后的信号较为光滑。
    在这里插入图片描述
    4 结论
    文中分别采用了3种小波去噪方法对脉搏波信号进行了去噪处理, 采用小波变换阈值去噪法去噪后, 信号主要噪声得到抑制, 且能反映原始信号的特征的尖峰点得到很好的保留。但是在信号的不连续点处, 去噪后会出现伪吉布斯现象, 且阈值的选择对去噪效果有着很重要的影响。为此, 采用平移不变量法进行处理, 处理后, 伪吉布斯现象得到了很好的抑制。模极大值法能有效地保留信号地奇异点信息, 去噪后的信号没有多余振荡, 是原始信号的一个非常好的估计, 但计算量很大, 速度较慢。

⛄二、部分源代码

%% Program Start
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 名称:信号处理课程设计
%% 功能:脉搏检测系统GUI主界面
%% 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%

function varargout = mainjiemian(varargin)
% MAINJIEMIAN MATLAB code for mainjiemian.fig
% MAINJIEMIAN, by itself, creates a new MAINJIEMIAN or raises the existing
% singleton*.
%
% H = MAINJIEMIAN returns the handle to a new MAINJIEMIAN or the handle to
% the existing singleton*.
%
% MAINJIEMIAN(‘CALLBACK’,hObject,eventData,handles,…) calls the local
% function named CALLBACK in MAINJIEMIAN.M with the given input arguments.
%
% MAINJIEMIAN(‘Property’,‘Value’,…) creates a new MAINJIEMIAN or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before mainjiemian_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to mainjiemian_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE’s Tools menu. Choose “GUI allows only one
% instance to run (singleton)”.
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help mainjiemian

% Last Modified by GUIDE v2.5 29-Apr-2021 12:18:07

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct(‘gui_Name’, mfilename, …
‘gui_Singleton’, gui_Singleton, …
‘gui_OpeningFcn’, @mainjiemian_OpeningFcn, …
‘gui_OutputFcn’, @mainjiemian_OutputFcn, …
‘gui_LayoutFcn’, [] , …
‘gui_Callback’, []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

% — Executes just before mainjiemian is made visible.
function mainjiemian_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to mainjiemian (see VARARGIN)

% Choose default command line output for mainjiemian
handles.output = hObject;
ha=axes(‘units’,‘normalized’,‘position’,[0 0 1 1]);
uistack(ha,‘down’)
II=imread(‘1.jpg’);
image(II)
colormap gray
set(ha,‘handlevisibility’,‘off’,‘visible’,‘off’);
% Update handles structure

% Update handles structure
guidata(hObject, handles);

% UIWAIT makes mainjiemian wait for user response (see UIRESUME)
% uiwait(handles.figure1);

% — Outputs from this function are returned to the command line.
function varargout = mainjiemian_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure
varargout{1} = handles.output;

% — Executes on button press in togglebutton1.
function togglebutton1_Callback(hObject, eventdata, handles)
untitled;
% hObject handle to togglebutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hint: get(hObject,‘Value’) returns toggle state of togglebutton1

% — Executes on button press in togglebutton2.
function togglebutton2_Callback(hObject, eventdata, handles)
yuchuli;
% hObject handle to togglebutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hint: get(hObject,‘Value’) returns toggle state of togglebutton2

% — Executes on button press in togglebutton3.
function togglebutton3_Callback(hObject, eventdata, handles)
tezheng;
% hObject handle to togglebutton3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hint: get(hObject,‘Value’) returns toggle state of togglebutton3

% — Executes when figure1 is resized.
function figure1_SizeChangedFcn(hObject, eventdata, handles)
% hObject handle to figure1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

% — Executes just before jidian is made visible.
function jidian_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to jidian (see VARARGIN)

% Choose default command line output for jidian
handles.output = hObject;
ha=axes(‘units’,‘normalized’,‘position’,[0 0 1 1]);
uistack(ha,‘down’)
II=imread(‘666.jpg’);
image(II)
colormap gray
set(ha,‘handlevisibility’,‘off’,‘visible’,‘off’);

axes(handles.axes1);
axes(handles.axes2);
axes(handles.axes3);
axes(handles.axes4);
axes(handles.axes5);
axes(handles.axes6);
% Update handles structure
guidata(hObject, handles);

% UIWAIT makes jidian wait for user response (see UIRESUME)
% uiwait(handles.figure1);

% — Outputs from this function are returned to the command line.
function varargout = jidian_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure
varargout{1} = handles.output;

% — Executes when figure1 is resized.
function figure1_SizeChangedFcn(hObject, eventdata, handles)
% hObject handle to figure1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% — Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
%%%%%把代码放到这,运行时自动加载
[filename,filepath]=uigetfile(‘C:\Users\dell\Desktop\信号处理课设-----杨硕\初始脉搏数据\MaiBobefore.txt’);
filename=[filepath,filename];
[t,Pluse_pre]=textread(filename,‘%f%f’,‘headerlines’,1);%读入2个浮点值,并跳过文档的第1行
[m,n]=size(Pluse_pre);
n=3;
s3=Pluse_pre;

%%%%%%%%%%%%—————提取2000个点进行数据处理——————%%%%%%%%%%%%%%%%%%%%
fs=360;%采样率
x0=s3(1:2000);%取1到2000共2000个点
t=1:length(x0);%length(x0)指x0数组元素的个数
axes(handles.axes1);
plot(t,x0)
xlabel(‘采样点’);
ylabel(‘magtitude’);
title(‘标准脉搏信号’)
box1=msgbox(‘正在加载请稍候’,‘提示’);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%初步去除基线漂移%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%中值滤波%%%%%%%%%%%%%%%%%%%%%%%%%%%%
L1=medfilt1(x0,330); %一维中值滤波,x0为数组,即要处理原始波形,n是中值滤波器的参数,L1是滤波以后的结果(数组)
L2=x0-L1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%频谱%%%%%%%%%%%%%%%%%%%%%%%%
N=length(x0);%样点个数
df=fs/(N-1);%分辨率
f=(0:N-1)df;%其中每点的频率
Y=fft(L2(1:N))/N
2;%真实的幅值
axes(handles.axes2);
plot(f(1:N/2),abs(Y(1:N/2)));%傅里叶变换后的频谱图是对称的,这里需要一半就可以了
xlabel(‘频率/Hz’);
ylabel(‘振幅’);
axis ( [0 100 0 0.4] );
title(‘中值滤波后脉搏信号频率谱’)
drawnow;

⛄三、运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]徐洁.基于小波分析的脉搏波信号处理[J].电子设计工程. 2013,21(11)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

🍅 仿真咨询
1 各类智能优化算法改进及应用

生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化

2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断

3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知

4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化

5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配

6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化

7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化

8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置

9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长

10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

这篇关于【肌电信号】基于matlab GUI脉搏信号分析(去噪+特征提取)【含Matlab源码 862期】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/893417

相关文章

[职场] 公务员的利弊分析 #知识分享#经验分享#其他

公务员的利弊分析     公务员作为一种稳定的职业选择,一直备受人们的关注。然而,就像任何其他职业一样,公务员职位也有其利与弊。本文将对公务员的利弊进行分析,帮助读者更好地了解这一职业的特点。 利: 1. 稳定的职业:公务员职位通常具有较高的稳定性,一旦进入公务员队伍,往往可以享受到稳定的工作环境和薪资待遇。这对于那些追求稳定的人来说,是一个很大的优势。 2. 薪资福利优厚:公务员的薪资和

【操作系统】信号Signal超详解|捕捉函数

🔥博客主页: 我要成为C++领域大神🎥系列专栏:【C++核心编程】 【计算机网络】 【Linux编程】 【操作系统】 ❤️感谢大家点赞👍收藏⭐评论✍️ 本博客致力于知识分享,与更多的人进行学习交流 ​ 如何触发信号 信号是Linux下的经典技术,一般操作系统利用信号杀死违规进程,典型进程干预手段,信号除了杀死进程外也可以挂起进程 kill -l 查看系统支持的信号

时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测

时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测 目录 时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测基本介绍程序设计参考资料 基本介绍 MATLAB实现LSTM时间序列未来多步预测-递归预测。LSTM是一种含有LSTM区块(blocks)或其他的一种类神经网络,文献或其他资料中LSTM区块可能被描述成智能网络单元,因为

springboot家政服务管理平台 LW +PPT+源码+讲解

3系统的可行性研究及需求分析 3.1可行性研究 3.1.1技术可行性分析 经过大学四年的学习,已经掌握了JAVA、Mysql数据库等方面的编程技巧和方法,对于这些技术该有的软硬件配置也是齐全的,能够满足开发的需要。 本家政服务管理平台采用的是Mysql作为数据库,可以绝对地保证用户数据的安全;可以与Mysql数据库进行无缝连接。 所以,家政服务管理平台在技术上是可以实施的。 3.1

高仿精仿愤怒的小鸟android版游戏源码

这是一款很完美的高仿精仿愤怒的小鸟android版游戏源码,大家可以研究一下吧、 为了报复偷走鸟蛋的肥猪们,鸟儿以自己的身体为武器,仿佛炮弹一样去攻击肥猪们的堡垒。游戏是十分卡通的2D画面,看着愤怒的红色小鸟,奋不顾身的往绿色的肥猪的堡垒砸去,那种奇妙的感觉还真是令人感到很欢乐。而游戏的配乐同样充满了欢乐的感觉,轻松的节奏,欢快的风格。 源码下载

高度内卷下,企业如何通过VOC(客户之声)做好竞争分析?

VOC,即客户之声,是一种通过收集和分析客户反馈、需求和期望,来洞察市场趋势和竞争对手动态的方法。在高度内卷的市场环境下,VOC不仅能够帮助企业了解客户的真实需求,还能为企业提供宝贵的竞争情报,助力企业在竞争中占据有利地位。 那么,企业该如何通过VOC(客户之声)做好竞争分析呢?深圳天行健企业管理咨询公司解析如下: 首先,要建立完善的VOC收集机制。这包括通过线上渠道(如社交媒体、官网留言

DDS信号的发生器(验证篇)——FPGA学习笔记8

前言:第一部分详细讲解DDS核心框图,还请读者深入阅读第一部分,以便理解DDS核心思想 三刷小梅哥视频总结! 小梅哥https://www.corecourse.com/lander 一、DDS简介         DDS(Direct Digital Synthesizer)即数字合成器,是一种新型的频率合成技术,具有低成本、低功耗、高分辨率、频率转换时间短、相位连续性好等优点,对数字信

[FPGA][基础模块]跨时钟域传播脉冲信号

clk_a 周期为10ns clk_b 周期为34ns 代码: module pulse(input clk_a,input clk_b,input signal_a,output reg signal_b);reg [4:0] signal_a_widen_maker = 0;reg signal_a_widen;always @(posedge clk_a)if(signal_a)

基于Java医院药品交易系统详细设计和实现(源码+LW+调试文档+讲解等)

💗博主介绍:✌全网粉丝10W+,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 🌟文末获取源码+数据库🌟 感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人  Java精品实战案例《600套》 2023-2025年最值得选择的Java毕业设计选题大全:1000个热

将一维机械振动信号构造为训练集和测试集(Python)

从如下链接中下载轴承数据集。 https://www.sciencedirect.com/science/article/pii/S2352340918314124 import numpy as npimport scipy.io as sioimport matplotlib.pyplot as pltimport statistics as statsimport pandas