matlab小波滤波详解,基于matlab的振动波形小波分析及小波基础知识学习
詳情可參見參考文獻1,3,很棒的文章,感謝原作者的分享:
這里是個人的學習筆記和其它資料的綜合,最后附上了對實際信號的小波分解結果
更新20200902:文獻2適用于在用matlab進行嘗試時閱讀,通過它能夠很好的掌握matlab中一維信號小波分析的使用方法
1、時變信號的概念【1】
既然有了傅里葉變換這個工具,為什么還需要小波變換呢?因為:傅里葉變換只能告訴你原始信號中有哪些頻率,但不能告訴你這些頻率的信號出現在什么時間!也就說明:如果信號是"時變"的(頻率隨著時間是改變的),那么單純用傅里葉變換所能反映的信息就十分有限了!因此,針對時變信號,我們使用小波變換。
圖1展示"時變信號"與"時不變信號"區別:
2、小波變換的過程【1】
小波分解的流程總結為:先將信號對半分解成"低頻近似"與"高頻細節"2個部分;同樣的操作每次將上一次的"低頻近似"部分再分成低頻近似和高頻細節部分,逐次細分(最多分解到每個部分只有1個點)。每次分出的高頻細節部分不做分解。因此:每次分出低頻近似部分相當于對本次信號做"低通濾波",分出的高頻細節部分相當于對本次信號做"高通濾波"。所以:每次小波分解就是用1個低通濾波器和1個高通濾波器對本次信號做1次低通濾波和1次高通濾波而已。
(最后會剩下一個低通濾波信號和一堆高頻濾波信號)
由上述說明可得:小波分解的關鍵在于2個(一組)濾波器。對于現實的離散數據而言,濾波器看上去很高大上其實就是很簡單的數字而已,濾波聽起來很難,其實就是做"點乘相加"而已。
最簡單的一組濾波器:
低通濾波器【0.5,0.5】,高通濾波器【0.5,-0.5】
原始信號【2,5,8,9,7,4,-1,1】
小波多級分解清楚了,那怎么"重構/恢復"回去呢?塔式分解的逆向合成而已。根據濾波器的規律,逐級往上遞推即可實現重構/恢復~
那么問題就來了:
1、選擇什么樣的濾波器是合適的?常見濾波器
常見參見第三部分,選擇合適的濾波器是小波應用的一大難題,有空的話再看看別的資料進行說明【#Todo】
2、濾波出來的高頻細節有什么用呢
參見文章第五部分
3.小波變換的MATLAB實現【4】
使用Matlab進行1維小波分析主要使用的函數有:
wavedec小波分解
waverec 小波重建
appcoef 近似系數
detcoef 細節系數
1維小波分析主要使用的濾波器有:
Haar小波
Daubechies小波
從小波變換的算法中其實可以看到,MATLAB中小波變換的算法實際上是先不斷的將信號通過高通和低通濾波器后,進行2倍下采樣的過程,因此信號會越來越短。
(對于一個樣值序列間隔幾個樣值取樣一次,這樣得到新序列就是原序列的下采樣。)
用振動信號做小波變換可以得到如下的圖像,代碼可參考資料4,對代碼中用到函數的詳細解釋可參考資料3
原始時域圖像
多級小波分解圖
4、一維離散小波1級和多級分解【2】
上面提到的那些函數具體是用來干什么的呢:(這部分由于沒有實際使用,我也不是特別清楚,下面是參考資料里的解釋)
matlab自帶的小波分析工具非常全!實際工作中直接用即可。但是剛開始使用會遇到挫折:它的函數太多,并且它們的"名稱、功能、配套使用"等要求都有些"相近",很容易導致糊涂!
下面先列舉3條關鍵理解,后面會用到:
小波分解,分解到的"不是頻率域"!可以抽象理解為"小波域",但其實沒有實際內涵!傅里葉變換到頻率域是有實際內涵的;
小波分解得到的"小波系數"是"沒有量綱"的!它其實是"沒有實際意義的數",需要做系數重構才能從"小波域"再轉回到"時域";
"系數重構"與"重構信號"不是一個東西!系數重構就是把無量綱的小波分解系數變回到有意義的"時域";"重構信號"就是把分解的完整恢復回去。
說明:"系數提取"只有"多級分解"才會用的到!?1級分解是不需要"系數提取"的!因為就分成了低頻和高頻2個部分,直接用1維或2維分解函數的返回結果就行了
還是要著重強調一點:用自帶的函數做完"小波分解"后,得到的"小波系數"是"沒有量綱"的!可以理解為原始信號域映射到小波域(小波域不是什么具體的東西,只是為了方便理解)!只有把分解出來的"小波系數"再做"系數重構"后,才能回到原始的信號域,得到原始信號的不同的低頻和高頻子信號成分(還是時域的顯示)。
進行小波包變換的基本思想是讓信息能量集中,在細節系數中尋找有序性,因此單純把所有系數進行分解沒有實際的幫助,只會增加計算量,因此需要有一定的衡量原則,一般采用熵最小原則,熵越小,信息的規律性越強,一般的判別方法是看系數分解后的系數的熵的和是否大于原系數的熵。
5、小波變換的實際應用【3】
小波變換專業處理時變信號!其重要用途包含:突變點檢測、時頻分析、信號降噪等。
1)突變點檢測
(對個人啟示是可以用小波的單極變換做工況點或狀態突變點檢測)
存在3個間斷點的原始信號
一維haar小1級分解間斷點檢測結果
一維db4小波基3級分解間斷點檢測結果
2)時頻分析
時變信號
4種窗函數節點的時頻圖
關于時頻分析,這里再補充一個實際的案例。
時頻分析實際數據原始信號
等值線圖展示
mesh三維圖像展示
3)信號降噪
所謂閾值去噪簡而言之就是對信號進行分解,然后對分解后的系數進行閾值處理,最后重構得到去噪信號。該算法其主要理論依據是:小波變換具有很強的去數據相關性,它能夠使信號的能量在小波域集中在一些大的小波系數中;而噪聲的能量卻分布于整個小波域內.因此,經小波分解后,信號的小波系數幅值要大于噪聲的系數幅值.可以認為,幅值比較大的小波系數一般以信號為主,而幅值比較小的系數在很大程度上是噪聲.于是,采用閾值的辦法可以把信號系數保留,而使大部分噪聲系數減小至零.小波閾值收縮法去噪的具體處理過程為:將含噪信號在各尺度上進行小波分解,設定一個閾值,幅值低于該閾值的小波系數置為0,高于該閾值的小波系數或者完全保留,或者做相應的“收縮(shrinkage)”處理.最后將處理后獲得的小波系數用逆小波變換進行重構,得到去噪后的信號.
參考資料
【1】https://www.jianshu.com/p/8847e6eebe16? ??手動實現一維離散數據小波分解與重構
【2】https://www.jianshu.com/p/56733f6c0a10? ?一維離散小波變換函數使用總結
【3】https://www.jianshu.com/p/f1c6b7f73995? ??一維離散數據小波變換實用案例
【4】https://blog.csdn.net/qq_24598387/article/details/84977504? ??MATLAB小波變換工具箱 Wavelet Toolbox 實際操作與訓練
總結
以上是生活随笔為你收集整理的matlab小波滤波详解,基于matlab的振动波形小波分析及小波基础知识学习的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: VSCode 中文乱码设置
- 下一篇: M2Det-一种使用新的特征金字塔方式的
