# mdwtrec

Multisignal 1-D wavelet reconstruction

## Syntax

``x = mdwtrec(dec)``
``x = mdwtrec(dec,idxsig)``
``y = mdwtrec(dec,type,lev)``
``a = mdwtrec(dec,'a')``
``d = mdwtrec(dec,'d')``
``ca = mdwtrec(dec,'ca')``
``cd = mdwtrec(dec,'cd',mode)``
``cfs = mdwtrec(dec,'cfs',mode)``
``y = mdwtrec(___,idxsig)``

## Description

example

````x = mdwtrec(dec)` reconstructs the original matrix of signals from the wavelet decomposition structure `dec`.```
````x = mdwtrec(dec,idxsig)` reconstructs the signals whose indices are specified in the vector `idxsig`. ```
````y = mdwtrec(dec,type,lev)` extracts or reconstructs the detail or approximation coefficients at level `lev` depending on the value of `type`.```
````a = mdwtrec(dec,'a')` returns the reconstructed approximation coefficients.`d = mdwtrec(dec,'d')` returns a matrix containing the sum of all the details, so that `x` = `a` + `d`.`ca = mdwtrec(dec,'ca')` returns a matrix containing the extracted approximation coefficients.```
````cd = mdwtrec(dec,'cd',mode)` returns a matrix containing all the detail coefficients concatenated in the order specified by `mode`.```
````cfs = mdwtrec(dec,'cfs',mode)` returns a matrix containing all the coefficients in the order specified by `mode`.```
````y = mdwtrec(___,idxsig)` extracts or reconstructs the coefficients whose indices are specified in the vector `idxsig`.```

## Examples

collapse all

This example shows how to reconstruct a multisignal and a user-specified signal within the multisignal.

Load the 23 channel EEG data `Espiga3` [4]. The channels are arranged column-wise. The data is sampled at 200 Hz.

```load Espiga3 size(Espiga3)```
```ans = 1×2 995 23 ```

Perform a decomposition at level 2 using the `db2` wavelet.

`dec = mdwtdec('c',Espiga3,2,'db2');`

Reconstruct the original matrix of signals using the decomposition structure `dec`.

`XR = mdwtrec(dec);`

Compute the reconstruction error.

`errREC = max(abs(Espiga3(:)-XR(:)))`
```errREC = 3.5431e-10 ```

Reconstruct the original signal at index 17, the corresponding approximation at level 2, and details at levels 1 and 2.

```idx = 17; Y = mdwtrec(dec,idx); A2 = mdwtrec(dec,'a',2,idx); D2 = mdwtrec(dec,'d',2,idx); D1 = mdwtrec(dec,'d',1,idx);```

Compute the reconstruction error for signal 17.

`errREC = max(abs(Y-A2-D2-D1))`
```errREC = 4.9542e-18 ```

## Input Arguments

collapse all

Wavelet decomposition of a multisignal, specified as a structure with the following fields:

• `dirDec` — Direction indicator: `'r'` (row) or `'c'` (column)

• `level` — Level of wavelet decomposition

• `wname` — Wavelet name

• `dwtFilters` — Structure with four fields: `LoD`, `HiD`, `LoR`, and `HiR`

• `dwtEXTM` — DWT extension mode

• `dwtShift` — DWT shift parameter (0 or 1)

• `dataSize` — Size of `x`

• `ca` — Approximation coefficients at level `lev`

• `cd` — Cell array of detail coefficients, from level 1 to level `lev`

The format of `dec` matches the output of `mdwtdec`.

Indices of signals to reconstruct, specified as a positive integer-valued vector.

Example: If S is a matrix of 100 signals and ```dec = mdwtdec('r',S,3,'db2')```, then ```mdwtrec(dec,[1 20 98])``` reconstructs the signals whose row indices are 1, 20, and 98.

Level of coefficients to extract or reconstruct, specified as a nonnegative integer.

• If `type` is `'a'` or `'ca'`, then `lev` must be an integer in the interval [0, `levdec`], where ```levdec = dec.level```.

• If `type` is `'d'` or `'cd'`, then `lev` must be an integer in the interval [1, `levdec`], where ```levdec = dec.level```.

Output type, specified as one of the following:

• `'cd'` – detail coefficients of level `lev` are extracted

• `'d'` – detail coefficients of level `lev` are reconstructed

• `'ca'` – approximation coefficients of level `lev` are extracted

• `'a'` – approximation coefficients of level `lev` are reconstructed

Order of concatenation, specified as `'descend'` or `'ascend'`. For `mode = 'descend'`, the coefficients are concatenated from level `levdec` to level 1, where ```levdec = dec.level```. If `mode = 'ascend'`, the coefficients are concatenated from level 1 to level `levdec`. The concatenation is made row-wise if `dec.dirDEC = 'r'` or column-wise if ```dec.dirDEC = 'c'```.

## Output Arguments

collapse all

Reconstructed signals, returned as a real-valued matrix.

Decomposition coefficients, returned as a real-valued matrix, depending on `type`:

• `'cd'` – extracted detail coefficients

• `'ca'` – extracted approximation coefficients

• `'d'` – reconstructed detail coefficients

• `'a'` – reconstructed approximation coefficients

Reconstructed approximation coefficients, returned as a real-valued matrix.

Reconstructed detail coefficients, returned as a real-valued matrix.

Extracted approximation coefficients, returned as a real-valued matrix.

Extracted detail coefficients, returned as a real-valued matrix.

Extracted approximation and detail coefficients, returned as a real-valued matrix.

## References

[1] Daubechies, I. Ten Lectures on Wavelets. CBMS-NSF Regional Conference Series in Applied Mathematics. Philadelphia, PA: Society for Industrial and Applied Mathematics, 1992.

[2] Mallat, S. G. “A Theory for Multiresolution Signal Decomposition: The Wavelet Representation.” IEEE Transactions on Pattern Analysis and Machine Intelligence. Vol. 11, Issue 7, July 1989, pp. 674–693.

[3] Meyer, Y. Wavelets and Operators. Translated by D. H. Salinger. Cambridge, UK: Cambridge University Press, 1995.

[4] 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.

## Version History

Introduced in R2007a