waverec

hana_ml.algorithms.pal.tsa.wavelet.waverec(dwt, wavelet=None, boundary=None)

Python wrapper for PAL multi-level inverse discrete wavelet transform.

Parameters
dwtDWT

A DWT object containing wavelet coefficients as well as other related information for applying the inverse transformation.

waveletstr, optional

Specifies the wavelet filter used for discrete wavelet transform. Valid options include:

  • Daubechies family : 'db1' ~ 'db20'

  • Biorthogonal family: 'bior1.1', 'bior1.3', 'bior1.5', 'bior2.2', 'bior2.4', 'bior2.6', 'bior2.8', 'bior3.1', 'bior3.3', 'bior3.5', 'bior3.7', 'bior3.9', 'bior4.4', 'bior5.5', 'bior6.8'

  • Reverse Biorthogonal family : 'rbio1.1', 'rbio1.3', 'rbio1.5', 'rbio2.2', 'rbio2.4', 'rbio2.6', 'rbio2.8', 'rbio3.1', 'rbio3.3', 'rbio3.5', 'rbio3.7', 'rbio3.9', 'rbio4.4', 'rbio5.5', 'rbio6.8'

  • Coifman family: 'coif1' ~ 'coif5'

  • Symmetric family: 'sym2' ~ 'sym20'

If not provided, the value of dwt.wavelet will be used.

boundarystr, optional

Specifies the padding method for boundary values. Valid options include:

  • 'zero' : Zero padding

  • 'symmetric' : Symmetric padding

  • 'periodic' : Periodic padding

  • 'reflect' : Reflect padding

  • 'smooth' : Smooth padding

  • 'constant' : Constant padding

If not provided, the value of dwt.boundary will be used.

Returns
DataFrame

The reconstructed time-series data from inverse discrete wavelet transform, structured as follows:

  • 1st column : ID, type INTEGER, which reflects the order of time-series.

  • 2nd column : VAL, type DOUBLE, the reconstructed time-series data(signal) from wavelet decomposition coefficients.

Examples

Assume dwt is a DWT object structured as follows:

>>> dwt.coeff_.collect()
    LEVEL  ID  COEFFICIENTS
0       0   0    451.442328
1       0   1    405.506091
2       0   2    350.691644
3       0   3    412.118406
4       0   4    362.046517
5       1   0     73.545930
6       1   1     26.917407
7       1   2     19.242329
8       1   3     24.378527
9       1   4     21.606776
10      1   5    139.207493
11      1   6      5.117513
12      1   7    -27.434285
13      2   0     35.520329
14      2   1    -53.885358
15      2   2     71.258862
16      2   3     78.767514
17      2   4    -70.401833

The original time-series data then can be reconstructed as follows:

>>> rec = waverec(dwt=dwt)
>>> rec.collect()
    ID  VALUE
0    0  266.0
1    1  145.9
2    2  181.3
3    3  119.3
4    4  180.3
5    5  168.5
6    6  231.8
7    7  224.5
8    8  192.8
9    9  122.9
10  10  336.5
11  11  185.9
12  12  194.3
13  13  149.5