C09 Class
関数リスト一覧   NagLibrary Namespaceへ  ライブラリイントロダクション  本ヘルプドキュメントのchm形式版

This chapter is concerned with the analysis of datasets (or functions or operators) in terms of frequency and scale components using wavelet transforms. Wavelet transforms have been applied in many fields from time series analysis to image processing and the localisation in either frequency or scale that they provide is useful for data compression or denoising. In general the standard wavelet transform uses dilation and scaling of a chosen function, ψt, (called the mother wavelet) such that
ψa,b t = 1 a ψ t-b a
where a gives the scaling and b determines the translation. Wavelet methods can be divided into continuous transforms and discrete transforms. In the continuous case, the pair a and b are real numbers with a0. For the discrete transform, a and b can be chosen as a=2-j, b=k2-j for integers j, k 
ψj,k t = 2j/2 ψ 2jt-k .
The discrete wavelet transform (DWT) at a single level together with its inverse and the multi-level DWT with inverse are provided. The choice of wavelets includes the orthogonal wavelets of Daubechies and a selection of biorthogonal wavelets.

Syntax

C#
public static class C09
Visual Basic (Declaration)
Public NotInheritable Class C09
Visual C++
public ref class C09 abstract sealed
F#
[<AbstractClassAttribute>]
[<SealedAttribute>]
type C09 =  class end

Background to the Problems

The discrete wavelet transform (DWT) is defined by a mother wavelet function ψt, and a related scaling function, ϕt, where
ϕt = k gk 2 ϕ2t-k . ψt = k hk 2 ϕ2t-k .
These in turn are represented as a pair of filters with finite support. They can be viewed as a high pass filter, hk, for k=1,2,,m, paired with a low pass filter, gk, for k=1,2,,n. The DWT at a single level is carried out by convolution of the filter with the input data, followed by downsampling by two. In order to obtain exact reconstruction of the original input these filters must satisfy certain conditions. For orthogonal wavelets, n=m, these are,
k=1 m hk = 0 , k=1 m h k 2 = 1 , k=- hk hk+2l = 0 , k=1 m gk = 2 , k=1 m gk2 = 1 , k=- gk gk+2l = 0 .
for all nonzero integers, l.
The reconstruction algorithm convolves the inverse filters with the wavelet coefficients previously computed together with upsampling and summation to return to the original input. For orthogonal wavelets the inverse filters are the same as those for the forward DWT.
In the simplest case, the Haar wavelet, the nonzero filter coefficients are
h = -1 2 , 1 2 g = 12,12
while for the Daubechies wavelet with two vanishing moments and four nonzero coefficients, the filter coefficients are
h = -1+3 42 , 3+3 42 , -3+3 42 , 1-3 42 g = 1-3 42 , 3-3 42 , 3+3 42 , 1+3 42
In the orthogonal case the same filters are used for both decomposition and reconstruction.
Relaxing the orthogonality requirement allows for biorthogonal wavelets which consist of two dual wavelet bases. For example, the biorthogonal 2.2 filters are,
h = 2 14,-12,14 , g = 2 -18,14,34,14,-18 h = 2 18,14,-34,14,18 g = 2 14,12,14 .
Note that there are several possible interpretations of orthogonal and biorthorgonal wavelet filters which satisfy the requirements. These differ in the sign of the coefficients and the ordering of the filters.
Rather than simply applying the wavelet transform at a single level the process is commonly repeated to give a multiresolution analysis. For the DWT, multiresolution is implemented as the pyramid (or cascade) algorithm. Applying the DWT at a given level, L, the detail coefficients (which are the output from the high pass filter) are stored while the approximation coefficients resulting from convolution with the low pass filter are passed to the next level and the processs is repeated. When the length of the initial data input is an array of length N=2J, for some integer J (and assuming that the dataset is extended by periodic repetition) this can be continued until, at level J, there is a single detail coefficient from the high pass filter. The final coefficient from the action of the low pass filter is also stored. The result is an array of coefficients of the same length, N, as the input.
In order to obtain exact reconstruction when applying the DWT and its inverse to a finite dataset, say xt, for t=1,2,,N, some method of extending the input at its end is required. Several methods which are in general use are: periodic extension, half-point symmetric extension, whole-point symmetric extension and zero end extension where the added data points are taken to be zero. The two types of symmetric end extension reflect the given data values from the end points for whole-point extension or else by repeating the end points and reflecting from points halfway between the end point and its repeat for half-point extension.

Recommendations on Choice and Use of Available Methods

The one-dimensional multi-level discrete wavelet transform is computed by c09cc and the inverse or reconstruction is given by c09cd.
the C09Communication class constructor is provided to determine some of the input parameters for the discrete wavelet transform routines and must be called before the transform routines.

References

Inheritance Hierarchy

See Also