# modwt

Maximal overlap discrete wavelet transform

## Description

returns the
maximal overlap discrete wavelet transform (MODWT) of `w`

= modwt(`x`

)`x`

.
`x`

can be a real- or complex-valued vector or matrix. If
`x`

is a matrix, `modwt`

operates on the
columns of `x`

. `modwt`

computes the wavelet
transform down to level `floor(log2(length(x)))`

if
`x`

is a vector and `floor(log2(size(x,1)))`

if `x`

is a matrix. By default, `modwt`

uses
the Daubechies least-asymmetric wavelet with four vanishing moments
(`'sym4'`

) and periodic boundary handling.

computes the
MODWT using reflection boundary handling. Other inputs can be any of the arguments
from previous syntaxes. Before computing the wavelet transform,
`w`

= modwt(___,'reflection')`modwt`

extends the signal symmetrically at the terminal end
to twice the signal length. The number of wavelet and scaling coefficients that
`modwt`

returns is equal to twice the length of the input
signal. By default, the signal is extended periodically.

You must enter the entire character vector `'reflection'`

. If you
added a wavelet named `'reflection'`

using the wavelet manager, you
must rename that wavelet prior to using this option. `'reflection'`

may be placed in any position in the input argument list after
`x`

.

## Examples

## Input Arguments

## Output Arguments

## Algorithms

The standard algorithm for the MODWT implements the circular convolution directly in the time
domain. This implementation of the MODWT performs the circular convolution in the
Fourier domain. The wavelet and scaling filter coefficients at level j are computed by
taking the inverse discrete Fourier transform (DFT) of a product of DFTs. The DFTs in
the product are the signal’s DFT and the DFT of the *j*th level wavelet
or scaling filter.

Let *H _{k}* and

*G*denote the length

_{k}*N*DFTs of the MODWT wavelet and scaling filters, respectively. Let

*j*denote the level and

*N*denote the sample size.

The *j*th level wavelet filter is defined by

$$\frac{1}{N}{\displaystyle \sum _{k=0}^{N-1}{H}_{j,k}}{e}^{i2\pi nk/N}$$

where

$${H}_{j,k}={H}_{{2}^{j-1}k\text{mod}N}{\displaystyle \prod _{m=0}^{j-2}{G}_{{2}^{m}k\text{mod}N}}$$

The *j*th level scaling filter is

$$\frac{1}{N}{\displaystyle \sum _{k=0}^{N-1}{G}_{j,k}}{e}^{i2\pi nk/N}$$

where

$${G}_{j,k}={\displaystyle \prod _{m=0}^{j-1}{G}_{{2}^{m}k\text{mod}N}}$$

## References

[1] Percival, Donald B., and Andrew T. Walden. *Wavelet Methods for Time Series
Analysis*. Cambridge Series in Statistical and Probabilistic Mathematics.
Cambridge ; New York: Cambridge University Press, 2000.

[2] Percival, Donald B., and Harold O. Mofjeld. “Analysis of Subtidal Coastal Sea Level
Fluctuations Using Wavelets.” *Journal of the American
Statistical Association* 92, no. 439 (September 1997): 868–80.
https://doi.org/10.1080/01621459.1997.10474042.

[3] Mesa, Hector. “Adapted
Wavelets for Pattern Detection.” In *Progress in Pattern Recognition, Image
Analysis and Applications*, edited by Alberto Sanfeliu and Manuel Lazo
Cortés, 3773:933–44. Berlin, Heidelberg: Springer Berlin Heidelberg, 2005.
https://doi.org/10.1007/11578079_96.

## Extended Capabilities

**Introduced in R2015b**