clear;
clc;
n=3;
wpname='db3';
% [b,a]=butter(8,[5/100 99/100]);
% load a1_1-1;
load k301_1-4;
% data=filter(b,a,data);
data=data-mean(data);
data=detrend(data);
wpt1=wpdec(data,n,wpname); %對資料進行小波包分解
for i=1:2^n %wpcoef(wpt1,[n,i-1])是求第n層第i個節點的係數
e(i)=norm(wpcoef(wpt1,[n,i-1]),2);%求第i個節點的範數平方,其實也就是平方和
end% disp('每個節點的能量e(i)');
% e% disp('小波包分解總能量e_total');
e_total=sum(e); %求總能量
for i=1:2^n
pfir(i)= e(i)/e_total;%求每個節點的概率
endpfir
% load a1_1-2;
load k302_1-4;
% data=filter(b,a,data);
data=data-mean(data);
data=detrend(data);
wpt2=wpdec(data,n,wpname); %對資料進行小波包分解
for i=1:2^n %wpcoef(wpt1,[n,i-1])是求第n層第i個節點的係數
e(i)=norm(wpcoef(wpt2,[n,i-1]),2);%求第i個節點的範數平方,其實也就是平方和
ende_total=sum(e); %求總能量
for i=1:2^n
psec(i)= e(i)/e_total;%求每個節點的概率
endpsec
% load a1_1-4;
load k303_1-4;
% data=filter(b,a,data);
data=data-mean(data);
data=detrend(data);
wpt3=wpdec(data,n,wpname); %對資料進行小波包分解
for i=1:2^n %wpcoef(wpt1,[n,i-1])是求第n層第i個節點的係數
e(i)=norm(wpcoef(wpt3,[n,i-1]),2);%求第i個節點的範數平方,其實也就是平方和
ende_total=sum(e); %求總能量
for i=1:2^n
pthi(i)= e(i)/e_total;%求每個節點的概率
endpthi
格式:y = detrend(x) % 消除時間序列中的線性趨勢項
y = detrend(x,'constant') % 消除時間序列中的均值
y = detrend(x,'linear',bp) % 分段消除時間序列中的線性趨勢項,bp為分段點向量
如detrend的乙個例項
sig = [0 1 -2 1 0 1 -2 1 0]; % 無線性趨勢的訊號
trend = [0 1 2 3 4 3 2 1 0]; % 有兩段線性的趨勢
x = sig+trend; % 將上面趨勢疊加到訊號上
y = detrend(x,'linear',5) % 根據指定的分段點去除兩段線性趨勢
y =-0.0000 1.0000 -2.0000 1.0000 0 1.0000 -2.0000 1.0000 0.0000
小波包分解樹
小波包將原始訊號逐級向下分解。圖1為用matlab繪製的小波包分解樹,分解層數為3層。樹中節點的命名規則如下 從 1,0 開始,1,0 為1號,1,1 是2號,依次類推,3,0 是7號,3,7 是14號。每個節點都有對應的小波包係數,此係數決定了頻率的大小,即頻域資訊,節點的順序決定了時域資訊,即頻...
小波分解與小波包分解的區別
問 為什麼小波不能對高頻部分進行再次分解?而小波包就可以呢?急求大佬!答 真不明白為何會有此問?從計算和實現方式dwt和wp沒啥不同,當對dwt滴高頻部分再實行一次dwt就是wp了,通常滴一般應用只處理低頻即可滿足實際需要,通常對高頻過多滴處理被很多應用認為是不必和多餘滴,還可能會有雜訊和吉布斯效應...
小波包變換的入門 MATLAB
最近用到小波方面的知識,尤其是小波包變換。小波包變換的優勢 大部分書上 網上都有,我就簡單摘了點過來 由於正交小波變換只對訊號的低頻部分做進一步分解,而對高頻部分也即訊號的細節部分不再繼續分解,所以小波變換能夠很好地表徵一大類以低頻資訊為主要成分的訊號,但它不能很好地分解和表示包含大量細節資訊 細小...