`

wavedec2函数详解

 
阅读更多

wavedec2函数:

1.功能:实现图像(即二维信号)的多层分解,多层,即多尺度.

2.格式:[c,s]=wavedec2(X,N,'wname')

     [c,s]=wavedec2(X,N,Lo_D,Hi_D)(我不讨论它)

3.参数说明:对图像X用wname小波基函数实现N层分解,

这里的小波基函数应该根据实际情况选择,具体选择办法可以搜之或者 help WFILTERS

.输出为c,s.

c为各层分解系数,s为各层分解系数长度,也就是大小.

4.c的结构: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)]

可见,c是一个行向量,即:1*(size(X)),(e.g,X=256*256,then c大小为:1*(256*256)=1*65536)

A(N)代表第N层低频系数,H(N)|V(N)|D(N)代表第N层高频系数,分别是水平,垂直,对角高频,以此类推,到H(1)|V(1)|D(1).

每个向量是一个矩阵的每列转置的组合存储。原文:Each vector is the vector column-wise storage of a matrix. 这是你理解A(N) H(N) | V(N) | D(N) 的关键。

很多人对wavedec2和dwt2的输出差别不可理解,后者因为是单层分解,所以低频系数,水平、垂直、对角高频系数就直接以矩阵输出了,没有像wavedec2那样转换成行向量再输出,我想你应该不再迷惑了。

那么S有什么用呢?

s的结构:是储存各层分解系数长度的,即第一行是A(N)的长度(其实是A(N)的原矩阵的行数和列数),

第二行是H(N)|V(N)|D(N)|的长度,

第三行是

H(N-1)|V(N-1)|D(N-1)的长度,

倒数第二行是H(1)|V(1)|D(1)长度,

最后一行是X的长度(大小)

 

从上图可知道:cAn的长度就是32*32,cH1、cV1、cD1的长度都是256*256。

到此为止,你可能要问C的输出为什么是行向量?

1、没有那一种语言能够动态输出参数的个数,更何况C语言写的Matlab

2、各级详细系数矩阵的大小(size)不一样,所以不能组合成一个大的矩阵输出。

因此,把结果作为行向量输出是最好,也是唯一的选择。

另:MATLAB HELP wavedec2 里面说得非常明白了,呵呵.

wavedec2

Multilevel 2-D wavelet decomposition Syntax [C,S] = wavedec2(X,N,'wname')


[C,S] = wavedec2(X,N,Lo_D,Hi_D)


Description wavedec2 is a two-dimensional wavelet analysis function.

[C,S] = wavedec2(X,N,'wname') returns the wavelet decomposition of the matrix X at level N, using the wavelet named in string 'wname' (see wfilters for more information).

Outputs are the decomposition vector C and the corresponding bookkeeping matrix S. N must be a strictly positive integer (see wmaxlev for more information).

Instead of giving the wavelet name, you can give the filters. For [C,S] = wavedec2(X,N,Lo_D,Hi_D), Lo_D is the decomposition low-pass filter and Hi_D is the decomposition high-pass filter.

Vector C is organized as C = [ A(N) | H(N) | V(N) | D(N) | ... H(N-1) | V(N-1) | D(N-1) | ... | H(1) | V(1) | D(1) ]. where A, H, V, D, are row vectors such that A = approximation coefficients H = horizontal detail coefficients V = vertical detail coefficients D = diagonal detail coefficients Each vector is the vector column-wise storage of a matrix.

Matrix S is such that S(1,:) = size of approximation coefficients(N) S(i,:) = size of detail coefficients(N-i+2) for i = 2, ...N+1 and S(N+2,:) = size(X)

Examples% The current extension mode is zero-padding (see dwtmode).

% Load original image. 
load woman; 
% X contains the loaded image.

% Perform decomposition at level 2 
% of X using db1. 
[c,s] = wavedec2(X,2,'db1');

% Decomposition structure organization. 
sizex = size(X)

sizex =
    256 256
sizec = size(c)

sizec =
    1 65536
    val_s = s

val_s =
    64 64 
    64 64 
    128 128 
    256 256


Algorithm For images, an algorithm similar to the one-dimensional case is possible for two-dimensional wavelets and scaling functions obtained from one-dimensional ones by tensor product. This kind of two-dimensional DWT leads to a decomposition of approximation coefficients at level j in four components: the approximation at level j+1, and the details in three orientations (horizontal, vertical, and diagonal). The following chart describes the basic decomposition step for images: So, for J=2, the two-dimensional wavelet tree has the form See Alsodwt, waveinfo, waverec2, wfilters, wmaxlev ReferencesDaubechies, I. (1992), Ten lectures on wavelets, CBMS-NSF conference series in applied mathematics. SIAM Ed. Mallat, S. (1989), "A theory for multiresolution signal decomposition: the wavelet representation," IEEE Pattern Anal. and Machine Intell., vol. 11, no. 7, pp. 674-693. Meyer, Y. (1990), Ondelettes et opérateurs, Tome 1, Hermann Ed. (English translation: Wavelets and operators, Cambridge Univ. Press. 1993.

分享到:
评论

相关推荐

    小波分析中MATLAB阈值获取函数及其应用

    #### 二、`ddencmp`函数详解及应用实例 `ddencmp`函数是MATLAB中用于获取信号在去噪或压缩过程中所需默认阈值的重要工具之一。该函数可以灵活地应用于不同场景,并提供多种调用格式。 - **调用格式**: - `[THR,...

    Matlab小波能量计算函数wenergy(C-L).pdf

    ### Matlab小波能量计算函数wenergy(C-L)详解 #### 一、引言 在信号处理领域,小波分析作为一种有效的工具被广泛应用于各种场景之中,例如图像处理、声音信号处理以及生物医学信号分析等。Matlab作为一款强大的数学...

    小波MATLAB函数

    ### MATLAB中的小波函数详解 #### 1. `wavemenu` 和 `wavedemoGUI` `wavemenu` 是一个图形用户界面(GUI),允许用户访问所有小波工具箱的功能,包括小波函数的可视化、小波系数的查看和编辑、小波分析的结果展示...

    matlab中的小波函数

    ### MATLAB中的小波函数知识点详解 #### 一、小波函数概述 小波分析作为一种时频分析工具,在信号处理、图像处理等领域有着广泛的应用。MATLAB作为一款强大的数学软件,提供了丰富的工具箱来支持小波分析。下面...

    Matlab实现小波变换.pdf

    - **wavedec2函数**:用于二维信号的多层小波分解,可以得到不同尺度和方向的细节信息。 - **idwt2函数**:用于二维离散小波反变换,重构二维信号。 - **waverec2函数**:根据多层小波分解结果重构整个信号。 - ...

    matlab小波分析第一章代码

    此外,`wavedec2`和`waverec2`是二维小波变换的函数,适用于图像处理。 3. 多分辨率分析:小波系数揭示了信号在不同尺度下的细节,`wavedec`函数返回的就是这些系数。通过观察不同层次的小波系数,可以分析信号的...

    Matlab_小波工具箱入门.docx

    `wavedec2` 函数 `wavedec2` 用于对二维数据进行小波分解。 - **函数调用**: - `[C, S] = wavedec2(X, N, 'wname')`: 对矩阵`X`进行`N`层的小波分解。 - `[C, S] = wavedec2(X, N, Lo_D, Hi_D)`: 使用自定义的...

    基于Matlab二代小波harr变换整数小波变换

    3. **Matlab实现**:在Matlab中,可以使用`wavedec2`函数进行二维Harr小波分解,适用于图像分析。该函数接受图像矩阵和分解层数作为输入,返回一系列细节和近似系数。 **二、整数小波变换** 1. **整数小波变换介绍...

    MATLAB-xiaobo.rar_xiaobo

    《MATLAB小波函数详解——xiaobo》 MATLAB,全称Matrix Laboratory,是一款强大的数学计算软件,尤其在数值分析、符号计算、数据可视化、图像处理以及信号处理等领域有着广泛的应用。在MATLAB中,小波分析(Wavelet...

    用Matlab进行数字图像处理实验2.doc

    3. 对于DWT,Matlab提供了`dwt2`函数进行二维离散小波变换,`wavedec2`用于多层小波分解,`idwt2`用于反变换。此外,`wcodemat`用于伪彩色编码。 实验操作包括: 1. 对图像进行DFT变换,如对"lena.bmp"图像逆时针...

    matlab小波图像处理

    在基于小波的增强处理部分,我们使用wavedec2()函数对图像进行小波分解,然后弱化不重要的分解系数,以达到增强图像的目的。 三、实验步骤 小波图像处理的实验步骤包括以下几个部分: 1. 用imread()函数读入一幅...

    Matlab_matlab小波变换_

    - 以二维图像为例,使用`wavedec2`函数进行小波分解: ```matlab [c, l] = wavedec2(img, level, 'db4'); % img为图像矩阵,level为分解层数,'db4'为选用的小波基 ``` - 阈值去噪: ```matlab threshold = ...

    matlab小波去噪程序

    ### MATLAB小波去噪程序详解 #### 一、引言 在数字信号处理领域,噪声是不可避免的问题之一,它会严重影响信号的质量与后续处理的效果。为了提高信号的信噪比,减少噪声干扰,去噪技术变得尤为重要。其中,基于...

    final dip_imageprocessing_assignment_

    MATLAB中的fft2函数用于二维傅立叶变换,`laplacian`函数实现拉普拉斯算子,而 wavedec2函数可进行二维小波分解。 五、图像分割 图像分割是将图像分成具有不同特性的区域。常见的有阈值分割(如`imbinarize`)、...

    小信号去噪三种方法(MATLAB)程序

    1. **信号分解**:使用`wavedec`函数将信号`s`分解为不同层次的小波系数,这里使用`db1`小波基函数,并且设定分解层数为3。 2. **细节系数设置为零**:提取出第三层的细节系数`cd3`,第二层的细节系数`cd2`,第一层...

    基于小波变换的图像压缩技术(求验证)

    在MATLAB中,可以使用`wavedec2`、`appcoef2`、`detcoef2`等函数来实现二维小波变换。这些函数提供了灵活的选择,允许用户指定小波类型、分解级别以及其他参数。 #### 四、基于MATLAB的小波图像压缩步骤 1. **读取...

    MATLAB信号处理详解.rar

    小波分析(如`wavedec`函数)在非平稳信号分析中尤为有用,能同时捕捉信号的时间和频率信息。 七、实时信号处理 MATLAB的Simulink环境支持实时信号处理,通过构建图形化模型,可以实现复杂系统的模拟和硬件在环...

    matlab小波变换..docx

    而在信号分析中,可能需要用到多层分解和重构,这时wavedec2和waverec2就显得尤为重要。 总的来说,MATLAB中的这些函数为科研人员和工程师提供了强大且灵活的工具,以进行复杂的数据分析和信号处理任务。

Global site tag (gtag.js) - Google Analytics