如何使信号居中以从零开始
How to center the signals to start around zero
我一直在处理一些传感器数据,我遇到了每一个数据并意识到一些传感器并不是从零开始的。所以,我想知道有没有办法能够将信号移动到中心?有关信号图和单个图,请参见下图。
可以在此聊天中找到其中一个传感器的示例 (https://chat.whosebug.com/rooms/238608/signal)
代码:
(获取信号)
for fp in DataPathList:
k += 1
# print(k)
# Load spreadsheet:
print('Opened file number: {}'.format(fp))
dataset = np.loadtxt(fname=fp)
y = dataset[:, column_no]
y_signal[k] = np.array(y)
y_S1_max_signal[k] = np.max(np.array(dataset[:, 0]))
S_F = 1000
N = np.array(y_signal[k]).shape[0]
S_T = 1 / S_F
t_n = S_T * N # seconds of sampling
x_time = np.linspace(0, t_n, N)
编辑 1:
我能够通过用信号的均值减去信号来解决这个问题,并设法将绘图从 0 开始。但是,我有一个问题,这会导致我的数据发生很大变化吗?
for fp in DataPathList:
k += 1
# print(k)
# Load spreadsheet:
print('Opened file number: {}'.format(fp))
dataset = np.loadtxt(fname=fp)
y = dataset[:, column_no]
y_signal[k] = np.array(y)
y_signal[k] = np.array(y) - np.mean(np.array(y))
y_S1_max_signal[k] = np.max(np.array(dataset[:, 0]))
S_F = 1000
N = np.array(y_signal[k]).shape[0]
S_T = 1 / S_F
t_n = S_T * N # seconds of sampling
x_time = np.linspace(0, t_n, N)
您可能想要 post 编码以便人们能够更好地帮助您。通常,您可能想要做的是将峰值置于 0 的中心。如果您有一个 numpy 数组,请使用 np.argmax(array)
找到最大值的位置。然后在 matplotlib 中,确保从 xspace 中减去该索引(x 轴上的 list/array)。
我一直在处理一些传感器数据,我遇到了每一个数据并意识到一些传感器并不是从零开始的。所以,我想知道有没有办法能够将信号移动到中心?有关信号图和单个图,请参见下图。
可以在此聊天中找到其中一个传感器的示例 (https://chat.whosebug.com/rooms/238608/signal)
代码: (获取信号)
for fp in DataPathList:
k += 1
# print(k)
# Load spreadsheet:
print('Opened file number: {}'.format(fp))
dataset = np.loadtxt(fname=fp)
y = dataset[:, column_no]
y_signal[k] = np.array(y)
y_S1_max_signal[k] = np.max(np.array(dataset[:, 0]))
S_F = 1000
N = np.array(y_signal[k]).shape[0]
S_T = 1 / S_F
t_n = S_T * N # seconds of sampling
x_time = np.linspace(0, t_n, N)
编辑 1:
我能够通过用信号的均值减去信号来解决这个问题,并设法将绘图从 0 开始。但是,我有一个问题,这会导致我的数据发生很大变化吗?
for fp in DataPathList:
k += 1
# print(k)
# Load spreadsheet:
print('Opened file number: {}'.format(fp))
dataset = np.loadtxt(fname=fp)
y = dataset[:, column_no]
y_signal[k] = np.array(y)
y_signal[k] = np.array(y) - np.mean(np.array(y))
y_S1_max_signal[k] = np.max(np.array(dataset[:, 0]))
S_F = 1000
N = np.array(y_signal[k]).shape[0]
S_T = 1 / S_F
t_n = S_T * N # seconds of sampling
x_time = np.linspace(0, t_n, N)
您可能想要 post 编码以便人们能够更好地帮助您。通常,您可能想要做的是将峰值置于 0 的中心。如果您有一个 numpy 数组,请使用 np.argmax(array)
找到最大值的位置。然后在 matplotlib 中,确保从 xspace 中减去该索引(x 轴上的 list/array)。