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()