1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | import numpy as np def calculate_fatigue(emg_data, sample_rate): """Calculate muscle fatigue using EMG data.""" # Calculate the root mean square (RMS) of the EMG data rms = np.sqrt(np.mean(np.square(emg_data))) # Calculate the mean frequency (MF) of the EMG data using a Fourier transform fft_data = np.fft.fft(emg_data) freqs = np.fft.fftfreq( len (emg_data), 1 / sample_rate) mf = np. sum (np. abs (fft_data) * freqs) / np. sum (np. abs (fft_data)) # Calculate the median frequency (MD) of the EMG data using a Fourier transform power_spectrum = np.square(np. abs (fft_data)) md = freqs[np.argmax(power_spectrum[: len (power_spectrum) / / 2 ])] # Calculate the fatigue index (FI) using the ratio of the RMS value at the end of exercise # to the RMS value at the beginning of exercise fi = rms[ - 1 ] / rms[ 0 ] # Calculate the fatigue level (FL) using the formula FL = (MF - MD) / FI fl = (mf - md) / fi return fl |
emg_data
是肌电数据的一维NumPy数组,sample_rate
是采样频率。
先计算肌电数据的均方根(RMS)值,然后使用傅里叶变换计算肌电数据的平均频率(MF)和中位数频率(MD)。
之后计算肌电数据的疲劳指数(FI),并使用MF、MD和FI计算肌肉疲劳度(FL)。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现