1. 程式人生 > >Haar小波變換的快速實現

Haar小波變換的快速實現

先舉個例子,有a=[100,12,43,39]四個數,並使用b[4]陣列來儲存結果。
一級Haar小波變換的結果為:
b[0] = (a[0] + a[1])/2
b[1] = (a[2] + a[3])/2
b[2] = (a[0] – a[1])/2
b[3] = (a[2] – a[3])/2
b[0],b[1]儲存的是小波變換後的近似係數,b[2],b[3]儲存的是變換後的細節係數。
這是訊號個數為偶時的,當訊號個數為奇時,在後數補0即可。二維小波變換可以先對每一行進行這樣的小波變換,然後按列進行這樣的變換,或將二維矩陣轉置,按行變換後再轉置。
為什麼可以這樣計算呢?
讓我們先看一看小波變換的變換矩陣

矩陣第一行是低通濾波器,第二行是高通濾波器,我們知道快速小波變換是使用濾波器卷積訊號然後基2重取樣,使用這兩個濾波器並基2取樣表現出來就是上面的加減運算。
下面的我寫的程式的效果圖:這裡有《

使用CUDA計算Haar小波變換

作者:renjihe 出處:http://www.renjihe.com
本站所有文章均是原創,版權歸本站所有。歡迎轉載,但未經同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利.