使用 numpy 平均周期信号的单个周期

Average a single period of a periodic signal with numpy

我在大学做过测量。信号有很多噪声,但是是周期性的。

我知道信号开始的点 (x=36400) 以及频率 (1Hz) 和采样率 (48000) 是多少。所以我可以"cut"单期每48000点。我可以生成这样的数组 [[period1],[period2],...,[period100]],其中每个周期都包含测量值。

我现在想对每个周期进行平均以获得噪声较小的信号。我知道如何使用 for 循环来做到这一点,但是有什么快速的方法可以为此使用 numpy 吗?

首先,您需要对数组进行切片以获得有意义的部分

n_periods = 10  # or however man
beginning_idx = 1000  # or whever the good data begins

raw_signal = ...  # this is the data you read in
good_signal = raw_signal[beginning_idx:beginning_idx + n_periods * 48000]
periodic = good_signal.reshape(n_periods, 48000)
avg_signal = periodic.mean(axis=0)