提升小波及其算法-基本程序-有说明

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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);

相关文档
最新文档