Main Content

Wavelet multivariate denoising

```
[X_DEN,NPC,NESTCOV,DEC_DEN,PCA_Params,DEN_Params]
= ...
```

wmulden(X,LEVEL,WNAME,NPC_APP,NPC_FIN,TPTR,SORH)

[...] = wmulden(X,LEVEL,WNAME,'mode',EXTMODE,NPC_APP,...)

[...] = wmulden(DEC,NPC_APP)

[...] = wmulden(X,LEVEL,WNAME,'mode',EXTMODE,NPC_APP)

[DEC,PCA_Params] = wmulden('estimate',DEC,NPC_APP,NPC_FIN)

[X_DEN,NPC,DEC_DEN,PCA_Params] = wmulden('execute',DEC,PC_Params)

```
[X_DEN,NPC,NESTCOV,DEC_DEN,PCA_Params,DEN_Params]
= ...
```

or

wmulden(X,LEVEL,WNAME,NPC_APP,NPC_FIN,TPTR,SORH)

`[...] = wmulden(X,LEVEL,WNAME,'mode',EXTMODE,NPC_APP,...)`

returns a
denoised version `X_DEN`

of the input matrix `X`

. The
strategy combines univariate wavelet denoising in the basis where the estimated noise
covariance matrix is diagonal with noncentered Principal Component Analysis (PCA) on
approximations in the wavelet domain or with final PCA.

The input matrix `X`

contains `P`

signals
of length N stored column-wise where `N`

> `P`

.

The wavelet decomposition is performed using the decomposition
level `LEVEL`

and the wavelet `WNAME`

.

`EXTMODE`

is the extended mode for the DWT
(See `dwtmode`

).

If a decomposition `DEC`

obtained using `mdwtdec`

is available, you can use

`[...] = wmulden(DEC,NPC_APP)`

instead of

`[...] = wmulden(X,LEVEL,WNAME,'mode',EXTMODE,NPC_APP)`

.

The input selection methods `NPC_APP`

and `NPC_FIN`

define
the way to select principal components for approximations at level `LEVEL`

in
the wavelet domain and for final PCA after wavelet reconstruction,
respectively.

If `NPC_APP`

(or `NPC_FIN`

)
is an integer, it contains the number of retained principal components
for approximations at level `LEVEL`

(or for final
PCA after wavelet reconstruction).

`NPC_XXX`

must be such that 0 <= `NPC_XXX`

<= `P`

`NPC_APP`

or ```
NPC_FIN
= 'kais'
```

or `'heur'`

selects the number
of retained principal components using Kaiser's rule or the heuristic
rule automatically.

Kaiser's rule keeps the components associated with eigenvalues greater than the mean of all eigenvalues.

The heuristic rule keeps the components associated with eigenvalues greater than 0.05 times the sum of all eigenvalues.

`NPC_APP`

or `NPC_FIN`

= `'none'`

is equivalent
to `NPC_APP`

or `NPC_FIN `

= `P`

.

The default values for the denoising parameters TPTR and SORH are:

`TPTR = 'sqtwolog'`

and ```
SORH
= 's'
```

Valid values for

`TPTR`

are'rigsure', 'heursure', 'sqtwolog', 'minimaxi', 'penalhi', 'penalme', 'penallo'

Valid values for SORH are:

's' (soft) or 'h' (hard)

`X_DEN`

is a denoised version of the input matrix
`X`

.

`NPC`

is the vector of selected numbers of
retained principal components.

`NESTCOV`

is the estimated noise covariance
matrix obtained using the minimum covariance determinant (MCD) estimator.

`DEC_DEN`

is the wavelet decomposition of `X_DEN`

.

`PCA_Params`

is a structure such that:

PCA_Params.NEST = {pc_NEST,var_NEST,NESTCOV} PCA_Params.APP = {pc_APP,var_APP,npc_APP} PCA_Params.FIN = {pc_FIN,var_FIN,npc_FIN}

where:

`pc_XXX`

is a`P`

-by-`P`

matrix of principal components.The columns are stored in descending order of the variances.

`var_XXX`

is the principal component variances vector.`NESTCOV`

is the covariance matrix estimate for detail at level 1.

`DEN_Params`

is a structure such that:

`DEN_Params.thrVAL`

is a vector of length`LEVEL`

which contains the threshold values for each level.`DEN_Params.thrMETH`

is a character vector containing the name of the denoising method (`TPTR`

).`DEN_Params.thrTYPE`

is a character variable containing the type of the thresholding (`SORH`

).

`[DEC,PCA_Params] = wmulden('estimate',DEC,NPC_APP,NPC_FIN) `

returns the wavelet decomposition `DEC`

and the
Principal Components Estimates `PCA_Params`

.

`[X_DEN,NPC,DEC_DEN,PCA_Params] = wmulden(`

uses
the principal components estimates `'execute'`

,`DEC`

,`PC_Params`

)`PCA_Params`

previously
computed.

The input value `DEC`

can be replaced by `X`

, `LEVEL`

,
and `WNAME`

.

% Load a multivariate signal x together with % the original signals (x_orig) and true noise % covariance matrix (covar). load ex4mwden % Set the denoising method parameters. level = 5; wname = 'sym4'; tptr = 'sqtwolog'; sorh = 's'; % Set the PCA parameters to select the number of % retained principal components automatically by % Kaiser's rule. npc_app = 'kais'; npc_fin = 'kais'; % Perform multivariate denoising. [x_den, npc, nestco] = wmulden(x, level, wname, npc_app, ... npc_fin, tptr, sorh); % Display the original and denoised signals. kp = 0; for i = 1:4 subplot(4,3,kp+1), plot(x_orig(:,i)); title(['Original signal ',num2str(i)]) subplot(4,3,kp+2), plot(x(:,i)); title(['Observed signal ',num2str(i)]) subplot(4,3,kp+3), plot(x_den(:,i)); title(['Denoised signal ',num2str(i)]) kp = kp + 3; end

% The results are good: the first function, which is % irregular, is correctly recovered while the second % function, more regular, is well denoised. % The second output argument gives the numbers % of retained principal components for PCA for % approximations and for final PCA. npc npc = 2 2 % The third output argument contains the estimated % noise covariance matrix using the MCD based % on the matrix of finest details. nestco nestco = 1.0784 0.8333 0.6878 0.8141 0.8333 1.0025 0.5275 0.6814 0.6878 0.5275 1.0501 0.7734 0.8141 0.6814 0.7734 1.0967 % The estimation is satisfactory since the values are close % to the true values given by covar. covar covar = 1.0000 0.8000 0.6000 0.7000 0.8000 1.0000 0.5000 0.6000 0.6000 0.5000 1.0000 0.7000 0.7000 0.6000 0.7000 1.0000

The multivariate denoising procedure is a generalization of the one-dimensional strategy. It combines univariate wavelet denoising in the basis where the estimated noise covariance matrix is diagonal and non-centered Principal Component Analysis (PCA) on approximations in the wavelet domain or with final PCA.

The robust estimate of the noise covariance matrix given by the minimum covariance determinant estimator based on the matrix of finest details.

Aminghafari, M.; Cheze, N.; Poggi, J-M. (2006), “Multivariate
de-noising using wavelets and principal component analysis,” *Computational
Statistics & Data Analysis*, 50, pp. 2381–2398.

Rousseeuw, P.; Van Driessen, K. (1999), “A fast algorithm
for the minimum covariance determinant estimator,” *Technometrics,* 41,
pp. 212–223.