nag_dwt_3d (c09fac) computes the three-dimensional discrete wavelet transform (DWT) at a single level. The initialization function nag_wfilt_3d (c09acc)
must be called first to set up the DWT options.
nag_dwt_3d (c09fac) computes the three-dimensional DWT of some given three-dimensional input data, considered as a number of two-dimensional frames, at a single level. For a chosen wavelet filter pair, the output coefficients are obtained by applying convolution and downsampling by two to the input data,
, first over columns, next over rows and finally across frames. The three-dimensional approximation coefficients are produced by the low pass filter over columns, rows and frames. In addition there are 7 sets of three-dimensional detail coefficients, each corresponding to a different order of low pass and high pass filters (see the c09 Chapter Introduction
). All coefficients are packed into a single array. To reduce distortion effects at the ends of the data array, several end extension methods are commonly used. Those provided are: periodic or circular convolution end extension, half-point symmetric end extension, whole-point symmetric end extension and zero end extension. The total number,
, of coefficients computed is returned by the initialization function nag_wfilt_3d (c09acc)
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.
nag_dwt_3d (c09fac) is threaded by NAG for parallel execution in multithreaded implementations of the NAG Library.
Please consult the Users' Note
for your implementation for any additional implementation-specific information.
This example computes the three-dimensional discrete wavelet decomposition for
input data using the Haar wavelet,
, with half point end extension, prints the wavelet coefficients and then reconstructs the original data using nag_idwt_3d (c09fbc)
. This example also demonstrates in general how to access any set of coefficients following a single level transform.