nag_modwt (c09dac) (PDF version)
c09 Chapter Contents
c09 Chapter Introduction
NAG Library Manual

# NAG Library Function Documentnag_modwt (c09dac)

## 1  Purpose

nag_modwt (c09dac) computes the one-dimensional maximal overlap discrete wavelet transform (MODWT) at a single level. The initialization function nag_wfilt (c09aac) must be called first to set up the MODWT options.

## 2  Specification

 #include #include
 void nag_modwt (Integer n, const double x[], Integer lenc, double ca[], double cd[], Integer icomm[], NagError *fail)

## 3  Description

nag_modwt (c09dac) computes the one-dimensional MODWT of a given input data array, ${x}_{\mathit{i}}$, for $\mathit{i}=1,2,\dots ,n$, at a single level. For a chosen wavelet filter pair, the output coefficients are obtained by applying convolution to the input, $x$. The approximation (or smooth) coefficients, ${C}_{a}$, are produced by the low pass filter and the detail coefficients, ${C}_{d}$, by the high pass filter. Periodic (circular) convolution is available as an end extension method for application to finite data sets. The number ${n}_{c}$, of coefficients ${C}_{a}$ or ${C}_{d}$ is returned by the initialization function nag_wfilt (c09aac).
Percival D B and Walden A T (2000) Wavelet Methods for Time Series Analysis Cambridge University Press

## 5  Arguments

1:     nIntegerInput
On entry: the number of elements, $n$, in the data array $x$.
Constraint: this must be the same as the value n passed to the initialization function nag_wfilt (c09aac).
2:     x[n]const doubleInput
On entry: x contains the input dataset ${x}_{\mathit{i}}$, for $\mathit{i}=1,2,\dots ,n$.
3:     lencIntegerInput
On entry: the dimension of the arrays ca and cd. This must be at least the number, ${n}_{c}$, of approximation coefficients, ${C}_{a}$, and detail coefficients, ${C}_{d}$, of the discrete wavelet transform as returned in nwc by the call to the initialization function nag_wfilt (c09aac). Note that ${n}_{c}=n$ for periodic end extension, but this is not the case for other end extension methods which will be available in future releases.
Constraint: ${\mathbf{lenc}}\ge {n}_{c}$, where ${n}_{c}$ is the value returned in nwc by the call to the initialization function nag_wfilt (c09aac).
4:     ca[lenc]doubleOutput
On exit: ${\mathbf{ca}}\left[i-1\right]$ contains the $i$th approximation coefficient, ${C}_{a}\left(\mathit{i}\right)$, for $\mathit{i}=1,2,\dots ,{n}_{c}$.
5:     cd[lenc]doubleOutput
On exit: ${\mathbf{cd}}\left[\mathit{i}-1\right]$ contains the $\mathit{i}$th detail coefficient, ${C}_{d}\left(\mathit{i}\right)$, for $\mathit{i}=1,2,\dots ,{n}_{c}$.
6:     icomm[$100$]IntegerCommunication Array
On entry: contains details of the discrete wavelet transform and the problem dimension as setup in the call to the initialization function nag_wfilt (c09aac).
On exit: contains additional information on the computed transform.
7:     failNagError *Input/Output
The NAG error argument (see Section 3.6 in the Essential Introduction).

## 6  Error Indicators and Warnings

NE_ARRAY_DIM_LEN
On entry, array dimension lenc not large enough: ${\mathbf{lenc}}=⟨\mathit{\text{value}}⟩$ but must be at least $⟨\mathit{\text{value}}⟩$.
NE_BAD_PARAM
On entry, argument $⟨\mathit{\text{value}}⟩$ had an illegal value.
NE_INITIALIZATION
On entry, n is inconsistent with the value passed to the initialization function: ${\mathbf{n}}=⟨\mathit{\text{value}}⟩$, n should be $⟨\mathit{\text{value}}⟩$.
On entry, the initialization function nag_wfilt (c09aac) has not been called first or it has not been called with ${\mathbf{wtrans}}=\mathrm{Nag_MODWTSingle}$, or the communication array icomm has become corrupted.
NE_INTERNAL_ERROR
An internal error has occurred in this function. Check the function call and any array sizes. If the call is correct then please contact NAG for assistance.

## 7  Accuracy

The accuracy of the wavelet transform depends only on the floating-point operations used in the convolution and downsampling and should thus be close to machine precision.

Not applicable.

None.

## 10  Example

This example computes the one-dimensional maximal overlap discrete wavelet decomposition for $8$ values using the Daubechies wavelet, ${\mathbf{wavnam}}=\mathrm{Nag_Daubechies4}$.

### 10.1  Program Text

Program Text (c09dace.c)

### 10.2  Program Data

Program Data (c09dace.d)

### 10.3  Program Results

Program Results (c09dace.r)

nag_modwt (c09dac) (PDF version)
c09 Chapter Contents
c09 Chapter Introduction
NAG Library Manual