# 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` . 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.

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

 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.

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

 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.