首页 > 解决方案 > 在 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 不是很受欢迎。

谢谢 !

标签: pythonpandasmathtime-series

解决方案


此等式给出了计算信号幅度 (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)

推荐阅读