小波包变换(函数应用介绍)

来源:互联网 发布:手机淘宝描述在哪 编辑:程序博客网 时间:2024/06/05 11:07

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)
###################################