小波包變換(函式應用介紹)

2021-06-14 16:24:11 字數 4476 閱讀 7889

wpdec2函式

% 當前延拓模式是補零

% 裝載影象

load tire 

% x包含裝載的影象

% 使用下面的函式進行影象分解

t = wpdec2(x,2,'db1'); 

% 預設的熵準則是shannon熵

% 畫出小波包四叉樹

plot(t)

###################################

wpdec函式

% 當前延拓模式是補零

% 裝載訊號

load noisdopp; x = noisdopp;

% 使用db1小波包對x進行3層分解,使用shannon熵

wpt = wpdec(x,3,'db1','shannon');

% 結果得到了小波包樹wpt

% 畫出小波包樹

plot(wpt)

###################################

wpfun函式

% 計算db2的wn 函式,n 從0~7,產生db2小波包

[wp,x] = wpfun('db2',7);

% 畫出各個wn小波包

for i=1:8

w=wp(i,:);

subplot(4,2,i);

plot(w);

ylabel(['w',num2str(i)]);

end    

###################################

wpjoin函式

% 當前延拓模式是補零

% 載入訊號

load noisdopp; x = noisdopp;

% 使用db1小波包在第3層對x進行分解

wpt = wpdec(x,3,'db1');

% 畫出小波包樹 wpt

plot(wpt)

% 重組小波包(1,1)或結點2 

wpt = wpjoin(wpt,[1 1]);

% 畫出小波包樹wpt

plot(wpt)

###################################

wprcoef函式

% 當前延拓模式是補零

% 載入訊號

load noisdopp; x = noisdopp;

figure(1); subplot(211); 

plot(x); title('原始訊號');

% 利用db1小波包在第3層對x進行分解,使用shannon熵

t = wpdec(x,3,'db1','shannon');

% 畫出小波包樹

plot(t)

% 重構小波包結點(2,1)

rcfs = wprcoef(t,[2 1]);

figure(1); subplot(212); 

plot(rcfs); title('重構小波包結點(2,1)');

###################################

wpsplt函式

% 當前延拓模式是補零

% 載入訊號

load noisdopp; 

x = noisdopp;

% 利用db1小波包在第3層對x進行分解

wpt = wpdec(x,3,'db1');

% 畫出小波包樹

plot(wpt)

% 分解小波包結點(3,0)

wpt = wpsplt(wpt,[3 0]); 

% 或使用wpsplt(wpt,7)函式,兩者等價

% 畫出小波包樹wpt

plot(wpt)

###################################

wpcutree函式

% 當前延拓模式是補零

% 裝載訊號

load nois

dopp; x = noisdopp;

% 使用db1小波包對x進行3層分解,使用shannon熵

wpt = wpdec(x,3,'db1');

% 畫出小波包樹

plot(wpt)

% 剪掉第2層小波包樹

nwpt = wpcutree(wpt,2);

% 畫出新的小波包樹

plot(nwpt)

###################################

wpcoef函式

% 當前延拓模式是補零

% 裝載訊號

load noisdopp; x = noisdopp;

figure(1); subplot(211); 

plot(x); title('原始訊號');

% 使用db1小波包對x進行3層分解,使用shannon熵

wpt = wpdec(x,3,'db1');

% 畫出小波包樹

plot(wpt)

% 讀取小波包(2,1)的係數

cfs = wpcoef(wpt,[2 1]);

figure(1); subplot(212); 

plot(cfs); title('小波包(2,1)的係數');

###################################

wp2wtree函式

% 當前延拓模式是補零

% 裝載訊號

load noisdopp; x = noisdopp;

% 使用db1小波包對x進行3層分解,使用shannon熵

wpt = wpdec(x,3,'db1');

% 畫出小波包樹

plot(wpt)

% 計算小波樹

wt = wp2wtree(wpt);

% 畫出小波樹

plot(wt)

###################################

wentropy函式

% 當前的延拓模式是補零

% 產生原始訊號

x = randn(1,200);

% 計算x的shannon熵

e1 = wentropy(x,'shannon')

% 計算x的對數能量熵

e2 = wentropy(x,'log energy')

% 計算x的閾值熵,閾值取為0.2

e3 = wentropy(x,'threshold',0.2)

% 計算x的「sure」熵,閾值等於3

e4 = wentropy(x,'sure',3)

% 計算x的範數熵,範數指數為1.1

e5 = wentropy(x,'norm',1.1)

###################################

entrupd函式

% 當前的延拓模式是補零

% 裝載訊號

load noisdopp; x = noisdopp;

% 使用預設熵(shannon熵),用db1小波對x進行2層分解

t = wpdec(x,2,'db1','shannon');

% 讀取所有結點的熵值

nodes = allnodes(t);

ent = read(t,'ent',nodes);

ent'

% 更新結點熵

t = entrupd(t,'threshold',0.5); 

nent = read(t,'ent');

nent'

###################################

besttree函式

% 當前的延拓模式是補零

% 裝載訊號

load noisdopp; x = noisdopp;

% 使用預設熵(shannon熵),用db1小波對x進行3層分

wpt = wpdec(x,3,'db1');

% 分解小波包[3 0]

wpt = wpsplt(wpt,[3 0]);

% 畫出小波包樹

plot(wpt)

% 計算最優小波包樹

bt = besttree(wpt);

% 畫出最優小波包樹

plot(bt)

###################################

wpsplt函式

% 當前的延拓模式是補零

% 裝載訊號

load noisdopp; 

x = noisdopp;

% 使用預設熵(shannon熵),用db1小波對x進行3層分解

wpt = wpdec(x,3,'db1'); 

% 分解小波包[3 0]

wpt = wpsplt(wpt,[3 0]);

% 畫出小波包樹

plot(wpt)

% 計算最優小波包樹

blt = bestlevt(wpt);

% 畫出最優小波包樹

plot(blt)

###################################

小波包變換的入門 MATLAB

最近用到小波方面的知識,尤其是小波包變換。小波包變換的優勢 大部分書上 網上都有,我就簡單摘了點過來 由於正交小波變換只對訊號的低頻部分做進一步分解,而對高頻部分也即訊號的細節部分不再繼續分解,所以小波變換能夠很好地表徵一大類以低頻資訊為主要成分的訊號,但它不能很好地分解和表示包含大量細節資訊 細小...

小波變換應用

改變塊變換編碼中所使用變換的種類 dft與dct 結果圖如下 dct變換結果優於dft。離散傅利葉變換dft是傅利葉變換在時域和頻域上都呈離散的形式。實際應用中通常採用快速傅利葉變換計算dft。離散余弦變換dct是與傅利葉變換相關的一種變換,dct相當於乙個長度大概是它兩倍的dft,但dct是對乙個...

傅利葉變換介紹及應用

傅利葉變換 transform e de fourier 在物理學 數論 組合數學 訊號處理 概率論 統計學 密碼學 聲學 光學 海洋學 結構動力學等領域都有著廣泛的應用 例如在訊號處理中,傅利葉變換的典型用途是將訊號分解成幅值分量和頻率分量 傅利葉變換能將滿足一定條件的某個函式表示成三角函式 正弦...