小波图像分解和重构程序每句都带解释

合集下载

小波的分解与重构去噪。课件

小波的分解与重构去噪。课件

小波变换在物联网中的应用
总结词
压缩感知、低功耗、物联网设备兼容
详细描述
物联网设备产生大量的数据,需要高效的压缩和感知技术来处理这些数据。小波变换作为一种有效的 数据压缩和感知方法,可以在保证数据完整性的同时,减少数据的存储空间和传输带宽需求。未来研 究需要进一步探索小波变换在物联网设备上的应用,降低功耗和提高设备的兼容性。
在图像处理、信号处理、数据压缩等 领域得到广泛应用。
优点
具有多尺度分析能力,能够适应不同 尺度的信号特征。
缺点
计算量较大,需要较高的计算资源和 时间。
提升小波变换
原理
应用
提升小波变换是一种基于滤波器组的小波 变换方法,通过将信号分解成低通和高通 分量,实现信号的多尺度分析。
在图像处理、信号处理、数据压缩等领域 得到广泛应用。
滤波器组
小波变换使用滤波器组来将信号分解为细节和近似成分。 滤波器组的特性决定了小波变换的性能和效果。
快速小波变换(FWT)
FWT是一种高效的小波变换算法,可以在计算机上实现。 它可以用于实时分析和处理信号。
小波变换的应用领域
图像处理
小波变换在图像处理中广泛应 用,包括图像压缩、去噪、增
强和特征提取等。
02
连续小波变换(CWT)
CWT是一种将信号分解为一系列不同尺度和频率的小波基函数的叠加
。它可以用于分析信号的时频特性。
03
离散小波变换(DWT)
DWT是一种将连续小波变换离散化,以便在计算机上实现。它可以用
于分析信号的细节和近似成分。
小波变换的基本原理
多尺度分析
多尺度分析是一种将信号分解为不同尺度和频率成分的方 法。小波变换的多尺度特性使得它可以在不同的尺度上分 析信号,从细节到整体。

小波分解与重构

小波分解与重构

小波分解与重构我理解的小波分解是将一个多频率组成的波通过小波分解将所有频率分解出来,重构就是将这些分频率加起来得到最后的重构结果,于是写了个这样的程序clcclose all;clear all;clc;fs=612;[reg,sta,data]=readmydata('beijing08.dat');data{1:end};A=ans(2:end);for i=1:609;if A(i)>50.0;A(i)=(A(i-12)+A(i+12))/2;endendfor i=609:612;if A(i)>50.0;A(i)=(A(i-12)+A(i-24))/2;endend%信号时域波形figure(1);plot(1:612,A);%使用db5小波进行尺度为7时的分解[c,l]=wavedec(A,9,'db5');%从小波分解结构[c,l]重构信号xdataa0=waverec(c,l,'db5');%检查重构效果figure(2);subplot(3,1,1);plot(A);title('原始信号')subplot(3,1,2);plot(a0);title('重构信号')subplot(3,1,3);plot(A-a0);title('误差信号')err=max(abs(A-a0))%重构第1~5层高频细节信号d9=wrcoef('d',c,l,'db5',9); d8=wrcoef('d',c,l,'db5',8); d7=wrcoef('d',c,l,'db5',7); d6=wrcoef('d',c,l,'db5',6); d5=wrcoef('d',c,l,'db5',5); d4=wrcoef('d',c,l,'db5',4); d3=wrcoef('d',c,l,'db5',3); d2=wrcoef('d',c,l,'db5',2); d1=wrcoef('d',c,l,'db5',1); %显示高频细节信号figure(3);subplot(9,1,1);plot(d9,'LineWidth',2); ylabel('d9');subplot(9,1,2);plot(d8,'LineWidth',2); ylabel('d8');subplot(9,1,3);plot(d7,'LineWidth',2);ylabel('d7');subplot(9,1,4);plot(d6,'LineWidth',2);ylabel('d6');subplot(9,1,5);plot(d5,'LineWidth',2);ylabel('d5');subplot(9,1,6);plot(d4,'LineWidth',2);ylabel('d4');subplot(9,1,7);plot(d3,'LineWidth',2);ylabel('d3');subplot(9,1,8);plot(d2,'LineWidth',2);ylabel('d2');xlabel('时间 t/s');subplot(9,1,9);plot(d1,'LineWidth',2);ylabel('d1');%第1层高频细节信号的包络谱y=hilbert(d1);ydata=abs(y);y=y-mean(y);nfft=1024;p=abs(fft(ydata,nfft));figure(4);plot((0:nfft/2-1)/nfft*fs,p(1:nfft/2));xlabel('频率 f/Hz');ylabel('功率谱 P/W');小波分解与重构程序>> clearI=imread('C:\Documents and Settings\Administrator\桌面\暑期/cidian.bmp');I=rgb2gray(I);[X,map]=gray2ind(I);subplot(2,2,1);imshow(X,map);title('原始图像');X=double(X);sX=size(X);[cA,cH,cV,cD]=dwt2(X,'db4');A0=idwt2(cA,cH,cV,cD,' db4', sX);subplot(2,2,2);imshow(A0,map);title('db4小波重构');error1=max(max(abs(X-A0)))程序很简单,也很基础。

小波变换与信号的分解重构课件

小波变换与信号的分解重构课件

信号的重构方法
基于小波变换的重构算法
01
利用小波系数进行逆变换,重构出原始信号。
基于内积定理的重构算法
02
利用小波基的内积定理,通过已知的小波系数重构出原始信号

重构算法的应用
03
信号恢复、去噪、压缩感知等领域。
BIG DATA EMPOWERS TO CREATE A NEW ERA
04
小波变换在信号处理中的应用
小波变换与信号的分解重
BIG DATA EMPOWERS TO CREATE A NEW
ERA
构课件
• 小波变换概述 • 小波变换原理及方法 • 信号的分解与重构 • 小波变换在信号处理中的应用 • 小波变换的优缺点及改进方向 • 小波变换的实验与实现
目录
CONTENTS
01
小波变换概述
BIG DATA EMPOWERS TO CREATE A NEW
号。
局部适应性
小波基函数具有局部适 应性,能够更好地捕捉
信号的局部特征。
去噪能力强
小波变换能够将信号中 的噪声和干扰分离出来 ,提高信号的纯净度。
应用广泛
小波变换在图像处理、 音频分析、信号处理等 领域都有广泛的应用。
小波变换的历史与发展
小波变换的思想起源于20世纪80年 代,随着计算机技术的发展,小波变 换逐渐成为信号处理领域的重要工具 。
计算效率高
小波变换的计算效率比较高,特别 是在对一维信号进行处理时,其计 算复杂度较低。
小波变换的缺点
信号重构精度问题
小波变换在进行信号分解时,可能会出现信号重构精度不高的情 况,尤其是在处理含有较多细节的信号时。
缺乏明确的物理意义

小波的分解和重构算法

小波的分解和重构算法

小波的分解和重构算法小波分解是将一个多频率组成的波通过小波分解将所有频率分解出来,重构就是将这些分频率加起来得到最后的重构结果。

小波变换的一级分解过程是,原始信号分别进行低通、高通滤波,再分别进行二元下采样,就得到低频、高频两部分系数;而多级分解则是对上一级分解得到的低频系数再进行小波分解,是一个递归过程。

分解过程:function [cA,cD] = mydwt(x,lpd,hpd,dim)%函数[cA,cD]=MYDWT(X,LPD,HPD,DIM) 对输入序列x进行一维离散小波分解,输出分解序列[cA,cD] ;%输入参数:x——输入序列;% lpd——低通滤波器;% hpd——高通滤波器;% dim——小波分解级数;% 输出参数:cA——平均部分的小波分解系数;% cD——细节部分的小波分解系数;cA=x; % 初始化cA,cDcD=[ ];for i=1:dimcvl=conv(cA,lpd); % 低通滤波,为了提高运行速度,调用MATLAB 提供的卷积函数conv()dnl=downspl(cvl); % 通过下采样求出平均部分的分解系数cvh=conv(cA,hpd); % 高通滤波dnh=downspl(cvh); %通过下采样求出本层分解后的细节部分系数cA=dnl; % 下采样后的平均部分系数进入下一层分解cD=[cD,dnh]; % 将本层分解所得的细节部分系数存入序列cDendfunction y=downspl(x);% 函数Y=DOWMSPL(X) 对输入序列进行下采样,输出序列Y。

% 下采样是对输入序列取其偶数位,舍弃奇数位。

N=length(x); % 读取输入序列长度M=floor(N/2); % 输出序列的长度是输入序列长度的一半i=1:M;y(i)=x(2*i);而重构则是分解的逆过程,对低频系数、高频系数分别进行上采样和低通、高通滤波处理。

重构过程:function y = myidwt(cA,cD,lpr,hpr);% 函数MYIDWT() 对输入的小波分解系数进行逆离散小波变换,重构出信号序列y% 输入参数:cA ——平均部分的小波分解系数;% cD ——细节部分的小波分解系数;% lpr、hpr ——重构所用的低通、高通滤波器。

小波分解

小波分解

设计信号为频率1,20,40 的三个正弦信号与随机信号叠加,先求出其含噪声信号图像,然后输出功率谱图像,可以看出三个频率段。

最后,用小波变换的方法分解信号,经过5层分解重构,输出结果。

分析过程程序如下:N=400;fs=200;n=[0:N-1];t=n/fs;randn('state',0);x1=sin(2*pi*1*t);x2=sin(2*pi*20*t);x3=sin(2*pi*40*t);fn=x1+x2+x3+1.5*randn(1,length(t));figure(1)subplot(2,1,1);plot(n,fn);xlabel('t/s');ylabel('fn');legend('含噪声信号fn');grid;P1=fft(fn,N);f=n*fs/N;mag=abs(P1);subplot(2,1,2);plot(f(1:N/2),mag(1:N/2));xlabel('f/Hz');ylabel('P1幅值');legend('信号功率谱P1');grid;[c,l]=wavedec(fn,5,'db3');figure(2)a5=wrcoef('a',c,l,'db3',5);a4=wrcoef('a',c,l,'db3',4);a3=wrcoef('a',c,l,'db3',3);a2=wrcoef('a',c,l,'db3',2);a1=wrcoef('a',c,l,'db3',1);subplot(5,1,1);plot(a5,'LineWidth',2);ylabel('a5');grid;subplot(5,1,2);plot(a4,'LineWidth',2);ylabel('a4');grid;subplot(5,1,3);plot(a3,'LineWidth',2);ylabel('a3');grid;subplot(5,1,4);plot(a2,'LineWidth',2);ylabel('a2');grid;subplot(5,1,5);plot(a1,'LineWidth',2);ylabel('a1');xlabel('样本序列');grid;figure(3)d5=wrcoef('d',c,l,'db3',5);d4=wrcoef('d',c,l,'db3',4);d3=wrcoef('d',c,l,'db3',3);d2=wrcoef('d',c,l,'db3',2);d1=wrcoef('d',c,l,'db3',1);subplot(5,1,1);plot(d5,'LineWidth',2);ylabel('d5');grid;subplot(5,1,2);plot(d4,'LineWidth',2);ylabel('d4');grid;subplot(5,1,3);plot(d3,'LineWidth',2);ylabel('d3');grid;subplot(5,1,4);plot(d2,'LineWidth',2);ylabel('d2');grid;subplot(5,1,5);plot(d1,'LineWidth',2);ylabel('d1');xlabel('样本序列');grid; 输出图像为:图1 含噪声的信号及其功率谱图像图2 逼近系数图像图3 细节系数图像含噪声的信号及其功率谱图像如图1所示。

小波分析第二次作业——分解重构算法的实现

小波分析第二次作业——分解重构算法的实现

小波分析第二次作业——分解重构算法的实现郭欣仪精仪学院2015级仪器科学与技术一班(博)学号:10152020341 理论分析本次分解重构算法的演示将采用MATLAB中的小波工具实现。

分解与重构算法是小波分析中最重要的工具之一,几乎大部分的工程应用,如信号去噪、图像处理等,都离不开这一算法。

这里,我们使用的是MATLAB中的离散小波变换wavedec函数。

下图1介绍了这一函数进行小波分解重构的原理:图1 离散小波变换wavedec分解过程图中所示的过程解释如下:原始信号S进行低通、高通滤波和下抽样,得到两部分结果:低频近似系数CA1和高频细节系数CD1,这是小波变换的一级分解过程。

在此基础上,对一级分解的近似系数CA1进一步分解成CA2和CD2,以此类推,就得到了小波变换的多级分解。

图中所示为三级分解,最终得到了近似系数CA3和三个细节系数CD1、CD2、CD3。

信号的重构则是一个逆过程,对获得的近似系数和细节分量进行上抽样、低通和高通滤波处理,得到重构后的函数。

MATLAB中的wavedec函数与dwt函数功能类似,只不过一个是多层分解,一个是单层分解,wavedec函数就是dwt函数的叠加。

所以,直接使用wavedec函数,和多次使用dwt函数结果是一样的。

各自的函数参量表示如下:[CA,CD]=dwt(S,'wavename'):dwt函数,使用小波'wavename'对信号S进行单层分解,求得的近似系数存放在CA中,细节系数存放在CD中。

[C,L]=wavedec(S,N,' wavename '):wavedec函数,使用小波' wavename '对信号S进行N层分解,所得的近似系数存放在数组C中,细节系数存放在数组L中。

在我们的程序中,还会用到以下几个函数:A=appcoef(C,L,'wavename',N):利用小波'wavename'从分解系数[C,L]中提取第N层近似系数。

小波图像分解与重构

小波图像分解与重构

⼩波图像分解与重构MATLAB2015教程中⽰例clc;clear;% 装载图像load woman;% X包含载⼊的图像% 绘制原始图像figure(1);subplot(2,2,1);image(X);colormap(map);title('原始图像');% 使⽤sym5对X进⾏尺度为2的分解[c,s] = wavedec2(X,1,'sym5');% 从⼩波分解结构[c,s]进⾏尺度为1和2时的低频重构a1 = wrcoef2('a',c,s,'sym5',1);a2 = wrcoef2('a',c,s,'sym5',1);% 绘制尺度为1时的低频图像subplot(2,2,3);image(a1);colormap(map);title('尺度为1时的低频图像');% 绘制尺度为2时的低频图像subplot(2,2,4);image(a2);colormap(map);title('尺度为2时的低频图像');% 从⼩波分解结构[c,s]在尺度为2时重构⾼频% 'h' 是⽔平⽅向% 'v' 是垂直⽅向% 'd' 是对⾓⽅向hd2 = wrcoef2('h',c,s,'sym5',1);vd2 = wrcoef2('v',c,s,'sym5',1);dd2 = wrcoef2('d',c,s,'sym5',1);% 绘制⾼频图像figure(2);subplot(2,2,1);image(hd2);colormap(map);title('尺度为2时的⽔平⾼频图像');subplot(2,2,2);image(vd2);colormap(map);title('尺度为2时的垂直⾼频图像');subplot(2,2,3);image(dd2);colormap(map);title('尺度为2时的对⾓⾼频图像');subplot(2,2,4);image(hd2+dd2+vd2+a1);colormap(map);% 验证这些图像的长度都是sXsX = size(X)sa1 = size(a1)shd2 = size(hd2)norm(hd2+dd2+vd2+a1-X)。

图像小波分解以及重构

图像小波分解以及重构

图像小波分解1 一级分解及重构1.1程序a=imread('lena.jpg');x=rgb2gray(a);[cA,cH,cV,cD]=dwt2(x,'haar');subplot(2,2,1);imshow(cA,[]);subplot(2,2,2);imshow(cH,[]);subplot(2,2,3);imshow(cV,[]);subplot(2,2,4);imshow(cD,[]);x_idwt=idwt2(cA,cH,cV,cD,'haar');figure(2);imshow(x_idwt,[]);1.2 结果图1 小波一级分解图2一级分解重构2 小波二级分解2.1 思路一我们在一级分解的基础上,对低频分量进行再次一级分解,即可得到小波二级分解。

程序:[cA2,cH2,cV2,cD2]=dwt2(cA,'haar');figure(3);subplot(2,2,1);imshow(cA2,[]);subplot(2,2,2);imshow(cH2,[]);subplot(2,2,3);imshow(cV2,[]);subplot(2,2,4);imshow(cD2,[]);图3 小波一级分解图4 小波二级分解通过上面两张图片对比,我们可以看出,二级小波分解的低频分量和一级小波分解的低频分量相差不大,说明图像经过一级分解已经将大部分的水平,垂直,斜向分量提取,所以两个低频分量相差不大。

2.2 思路二我们使用函数waverec2函数进行小波变换,其格式为:[c,s]=wavedec2(X,N,'wname')我们用它对图像X用wname小波基函数实现N层分解,将结果储存在一个行向量c里。

程序:[c,s]=wavedec2(x,2,'haar');cA2=reshape(c(1,1:125^2),125,125);figure(4);subplot(2,2,1);imshow(cA2,[]);cH2=reshape(c(1,125^2+1:125*250),125,125);subplot(2,2,2);imshow(cH2,[]);cV2=reshape(c(1,125*250+1:125*250+125^2),125,125);subplot(2,2,3);imshow(cV2,[]);cD2=reshape(c(1,250*375+1:250*375+125^2),125,125);subplot(2,2,4);imshow(cD2,[]);图5 思路二的小波二级分解(有误)但是,通过观察上图的第四幅图即斜向分量明显有误,于是我又查阅了函数waverec2的结构:c=[A(N)|H(N)|V(N)|D(N)|H(N-1)|V(N-1)|D(N-1)|H(N-2)|V(N-2)|D(N-2)|...|H(1)|V(1) |D(1)];所以,取数的顺序是正确的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

小波图像分解程序:function coef=mywavedec2(x,N,wname) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 函数MYWA VEDEC2() 对输入矩阵x 进行dim 层分解,得到相应的分解系数矩阵y% 输入参数:x ——输入矩阵% N ——分解级数% wname ——分解所用的小波函数% 输出参数:coef ——分解系数矩阵,其结构如下:% coef = {cA_N;cV_N;cH_N;cD_N;cV_N-1;cH_N-1;cD_N-1;……;cV_1;cH_1;cD_1}% Copyright by Zou Yuhua ( chenyusiyuan ), original : 2007-11-10, modified: 2008-06-04 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 求出小波函数的滤波器组系数向量[Lo_D,Hi_D] = wfilters(wname,'d');% 画出原始图像imshow(x);title('Original Image');% 标明图像大小[r,c]=size(x);xlabel(['Size : ',num2str(r),'*',num2str(c)]);% 将矩阵x的数据格式转换为适合数值处理的double格式xd=double(x);coef=[];for i=1:N[cA,cV,cH,cD]=mydwt2(xd,Lo_D,Hi_D);% 第i 级小波分解xd=cA;% 将第i 级分解得到的低频系数矩阵作为第i+1 级分解的源矩阵outmp={cV;cH;cD};% 将第i 级分解得到的高频系数矩阵cV,cH,cD存入细胞矩阵outmp % 注意细胞矩阵的赋值是用大括号“{}”的,而普通矩阵赋值是用方括号“[]”% 细胞矩阵不要求其中的子矩阵的行列数都相同coef=[outmp;coef];% 将细胞矩阵outmp 存入输出矩阵coef,coef将由空矩阵变为细胞矩阵% 注意这里的方括号不能用大括号取代% 否则,使用大括号会将初始的coef空矩阵也作为细胞矩阵的子矩阵% 而且,在迭代中coef 将是一个不断嵌套的细胞矩阵,不便于后续处理和读取% 上面这个语句是一种有效的在迭代过程中保存数据的方法% 设待存数据为data,可以是单个数、向量或矩阵% 保存数据的矩阵为mat,初始为空矩阵:mat=[]% 则可按以下格式保存迭代过程产生的数据% mat=[mat;data];% 方括号内的分号“;”表示数据data 是按“列”排序的方式存入矩阵mat% mat=[mat,data];% 方括号内的逗号“,”表示数据data 是按“行”排序的方式存入矩阵mat% data 也可以在mat 前嵌入,即mat=[data;mat] 或mat=[data,mat]end% 迭代结束后,矩阵coef 中保存的是各级分解中的高频系数矩阵% 故需将迭代后得到的矩阵cA,即第dim 级低频矩阵存入矩阵coefcoef=[cA;coef];% 最后,小波系数矩阵coef 的结构如下% coef = {cA_N;cV_N;cH_N;cD_N;cV_N-1;cH_N-1;cD_N-1;……;cV_1;cH_1;cD_1}% 画出各级低频、高频系数矩阵% 首先建立一个名为“Wavelet Decomposition -- Wavelet Type: , Levels: ”的图像窗口figure('Name',['Wavelet Decomposition -- Wavelet Type: ',wname,' , Levels: ',num2str(N)]);% 图像的第1行显示低频系数,置中,左右两个subplot为空subplot(N+1,3,2);yt=uint8(coef{1});[yrow,ycol]=size(yt);imshow(yt);title( ['Approximation A',num2str(N)]);xlabel(['Size : ',num2str(yrow),'*',num2str(ycol)]);% 第2-(N+1)行显示各级高频系数titllist={['Vertical Detail V'];['Horizontal Detail H'];['Diagonal Detail D']};pn=2;% pn 是子图的显示序号for pr=1:Nfor pc=1:3subplot(N+1,3,pn+2);yt=[];% 为了使高频细节内容(轮廓、边缘)更清晰,将高频系数增加100灰度值yt=uint8(coef{pn})+100;[yrow,ycol]=size(yt);imshow(yt);title([ titllist{pc},num2str(N-pr+1)]);xlabel(['Size : ',num2str(yrow),'*',num2str(ycol)]);% 每行的第一个图像的Y轴,显示该行高频系数对应的分解级别if mod(pn+2,3)==1ylabel(['Level ',num2str(N-pr+1)]);endpn=pn+1;endendfunction [cA,cV,cH,cD]=mydwt2(x,Lo_D,Hi_D) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 函数MYDWT2() 对输入的r*c维矩阵x 进行二维小波分解,输出四个分解系数子矩阵[LL,HL,LH,HH]% 输入参数:x ——输入矩阵,为r*c维矩阵。

% Lo_D,Hi_D ——小波分解的滤波器组系数向量% 输出参数:cA,cV,cH,cD ——是小波分解系数矩阵的四个相等大小的子矩阵% cA:低频部分分解系数;cV:垂直方向分解系数;% cH:水平方向分解系数;cD:对角线方向分解系数。

% Copyright by Zou Yuhua ( chenyusiyuan ), original : 2007-11-10, modified: 2008-06-04%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% [row,col]=size(x);% 读取输入矩阵的大小for j=1:row% 首先对输入矩阵的每一行序列进行一维离散小波分解tmp1=x(j,:);[ca1,cd1]=mydwt(tmp1,Lo_D,Hi_D,1);% tmp1 长度为row ,滤波器长度为lnf ,则[ca1,cd1] 的总长为( row + lnf -1 )x1(j,:)=[ca1,cd1];% 将分解系数序列存入缓存矩阵x1 中end[row1,col1]=size(x1);% row1=row + lnf -1, col1=col+lnf-1for k=1:col1% 再对缓存矩阵x1 的每一列序列进行一维离散小波分解tmp2=x1(:,k);[ca2,cd2]=mydwt(tmp2,Lo_D,Hi_D,1);x2(:,k)=[ca2,cd2]' ;% 将分解所得系数存入缓存矩阵x2 中% 注意不要遗漏了上一行代码中的转置符号“ ’”。

Matlab 6.5 及以下较低的版本不支% 持行、列向量的相互赋值,故要把行向量[ca2,cd2]转置为列向量,再存入x2 的相应列end[row2,col2]=size(x2);cA=x2(1:row2/2,1:col2/2);% cA是矩阵x2的左上角部分cV=x2(1:row2/2,col2/2+1:col2);% cV是矩阵x2的右上角部分cH=x2(row2/2+1:row2,1:col2/2);% cH是矩阵x2的左下角部分cD=x2(row2/2+1:row2,col2/2+1:col2);% cD是矩阵x2的右下角部分function [cA,cD] = mydwt(x,lpd,hpd,dim) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 函数[cA,cD]=MYDWT(X,LPD,HPD,DIM) 对输入序列x进行一维离散小波分解,输出分解序列[cA,cD]% 输入参数:x——输入序列;% lpd——低通滤波器;% hpd——高通滤波器;% dim——小波分解层数。

% 输出参数:cA——平均部分的小波分解系数;% cD——细节部分的小波分解系数。

% Copyright by Zou Yuhua ( chenyusiyuan ), original : 2007-11-10 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% cA=x;% 初始化cA,cDcD=[];for i=1:dimcvl=conv(cA,lpd);% 低通滤波,为了提高运行速度,调用MATLAB提供的卷积函数conv()dnl=downspl(cvl);% 通过下抽样求出平均部分的分解系数cvh=conv(cA,hpd);% 高通滤波dnh=downspl(cvh);% 通过下抽样求出本层分解后的细节部分系数cA=dnl;% 下抽样后的平均部分系数进入下一层分解cD=[cD,dnh];% 将本层分解所得的细节部分系数存入序列cDendfunction y=downspl(x) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 函数Y=DOWMSPL(X) 对输入序列进行下抽样,输出序列Y。

% 下抽样是对输入序列取其偶数位,舍弃奇数位。

例如x=[x1,x2,x3,x4,x5],则y=[x2,x4].% Copyright by Zou Yuhua ( chenyusiyuan ), original : 2007-11-10 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% N=length(x);% 读取输入序列长度M=floor(N/2);% 输出序列的长度是输入序列长度的一半(带小数时取整数部分)i=1:M;y(i)=x(2*i);。

相关文档
最新文档