介绍
使用python怎么计算波峰波谷值?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
1。首先可先选择一个函数或者拟合一个函数,这里选择拟合数据:np。polyfit
import pandas as pd import matplotlib.pyplot  as plt import numpy  as np 得到scipy import  signal #滤波等 时间=xxx np.arange (0, 1000) 时间=yyy np.sin (xxx * np.pi/180) 时间=z1 np.polyfit (xxx,多,,7),#,用7次多项式拟合 时间=p1 np.poly1d (z1), #多项式系数 打印(p1), #,在屏幕上打印拟合多项式 yvals=p1 (xxx), plt.plot (xxx, yyy, & # 39; * & # 39;,标签=& # 39;original 价值观# 39;) plt.plot (xxx, yvals, & # 39; " # 39;,标签=& # 39;polyfit 价值观# 39;) plt.xlabel (& # 39; x 轴# 39;) plt.ylabel (& # 39; y 轴# 39;) plt.legend (loc=4) plt.title (& # 39; polyfitting& # 39;) plt.show ()
得到的图形是:
2。求波峰值,也就是极大值,得到:信号。find_peaks
#,极值 时间=num_peak_3 signal.find_peaks (yvals,,距离=10),#距离表极大值点的距离至少大于等于10个水平单位 print (num_peak_3 [0]) 打印(& # 39;从而,number of peaks is & # 39;, +, str (len (num_peak_3 [0]))) plt.plot (xxx, yyy, & # 39; * & # 39;,标签=& # 39;original 价值观# 39;) plt.plot (xxx, yvals, & # 39; " # 39;,标签=& # 39;polyfit 价值观# 39;) plt.xlabel (& # 39; x 轴# 39;) plt.ylabel (& # 39; y 轴# 39;) plt.legend (loc=4) plt.title (& # 39; polyfitting& # 39;) for ii 拷贝范围(len (num_peak_3 [0])): ,plt.plot (num_peak_3 [0] [2], yvals [num_peak_3 [0] [2]], & # 39; * & # 39;, markersize=10) plt.show ()
3。在可导的情形下,可以求导来求极值点,同时得到极大值和极小值点:np。polyder
yyyd =, np.polyder (p1, 1), #, 1表示一阶导 打印(yyyd)
此时:yyyd。r即可就得导数为0的点,可以与上述的极大值点对应比较
4。直接函数分别求极大值和极小值:信号。argrelextrema函数
打印(yvals [signal.argrelextrema (yvals, np.greater)]), #极大值的y轴,yvals为要求极值的序列 print (signal.argrelextrema (yvals, np.greater)), #极大值的x轴 时间=peak_ind signal.argrelextrema (yvals np.greater)[0], #极大值点,改为np.less即可得到极小值点 plt.plot (xxx, yyy, & # 39; * & # 39;,标签=& # 39;original 价值观# 39;) plt.plot (xxx, yvals, & # 39; " # 39;,标签=& # 39;polyfit 价值观# 39;) plt.xlabel (& # 39; x 轴# 39;) plt.ylabel (& # 39; y 轴# 39;) plt.legend (loc=4) plt.title (& # 39; polyfitting& # 39;) plt.plot (signal.argrelextrema (yvals np.greater) [0], yvals [signal.argrelextrema (yvals, np.greater)], & # 39; o # 39;,, markersize=10), #极大值点 plt.plot (signal.argrelextrema (yvals np.less) [0], yvals [signal.argrelextrema (yvals, np.less)], & # 39; + & # 39;,, markersize=10), #极小值点 plt.show ()
python主要用来做什么
python主要应用于:1,网络开发;2、数据科学研究;3,网络爬虫;4、嵌入式应用开发,5日游戏开发;6桌面应用开发。
关于使用python怎么计算波峰波谷值问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。