Python 量化曲线波动的方法

Python 量化曲线波动的方法,python,data-analysis,Python,Data Analysis,我有一个通过此链接显示的数据: 当我切割一些材料时,它们是力与距离的关系。我试图做功率谱分析,但找不到重要的信号。 这是的原始形状,这是,这是。有人能建议功率谱是否可以量化曲线中的波动,如果可以,我应该如何修改我的代码?如果没有,是否有其他数据分析方法解决此问题? 这是我的密码: import pandas as pd import numpy as np import matplotlib.pyplot as plt from numpy.fft import fft, fftfreq, if

我有一个通过此链接显示的数据:

当我切割一些材料时,它们是力与距离的关系。我试图做功率谱分析,但找不到重要的信号。 这是的原始形状,这是,这是。有人能建议功率谱是否可以量化曲线中的波动,如果可以,我应该如何修改我的代码?如果没有,是否有其他数据分析方法解决此问题? 这是我的密码:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from numpy.fft import fft, fftfreq, ifft

#Parameters
fileName = 'mydata.csv'
LS = 30
LGS = 25
END = 805
lgd = "3"

#LoadData
df = pd.read_csv(fileName)
data = df.to_numpy()
x = data[4:END,0]
y = data[4:END,3]/1000
y = y - y.mean()

#number of points
n = len(x)

#distance 
Lx = x[1]-x[0]

#create all necessary frequency
freqs = fftfreq(n,Lx)

#mask array to be used for power spectra
mask  = freqs > 0

#fft values
fft_vals = fft(y)

#power spectra
ps = 2.0*(np.abs(fft_vals/n)**2.0)

#true theoretical fft
fft_theo = 2.0*np.abs(fft_vals/n)

plt.figure(figsize=(10,10))
plt.figure(1)
plt.plot(x,y, label=lgd)
plt.xlabel("Distance [mm]", fontsize =LS)
plt.ylabel("Originial force signal", fontsize =LS)
plt.xticks(fontsize=25)
plt.yticks(fontsize=25)
leg = plt.legend(fontsize=LGS)
for line in leg.get_lines():
    line.set_linewidth(7.0)

plt.figure(2)
plt.semilogy(freqs[mask],ps[mask],'o',label=lgd)
plt.xticks(fontsize=25)
plt.yticks(fontsize=23)
leg2 = plt.legend(fontsize=LGS)
plt.xlabel("Frequency [Hz]", fontsize =LS)
plt.ylabel("Power", fontsize =LS)
for line in leg2.get_lines():
    line.set_linewidth(7.0)
plt.show()