提升小波及其算法-基本程序-有说明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
% 使用Haar小波,得到相应的提升方案
lshaar=liftwave('haar');
% 添加ELS到提升方案
els={'p',[-0.125 0.125],0}
lsnew=addlift(lshaar,els);
% 对于简单图像,尺度为2进行LWT
x=reshape(1:16,4,4);
xDec=lwt2(x,lsnew,2)
% 提取第一层的低频系数
ca1=lwtcoef2('ca',xDec,lsnew,2,1)
% 重构低频和高频
a1=lwtcoef2('a',xDec,lsnew,2,1)
a2=lwtcoef2('a',xDec,lsnew,2,2)
h1=lwtcoef2('h',xDec,lsnew,2,1)
v1=lwtcoef2('v',xDec,lsnew,2,1)
d1=lwtcoef2('d',xDec,lsnew,2,1)
h2=lwtcoef2('h',xDec,lsnew,2,2)
v2=lwtcoef2('v',xDec,lsnew,2,2)
d2=lwtcoef2('d',xDec,lsnew,2,2)
% 检查重构效果
err=max(max(abs(x-a2-h2-v2-d2-h1-v1-d1)))
M1=laurmat(eye(2,2))
Z=laurpoly(1,1);
M2=laurmat({1 Z;0 1})
% 计算劳伦多项式
P=M1*M2
d=det(P)
% 得到Haar滤波器
[LoD,HiD,LoR,HiR]=wfilters('haar')
% 提升Haar滤波器
twoels(1)=struct('type','p','value',laurpoly([0.125 -0.125],0)); twoels(2)=struct('type','p','value',laurpoly([0.125 -0.125],1)); [LoDN,HiDN,LoRN,HiRN]=liftfilt(LoD,HiD,LoR,HiR,twoels);
% 得到双正交小波bior1.3
[LoDB,HiDB,LoRB,HiRB]=wfilters('bior1.3');
somewavelet=isequal([LoDB,HiDB,LoRB,HiRB],[LoDN,-HiDN,LoRN,HiRN])
% 使用Haar小波,得到相应的提升方案
lshaar=liftwave('haar');
% 添加ELS到提升方案
els={'p',[-0.125 0.125],0}
lsnew=addlift(lshaar,els);
% 对于简单信号,进行2层LWT
x=1:8;
xDec=lwt(x,lsnew,2)
% 提取尺度为1时的低频系数
ca1=lwtcoef('ca',xDec,lsnew,2,1)
% 重构低频和高频
a1=lwtcoef('a',xDec,lsnew,2,1)
a2=lwtcoef('a',xDec,lsnew,2,2)
d1=lwtcoef('d',xDec,lsnew,2,1)
d2=lwtcoef('d',xDec,lsnew,2,2)
% 检查重构效果
err=max(abs(x-a2-d2-d1))
% 定义劳伦多项式
P=laurpoly([1:3],2);
P=laurpoly([1:3],'dmax',2)
P=laurpoly([1:3],'dmin',2)
% 计算劳伦多项式
Z=laurpoly(1,1)
Q=Z*P
% 得到Haar小波的提升方案
lshaar=liftwave('haar');
% 添加ELS到提升方案中
els={'p',[-0.125 0.125],0};
lsnew=addlift(lshaar,els);
% 进行单层提升小波分解
load noisdopp;
x=noisdopp;
[cA,cD]=lwt(x,lsnew);
figure(1);
subplot(311);
plot(x);
title('原始信号');
subplot(312);
plot(cA);
title('提升小波分解的低频信号');
subplot(313);
plot(cD);
title('提升小波分解的高频信号');
% 直接使用Haar小波进行2层提升小波分解[cA,cD]=lwt(x,'haar',2);
figure(2);
subplot(311);
plot(x);
title('原始信号');
subplot(312);
plot(cA);
title('2层提升小波分解的低频信号'); subplot(313);
plot(cD);
title('2层提升小波分解的高频信号');
% 得到Haar小波的提升方案
lshaar=liftwave('haar');
% 添加ELS到提升方案中
els={'p',[-0.125 0.125],0};
lsnew=addlift(lshaar,els);
% 2层提升小波分解
load noisdopp;
x=noisdopp;
xDec=lwt(x,lsnew,2);
% 提取第1层的近似系数
ca1=lwtcoef('ca',xDec,lsnew,2,1);
% 提取第2层的近似系数
ca2=lwtcoef('ca',xDec,lsnew,2,2);
% 提取第1层的细节系数
cd1=lwtcoef('cd',xDec,lsnew,2,1);
% 提取第2层的细节系数
cd2=lwtcoef('cd',xDec,lsnew,2,2);