【问题标题】:Calculate Signal Magnitude Area in Python在 Python 中计算信号幅度区域
【发布时间】:2021-07-13 15:30:59
【问题描述】:

我需要计算来自传感器的时间数据的信号幅度区域。

我有一个来自 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   

我需要计算这些数据的信号幅度面积。

我知道数学公式是这样的: Signal Magnitude Area

但我没有将其转换为代码的数学水平。我在网上搜索,但似乎 Python 和 Signal Magnitude Area 不是很流行。

谢谢!

【问题讨论】:

    标签: python pandas math time-series


    【解决方案1】:

    计算信号幅度 (SMA) 的公式由this equation 给出。要将其转换为代码,请将积分视为Σ notation。因为你想对这个积分的相关数据求和。

    要计算信号幅度区域,您应该首先计算 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)
    

    【讨论】:

    • 为什么?这就是您计算 pandas 数据帧的 SMA 的方式,这就是问题所在
    猜你喜欢
    • 2013-06-02
    • 2021-09-20
    • 1970-01-01
    • 2014-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-10
    相关资源
    最近更新 更多