精华内容
下载资源
问答
  • matlab 实现一维和二维离散小波变换,以及小波重构matlab实现一维和二维离散小波变换,以及小波重构,同时有代码实现的截图和各种系数重构的二范式比较 离散小波变换 小波重构 matlab
  • MATLAB 小波工具箱提供了以下几个实现一维小波分解和重构的函数[3]:  [C,L] = wavedec(X,N,’wname’),多尺度一维小波分解函数。其中C为分解结构变量,L为个... = waverec(C,L,’wname’),多尺度一维小波重构
     MATLAB 小波工具箱提供了以下几个实现一维小波分解和重构的函数[3]:
    

                       [C,L] = wavedec(X,N,’wname’),多尺度一维小波分解函数。其中C为分解结构变量,L为个分解结构以及原始信号长度变量,X为原始信号,N为分解层度,’wname’为小波类型。

                       X = waverec(C,L,’wname’),多尺度一维小波重构函数。其中C,L为多尺度一维小波分解函数WAVEDEC的计算结果。

                     D = detcoef(C,L,N),一维小波变换细节序列提取函数。其中C,L为多尺度一维小波分解函数WAVEDEC的计算结果。’wname’为小波类型。

                     A =appcoef(C,L,’wname’,N),一维小波变换近似序列提取函数。其中C,L为多尺度一维小波分解函数WAVEDEC的计算结果。

                     Y = wrcoef(’type’,C,L,’wname’,N),一维小波系数单支重构函数。其中,当’type’ = ’a’时重构近似序列,当’type’ = ’d’时重构高频系数;C,L,’wname’,N含义同上。

                     Y = upcoef(’type’,S,’wname’,N),一维系数的直接小波重构函数。其中’type’,’wname’,N含义同上。S为小波分解系数变量。
    展开全文
  • matlab实现一维和二维离散小波变换,以及小波重构,同时有代码实现的截图和各种系数重构的二范式比较
  • 基于matlab实现了一维信号用Haar小波来分解与重构的算法,
  • 一维信号的Haar小波分解与重构matlab程序
  • 这是小波分解与重构的源代码,对于学习分析的人可以参考下,函数都是与MATLAB里面小波函数一致,可以直接使用DB4小波和SYM4小波,其他的类型的小波大家可以自己改改。
  • MATLAB离散一维小波函数

    千次阅读 2014-11-12 16:39:40
    waveinfo wfilters('wname'); appcoef近似系数 ...dwt 单层独立1-D小波 idwt upcoef 线性重建 upwlev 单层重建 wavedec wavelet decomposition waverec wrcoef
    waveinfo
    
    wfilters('wname');

    appcoef近似系数

    detcoef详细系数
    dwt 单层独立1-D小波
    idwt
    upcoef  线性重建
    upwlev  单层重建
    wavedec wavelet decomposition
    waverec
    wrcoef
    展开全文
  • 小波分解与重构matlab

    2014-04-08 15:03:58
    matlab代码实现图像处理中一维与二维小波分解与重构,模块化设计,有参考价值
  • Mallat算法及C语言实现(一维DB小波分解与重构

    附:理论部分来源于书籍与网络资源,如有侵权,请于文章作者联系,立即处理!!!

     

    一、Mallat原理分析

    1.1矩阵变换角度看小波分解与重构:

    DB4有4个系数:c0、c1、c2和c3。可以有以下变换矩阵,将它作用于一列数据矢量的左边。即(注意行列对齐,手打不易)

     

    其中,空白处为0,。注意,此矩阵结构,第一行产生一个数据与滤波系数c0、c1、c2、c3卷积的分量,依次类推,第3行、第5行和其余奇数行的结果一样。如果偶数行以这种形式出现,正负交替,那么矩阵将是循环的,也就是一般的卷积,可以用FFT方法计算(注意,最后两行像具有周期边界条件下的卷积那样环绕起来)。但是,偶数行并不是以系数c0、c1、c2、c3进行卷积,而是以系数c3,-c2,c1,-c0进行卷积。整个矩阵的作用就是进行两个相关的卷积,然后各去掉一半数值,将剩下的各一半融合在一起。

    将滤波器c0、c1、c2、c3看成是一个光滑滤波器,称它为H,H有点像4个点的移动平均。而将滤波器c3,-c2&#

    展开全文
  • 一维信号小波降噪matlab程序

    热门讨论 2011-05-17 09:55:11
    小波处理一维信号matlab实验,包括小波分解,阈值选择等。
  • 通过小波多级分解重构一维信号的系数,并在Python中实现Matlab函数wrcoef 目的 在Python中,我们有两个很棒的库来处理不同类型的wavelet:和。 后者目前不在积极开发中,但可以用于鼓舞人心的目的。 不幸的是,在两...
  • 用于实现一维小波去噪的程序!包括重构法,模极大值,软硬阈值法!
  • 程序有新的修正了,详细请见如下文章:%----------------------------------------------------------%小波分解重构 V2.0 版程序存在的问题分析小波图像分解 Matlab 程序 - V3.0版小波图像重构 Matlab 程序 - V3.0版...

    注意!程序有新的修正了,详细请见如下文章:

    %----------------------------------------------------------%

    小波分解重构 V2.0 版程序存在的问题分析

    小波图像分解 Matlab 程序 - V3.0版

    小波图像重构 Matlab 程序 - V3.0版

    %----------------------------------------------------------%

    本文给出相应的小波图像重构程序的修正版代码,图像分解程序的代码请见下文:

    《小波图像分解

    Matlab

    程序

    - V2.0

    下面给出重构程序的代码,包括有:

    mywaverec2(), myidwt2(), myidwt(), upspl()

    function xrec=mywaverec2(coef,recdim,wname)

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    %

    函数

    MYWAVEREC2()

    对输入的分解系数矩阵

    x

    进行

    recdim

    层重构,得到重构矩阵

    xrec

    %

    输入参数:

    y ——

    分解系数矩阵;

    %          recdim ——

    重构级数;

    %          wname ——

    重构所用的小波函数

    %

    输出参数:

    xrec ——

    重构矩阵。

    % % Copyright by Zou Yuhua ( chenyusiyuan ), original : 2007-11-10, modified: 2008-06-04

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    %

    求小波函数对应的重构滤波器组系数

    [Lo_R,Hi_R] = wfilters(wname,'r');

    %

    通过小波系数矩阵求出图像的分解级数

    decdim

    [yr,yc]=size(coef);

    %

    小波系数矩阵

    coef

    是一个细胞矩阵(

    cell matrix

    )

    ,

    其中有

    yr

    个子矩阵,

    yc=1

    decdim=(yr-1)/3;

    %

    图像的

    N

    级分解会产生

    1

    个低频矩阵,

    N*3

    个高频矩阵

    if decdim

    error(['Reconstruction level can not larger than decomposition level ( declev = ',num2str(decdim),' )'])

    end

    rcA=coef{1};

    for i=1:recdim

    %

    依次获取第

    decdim

    级至第(

    decdim - recdim + 1

    )级的高频系数矩阵

    rcV=coef{(i-1)*3+2};

    rcH=coef{(i-1)*3+3};

    rcD=coef{(i-1)*3+4};

    rcA=myidwt2(rcA,rcV,rcH,rcD,Lo_R,Hi_R);

    %

    N

    级重构得到第

    N-1

    级低频系数矩阵

    end

    xrec=rcA;

    %

    重构结束后得到的矩阵

    rcA

    即为输出矩阵

    xrec

    figure;

    xr=uint8(xrec);

    %

    将矩阵

    xrec

    的数据格式转换为适合显示图像的

    uint8

    格式

    [sr,sc]=size(xr);

    imshow(xr);

    title(['Reconstructed Image. DecLevel = ',num2str(decdim),' , RecLevel = ',num2str(recdim)]);

    xlabel(['Size : ',num2str(sr),'*',num2str(sc)]);

    %

    显示重构矩阵的大小

    function outcA=myidwt2(rcA,rcV,rcH,rcD,Lo_R,Hi_R)

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    %

    函数

    MYIDWT2()

    对输入的子矩阵序列进行逆小波变换,重构出矩阵

    y

    %

    输入参数:

    rcA,rcV,rcH,rcD ——

    N

    级低频、高频系数矩阵

    %          Lo_R,Hi_R ——

    图像重构用到的低通、高通滤波器系数

    %

    输出参数:

    outcA ——

    N-1

    级低频系数矩阵,当

    N-1=0

    时即为重构图像。

    % Copyright by Zou Yuhua ( chenyusiyuan ), original : 2007-11-10, modified: 2008-06-04

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    %

    系数矩阵规范化,使各矩阵大小一致

    [m,n]=size(rcA);

    rcV=rcV(1:m,1:n);

    rcH=rcH(1:m,1:n);

    rcD=rcD(1:m,1:n);

    %

    将四个第

    N

    级系数矩阵组合成一个矩阵

    tmp_mat=[rcA,rcV;rcH,rcD];

    [row,col]=size(tmp_mat);

    %

    这里

    tmp_mat

    的行列数比第

    N-1

    级低频矩阵

    cA(N-1)

    的要长

    lnf-1

    行(列)

    %

    求出滤波器的长度

    lnf=length(Lo_R);

    for k=1:col

    %

    首先对组合矩阵

    tmp_mat

    的每一列,分开成上下两半

    ca1=tmp_mat(1:row/2,k);

    %

    分开的两部分分别作为平均系数序列

    ca1

    、细节系数序列

    cd1

    cd1=tmp_mat(row/2+1:row,k);

    % ca1

    cd1

    的长度恰好等于

    tmp_mat

    的行数

    row

    tmp1=myidwt(ca1,cd1,Lo_R,Hi_R);

    %

    重构序列的长度是(

    row+lnf-1

    )

    %

    注意不论是分解或重构,卷积后序列的长度都会比原序列要长

    (

    lnf-1

    )

    %

    所以这里

    tmp1

    的长度要比

    cA(N-1)

    的行数长

    2*(lnf-1

    )行

    %

    故有效的重构序列应该是以

    tmp1

    中心的长度为(

    row-lnf+1

    )的那一段

    %

    通过

    Matlab

    函数

    wkeep()

    来实现截取

    yt1(:,k)=wkeep(tmp1,row-lnf+1);

    %

    截取后的重构序列存入缓存矩阵

    yt1

    end

    [row1,col1]=size(yt1);

    for j=1:row1

    %

    将缓存矩阵

    yt1

    的每一行,分开成左右两半

    ca2=yt1(j,1:col1/2);

    %

    分开的两部分分别作为平均系数序列

    ca2

    、细节系数序列

    cd2

    cd2=yt1(j,col1/2+1:col1);

    tmp2=myidwt(ca2,cd2,Lo_R,Hi_R);

    outcA(j,:)=wkeep(tmp2,col-lnf+1);

    %

    同理,也要截取

    tmp2

    中间长度为(

    col-lnf+1

    )的那一段,存入输出矩阵

    outcA

    end

    function y = myidwt(cA,cD,lpr,hpr);

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    %

    函数

    MYIDWT()

    对输入的小波分解系数进行逆离散小波变换,重构出信号序列

    y

    %

    输入参数:

    cA ——

    平均部分的小波分解系数;

    %           cD ——

    细节部分的小波分解系数;

    %           lpr

    hpr ——

    重构所用的低通、高通滤波器。

    % Copyright by Zou Yuhua ( chenyusiyuan ), original : 2007-11-10

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    lca=length(cA);

    %

    求出平均、细节部分分解系数的长度

    lcd=length(cD);

    while (lcd)>=(lca)

    %

    每一层重构中,

    cA

    cD

    的长度要相等,故每层重构后,

    %

    lcd

    小于

    lca

    ,则重构停止,这时的

    cA

    即为重构信号序列

    y

    upl=upspl(cA);

    %

    对平均部分系数进行上抽样

    cvl=conv(upl,lpr);

    %

    低通卷积

    cD_up=cD(lcd-lca+1:lcd);

    %

    取出本层重构所需的细节部分系数,长度与本层平均部分系数的长度相等

    uph=upspl(cD_up);

    %

    对细节部分系数进行上抽样

    cvh=conv(uph,hpr);

    %

    高通卷积

    cA=cvl+cvh;

    %

    用本层重构的序列更新

    cA

    ,以进行下一层重构

    cD=cD(1:lcd-lca);

    %

    舍弃本层重构用到的细节部分系数,更新

    cD

    lca=length(cA);

    %

    求出下一层重构所用的平均、细节部分系数的长度

    lcd=length(cD);

    end

    % lcd < lca

    ,重构完成,结束循环

    y=cA;

    %

    输出的重构序列

    y

    等于重构完成后的平均部分系数序列

    cA

    function y=upspl(x);

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    %

    函数

    Y = UPSPL(X)

    对输入的一维序列

    x

    进行上抽样,即对序列

    x

    每个元素之间

    %

    插零,例如

    x=[x1,x2,x3,x4],

    上抽样后为

    y=[x1,0,x2,0,x3,0,x4]; %

    % Copyright by Zou Yuhua ( chenyusiyuan ), original : 2007-11-10

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    N=length(x);

    %

    读取输入序列长度

    M=2*N-1;

    %

    输出序列的长度是输入序列长度的

    2

    倍再减一

    for i=1:M

    %

    输出序列的偶数位为

    0

    ,奇数位按次序等于相应位置的输入序列元素

    if mod(i,2)

    y(i)=x((i+1)/2);

    else

    y(i)=0;

    end

    end

    运行结果图示:

    1、Bior3.7 小波 3 级分解

    0818b9ca8b590ca3270a3433284dd417.png

    由分解图可见,低频系数图像的边缘是有一定宽度的黑色边带,这是由于行、列变换时卷积产生的冗余数据,黑色表示这些数据的值为零,边带宽度与滤波器长度有关。图像原始大小为 256*256,n = 256, bior3.7小波的滤波器长度为 lnf=16,则上图中各级系数矩阵的大小可由公式 lenca1 = floor((n-1)/2)+lnf 计算得出:

    Level-1: 256+16-1=271, floor(271/2)= 135   (128)   ( 7)

    Level-2: 135+16-1=150, floor(150/2)=  75   ( 64)   (11)

    Level-3:  75+16-1= 90, floor( 90/2)=  45   ( 32)   (13)

    上面两列括号内的数据,第1列是有效的图像小波分解系数大小,第2列是黑色边带的宽度。

    2、Bior3.7 小波 1 级重构

    0818b9ca8b590ca3270a3433284dd417.png

    3、Bior3.7 小波 2 级重构

    0818b9ca8b590ca3270a3433284dd417.png

    4、Bior3.7 小波 3 级重构

    0818b9ca8b590ca3270a3433284dd417.png

    5、最后做一个有趣的实验,如果将分解后得到的平均系数 cA 清零,保留其它细节系数,然后进行重构,我们就会得到下面这样的重构图像:

    0818b9ca8b590ca3270a3433284dd417.png

    这个重构图像完全是由各级细节系数重构得到的,可以说它表现了原始图像的轮廓、边缘特征的所有信息。应该可以作为图像纹理分析、边缘检测等应用的基础,呵呵,不知说的是否恰当,希望能抛砖引玉,欢迎大家拍砖,多多讨论交流!

    展开全文
  • wavedec(x,order,‘haar’) matlab手动实现小波重构/恢复程序: clc ; clear; % 每次修改这里的原始数据, 个数最好是2^n % x = [9 7 3 5]; x = [2 5 8 9 7 4 -1 1]; % x = [2 5 8 9 7 4 -1 1 2 1 8 3 8 0 3 1]; ...
  • 五课时matlab小波分析

    2021-07-24 15:51:52
    五课时matlab小波分析,通过编程实战掌握具体...包括matlab一维连续小波的分解和小波工具箱的使用、matlab一维二维小波的单层多层分解、matlab多层小波重构专题、matlab一维小波包的分解和重构、matlab小波的能量和熵。
  • haar小波分解与重构matlab实现

    万次阅读 2016-09-03 10:26:02
    去年11月发布了系列有关小波变换和图像处理的文章,把学习小波过程中的心得体会和编写的程序放在网上和大家共享交流。半年来,感谢大家的关注和帮助,在相互的讨论交流中,我不断地从大家提出的问题中拓展自己的...
  • 去年11月发布了系列有关小波变换和图像处理的文章,把学习小波过程中的心得体会和编写的程序放在网上和大家共享交流。半年来,感谢大家的关注和帮助,在相互的讨论交流中,我不断地从大家提出的问题中拓展自己的...
  • 小波分解与重构的几个matlab程序,解决小波分解与重构的问题,特上传几个小程序供大家参考
  • 本实验利用MATLAB2015进行编程,调用系统小波函数对信号进行分解,实现Mallat分解与重构算法对一维信号进行多层分解和重构。对信号进行多层分解可实现对信号的去噪和数据压缩处理,分解为小波函数的线性组合,阶数高...
  • 多层小波分解与重构matlab程序

    热门讨论 2010-04-07 14:28:20
    有关小波分解的matlab基础应用,很常见的仿真
  • 如果是这样,WAVELIFT 使用默认的 Cohen-Daubechies-Feauveau (CDF) 9/7 小波,即'cdf97'。目前WAVELIFT只支持两种小波,即cdf97和名为'spl53'的spline 5/3。 但是,借助下图所示的有组织的提升结构,它可以适应...
  •  小波分析世纪80年代开始发展成熟起来的个数学分支,其应用领域十分广泛,并逐步成为信号分析的又有力工具。MATLAB小波工具箱为我们提供了小波多尺度分解函数,方便了我们对小波的使用。但是用它所编写的软件...
  • 小波分析世纪80年代开始发展成熟起来的个数学分支,其应用领域十分广泛,并逐步成为信号分析的又有力工具。MATLAB小波工具箱为我们提供了小波多尺度分解函数,方便了我们对小波的使用。但是用它所编写的软件...
  • Matlab系列之小波分析基础

    千次阅读 2020-12-19 17:11:20
    Matlab系列之小波分析基础 前言介绍1、waveinfo函数2、wfilters函数应用实例运行结果3、dwt函数应用实例运行结果4、wavedec应用实例运行结果5、wrcoef应用实例运行结果结语更多精彩,等你发现~ ) 前言 原本想把...
  • 小波与小波包、小波包分解与信号重构、小波包能量特征提取 (Matlab 程序详解) -----暨 小波包分解后解决频率大小分布重新排列问题 本人当前对小波理解不是很深入,通过翻阅网络他人博客,进行汇总总结,重新...
  • MATLAB2维小波变换经典程序-MATLAB2维小波变换经典程序.rar 最近在做图像分割方面的~~~~~在其他找到个“MATLAB2维小波变换...里面有用MATLAB2维小波实现图像的分解、重构和三位误差图。 希望对大家有用~~~~~~:lol

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,550
精华内容 620
关键字:

matlab一维小波重构

matlab 订阅