欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python曲線平滑的實現(xiàn)示例

 更新時間:2022年05月27日 11:25:01   作者:半月夏微涼  
本文主要介紹了Python曲線平滑的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

在編寫測試程序的時候,由于數(shù)據(jù)幀數(shù)多的原因,導致生成的曲線圖比較難看,如下圖:

在這里插入圖片描述

由于高頻某些點的波動導致高頻曲線非常難看,因此需要對曲線做平滑處理,讓曲線過渡更平滑。對曲線進行平滑處理,這里推薦使用Savitzky-Golay 濾波器,可以在scipy庫里直接調用,不需要再定義函數(shù)。

Python中 Savitzky-Golay 濾波器調用如下:

tmp_smooth = scipy.signal.savgol_filter(tmp,53,3)

scipy函數(shù)解釋:
scipy.signal.savgol_filter(x, window_length, polyorder, deriv=0, delta=1.0, axis=-1, mode=‘interp’, cval=0.0)[source]
Apply a Savitzky-Golay filter to an array.
This is a 1-d filter. If x has dimension greater than 1, axis determines the axis along which the filter is applied.

在scipy函數(shù)解釋中,x為原始數(shù)據(jù),即上面代碼中的tmp數(shù)據(jù)。window_length是窗口長度,該值需為正奇整數(shù)。polyorder為對窗口內的數(shù)據(jù)點進行k階多項式擬合,k的值需要小于window_length。

現(xiàn)在看一下window_length和k這兩個值對曲線的影響。

(1) 首先是window_length對曲線的平滑作用,代碼如下:

tmp_smooth1 = scipy.signal.savgol_filter(tmp,21,3)
tmp_smooth2 = scipy.signal.savgol_filter(tmp,53,3)

plt.semilogx(f,tmp*0.5,label = 'mic'+str(num+1))
plt.semilogx(f,tmp_smooth1*0.5,label = 'mic'+str(num+1)+'擬合曲線-21',color = 'red')
plt.semilogx(f,tmp_smooth2*0.5,label = 'mic'+str(num+1)+'擬合曲線-53',color = 'green')

在這里插入圖片描述

可以看到,window_length的值越小,曲線越貼近真實曲線;window_length值越大,平滑效果越厲害。

(2) 再看k值對曲線的影響,代碼如下:

tmp_smooth1 = scipy.signal.savgol_filter(tmp,21,3)
tmp_smooth2 = scipy.signal.savgol_filter(tmp,53,3)

plt.semilogx(f,tmp*0.5,label = 'mic'+str(num+1))
plt.semilogx(f,tmp_smooth1*0.5,label = 'mic'+str(num+1)+'擬合曲線-21',color = 'red')
plt.semilogx(f,tmp_smooth2*0.5,label = 'mic'+str(num+1)+'擬合曲線-53',color = 'green')

生成曲線圖如下:

在這里插入圖片描述

可以看到,k值越大,曲線越貼近真實曲線;k值越小,曲線平滑越厲害。另外,當k值較大時,受窗口長度限制,擬合會出現(xiàn)問題,高頻曲線會變成直線,如下圖所示:

在這里插入圖片描述

參考資源

[1] python 平滑_Python 生成曲線進行快速平滑處理
[2] Savitzky-Golay平滑濾波的python實現(xiàn)

到此這篇關于Python曲線平滑的實現(xiàn)示例的文章就介紹到這了,更多相關Python曲線平滑內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python網絡爬蟲與信息提取(實例講解)

    Python網絡爬蟲與信息提取(實例講解)

    下面小編就為大家?guī)硪黄狿ython網絡爬蟲與信息提取(實例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • 關于生產消費者模型中task_done()的具體作用

    關于生產消費者模型中task_done()的具體作用

    這篇文章主要介紹了關于生產消費者模型中task_done()的具體作用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • python模塊中判斷全局變量的賦值的實例講解

    python模塊中判斷全局變量的賦值的實例講解

    在本篇文章里小編給大家整理的是一篇關于python模塊中判斷全局變量的賦值的實例講解內容,有興趣的朋友們可以學習下。
    2021-03-03
  • python按修改時間順序排列文件的實例代碼

    python按修改時間順序排列文件的實例代碼

    這篇文章主要介紹了python按修改時間順序排列文件的實例代碼,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2019-07-07
  • python獲取淘寶服務器時間的代碼示例

    python獲取淘寶服務器時間的代碼示例

    這篇文章主要介紹了python獲取淘寶服務器時間的代碼示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • Python實現(xiàn)一元一次與一元二次方程求解

    Python實現(xiàn)一元一次與一元二次方程求解

    這篇文章主要為大家詳細介紹了如何利用Python實現(xiàn)一元一次與一元二次方程的求解,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-06-06
  • Python批量添加水印的優(yōu)雅實現(xiàn)與進階

    Python批量添加水印的優(yōu)雅實現(xiàn)與進階

    在日常圖像處理中,為圖片添加水印是一項常見任務,有多種方法和工具可供選擇,本文將專注于使用Python語言結合PIL庫批量添加水印,感興趣的可以了解下
    2023-12-12
  • 一文帶你深入理解Python魔法方法

    一文帶你深入理解Python魔法方法

    在Python中,魔法方法是指那些以雙下劃線開頭和結尾的特殊方法,它們是Python的內置方法,對應于Python對象的各種運算符,這篇文章將深入探討Python的一些魔法方法,并通過示例展示如何使用它們,需要的朋友可以參考下
    2023-06-06
  • Python如何操作office實現(xiàn)自動化及win32com.client的運用

    Python如何操作office實現(xiàn)自動化及win32com.client的運用

    這篇文章主要介紹了Python如何操作office實現(xiàn)自動化及win32com.client的運用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • 在python中使用pyspark讀寫Hive數(shù)據(jù)操作

    在python中使用pyspark讀寫Hive數(shù)據(jù)操作

    這篇文章主要介紹了在python中使用pyspark讀寫Hive數(shù)據(jù)操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06

最新評論