Main Content

dwt3

Single-level 3-D discrete wavelet transform

Description

example

wt = dwt3(x,wname) returns the single-level three-dimensional wavelet decomposition wt of the input data x using the wname wavelet. The default extension mode of the 3-D discrete wavelet transform (DWT) is 'sym' (see dwtmode).

wt = dwt3(x,wname,'mode',extM) uses the extension mode extM (see dwtmode).

wt = dwt3(x,w,___) specifies three wavelets, one for each direction. w is a cell array, string array, or structure, and can be followed by 'mode',extM.

wt = dwt3(x,wf,___) specifies four filters, two for decomposition and two for reconstruction, or 3 × 4 filters (one quadruplet by direction). wf is a cell array or structure, and can be followed by 'mode',extM..

Examples

collapse all

Define the original 3-D data.

X = reshape(1:64,4,4,4)
X = 
X(:,:,1) =

     1     5     9    13
     2     6    10    14
     3     7    11    15
     4     8    12    16


X(:,:,2) =

    17    21    25    29
    18    22    26    30
    19    23    27    31
    20    24    28    32


X(:,:,3) =

    33    37    41    45
    34    38    42    46
    35    39    43    47
    36    40    44    48


X(:,:,4) =

    49    53    57    61
    50    54    58    62
    51    55    59    63
    52    56    60    64

Perform single-level decomposition of X using 'db1'.

wt = dwt3(X,'db1')
wt = struct with fields:
    sizeINI: [4 4 4]
    filters: [1x1 struct]
       mode: 'sym'
        dec: {2x2x2 cell}

Decompose X using 'db2'.

[LoD,HiD,LoR,HiR] = wfilters('db2');
wt = dwt3(X,{LoD,HiD,LoR,HiR})
wt = struct with fields:
    sizeINI: [4 4 4]
    filters: [1x1 struct]
       mode: 'sym'
        dec: {2x2x2 cell}

Decompose X using different wavelets, one for each orientation: 'db1', 'db2', and again 'db1'.

WS = struct('w1','db1','w2','db2','w3','db1');
wt = dwt3(X,WS,'mode','per')
wt = struct with fields:
    sizeINI: [4 4 4]
    filters: [1x1 struct]
       mode: 'per'
        dec: {2x2x2 cell}

Decompose X using the filters given by WF and set the extension mode to symmetric.

WF = wt.filters;
wtBIS = dwt3(X,WF,'mode','sym')
wtBIS = struct with fields:
    sizeINI: [4 4 4]
    filters: [1x1 struct]
       mode: 'sym'
        dec: {2x2x2 cell}

Input Arguments

collapse all

Input data, specified as a 3-D array.

Data Types: double

Analyzing wavelet used to compute the 3-D DWT, specified as a character vector or string scalar. The analyzing wavelet is from one of the following wavelet families: Best-localized Daubechies, Beylkin, Coiflets, Daubechies, Fejér-Korovkin, Haar, Han linear-phase moments, Morris minimum-bandwidth, Symlets, Vaidyanathan, Discrete Meyer, Biorthogonal, and Reverse Biorthogonal. See wfilters for the wavelets available in each family.

Analyzing wavelets to use in the 3-D wavelet decomposition, one for each direction, specified as a cell array of character vectors, a string array, or a structure. w = {'wname1','wname2','wname3'}, or w = ["wname1","wname2","wname3"], or w is a structure with 3 fields 'w1', 'w2', 'w3' containing character vectors or string scalars that are the names of wavelets.

Example: wt = dwt3(x,["db2","db4","db6"]);

Wavelet filters to use in the 3-D wavelet decomposition, specified as either a cell array or structure. wf specifies four filters, two for decomposition and two for reconstruction, or 3 × 4 filters (one quadruplet by direction). wf is either a cell array (1 × 4) or (3 × 4) : {LoD,HiD,LoR,HiR} or a structure with the four fields 'LoD','HiD','LoR','HiR'.

Extension mode used when performing the 3-D DWT, specified as one of the following:

mode

DWT Extension Mode

'zpd'

Zero extension

'sp0'

Smooth extension of order 0

'spd' (or 'sp1')

Smooth extension of order 1

'sym' or 'symh'

Symmetric extension (half point): boundary value symmetric replication

'symw'

Symmetric extension (whole point): boundary value symmetric replication

'asym' or 'asymh'

Antisymmetric extension (half point): boundary value antisymmetric replication

'asymw'

Antisymmetric extension (whole point): boundary value antisymmetric replication

'ppd'

Periodized extension (1)

'per'

Periodized extension (2)

If the signal length is odd, wextend adds to the right an extra sample that is equal to the last value, and performs the extension using the 'ppd' mode. Otherwise, 'per' reduces to 'ppd'. This rule also applies to images.

The global variable managed by dwtmode specifies the default extension mode.

Output Arguments

collapse all

Single-level 3-D wavelet decomposition, returned as a structure with the following fields:

sizeINI

Size of the three-dimensional array X.

mode

Name of the wavelet transform extension mode.

filters

Structure with four fields: LoD, HiD, LoR, HiR, which are the filters used for DWT.

dec

2 × 2 × 2 cell array containing the coefficients of the decomposition.

dec{i,j,k}, i,j,k = 1 or 2 contains the coefficients obtained by lowpass filtering (for i or j or k = 1) or highpass filtering (for i or j or k = 2).

The i element filters along the rows of X, the j element filters along the columns, and the k element filters along the third dimension. For example, dec{1,2,1} is obtained by filtering X along the rows with the lowpass (scaling) filter, along the columns with the highpass (wavelet) filter, and along the third dimension with the lowpass (scaling) filter.

Version History

Introduced in R2010a