python - 在 Python 中计算信号幅度区域
问题描述
我需要计算来自传感器的时间数据的信号幅度区域。
我有一个来自 CSV 的多维 Pandas 表,显示加速度计数据。还有一个时间列和一个索引列,它们指代赫兹频率(从每秒 0 到 24,每 25 赫兹增加 1 的“时间”列)
它看起来像这样:
Time | Index | Accel. X | Accel. Y | Accel. Z
52500.0 | 24.0 | 0.468764 | -0.781274 | 0.687521
52501.0 | 0.0 | 0.375011 | -0.531266 | 0.812525
我需要计算这些数据的信号幅度区域。
我知道数学公式是这样的: 信号幅度区域
但我没有数学水平将其翻译成代码。我在互联网上搜索,但似乎 Python 和 Signal Magnitude Area 不是很受欢迎。
谢谢 !
解决方案
此等式给出了计算信号幅度 (SMA) 的公式。要将其转换为代码,请将积分视为 Σ 表示法。因为你想对这个积分的相关数据求和。
要计算信号幅度区域,您应该首先计算 x、y 和 z 的幅度,然后再对所需时间空间中的每个样本求和。然后除以时空的长度。我使用的代码如下所示:
data = pd.read_csv(file_path, header=None, names=columns)
data['magnitude'] = np.sqrt(data[' Accel. X']**2+data[' Accel. Y']**2+data[' Accel. Z']**2)
SMA = data['magnitude'].sum()/len(data)
推荐阅读
- microsoft-graph-api - Microsoft Graph Beta 端点元数据是否因名称冲突而无效?
- python - Conv Autoencoder 层级数
- flutter - socket 、 socketio 和 websockets 之间的区别
- c++ - 将元素添加到列表
- iis - 如何在没有错误结果的情况下将我的 MVC5 应用程序发布到 IIS
- r - 如何在 R windows 中安装带有 c++ 代码的源代码包?
- redis - 在多个平台上使用 Redis
- google-cloud-platform - 身份验证在 Firestore 的长节点进程上过期
- authentication - 页面没有正确重定向 - Laravel 7
- c++ - 使用向量指令查找数组的总和