python實現(xiàn)PyEMD經(jīng)驗模態(tài)分解殘差量分析
前言
PyEMD是經(jīng)驗模態(tài)分解 (EMD)及其變體的Python實現(xiàn),EMD最流行的擴展之一是集成經(jīng)驗模態(tài)分解 (EEMD),它利用了噪聲輔助執(zhí)行的集成。
顧名思義,這個包中的方法獲取數(shù)據(jù)(信號)并將其分解為一組組件。所有這些方法理論上都應該將信號分解為同一組分量,但實際上有很多細微差別和不同的方法來處理噪聲。無論采用何種方法,獲得的分量通常稱為本征模態(tài)函數(shù)(IMF),以強調它們包含固有(自身)屬性,即特定振蕩(模態(tài))。(以上來自官方文檔)
兩種實現(xiàn)形式
最近嘗試實現(xiàn)CEEMDAN,CEEMADN也是EMD的一種變體。按照官方API,有以下兩種形式的寫法:
大部分博客采用的是第一種寫法:
ceemdan = CEEMDAN() ceemdan.ceemdan(load) imfs, res = ceemdan.get_imfs_and_residue() vis = Visualisation() vis.plot_imfs(imfs, res)
這種寫法得到的圖為:

第二種寫法,也是官方的寫法:
ceemdan = CEEMDAN()(load) imfs, res = ceemdan[:-1], ceemdan[-1] vis = Visualisation() vis.plot_imfs(imfs, res)
得到的圖示為:

可以發(fā)現(xiàn),兩張圖最大的區(qū)別在于Res。一般論文中給出的圖示是第二種。
我們嘗試輸出第一種方法中的Res:
[ 0.00000000e+00 -2.84217094e-14 0.00000000e+00 ... -2.84217094e-14
0.00000000e+00 0.00000000e+00]
可以發(fā)現(xiàn)其量級特別小,還原時我們可以不加上這一部分。而方法二中的Res顯然量級是最大的,還原時必須加上。
因此,方法一中的Res是我們一般人所理解的殘余量,在真正進行建模時可以不考慮。
方法一中畫圖時如果我們不包含殘余量,即:
vis.plot_imfs(imfs=imfs, residue=res, include_residue=False)
我們將得到:

區(qū)別
在github上經(jīng)過交流后,得到如下結論:
方法一中的Res是真正意義上的殘余量,或許叫殘差更合適一點,也就是分解之后不能再分解的部分。在PyEMD的源碼中被定義為:
S * scale_s - np.sum(self.C_IMF, axis=0)
因此,ceemdan.get_imfs_and_residue()實際上得到的是最終的IMF和重建誤差,而不是殘差。
殘差的正確獲取方式是ceemdan[-1]。
以上就是python實現(xiàn)PyEMD經(jīng)驗模態(tài)分解殘差量分析的詳細內容,更多關于PyEMD經(jīng)驗模態(tài)分解殘差量的資料請關注腳本之家其它相關文章!
相關文章
使用Python將PDF表格提取到文本,CSV和Excel文件中
本文將介紹如何使用簡單的Python代碼從PDF文檔中提取表格數(shù)據(jù)并將其寫入文本、CSV和Excel文件,從而輕松實現(xiàn)PDF表格的自動化提取,有需要的可以參考下2024-11-11
解決Pandas to_json()中文亂碼,轉化為json數(shù)組的問題
今天小編就為大家分享一篇解決Pandas to_json() 中文亂碼,轉化為json數(shù)組的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05
windows11環(huán)境安裝django項目GNU gettext工具的步驟
Django 框架具有很好的 I18N 和 L10N 的支持,其實現(xiàn)是基于 GNU 的 gettext,本文主要介紹了windows11環(huán)境安裝django項目GNU gettext工具的步驟,具有一定的參考價值,感興趣的可以了解一下2024-04-04

